본문 바로가기
  • 클라우드야 나랑 친해지자!
클라우드/AWS

Beanstalk 기반 초대장 이메일 받기 서비스

by 정민규 2021. 2. 18.
반응형

수업을 듣고 배운 내용과 연습한 내용을 정리하였습니다

개인 공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.

 

잘못된 부분이 있거나 질문사항은 댓글로 남겨주시면 성심성의껏 답변해드리겠습니다. 감사합니다!


 

교재 <당신이 지금 알아야 할 AWS - 이영호, 한동수 지음>를 토대로 실습을 진행하였습니다.

 

 

 

* 실습 요약

1. 빈스톡 소스코드 업로드

2. 빈스톡 기반 웹 애플리케이션 확인

3. 빈스톡 서비스 실행 권한을 위한 IAM 정책 설정

  A. 정책 생성 및 검토(정책 이름 : policy_for_lambda_to_billing_email)

  B. 역할 생성(역할 이름 : Aws-elasticbeanstalk-ec2-role)

  C. 권한 연결

4. 빈스톡 기반 데이터 확인

5. DynamoDB 데이터 확인

6. SNS 구독 설정

7. 빈스톡 안전한 종료(선택)

 

 

 

 

 

 

1) AWS 콘솔 접속 및 빈스톡 소스코드 업로드

beanstalk 검색 > 시작하기(Create Application) > 이름, 플랫폼, 애플리케이션 코드, 소스 코드 오리진 설정

 

 

 

 

플랫폼 브런치의 경우 상위 버전으로 실행하였을 때 오류가 발생하여 하위 버전으로 설정하였습니다.

 

 

 

 

 

 

"소스 코드 오리진" 부분에 아래 소스코드 압축파일(Zip)을 그대로 업로드하고 애플리케이션을 생성합니다.

 

eb-node-express-sample-v1.1.zip
0.30MB

 

 

 

 

 

5-10분이 지나면 'Node.js'를 기반으로 구성된 웹 애플리케이션이 자동 생성됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3) 빈스톡 IAM 정책 설정

빈스톡 과정에서 생성된 애플리케이션은 DynamoDB와 SNS를 사용하기 때문에 IAM 역할을 수정하겠습니다.

 

IAM > 정책 > 정책 생성 > 서비스 : DynamoDB > 작업 : 모든 > 리소스 : 모든 리소스 > 권한 추가 > 서비스 : SNS > 작업 : 모든 > 리소스 : 모든 리소스 > 다음 > 태그(무시) > 다음 > 이름 : policy_for_beanstalk_mailing > 정책 생성

 

 

 

 

 

 

 

 

 

이제 생성된 정책을 빈스톡 역할에 연결하겠습니다.

 

역할 > aws-elasticbeanstalk-ec2-role 클릭

 

아래 역할 2개는 우리가 빈스톡을 사용하는 과정에서 사용됩니다. 두 역할의 차이점은 빈스톡 서비스가 접근할 수 있는 권한과 빈스톡에서 구성되는 EC2가 접근하는 권한이 나뉩니다.

 

 

 

 > 정책 연결 > policy_for_beanstalk_mailing 정책 연결

 

 

 

 

 

 

4) 빈스톡 데이터 확인

Beanstalk > 애플리케이션 클릭 > URL 클릭

 

 

 

 

아래와 같이 웹사이트가 뜨는 것을 확인할 수 있습니다.

 

 

 

 

 

"Sign up today"를 클릭하고 적절한 사용자 이름과 이메일을 입력한 후 "Sign up"을 클릭하면 아래와 같은 메시지가 출력되며 정상적으로 입력되었다는 내용을 확인할 수 있습니다.

 

 

 

 

 

 

 

5) DynamoDB 데이터 확인

DynamoDB와 SNS서비스로 이동하여 실제로 DynamoDB에 데이터가 입력되었는지 확인해보고, SNS 서비스와 전송받을 이메일 주소를 입력해보도록 하겠습니다.

 

DynamoDB > 테이블 클릭하면 아래와 같이 'awseb'로 시작하는 테이블을 확인할 수 있습니다.

 

 

 

 

 

 

테이블을 클릭하고 항목 탭을 보면 이전에 입력한 이메일 주소와 이름을 확인할 수 있습니다.

이제 SNS 서비스로 이동하여 이메일 주소로 데이터를 받아보도록 하겠습니다.

 

 

 

 

 

 

6) SNS 구독 설정

검색창에 SNS 검색 > 주제 > 'awseb-'로 시작하는 주제를 확인할 수 있습니다.

DynamoDB와 같이 빈스톡 생성 과정에서 함께 만들어진 SNS 주제입니다.

업로드한 빈스톡 애플리케이션은 사용자로부터 데이터를 받아 DynamoB에 저장한 후, 다시 SNS 주제로 데이터를 보냅니다.

 

 

이제 SNS 주제로 들어오는 데이터를 구독하는 구독자를 생성해보겠습니다.

 

주제 'awseb-' 의 ARN 주소 복사 > 구독 > 구독 생성 > 주제 ARN에 붙여넣기 > 프로토콜 : 이메일 > 엔트포인트 : 이메일주소 > 구독 생성

 

 

 

 

 

성공적으로 생성되면 구독 확인 이메일을 수신받을 수 있습니다.

 

 

 

 

 

 

수신받은 이메일의 "Confirm Subscription"을 클릭합니다. 정상적으로 구독이 등록되었습니다.

폼(Beanstalk의 URL 홈페이지)을 통해 새로운 데이터가 입력되면 관리자 이메일로도 내용이 전송됩니다.

 

 

 

 

 

이전과 비슷하게 이메일 주소와 이름을 입력합니다.

 

 

 

 

DynamoDB에 Teddy라는 이름의 새로운 이메일이 추가되었습니다.

 

 

 

 

 

 

새로운 이메일을 입력할 때마다 아래와 같이 이메일을 받게 됩니다.

 

 

 

 

 

 

 

7) 안전한 종료(선택)

빈스톡 애플리케이션을 사용하지 않는다면, 종료하는 것이 보안 관리 측면에서 좋습니다.

 

빈스톡 > 작업 > 작업 종료

 

 

 

 

 

반응형

댓글