このドキュメントが更新されました。
日本語への翻訳がまだ完了していません。
英語の最終更新: 2023/01/11

Amazon Web Services (AWS)でのデプロイ

このドキュメントでは、Amazon Web Services (AWS)を使用してWhatsApp Business APIをデプロイする方法を示しています。プロセスは次の2つの主なステップで構成されます。

  1. WhatsApp Business APIクライアントのデプロイメント
  2. WhatsApp Business APIクライアントの設定

設定が完了したら、クライアントのアップグレードを行うこともできます。WebappとCoreAppの両方を再起動する必要がある場合は、これらのステップに従ってください。

このドキュメントでは、より高度で安定したメッセージングスループットのテストが行われた新しいAWSテンプレートについて順を追って説明します。古いAWSテンプレートをお探しなら、AWSアーカイブをご覧ください。

利用を開始する

始める前に、次のことを行う必要があります。

AWSアカウントIDを設定する

有効なAWSアカウントを設定する必要があります。また、AWSでの作業について十分理解している必要があります。WhatsAppには、WhatsApp Business APIクライアントを簡単にデプロイするためのCloudFormationテンプレートが用意されています。詳しくは、AWSの使用開始リソースセンターを参照してください。

AWSキーペアを作成する

WhatsApp Business APIテンプレートで作成されたEC2インスタンスにアクセスするための新しいキーペアを作成する必要があります。以前に作成したキーペアを使用することもできます。EC2インスタンスでのキーペアの作成と使用に関する情報については、Amazon EC2キーペアのドキュメントをご覧ください。

キーペアは、WhatsApp Business APIをデプロイする地域を使って作成する必要があります。

CentOS 7イメージをサブスクリプション登録する

WhatsApp Business APIクライアントは、CentOS 7イメージ(AWS Marketplaceで入手可能)を使用します。テンプレートを使用する前に、利用規約を確認して承認する必要があります。規約を承認しないと、テンプレートを作成できません。

CentOS 7 AMIイメージを確認して承認するには、以下の手順に従います。

  1. AWS Marketplace: CentOS 7 (x86_64) - Updates HVMページに移動します。
  2. 右上の [Continue to Subscribe]をクリックしてから、[Accept Terms]ボタンをクリックします。
CentOS規約の承認

サポート対象地域

WhatsApp Business APIテンプレートはEFSリソースタイプを使用しますが、このタイプは一部のAWS地域では使用できません。現在サポートされている地域は次のとおりです。

  • 北バージニア(us-east-1)
  • オハイオ(us-east-2)
  • 北カリフォルニア(us-west-1)
  • オレゴン(us-west-2)
  • ムンバイ(ap-south-1)
  • ソウル(ap-northeast-2)
  • シンガポール(ap-southeast-1)
  • シドニー(ap-southeast-2)
  • 東京(ap-northeast-1)
  • フランクフルト(eu-central-1)
  • アイルランド(eu-west-1)

初期テストによって、すべての地域で使用できる代替オプションを提供可能かどうかがWhatsAppにより判断されます。

よくある質問

デプロイメント

ステップ1: [任意] ネットワーク設定

AWSアカウントに登録すると、通常はVirtual Private Cloud (VPC)ネットワークが作成されます。また、エンタープライズビジネスに固有のカスタマイズやアクセスコントロールの制限がいくつか必要になる場合があります。

VPCネットワークインフラストラクチャがすでに作成されている場合は、このステップをスキップできます。作成されていない場合は、以下のテンプレートを使用してAWS上のネットワークインフラストラクチャを作成できます。

ネットワークテンプレートは参照目的でのみ提供されています。特定のニーズに合わせて変更することができます。

ネットワーク要件

  • 地域内のさまざまなアベイラビリティゾーンに少なくとも2つのサブネットが存在している必要があります。そうでない場合、RDS (データベース)リソースの作成時にテンプレートの作成が失敗します。
  • HTTP (ポート: 80)、HTTPS (ポート: 443)、およびSSH (ポート: 22)へのインバウンドアクセスを許可する必要があります。セキュリティ上の理由から、HTTPSを使用しHTTPの使用は避けることを強くおすすめします

