문서가 업데이트되었습니다.
한국어로 번역이 아직 완료되지 않았습니다.
영어 업데이트됨: 2023. 6. 28.

Amazon Web Services를 통해 배포하기

이 문서에서는 Amazon Web Services(AWS)를 통해 WhatsApp Business API를 배포하는 방법을 다룹니다. 이 과정은 크게 두 가지 단계로 나눌 수 있습니다.

  1. WhatsApp Business API 클라이언트 배포
  2. WhatsApp Business API 클라이언트 구성

설정을 완료하고 나면 클라이언트를 업그레이드할 수 있습니다. Webapp과 CoreApp을 모두 다시 시작해야 할 경우 이 단계를 따르세요.

이 문서에서는 더 많고 안정적인 메시지 처리량에 대해 테스트한 새로운 AWS 템플릿에 대해 단계별로 설명합니다. 이전의 AWS 템플릿을 원하시는 경우 AWS Archive를 참조하세요.

시작하기

시작하기 전에 다음과 같은 작업을 진행해야 합니다.

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) - 업데이트 HVM 포함 페이지로 이동합니다.
  2. 오른쪽 상단 모서리에서 계속 구독하기를 클릭하고 약관 동의 버튼을 클릭합니다.
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은 초기 테스트에 따라 모든 리전에서 사용할 수 있는 대체 옵션을 제공할지 여부를 결정합니다.

FAQ

배포

1단계: [선택 사항] 네트워크 설정

VPC(Virtual Private Cloud) 네트워크는 일반적으로 AWS 계정에 가입할 때 생성됩니다. 또한 엔터프라이즈 비즈니스에 맞춰 여러 가지 맞춤 설정과 액세스 관리 제한이 필요할 수 있습니다.

VPC 네트워크 인프라가 이미 생성되어 있다면 이 단계를 건너뛸 수 있습니다. 그렇지 않을 경우 다음 템플릿을 사용하여 AWS에서 네트워크 인프라를 만들 수 있습니다.

네트워크 템플릿은 참고용으로만 제공됩니다. 각각의 요구 사항에 맞춰 템플릿을 수정할 수 있습니다.

네트워크 요구 사항

  • 리전 내의 서로 다른 가용 영역에 두 개 이상의 서브넷이 있어야 합니다. 그렇지 않으면 RDS(데이터베이스) 리소스를 만드는 동안 템플릿 생성에 실패합니다.
  • HTTP(포트: 80), HTTPS(포트: 443) 및 SSH(포트: 22)에 대한 인바운드 액세스를 허용해야 합니다. 보안을 위해 HTTP 대신 HTTPS를 사용하는 것이 좋습니다.

네트워크 템플릿을 배포하는 방법:

  1. 자신의 리전(예: eu-west-1)에 해당하는 CloudFormation 콘솔로 이동합니다.
  2. 스택 만들기를 선택합니다.
  3. Amazon S3 URL을 템플릿 소스로 선택합니다.
    스택 만들기
  4. https://wa-biz-cfn.s3.amazonaws.com/wa_ent_net.yml을 입력하고 다음을 클릭하거나

    템플릿 배포

    를 클릭하고, 필요한 경우 웹페이지의 오른쪽 상단 모서리에서 적절한 리전을 선택합니다.
  5. 스택 상세 정보 지정 화면에서 아래의 표에 따라 매개변수 값을 입력합니다.

매개변수

이름설명

Stack name

필수 항목.

생성할 스택의 이름.

가용 영역 구성

이름설명

Availability zones

필수 항목.

VPC를 만들기 위한 가용 영역(AZ).
이 템플릿의 경우 AZ를 2개 이상 선택해야 합니다. 프로덕션 환경에서는 AZ를 3개 이상 선택하는 것이 좋습니다.

Number of availability zones

필수 항목.

선택한 가용 영역의 수.

VPC 구성

이름설명

IP address range

필수 항목.

이 VPC의 IP 주소 범위(CIDR).

Tenancy

필수 항목.

VPC 테넌시
옵션:default, dedicated

공개 서브넷 구성

이름설명

IP range - subnet #1

필수 항목.

공개 서브넷의 IP 주소 범위(CIDR).

IP range - subnet #2

필수 항목.

공개 서브넷의 IP 주소 범위(CIDR).

IP range - subnet #3

선택 사항.

가용 영역의 개수가 3개 이상일 경우 필수입니다.

