기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자습서: Amazon Virtual Private Cloud에서 Amazon SQS 대기열로 메시지 보내기
이 자습서에서는 메시지를 안전한 프라이빗 네트워크를 통해 Amazon SQS 대기열로 보내는 방법을 알아봅니다. 이 네트워크는 Amazon EC2 인스턴스를 포함하는 VPC로 구성됩니다. 인스턴스는 인터페이스 VPC 엔드포인트를 통해 Amazon SQS에 연결되므로 네트워크가 퍼블릭 인터넷에서 연결이 끊긴 경우에도 Amazon EC2 인스턴스에 연결하고 Amazon SQS 대기열에 메시지를 보낼 수 있습니다. 자세한 정보는 Amazon용 Amazon Virtual Private Cloud 엔드포인트 SQS을 참조하세요.
중요
-
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 인스턴스에 연결할 수 있게 해줍니다. 키 페어는 로그인 정보를 암호화하는 퍼블릭 키와 로그인 정보 암호를 해독하는 프라이빗 키로 구성됩니다.
-
Amazon EC2 콘솔
에 로그인합니다. -
탐색 창의 네트워크 및 보안에서 키 페어를 선택합니다.
-
키 페어 생성(Create Key Pair)을 선택합니다.
-
키 페어 생성 대화 상자에서 키 페어 이름에
SQS-VPCE-Tutorial-Key-Pair
를 입력한 후 생성을 선택합니다. -
브라우저가 프라이빗 키 파일
SQS-VPCE-Tutorial-Key-Pair.pem
을 자동으로 다운로드합니다.중요
이 파일을 안전한 위치에 저장합니다. EC2는 동일한 키 페어에 대해
.pem
파일을 두 번 생성하지 않습니다. -
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 대기열
-
에서 이름이 지정된 템플릿을 다운로드하십시오. AWS CloudFormation
SQS-VPCE-Tutorial-CloudFormation.yaml
GitHub -
AWS CloudFormation 콘솔
에 로그인합니다. -
스택 생성을 선택합니다.
-
템플릿 선택 페이지에서 Amazon S3에 템플릿 업로드를 선택하고
SQS-VPCE-SQS-Tutorial-CloudFormation.yaml
파일을 선택한 후 다음을 선택합니다. -
세부 정보 지정 페이지에서 다음 작업을 수행합니다.
-
스택 이름에
SQS-VPCE-Tutorial-Stack
을 입력합니다. -
또는 KeyNameSQS-VPC-튜토리얼-키 페어를 선택하십시오.
-
다음을 선택합니다.
-
-
옵션 페이지에서 다음을 선택합니다.
-
검토 페이지의 기능 섹션에서 사용자 지정 이름으로 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에 메시지를 게시해 보아야 합니다.
-
Amazon EC2 콘솔
에 로그인합니다. -
탐색 메뉴의 인스턴스에서 인스턴스를 선택합니다.
-
SQS-VPCE-를 선택합니다. Tutorial-EC2Instance
-
퍼블릭 DNS(IPv4)에서 호스트 이름을 복사합니다(예: ec2-203-0-113-0.us-west-2.compute.amazonaws.com).
-
앞서 생성한 키 페어를 포함하는 디렉터리에서, 다음과 같은 명령을 사용하여 인스턴스에 연결합니다.
ssh -i SQS-VPCE-Tutorial-Key-Pair.pem ec2-user@
ec2-203-0-113-0.us-east-2.compute.amazonaws.com
-
임의의 퍼블릭 엔드포인트에 연결해 봅니다. 예:
ping amazon.com
예상대로 연결 시도가 실패합니다.
-
Amazon SQS 콘솔
에 로그인합니다. -
대기열 목록에서 AWS CloudFormation 템플릿으로 생성한 대기열을 선택합니다 (예: VPCE-SQS-Tutorial-stack-CFQueue-1ABCDEFGH2ijk).
-
세부 정보 테이블에서 URL을 복사합니다(예: https://sqs.us-east-2.amazonaws.com/123456789012/).
-
EC2 인스턴스에서 다음과 같은 명령을 사용하여 대기열에 메시지를 게시해 봅니다.
aws sqs send-message --region
us-east-2
--endpoint-urlhttps://sqs.us-east-2.amazonaws.com/
--queue-urlhttps://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 서비스 및 엔드포인트에 액세스할 수 없습니다.
-
Amazon VPC 콘솔
에 로그인합니다. -
탐색 메뉴에서 엔드포인트를 선택합니다.
-
엔드포인트 생성을 선택합니다.
-
엔드포인트 생성 페이지의 서비스 이름에서 Amazon SQS의 서비스 이름을 선택합니다.
참고
서비스 이름은 현재 AWS 지역에 따라 달라집니다. 예를 들어, 미국 동부(오하이오)에서는 서비스 이름이 com.amazonaws.
us-east-2
.sqs입니다. -
VPC에서 SQS-VPCE-Tutorial-VPC를 선택합니다.
-
서브넷에서 서브넷 ID에 SQS-VPCE-Tutorial-Subnet이 포함된 서브넷을 선택합니다.
-
보안 그룹에서 Select security groups(보안 그룹 선택)를 선택한 다음 그룹 이름에 SQS VPCE Tutorial Security Group이 포함된 보안 그룹을 선택합니다.
-
Create endpoint(엔드포인트 생성)을 선택합니다.
인터페이스 VPC 엔드포인트가 생성되고 ID가 표시됩니다. 예: vpce-0ab1cdef2ghi3j456k.
-
닫기를 선택하세요.
Amazon VPC 콘솔에서 엔드포인트 페이지가 열립니다.
Amazon VPC가 엔드포인트를 생성하기 시작하고 대기 중 상태를 표시합니다. 이 과정이 완료되면 Amazon VPC에는 사용 가능 상태가 표시됩니다.
5단계: Amazon SQS 대기열에 메시지 전송
이제 VPC에 Amazon SQS용 엔드포인트가 포함되므로 EC2 인스턴스에 연결하여 대기열로 메시지를 보낼 수 있습니다.
-
EC2 인스턴스에 다시 연결합니다. 예:
ssh -i SQS-VPCE-Tutorial-Key-Pair.pem ec2-user@
ec2-203-0-113-0.us-east-2.compute.amazonaws.com
-
다음과 같은 명령을 사용하여 다시 대기열에 메시지를 게시해 봅니다.
aws sqs send-message --region
us-east-2
--endpoint-urlhttps://sqs.us-east-2.amazonaws.com/
--queue-urlhttps://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에서 메시지 수신 및 삭제
리소스 삭제에 대한 자세한 내용은 다음을 참조하십시오.
-
Amazon VPC 사용 설명서의 VPC 엔드포인트 삭제
-
Amazon EC2 사용 설명서에서 인스턴스 종료
-
Amazon VPC 사용 설명서의 VPC 삭제
-
AWS CloudFormation 사용 설명서의 AWS CloudFormation 콘솔에서 스택 삭제
-
Amazon EC2 사용 설명서에서 키 페어 삭제