ネットワークテンプレートをデプロイするには、次のようにします。

  1. 使用する地域(eu-west-1など)のCloudFormationコンソールに移動します。
  2. [スタックの作成]を選択します。
  3. テンプレートソースとしてAmazon S3 URLを選びます。
    スタックの作成
  4. https://wa-biz-cfn.s3.amazonaws.com/wa_ent_net.ymlと入力して[次へ]をクリックするか、

    Deploy Template

    をクリックし、必要に応じてウェブページの右上から適切な地域を選びます。
  5. [スタック詳細の指定]画面に、以下の表に従ってパラメーター値を入力してください。

パラメーター

名前説明

Stack name

必須。

作成するスタックの名前。

利用可能ゾーンの設定

名前説明

Availability zones

必須。

VPCを作成するために利用可能なゾーン(AZ)。
テンプレートでは2つ以上のAZを選択する必要があります。本番環境では、少なくとも3つのAZを選ぶことをおすすめします。

Number of availability zones

必須。

選択された利用可能ゾーンの数。

VPC設定

名前説明

IP address range

必須。

このVPCのIPアドレス範囲(CIDR)。

Tenancy

必須。

VPCテナンシー
任意:defaultdedicated

パブリックサブネットの設定

名前説明

IP range - subnet #1

必須。

パブリックサブネットのIPアドレス範囲(CIDR)

IP range - subnet #2

必須。

パブリックサブネットのIPアドレス範囲(CIDR)

IP range - subnet #3

任意。

利用可能ゾーンの数が2より多い場合は必須。

IP range - subnet #4

任意。

利用可能ゾーンの数が3より多い場合は必須。

プライベートサブネットの設定

名前説明

Create private subnets?

必須。

任意:true (デフォルト)、false
プライベートサブネットが何らかの理由で必須ではない場合、このフラグをfalseに設定できます。

IP range - subnet #1

条件付き。

プライベートサブネットの作成がtrueに設定されている場合は必須。

IP range - subnet #2

条件付き。

プライベートサブネットの作成がtrueに設定されている場合は必須。

IP range - subnet #3

条件付き。

プライベートサブネットの作成がtrueに設定されていて、AZの数が2より多い場合は必須。

IP range - subnet #4

条件付き。

プライベートサブネットの作成がtrueに設定されていて、AZの数が3より多い場合は必須。

ステップ2:DBとモニタリングスタック設定ファイルをアップロードする

AWSにWhatsApp Business APIスタックをデプロイする前に、まず読み取りアクセス権のあるS3バケットに参照サブスタックの設定ファイルをアップロードする必要があります。

  1. 新しいS3バケットを作成するか読み取りアクセス権がある既存のS3バケットを使用します。
  2. wa_ent_db.ymlフィルとwa_ent_monitoring.ymlファイルをGitHubからダウンロードし、両方のファイルをステップ1で言及されているS3バケットにアップロードします。
  3. wa_ent_db.ymlファイルをオブジェクトリストから選択し、そのURLをコピーします。そのフォーマットはhttps://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_db.ymlになるはずです。
  4. wa_ent.ymlファイルで、dbStackのTemplateURLの値をステップ3のオブジェクトURLに置き換え、ファイルを保存します。
  5. wa_ent_monitoring.ymlファイルをオブジェクトリストから選択し、そのURLをコピーします。そのフォーマットはhttps://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_monitoring.ymlになるはずです。
  6. wa_ent.ymlファイルで、MonitoringスタックのTemplateURLの値をステップ5のオブジェクトURLに置き換え、ファイルを保存します。
S3バケットにアップロードする

ステップ3: WhatsApp Business APIのデプロイメント