IP range - subnet #4

선택 사항.

가용 영역 개수가 4개 이상일 경우 필수입니다.

비공개 서브넷 구성

이름설명

Create private subnets?

필수 항목.

옵션:true(기본값), false
어떠한 이유로 비공개 서브넷이 필요하지 않은 경우 이 플래그를 false로 설정할 수 있습니다.

IP range - subnet #1

조건부.

비공개 서브넷 생성이 true로 설정된 경우에 필수입니다.

IP range - subnet #2

조건부.

비공개 서브넷 생성이 true로 설정된 경우에 필수입니다.

IP range - subnet #3

조건부.

비공개 서브넷 생성이 true로 설정되고 AZ 개수가 3개 이상인 경우에 필수입니다.

IP range - subnet #4

조건부.

비공개 서브넷 생성이 true로 설정되고 AZ 개수가 4개 이상인 경우에 필수입니다.

2단계: DB 및 모니터링 스택 구성 파일 업로드

WhatsApp Business API 스택을 AWS에 배포하기에 앞서 참조된 서브스택의 구성 파일을 읽기 액세스 권한이 있는 S3 버킷에 먼저 업로드해야 합니다.

  1. 새 S3 버킷을 만들거나 읽기 액세스 권한이 있는 기존의 S3 버킷을 사용합니다.
  2. wa_ent_db.yml 파일과 wa_ent_monitoring.yml 파일을 GitHub에서 다운로드하고 두 파일을 1단계에서 언급한 S3 버킷에 업로드합니다.
  3. 개체 리스트에서 wa_ent_db.yml 파일을 선택하고 URL을 복사합니다. 이 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을 복사합니다. 이 URL은 https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_monitoring.yml 형식이어야 합니다.
  6. wa_ent.yml 파일에서 모니터링 스택의 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

필수 항목.

초당 전송하고자 하는 메시지 수.


서버 및 데이터베이스 리소스는 선택된 메시지 유형을 보낼 때 Type of Message 옵션과 함께 원하는 처리량에 맞춰 자동으로 선택 및 구성됩니다.

Type of Message

필수 항목.

전송 및 수신하고자 하는 주요 메시지 유형.


서버 및 데이터베이스 리소스는 선택된 메시지 유형을 보낼 때 Desired Throughput 옵션과 함께 원하는 처리량에 맞춰 자동으로 선택 및 구성됩니다.

Host exporter for instance monitoring

선택 사항.

인스턴스 모니터링을 위해 각 CoreApp 호스트에서 node-exporter를 설치합니다.


기본값: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

선택 사항.

데이터베이스가 유휴 상태의 연결을 닫은 후의 시간(ms).
기본값: 180000ms

로깅 구성

이름설명

Logging driver for container logs

선택 사항.

컨테이너 로그의 로깅 드라이버.
옵션:json-file, awslogs(기본값)
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에서 로그를 보관하는 일수.
리스트에 나와 있는 사용 가능한 값 중 하나를 선택합니다.

기본값: 7

파일 시스템 구성

이름설명

File system identifier

사용하지 않음.

이 매개변수는 비워둡니다.

보안 구성

이름설명

Key to encrypt DB & EFS

선택 사항.

기본적으로 AWS 서비스 키(기본-키 옵션)를 사용하여 유휴 상태에서 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 Platform API 클라이언트에 액세스하는 로드 밸런서의 호스트 이름입니다.
  • 데이터베이스 호스트 이름: 템플릿 생성 시 만들거나 제공한 데이터베이스의 호스트 이름입니다.
  • 데이터베이스 포트 번호: 데이터베이스 연결을 위한 포트 번호입니다.
  • ECS 클러스터 이름: 생성한 ECS 클러스터의 이름입니다.
  • 로그 보관 기간: 로그를 보관하는 일수입니다.
  • DB 연결 CA: DB 연결 CA의 값입니다(구성된 경우).
  • DB 연결 인증서: DB 연결 인증서의 값입니다(구성된 경우).
  • DB 연결 키: DB 연결 키의 값입니다(구성된 경우).
  • Grafana: Grafana 대시보드 URL입니다.
  • ShardCount: WhatsApp Business Platform API에 대해 구성하는 샤드 수입니다.

SSH 보안 규칙 수정

