본문 바로가기

Cloud AWS

Amazon AWS :: Elastic Beanstalk 소개

 



 

 


Amazon AWS :: Elastic Beanstalk 소개


본자료는 저자의 허락하에 공유되는 자료입니다.

국내 전문 CDN 사업자인 GS네오텍은 2015년에 Amazon Web Service의 AWS Premier Consulting 파트너로서 WiseN 이라는 서비스 브랜드로 클라우드 사업을 함께 하고 있습니다. 


AWS Elastic Beanstalk 소개

다루는 내용

  • 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 에서 버전 관리가 되므로 롤백/배포를 쉽게 할 수 있다.


 

참고

arang

Sr. Technical Trainer at GSNeotek



  Reference : GS네오텍 WiseN 서비스



www.SalesMore.co.kr