WhatsApp Enterpriseはメインのテンプレートで、WhatsApp Business APIクライアントに必要なすべてのリソース(ネットワークを除く)を作成します。前述のように、必要ならこのテンプレートでデータベースリソースを作成することもできます。

WhatsApp Business APIクライアントをデプロイするには次のようにします。

  1. 使用する地域(eu-west-1など)のCloudFormationコンソールに移動します。
  2. [スタックの作成]を選択します。
  3. wa_ent.ymlファイルをGitHubからダウンロードして、ローカルに保存します。
  4. テンプレートソースとして[テンプレートファイルをアップロード]を選択し、ステップ3でダウンロードしたテンプレートファイルをアップロードします。
    スタックの作成
  5. [次へ]をクリックします
  6. その後、パラメーターを入力できるようになります。パラメーターの説明については以下の表をご覧ください。
  7. すべてのパラメーター(下の表)を設定した後、[次へ] をクリックして、[スタックオプションの設定]ページへ移動します。設定した内容に基づいて必要な変更を加え、[次へ] をクリックします。
  8. [スタックの確認]ページに、パラメーター値とスタックオプションの概要が表示されます。確認後、[機能セクション]で、両方のボックスをオンにして[送信]をクリックしてスタックの作成を開始します。
    : デプロイには約20~30分かかります。

パラメーター

名前説明

Stack name

必須。

作成するスタックの名前。

スタック名は22文字以下にしてください。注意: ap-southeast-1、ap-southeast-2、ap-northeast-1、ap-northeast-2地域でのデプロイについては、スタック名を8文字以下にする必要があります。

stack nameがこれらの要件より長いと、スタックの作成はハングして失敗し、SSL証明書を作成できなくなります。

一般的な設定

名前説明

High Availability

任意。

高可用性機能を有効にします。


デフォルト:enabled

Desired Throughput

必須。

1秒あたりに送信するメッセージの数。


Type of Messageオプションと合わせて、選択したタイプのメッセージの送信時に、指定されているスループットを満たすようにサーバーとデータベースのリソースが自動的に選択され設定されます。

Type of Message

必須。

主に送受信したいメッセージタイプ。


Desired Throughputオプションと合わせて、選択したタイプのメッセージの送信時に、指定されているスループットを満たすようにサーバーとデータベースのリソースが自動的に選択され設定されます。

Host exporter for instance monitoring

任意。

インスタンスモニタリングのために、各CoreAppホストにノードエクスポーターをインストールします。


デフォルト:enabled

ネットワーク設定

名前説明

Network Stack Name

必須。

ネットワーク設定ステップで作成されたネットワークCloudFormationスタックの名前。

Number of subnets

必須。

選択されたサブネットの数。


現在、デプロイメントがECSタスクをすべてのホストに均等に配布することをサポートするサブネットは2つのみです。

Load balancer scheme

必須。

現在、インターネットと接続しているロードバランサー(一般公開されている)のみをサポートしています。不必要なアクセスをオフにするために、APIスタック作成後にセキュリティグループを変更してください。

コンテナの設定

名前説明

Keypair to use

必須。

EC2インスタンスへのアクセスに使用できるキーペア(必要な場合)。

WA Enterprise container registry

任意。

これは将来の証明と試験的なWhatsApp Business APIクライアントをサポートするためのものです。ほとんどの場合、デフォルト値を利用できます。

WA Enterprise Client version

必須。

常に、最新の安定バージョン(最新バージョンについては変更履歴でご確認ください)を使うことをおすすめします。
フォーマット:v2.yy.xx

WhatsApp Business APIクライアントバージョンは、明示的に記載されていない限り、常に"v"で始まります。正しくないバージョンを使用すると、スタックの作成は失敗します。

EBS volume size

必須。

本番の作業負荷用に32GB以上を選ぶことをおすすめします。

データベースの設定

名前説明

Store configuration in DB

任意。

データベースに設定情報を保存することを可能にします。
任意:true (デフォルト)、false
値をfalseにすると、設定情報をデータベースに保存できなくなり、代わりにファイルに保存します。

