자습서: Amazon Virtual Private Cloud에서 Amazon SQS 대기열로 메시지 보내기 - Amazon Simple Queue Service

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

자습서: Amazon Virtual Private Cloud에서 Amazon SQS 대기열로 메시지 보내기

이 자습서에서는 메시지를 안전한 프라이빗 네트워크를 통해 Amazon SQS 대기열로 보내는 방법을 알아봅니다. 이 네트워크는 Amazon EC2 인스턴스를 포함하는 VPC로 구성됩니다. 인스턴스는 인터페이스 VPC 엔드포인트를 통해 Amazon SQS에 연결되므로 네트워크가 퍼블릭 인터넷에서 연결이 끊긴 경우에도 Amazon EC2 인스턴스에 연결하고 Amazon SQS 대기열에 메시지를 보낼 수 있습니다. 자세한 정보는 Amazon SQS용 Amazon Virtual Private Cloud 엔드포인트을 참조하세요.

중요
  • Amazon Virtual Private Cloud는 HTTPS Amazon SQS 엔드포인트에서만 사용할 수 있습니다.

  • Amazon VPC에서 메시지를 보내도록 Amazon SQS를 구성할 때는 프라이빗 DNS를 활성화하고 엔드포인트를 sqs.us-east-2.amazonaws.com 형식으로 지정해야 합니다.

  • 프라이빗 DNS는 queue.amazonaws.com 또는 us-east-2.queue.amazonaws.com 같은 레거시 엔드포인트를 지원하지 않습니다.

1단계: Amazon EC2 키 페어 생성

키 페어는 Amazon EC2 인스턴스에 연결할 수 있게 해줍니다. 키 페어는 로그인 정보를 암호화하는 퍼블릭 키와 로그인 정보 암호를 해독하는 프라이빗 키로 구성됩니다.

  1. Amazon EC2 콘솔에 로그인합니다.

  2. 탐색 창의 네트워크 및 보안에서 키 페어를 선택합니다.

  3. 키 페어 생성(Create Key Pair)을 선택합니다.

  4. 키 페어 생성 대화 상자에서 키 페어 이름SQS-VPCE-Tutorial-Key-Pair를 입력한 후 생성을 선택합니다.

  5. 브라우저가 프라이빗 키 파일 SQS-VPCE-Tutorial-Key-Pair.pem을 자동으로 다운로드합니다.

    중요

    이 파일을 안전한 위치에 저장합니다. EC2는 동일한 키 페어에 대해 .pem 파일을 두 번 생성하지 않습니다.

  6. SSH 클라이언트가 EC2 인스턴스에 연결하도록 허용하려면 최종 사용자만 읽기 권한을 가질 수 있도록 프라이빗 키 파일에 대한 권한을 설정합니다. 예:

    chmod 400 SQS-VPCE-Tutorial-Key-Pair.pem

2단계: 리소스 생성 AWS

필요한 인프라를 설정하려면 Amazon EC2 인스턴스 및 Amazon SQS 대기열과 같은 AWS 리소스로 구성된 스택을 생성하기 위한 청사진인 AWS CloudFormation 템플릿을 사용해야 합니다.

이 자습서에서 사용할 스택으로 다음과 같은 리소스가 있습니다.

  • VPC 및 이에 연결된 네트워킹 리소스(예: 서브넷, 보안 그룹, 인터넷 게이트웨이, 라우팅 테이블)

  • VPC 서브넷으로 시작된 Amazon EC2 인스턴스

  • Amazon SQS 대기열

  1. 에서 이름이 지정된 템플릿을 다운로드하십시오. AWS CloudFormation SQS-VPCE-Tutorial-CloudFormation.yamlGitHub

  2. AWS CloudFormation 콘솔에 로그인합니다.

  3. 스택 생성을 선택합니다.

  4. 템플릿 선택 페이지에서 Amazon S3에 템플릿 업로드를 선택하고 SQS-VPCE-SQS-Tutorial-CloudFormation.yaml 파일을 선택한 후 다음을 선택합니다.

  5. 세부 정보 지정 페이지에서 다음 작업을 수행합니다.

    1. 스택 이름SQS-VPCE-Tutorial-Stack을 입력합니다.

    2. 또는 KeyNameSQS-VPC-튜토리얼-키 페어를 선택하십시오.

    3. 다음을 선택합니다.

  6. 옵션 페이지에서 다음을 선택합니다.

  7. 검토 페이지의 기능 섹션에서 사용자 지정 이름으로 IAM 리소스를 생성할 수 있다고 인정함을 선택합니다. AWS CloudFormation 그런 다음 [Create] 를 선택합니다.

AWS CloudFormation 스택 생성을 시작하고 CREATE_IN_PROGRESS 상태를 표시합니다. 이 과정이 완료되면 AWS CloudFormation 에는 CREATE_COMPLETE 상태가 표시됩니다.

3단계: EC2 인스턴스에 공개적으로 액세스할 수 없는지 확인

