AWS Elastic Beanstalk

Elastic Beanstalk로 배포하기

  • 배포하기에 앞서 S3와 RDS는 자동으로 만들어지지 않기 때문에 설정을 완료한 후 진행해야 한다.
  • 먼저 Elastic Beanstalk API 키를 설정해야 한다.

    1. Amazon AWS에서 서비스 탭에 IAM으로 이동한다.
    2. 사용자 메뉴로 이동하여 사용자 추가를 클릭한다.
    3. 사용자 이름을 입력하고 액세스 유형은 [프로그래밍 방식 액세스]를 선택한다.
    4. 권한 설정으로 넘어가면 새로운 그룹을 생성하기 위해 그룹 생성을 클릭한다.
    5. 그룹 이름을 입력하고 정책 필터에서 [AWSElasticBeanstalkFullAccess]에 체크한다.
    6. 그룹을 생성하였다면 태그로 넘어간다.
    7. 태그는 선택 사항이므로 검토로 넘어가도록 한다.
    8. 검토하였다면 사용자 만들기를 클릭한다.
    9. 생성에 성공하였다면 csv 파일을 다운로드를 해두도록 한다.
  • Elastic Beanstalk로 배포한다.

    1. 배포할 프로젝트에서 의존성 리스트를 만든다.

      1
      $ pip freeze > requirements.txt
    2. .ebextensions 폴더를 만든다.

      1
      $ mkdir .ebextensions
    3. .ebextensions 폴더에 django.config 파일을 만들고 내용을 입력한다.

      1
      2
      3
      4
      5
      .ebextensions/django.config 내용

      option_setting:
      aws:elasticbeanstalk:container:python:
      WSGIPath: config/wsgi.py
    4. settings.py에서 배포 관련 설정을 진행한다.

      1
      2
      DEBUG = False
      ALLOWED_HOSTS = ['*']
    5. .gitignore 파일을 생성하고 작성한다.

      1
      2
      3
      4
      5
      *.pyc
      *~
      /venv
      __pycache__
      db.sqlite3
    6. git을 초기화하고 commit까지 진행한다.

      1
      2
      3
      4
      5
      $ git init

      $ git add -A .

      $ git commit -m "Elstic Beanstalk first commit"
    7. EB CLI를 설치한다.

      1
      $ pip install awsebcli
    8. eb init 명령을 실행한다.

      1
      2
      3
      4
      5
      6
      7
      $ eb init

      # 사용하는 리전 선택: 10) ap-northeast-2 : Asia Pacific (Seoul)
      # IAM에서 만든 액세스 키와 보안 키를 입력
      # 새 애플리케이션을 생성하고 이름 지정
      # 언어 및 버전 선택 : Python 3.6
      # SSH 키 페어 선택
    9. eb create 명령을 실행하여 로드 밸런서르 설정한다.

      1
      2
      3
      $ eb create

      # load balancer의 type은 application 선택
    10. 생성이 완료되면 eb open 명령을 실행하여 사이트를 확인할 수 있다.

      1
      $ eb open
    11. Amazon AWS에 들어가면 인스턴스 및 로드밸런서가 생성되있는 것을 확인할 수 있다.

      • RDS 보안 그룹의 인바운드 규칙에 EC2 보안 그룹의 그룹 아이디를 추가하도록 하자.
    12. 코드 변경이 생긴다면 git commit까지 진행하고 eb deploy를 실행하여 업데이트하면 된다.

      1
      2
      3
      4
      5
      $ git add [변경한 파일]

      $ git commit -m [commit message]

      $ eb deploy
Share