Existing DB hostname

任意。

既存のデータベースホスト名。
すでにWhatsApp Business APIクライアント専用のMySQLデータベースがある場合は、ここにホスト名を入力できます。
空のままにすると、新しいAmazon Auroraインスタンスが作成されます。安定した高スループットのために、新しいAuroraデータベースを作成するか、このテンプレートで以前に作成した既存のAurora データベースを使用することを強くおすすめします。

Administrator name

必須。

データベースへのアクセスに使われる管理者名。

Administrator password

必須。

データベースへのアクセスに使われる管理者パスワード。

データベースパスワードには?{}&~!()^/"@のいずれの文字も使用できません。

Server port

必須。

データベースバックエンドにアクセスするためのポート番号。

Persist DB Connection

任意。

ウェブコンテナのデータベース接続を保持するかどうかを示します。


デフォルト:enabled

DB Idle Connection Timeout

任意。

アイドル状態の接続をデータベースが閉じるまでの時間(ミリ秒)。
デフォルト: 180000 ms

ロギングの設定

名前説明

Logging driver for container logs

任意。

コンテナログ用のログドライバー。
任意:json-fileawslogs(デフォルト)
json-file値を指定すると、ログはEC2ホストに保存されます。awslogs値を指定すると、すべてのコンテナログをCloudWatchにストリームします。

Maximum container log file size

任意。

コンテナログファイルの最大サイズ(MB単位)で、このサイズになるとファイルがローテーションされます。

1以上250以下の値にします。デフォルト: 50。

Maximum number of container log files

任意。

コンテナあたりの保持するログファイルの最大数。
停止したコンテナは最終的にホストから削除されます。その場合、該当コンテナの保持されていたログファイルはすべて削除されます。

1以上30以下の値にします。デフォルト: 7。

Days to retain CloudWatch logs

任意。

CloudWatchにログを保持する日数。
リスト内の利用可能な値から1つ選択してください。

デフォルト: 7

ファイルシステムの設定

名前説明

File system identifier

未使用。

このパラメーターは空のままにしておいてください。

セキュリティの設定

名前説明

Key to encrypt DB & EFS

任意。

デフォルトでは、AWSサービスキー(Default-Keyオプション)を使ってDB & EFSデータを保存時に暗号化します。その他のオプションは次のとおりです。

  • Unencrypted: 保存時にデータは暗号化されません
  • Create-New-Key: 新しいKMSキーを作成してデータの暗号化に使用します
  • User-Provided-Key: データの暗号化に使用するKMSキーのIDを自分で提供できます。他のオプションが選択された場合は、これは空白のままにしてください。

User provided key id

任意。

データの暗号化に使用するKMSキーのIDを指定できます。User-Provided-Keyオプションが選択されていない場合は、空白のままにしてください。

DB connection encryption

任意。

デフォルトでは、データベースに転送されるデータは暗号化されます。これは現在、Coreappにのみ適用されます。Webappの暗号化はまだサポートされていません。また、新しいデータベースエンジンでは、このオプションが無効になっている場合でも、Coreappは暗号化を実行します。ただし、サーバー証明書(ID)の検証は行いません。

CA certificate for DB connection

任意。

デフォルト値にはRDS証明書バンドルが含まれています。RDS以外のデータベースを使用する場合、適切なCA証明書バンドルを提供するか、空白のままにしておくことができます。デフォルト値でデータベースとの安全な接続を十分に確保できます。

Client certificate for DB connection

任意。

データベース接続のクライアント証明書

Client key for DB connection

任意。

データベース接続のクライアントキー

WhatsApp Business APIアクセスポイント

これらのパラメーターは、Grafanaダッシュボードがモニタリング目的でアプリ指標を取得するために必要です。

名前説明

WAWebUsername

必須。

WhatsApp Business APIのユーザーネームを指定します。

WAWebPassword

必須。