AWS CloudFormation 템플릿은 VPC에 이름이 지정된 SQS-VPCE-Tutorial-EC2-Instance EC2 인스턴스를 시작합니다. 이 EC2 인스턴스는 아웃바운드 트래픽을 허용하지 않으며 Amazon SQS로 메시지를 전송할 수 없습니다. 이를 확인하려면, 인스턴스에 연결하고 퍼블릭 엔드포인트에 연결을 시도한 후 Amazon SQS에 메시지를 게시해 보아야 합니다.

  1. Amazon EC2 콘솔에 로그인합니다.

  2. 탐색 메뉴의 인스턴스에서 인스턴스를 선택합니다.

  3. SQS-VPCE-를 선택합니다. Tutorial-EC2Instance

  4. 퍼블릭 DNS(IPv4)에서 호스트 이름을 복사합니다(예: ec2-203-0-113-0.us-west-2.compute.amazonaws.com).

  5. 앞서 생성한 키 페어를 포함하는 디렉터리에서, 다음과 같은 명령을 사용하여 인스턴스에 연결합니다.

    ssh -i SQS-VPCE-Tutorial-Key-Pair.pem ec2-user@ec2-203-0-113-0.us-east-2.compute.amazonaws.com
  6. 임의의 퍼블릭 엔드포인트에 연결해 봅니다. 예:

    ping amazon.com

    예상대로 연결 시도가 실패합니다.

  7. Amazon SQS 콘솔에 로그인합니다.

  8. 대기열 목록에서 AWS CloudFormation 템플릿으로 생성한 대기열을 선택합니다 (예: VPCE-SQS-Tutorial-stack-CFQueue-1ABCDEFGH2ijk).

  9. 세부 정보 테이블에서 URL을 복사합니다(예: https://sqs.us-east-2.amazonaws.com/123456789012/).

  10. EC2 인스턴스에서 다음과 같은 명령을 사용하여 대기열에 메시지를 게시해 봅니다.

    aws sqs send-message --region us-east-2 --endpoint-url https://sqs.us-east-2.amazonaws.com/ --queue-url https://sqs.us-east-2.amazonaws.com/123456789012/ --message-body "Hello from Amazon SQS."

    예상대로 전송 시도가 실패합니다.

    중요

    나중에 Amazon SQS용 VPC 엔드포인트를 생성하면 전송 시도가 성공할 것입니다.

4단계: Amazon SQS용 Amazon VPC 엔드포인트 생성

VPC를 Amazon SQS에 연결하려면 인터페이스 VPC 엔드포인트를 정의해야 합니다. 엔드포인트를 추가한 후에는 VPC의 EC2 인스턴스에서 Amazon SQS API를 사용할 수 있습니다. 이렇게 하면 공용 인터넷을 거치지 않고도 AWS 네트워크 내 대기열로 메시지를 보낼 수 있습니다.

참고

EC2 인스턴스는 여전히 인터넷상의 다른 AWS 서비스 및 엔드포인트에 액세스할 수 없습니다.

  1. Amazon VPC 콘솔에 로그인합니다.

  2. 탐색 메뉴에서 엔드포인트를 선택합니다.

  3. 엔드포인트 생성을 선택합니다.

  4. 엔드포인트 생성 페이지의 서비스 이름에서 Amazon SQS의 서비스 이름을 선택합니다.

    참고

    서비스 이름은 현재 AWS 지역에 따라 달라집니다. 예를 들어, 미국 동부(오하이오)에서는 서비스 이름이 com.amazonaws.us-east-2.sqs입니다.

  5. VPC에서 SQS-VPCE-Tutorial-VPC를 선택합니다.

  6. 서브넷에서 서브넷 IDSQS-VPCE-Tutorial-Subnet이 포함된 서브넷을 선택합니다.

  7. 보안 그룹에서 Select security groups(보안 그룹 선택)를 선택한 다음 그룹 이름SQS VPCE Tutorial Security Group이 포함된 보안 그룹을 선택합니다.

  8. Create endpoint(엔드포인트 생성)을 선택합니다.

    인터페이스 VPC 엔드포인트가 생성되고 ID가 표시됩니다. 예: vpce-0ab1cdef2ghi3j456k.

  9. 닫기를 선택하세요.

    Amazon VPC 콘솔에서 엔드포인트 페이지가 열립니다.

Amazon VPC가 엔드포인트를 생성하기 시작하고 대기 중 상태를 표시합니다. 이 과정이 완료되면 Amazon VPC에는 사용 가능 상태가 표시됩니다.

5단계: Amazon SQS 대기열에 메시지 전송

이제 VPC에 Amazon SQS용 엔드포인트가 포함되므로 EC2 인스턴스에 연결하여 대기열로 메시지를 보낼 수 있습니다.

  1. EC2 인스턴스에 다시 연결합니다. 예:

    ssh -i SQS-VPCE-Tutorial-Key-Pair.pem ec2-user@ec2-203-0-113-0.us-east-2.compute.amazonaws.com
  2. 다음과 같은 명령을 사용하여 다시 대기열에 메시지를 게시해 봅니다.

    aws sqs send-message --region us-east-2 --endpoint-url https://sqs.us-east-2.amazonaws.com/ --queue-url https://sqs.us-east-2.amazonaws.com/123456789012/ --message-body "Hello from Amazon SQS."

    전송 시도가 성공하고 메시지 본문의 MD5 다이제스트와 메시지 ID가 표시됩니다. 예:

    { "MD5OfMessageBody": "a1bcd2ef3g45hi678j90klmn12p34qr5", "MessageId": "12345a67-8901-2345-bc67-d890123e45fg" }

AWS CloudFormation 템플릿으로 생성된 대기열에서 메시지를 수신하고 삭제하는 방법에 대한 자세한 내용은 (예: VPCE-SQS-Tutorial-Stack-CFQueue-1ABCDFGH2ijk) 을 참조하십시오. Amazon SQS에서 메시지 수신 및 삭제

리소스 삭제에 대한 자세한 내용은 다음을 참조하십시오.