기본적으로 스택에서 생성된 보안 규칙은 모든 트래픽을 허용하여 SSH를 통해 EC2 인스턴스에 도달하고, HTTPS를 통해 API 엔드포인트와 Grafana 대시보드에 도달하며, cadvisor 및 Prometheus 컨테이너에 도달할 수 있도록 합니다. 보안을 위해 불필요한 액세스는 차단하는 것이 좋습니다. 이 섹션에서는 SSH 보안 규칙을 업데이트하는 단계를 예시로 설명합니다. 언제나 SSH를 통해 신뢰하는 트래픽에만 액세스하도록 제한해야 합니다.

  1. EC2 - 보안 그룹 콘솔(예: EC2 관리 콘솔(amazon.com)):
    1. 오른쪽 상단 모서리에서 올바른 리전을 선택합니다.
    2. <stackName>-EcsSecurityGroup이 포함된 보안 그룹을 선택하고 인바운드 규칙 탭으로 전환합니다.
      인바운드 규칙 수정
    3. 인바운드 규칙 수정을 선택하고 소스 열을 업데이트하여 신뢰할 수 있는 트래픽(예: 내 IP)만 SSH를 통해 EC2에 액세스하도록 허용합니다.
    4. 모든 보안 규칙을 조정한 후 규칙 저장을 클릭하여 변경 사항을 적용합니다.
    5. "<stackName>-ms-xxx-EcsSecurityGroup"이 포함된 보안 그룹에 이러한 변경 사항을 반복하여 모니터링 스택에 대한 SSH 액세스를 제한합니다.

WhatsApp Business API 클라이언트 구성

WhatsApp Business API 클라이언트를 성공적으로 배포한 후에는 클라이언트가 작동하도록 구성해야 합니다.

1단계: 전화번호 등록

전화번호 등록에 대한 자세한 내용은 전화번호 가이드를 참조하세요.

WhatsApp 관리자의 전화번호 탭에 있는 Facebook 비즈니스 관리자의 WhatsApp 계정에서 base64 인코딩 인증서를 다운로드합니다.

올바른 전화번호를 선택하고 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 인증서를 다운로드하고 로컬에 저장하거나, 인증서를 직접 업로드할 수 있습니다. 자세한 내용은 certificate 노드 문서를 참조하세요.

AWS 배포에서 SSL 인증서는 로드 밸런서 호스트 이름을 사용하여 생성합니다. 액세스 시 호스트 이름 대신 IP 주소를 사용하는 경우에도 여전히 경고를 받습니다.

WhatsApp은 향후 릴리스에서 고객이 제공한 SSL 인증서를 구성하도록 지원할 예정입니다.

5단계: 설정 검증

구성 및 등록 단계가 성공하면 WhatsApp Business API 클라이언트의 기본 기능을 검증하기 위한 메시지를 보내고 받을 수 있습니다. 자세한 내용은 메시지 문서를 참조하세요.

메시지를 성공적으로 수신하면 WhatsApp Business API 클라이언트가 3단계에서 구성된 Webhooks에 메시지 상태/상세 정보를 POST 요청으로 보냅니다.

메시지를 성공적으로 수신했다면 축하드립니다. 이제 모든 준비가 완료되었습니다! 사용 가능한 API 엔드포인트에 대한 자세한 내용은 참고 자료 문서를 참조하세요.

Coreapp 및 Webapp 다시 시작

ECS 콘솔에서 WhatsApp Business API 클라이언트를 다시 시작하는 방법(예: https://us-west-2.console.aws.amazon.com/ecs/home?region=us-west-2#/clusters):

  1. 오른쪽 상단 모서리에서 올바른 리전을 선택합니다.
  2. 리스트에서 적절한 클러스터를 선택합니다.
  3. 서비스 탭에서 WAEntService가 포함된 서비스 이름을 선택합니다.
  4. 작업 탭을 선택합니다. 일반적으로 16진수 숫자로 만든 ID를 보유한 작업이 1개만 있습니다.
  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. WAEntWebService, WAEntMasterService, HostExporterService를 비롯한 다른 모든 서비스에 대해 c 단계를 반복합니다.
    5. 클러스터 페이지로 돌아가서 작업 탭에서 위의 서비스를 실행 중인 작업이 없는지 확인합니다.
  2. EC2 - 자동 스케일링 그룹 콘솔에서(예: Auto Scaling groups | 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 관리 콘솔(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 클라이언트의 기본 기능을 검증하기 위해 메시지를 주고받을 수도 있습니다. 자세한 내용은 메시지 문서를 참조하세요.