WAWebUsernameのパスワードを指定します。これは、最初のログイン時にデフォルトのパスワードを変更した後の新しいパスワードになります。

Grafana

名前説明

GrafanaAdminPassword

必須。

Grafanaダッシュボードのスタック作成時にログインパスワードとして使用されるパスワードを指定します。

GrafanaEnableSmtp

任意。

メールアラートの設定にSMTPが有効かどうかを示します。有効な値: 無効の場合は0、有効の場合は1です。

デフォルト:0 (無効)

GrafanaSmtpHost

任意。

メールアラートで使用されるSMTPホスト。例: smtp.gmail.com:465

GrafanaSmtpUser

任意。

メールアラートで使用されるSMTPユーザー名を指定します。

GrafanaSmtpPassword

任意。

メールアラートで使用されるSMTPパスワードを指定します。

デプロイメント後の出力

テンプレートの作成に成功すると、以下のパラメーターが表示されます。

  • ロードバランサー名: WhatsApp Businessプラットフォームにアクセスするロードバランサーのホスト名
  • データベースホスト名: テンプレートの作成中に作成されるか提供されるデータベースのホスト名
  • データベースポート番号: データベース接続用のポート番号
  • ECSクラスター名: 作成されるECSクラスターの名前
  • ログ保持日数: ログを保持する日数
  • DB接続CA: DB接続用CAの値(設定されている場合)
  • DB接続証明書: DB接続用証明書の値(設定されている場合)
  • DB接続キー: DB接続用キーの値(設定されている場合)
  • Grafana: GrafanaダッシュボードURL
  • ShardCount: WhatsApp BusinessプラットフォームAPI用に設定するシャードの数

SSHセキュリティルールを編集する

デフォルトで、スタックによって作成されたセキュリティルールではすべてのトラフィックが、EC2インスタンス(SSH経由で)、APIエンドポイントとGrafanaダッシュボード(HTTPS経由で)、cadvisorとPrometheusコンテナに到達できるようにします。セキュリティ上の理由から、不要なアクセスを閉鎖することを強くおすすめします。このセクションでは、例として、SSHセキュリティルールを変更する手順を説明します。SSHアクセスは、必ず信頼できるトラフィックのみに制限するべきです。

  1. EC2 - セキュリティグループコンソール(例: EC2 Management Console (amazon.com))で次のようにします。
    1. 右上隅で適切な地域を選択します。
    2. <stackName>-EcsSecurityGroupを含むセキュリティグループを選択し、[インバウンドルール]タブに切り替えます。
      インバウンドルールを編集する
    3. [インバウンドルールを編集]を選択し、ソース列を更新して信頼できるトラフィック(例:My IP)だけがSSH経由でEC2ホストにアクセスできるようにします。
    4. すべてのセキュリティルールを調整した後、[ルールを保存]をクリックして変更を適用します。
    5. "<stackName>-ms-xxx-EcsSecurityGroup"を含むすべてのセキュリティグループでこの手順を繰り返し、モニタリングスタックのSSHアクセスを制限します。

WhatsApp Business APIクライアントの設定

WhatsApp Business APIクライアントが正常にデプロイされたら、動作するように設定する必要があります。

ステップ1: 電話登録

電話番号の登録に関する詳細情報については、電話番号ガイドを参照してください。

base64エンコードされた証明書を、WhatsAppマネージャの電話番号タブにあるFacebookビジネスマネージャのWhatsAppアカウントからダウンロードします。

base64エンコードされた証明書があり正しい電話番号を選択している場合は、accountノードからWhatsApp Business APIクライアントを登録する必要があります。詳細については、登録のドキュメントをご覧ください。

電話番号がテキストメッセージを受信できる場合は、登録コードの取得にSMSによる方法を使います。

WhatsAppから登録コードをすでに受け取っている場合は、この手順をスキップできます。

ステップ2: シャードを設定する

スタックが作成された後、求めるスループットを達成するためには、shards API呼び出しを使用してアクティブなCoreappのインスタンスを増す必要があります。シャードの数は、スタックの出力セクションにあります。

