WiseN

Blog thumbnail

다루는 내용


· AWS Elastic Beanstalk으로 어플리케이션 배포하기
· 부가적인 환경 설정하기
· 어플리케이션 실행 확인하기
· 어플리케이션 수정/배포 하기


 

 

실습






준비







원활한 실습을 위해 사전에 준비해야 할 것들이 있다.

1. 어플리케이션 준비. 배포에 사용될 어플리케이션이 있어야한다.

· https://s3-us-west-2.amazonaws.com/us-west-2-aws-training/intro-to-beanstalk/static/eb-py-flask-signup-v1.1.0.zip


2. Key pair가 있어야한다.

· EC2에서 새로 만들거나 EC2 실습에서 만든 key pair를 사용할 수 있다.


 

 




어플리케이션 배포






 

1. 콘솔에서 Elastic Beanstalk 클릭
2. 화면 우측 상단에서 리전 변경 (예. Tokyo)

· 리전별 가능한 서비스는 아래에서 확인 가능
· http://aws.amazon.com/ko/about-aws/global-infrastructure/regional-product-services/


3. Application Information

· Application name : myapplication
· Description : My Application
· Next 클릭


4. Environment Type

· Environment tier : Web Server
· Predefined configuration : Python
· Environment type : Single instance
· Next 클릭


5. Application Version

· Source : Upload your own
· 파일선택 클릭 후 앞에서 다운받은 어플리케이션 선택


 



 

6. Environment Information

· Check availability를 클릭하면 사용중인 URL이라고 나오므로 다른 이름으로 변경


 



 

· Next 클릭


7. Additional Resources

· Next 클릭


8. Configguration Details

· EC2 Key Pair : ec2lab (만들어 놓은 key pair를 선택할 수 있다)
· Next 클릭


 



 

9. Environment Tags

· Next 클릭


10. Review

· Launch 클릭
· 프로세스가 완료되는데 약 10분 정도 소요된다.


 

 




IAM 룰에 커스텀 정책 추가하기







예제 어플리케이션에서 방문자가 회원가입을 할 경우 DynamoDB에 기록하고, SNS 큐를 Publish하게 되므로 Elastic Beanstalk이 DynamoDB와 SNS에 대한 권한을 갖도록 룰 정책을 수정해 주어야한다.

1. 콘솔에서 Identity & Access Management (IAM) 클릭
2. 왼쪽 메뉴 Details 아래의 Roles 클릭
3. aws-elasticbeanstalk-ec2-role 클릭
4. Permissions 섹션에서 Attach Role Policy 클릭

 



 

5. Set Permissions 섹션에서 Custom Policy 선택 후 Select 클릭
6. Policy Name : SignupAppPolicy
7. Policy Document : (아래 이미지 참고)

 



 

8. Apply Policy 클릭

 

 




어플리케이션 실행 확인






 

1. 콘솔에서 Elastic Beanstalk 클릭
2. 생성한 어플리케이션(Application)의 환경(Environment)명 클릭

· Application 명 : myapplication
· Environment 명 : myapplication-env-arang


3. 화면 상단의 URL을 클릭하여 어플리케이션 실행 확인
4. 실행 화면 (http://myapplication-env-arang.elasticbeanstalk.com/)

 



 

 




어플리케이션 수정 및 배포






 

1. 다운로드 받은 예제 어플리케이션의 압축을 풀어 보면 templates 디렉토리에 index.html 파일이 있다.
2. 파일을 열어서 내용을 수정한다.

· “A New Startup”  à  “A New Startup – ARANG”


3. 상위 디렉토리의 파일명(버전)을 수정한 후 압축 (예. eb-py-flask-signup-v1.1.1.zip)
4. 콘솔에서 Elastic Beanstalk 클릭
5. Dashboard  à  Overview  à  Running Version 부분에서 Upload and Deploy 클릭
6. 파일선택 클릭 후 압축한 파일 선택
7. Deploy 클릭

 



 

배포 URL에 확인해보면 로고 부분의 텍스트가 수정되었다.

 

 




이해를 돕기위한 설명






 

지금까지의 실습을 따라하면 AWS에서 EC2 인스턴스와 DynamoDB 테이블 그리고 SNS 토픽이 자동으로 생성된다. 알아두어야 할 것은 EC2 인스턴스는 앞에서 설정한 Elastic Beanstalk 설정에 의해 생성되지만, DynamoDB와 SNS는 예제 어플리케이션에서 생성한 것이다. 실습에서는 단지 EC2에서 DynamoDB와 SNS를 컨틀로할 수 있는 제한적인 권한만을 줬을 뿐이다.
추가적으로 EC 인스턴스에 접속해서 웹서버의 설정파일을 보면 혼란스러울 수 있다. Elastic Beanstalk은 Python을 사용하는 웹서버는 WSGI를 사용하므로 참고하자.

 



 

어플리케이션명(myapplication) 클릭  à  Application Versions 에서 버전 관리가 되므로 롤백/배포를 쉽게 할 수 있다.

 



 

 




참고