ステップ3: アプリの設定を更新する

WhatsApp Business APIウェブコールバックやその他のパラメーターの設定については、アプリ設定のドキュメントに記載されています。安定したスループットを実現するには、以下のアプリ設定がおすすめです。

 {
    "settings": {
        "application": {
            "callback_backoff_delay_ms": 3000,
            "callback_persist": true,
            "db_garbagecollector_enable": false, # change this to true when there are no ongoing messaging campaigns
            "heartbeat_interval": 5,
            "max_callback_backoff_delay_ms": 900000,
            "media": {
                "auto_download": [
                    "document",
                    "image",
                    "video",
                    "voice",
                    "sticker",
                    "audio"
                ]
            },
            "notify_user_change_number": true,
            "pass_through": false,
            "sent_status": true,
            "show_security_notifications": false,
            "skip_referral_media_download": false,
            "unhealthy_interval": 30,
            "wa_id": "12245552741",
            "webhooks": {
                "max_concurrent_requests": 24,
                "message": {
                    "delivered": true,
                    "read": true,
                    "sent": true
                },
                "url": "<YOUR_WEBHOOK_SERVER_URL>"
            }
        }
    },
    "meta": {
        "api_status": "stable",
        "version": "2.41.3"
    }
}

      
      
    

ステップ4: [任意] SSL設定

WhatsApp Business APIクライアントは、作成時にデフォルトで自己署名証明書を生成します。WhatsApp Business APIクライアントのエンドポイントを検証し、証明書の信頼性に関する警告が出されないようにするには、自己署名証明書の生成に使用する認証局(CA)証明書が必要になる場合があります。

CA証明書をダウンロードしローカルに保管して、証明書の信頼性に関する警告が出されないようにするか、独自のCA証明書をアップロードできます。詳細については、certificateノードのドキュメントをご覧ください。

AWSのデプロイメントでは、SSL証明書はロードバランサーのホスト名を使用して作成されます。アクセス時にホスト名ではなくIPアドレスが使用される場合にも、警告が出されます。

WhatsAppの将来のリリースでは、お客様が用意したSSL証明書を構成できるようになる予定です。

ステップ5: セットアップの確認

設定および登録ステップが成功すると、WhatsApp Business APIクライアントの基本的な機能を検証するためにメッセージを送受信することができます。これは、メッセージのドキュメントで詳しく説明されています。

メッセージの受信が成功すると、WhatsApp Business APIクライアントは、ステップ3で設定されたWebhookにメッセージステータス/詳細をPOSTします。

メッセージが正常に受信されたら、すべての設定が完了です。利用可能なAPIのエンドポイントに関する詳細については、リファレンスドキュメントを参照してください。

CoreappとWebappの再起動

WhatsApp Business APIクライアントを再起動するには、ECSコンソール(例: https://us-west-2.console.aws.amazon.com/ecs/home?region=us-west-2#/clusters)で次のようにします。

  1. 右上隅で適切な地域を選択します。
  2. 該当するクラスターをリストから選択します。
  3. [サービス]タブで、WAEntServiceを含むサービス名を選択します。
  4. [タスク]タブを選択します。通常、タスクは1つ(IDは16進数)のみのはずです。
  5. [タスク]ウィンドウで、右上の[停止]をクリックし、プロンプトが表示されたらもう一度[停止]をクリックします。

これでWebappとCoreAppの両方が停止します。少し経ってから、AWSインフラストラクチャはWebappとCoreAppの両方を再起動します。

ダウンタイムは約1~2分と予測されます。

アップグレード

CloudFormationスタックを直接更新すると、データベースが破壊され再作成される可能性があります。データを失わないために、次のセクションの手動ステップに従ってシステムを更新することを強くおすすめします。

このセクションでは、WhatsApp Business APIクライアントとCloudFormation (CFN)テンプレートの両方をアップグレードする方法について順を追って説明します。アップグレードを実行するとダウンタイムが生じるので、この間はメッセージを送信しないでください。アップグレードが完了してから、メッセージ送信を再開するようにしてください。

CFNテンプレートとWhatsApp Business APIクライアントのバージョンを、次のようにして同時にアップグレードできます。

  1. WhatsApp Business APIクライアントのアップグレード手順のステップ5で、[現在のテンプレートを使用]ではなく、[現在のテンプレートを置き換える]を選択します。
  2. [テンプレートの指定]セクションで、[テンプレートファイルのアップロード]を選択して、GitHubからダウンロードした最新のテンプレートファイルを選択します。

WhatsApp Business APIクライアントのアップグレード

  1. CFNコンソール(例: https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active)に移動します。
  2. 右上隅で適切な地域を選択します。
  3. すでに作成したWhatsApp Business APIクライアントのスタックを選択します。
  4. [更新]をクリックします。
  5. [前提条件 - テンプレートを準備する]ページで、[現在のテンプレートを置き換える]オプションを選択します。[テンプレートの指定]セクションで、[テンプレートファイルのアップロード]を選択して、GitHubからダウンロードした最新のテンプレートファイルを選択します。[次へ]をクリックします。
  6. [スタック詳細の指定]ページで、[WhatsApp Business API クライアント(コンテナ)バージョン]を希望のバージョンに変更します。他のパラメーターは変更しないでください。[次へ]をクリックします。
  7. [スタックオプションの設定]ページで、[次へ]をクリックします。
  8. [レビュー]ページで、[AWS CloudFormationがカスタム名でIAMリソースを作成する可能性があることを認めます]を選択します。予期せぬ変更があった場合は、[変更セットのプレビュー]セクションを確認してください。予期せぬ変更があった、または確信が持てない場合は、WhatsAppダイレクトサポートまでご連絡ください。[スタックを更新]をクリックします。スタック更新のステータスはCFNコンソールでトラッキングでき、アップグレードが完了すればUPDATE_IN_PROGRESSからUPDATE_COMPLETEに変更されます。

クイックアップグレード確認:テキストメッセージを送信し、APIレスポンスに正しいバージョン番号(つまり、新しいバージョン)が含まれていることを確認してください。また、受信者がメッセージを受信することも確認してください。

WhatsApp CFNテンプレートのアップグレード

  1. CFNコンソール(例: https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active)に移動します。
  2. 右上隅で適切な地域を選択します。
  3. すでに作成したWhatsApp Business APIクライアントのスタックを選択します。
  4. [更新]をクリックします。
  5. [前提条件 - テンプレートを準備する]ページで、[現在のテンプレートを置き換える]オプションを選択します。[テンプレートの指定]セクションで、[テンプレートファイルのアップロード]を選択して、GitHubからダウンロードした最新のテンプレートファイルを選択します。[次へ]をクリックします。
  6. [スタック詳細の指定]ページで、前のセクションの情報に従って適切なパラメーターを入力してください。[次へ]をクリックします。
  7. [スタックオプションの設定]ページで、[次へ]をクリックします。
  8. [レビュー]ページで、[AWS CloudFormationがカスタム名でIAMリソースを作成する可能性があることを認めます]を選択します。予期せぬ変更があった場合は、[変更セットのプレビュー]セクションを確認してください。予期せぬ変更があった、または確信が持てない場合は、WhatsAppダイレクトサポートまでご連絡ください。[スタックを更新]をクリックします。スタック更新のステータスはCFNコンソールでトラッキングでき、アップグレードが完了すればUPDATE_IN_PROGRESSからUPDATE_COMPLETEに変更されます。

システムがアイドル状態のときに、コストを手動で削減する方法(任意)

ビジネスは一般的に、時間制限のあるキャンペーン用に高いスループット環境を整え、キャンペーン以外の期間には低コスト環境を維持することを望んでいます。このセクションでは、コストを節約するためにAWSの設定を手動でスケールダウンする方法をいくつか提案します。

重要: ダウンタイムがあることにご注意ください。ダウンタイムは推定5分から15分ほどになります。アプリ設定のバックアップやデータベースのバックアップなど、すべてのDevOpsベストプラクティスに従うようにしてください。

  1. ECSコンソールで次のようにします(例: Amazon ECS)。
    1. 右上隅で適切な地域を選択します。
    2. 該当するクラスターをリストから選択します。
    3. [サービス]タブで、WAEntCoreappServiceを含むサービス名を選択します。[サービスの編集]を選択し、[対象タスク]の値を0に更新します。
      デプロイメントの設定
    4. WAEntWebServiceWAEntMasterServiceHostExporterServiceを含むすべての他のサービスで、ステップcを繰り返します。
    5. クラスターページに戻り、[タスク]タブで、上記のサービスに実行中のタスクがないことを確認します。
  2. EC2 - 自動スケーリンググループコンソール(例: 自動スケーリンググループ | EC2 Management Console (amazon.com))で次のようにします。
    1. 右上隅で適切な地域を選択します。
    2. 名前にHAECSAutoScalingGroupが含まれるスタックの自動スケーリンググループを選択し、[編集]を選択します。[希望容量]と[最小容量]の両方を3に更新します。
      グループサイズ
    3. 名前にHAECSAutoScalingGroupWebが含まれるスタックの自動スケーリンググループを選択し、[編集]を選択します。[希望容量]と[最小容量]の両方を2に更新します。
  3. (任意) [メッセージのタイプ]の初期値が画像のいずれかタイプの場合、EC2インスタンスのタイプをより安価なオプションのc5.largeに置き換えることができます。
    1. EC2 - ローンチテンプレートコンソールで、リストから適切なローンチテンプレートを選択します。
    2. アクションを選択 - テンプレートを変更します(新しいバージョンを作成)。
      ローンチテンプレートコンソール
    3. [インスタンスのタイプ]セクションでインスタンスのタイプをc5.largeに更新してから、[テンプレートバージョンを作成]を選択します。
      インスタンスのタイプ
    4. EC2 - 自動スケーリンググループコンソールで、名前に HAECSAutoScalingGroupが含まれるスタックの自動スケーリンググループを選択します。
    5. [ローンチテンプレート]セクションで[編集]を選択します。
    6. ステップ3cで作成された新しいローンチテンプレートを選択し、[更新]を選択してください。
      ローンチテンプレート
  4. RDSコンソール(例: RDS Management Console (amazon.com))で次のようにします。
    1. 右上隅で適切な地域を選択します。
    2. リストから適切なAuroraデータベースを選択します。
    3. [変更]を選択し、DBインスタンスクラスをr5.xlargeに更新します。
      インスタンス設定
  5. ECSコンソール(例: Amazon ECS)で次のようにします。
    1. 右上隅で適切な地域を選択します。
    2. 該当するクラスターをリストから選択します。
    3. [サービス]タブで、WAEntCoreappServiceを含むサービス名を選択します。[サービスの編集]を選択し、[対象タスク]の値を3に更新します。
    4. [サービス]タブで、HostExporterServiceを含むサービス名を選択します。[サービスの編集]を選択し、[対象タスク]の値を3に更新します。
    5. [サービス]タブで、WAEntWebServiceを含むサービス名を選択します。[サービスの編集]を選択し、[対象タスク]の値を2に更新します。
    6. [サービス]タブで、WAEntMasterServiceを含むサービス名を選択します。[サービスの編集]を選択し、[対象タスク]の値を2に更新します。
  6. すべてのサービスが指定された数のタスクを開始するのを待ちます。すべてのタスクが実行されたら、シャード設定APIでシャードを 2にリセットします。
  7. システムの正常性を正常性APIで確認します。WhatsApp Business APIクライアントの基本的な機能を検証するために、メッセージを送受信することもできます。これは、メッセージのドキュメントで詳しく説明されています。