[AWS] Elastic Beanstalk - Intro (awsebcli)

1 minute read

Elastic Beanstalk (EB)

IAM Account

Elastic Beanstalk 를 사용하기 위해서는
아래 두가지 권한이있는 IAM 계정이 필요하다.

  • AWSElasticBeanstalkFullAccess
    Provides full access to AWS Elastic Beanstalk and underlying services that it requires such as S3 and EC2.

  • ElasticLoadBalancingFullAccess
    Provides full access to Amazon ElasticLoadBalancing, and limited access to other services necessary to provide ElasticLoadBalancing features.

  • 단일 인스턴스로 Elastic Beanstalk 를 사용할 계획이면
    ElasticLoadBalancingFullAccess 권한은 필요하지 않다.
  • IAM 계정생성 관련해서는 [AWS] S3 - Using S3 With Boto3: IAM 을 참고


해당 권한이 있는 계정 생성 후

~/.aws/credentials 에 아래의 내용을 추가

[ProfileName]
aws_access_key_id = <YOUR_ACCESS_KEY>
aws_secret_access_key = <YOUR_SECRET_KEY>

<YOUR_ACCESS_KEY> : IAM 사용자 추가 5단계에서의 액세스 키 ID
<YOUR_SECRET_KEY> : IAM 사용자 추가 5단계에서의 비밀 액세스 키


~/.aws/config 에 아래의 내용을 추가

[default]
region = <YOUR_REGION>

<YOUR_REGION> : ap-northeast-2 == 아시아 태평양(서울)



awsebcli

Install

$ pip install awsebcli



Command

eb init

$ eb init
  • 해당 명령어를 실행하면 .elasticbeanstalk 디렉토리가 생성된다.

  • 명령어를 실행함에 따라 git 과 연동이 된다.
    eb create, eb deploy 명령어는 git 에서 commit 되어있는 파일을 기준으로 진행된다.
    이러한 특징에 따라 ignored 된 파일 중 secret data를 관리해주어야 한다.
    (배포시에는 추가, git commit 할 때는 ignore)

ignored 파일을 배포시마다 관리하기에는 번거로우므로 Shell Script 파일을 작성하여 자동화 할 수 있다.


Option
profile
$ eb init --profile <ProfileName>
  • ~/.aws/crednetials 의 계정을 사용가능

  • ProfileName~/.aws/crednetials[] 안에있는 이름이다.
    EB 를 사용할 권한이 있는 프로필이 들어가야만 한다.



eb create

$ eb create

새로운 환경을 만들고 해당 버전을 배포한다.


Option
  • --profile : 위에 설명된 profile 옵션과 동일

  • --single : 단일 인스턴스 사용



eb deploy

$ eb deploy

해당 디렉토리 환경으로 버전을 배포 (버전 업데이트시 사용)


Option
  • --profile : 위에 설명된 profile 옵션과 동일

  • --staged 옵션을 주어서 git commit 상태가 아닌,
    staging area 에 올라와있는 파일(git add 상태)도 인식되도록 한다.



eb open

$ eb open

배포된 웹 사이트의 public URL 을 기본 브라우저로 연다.



RDS Security Group

Elastic Beanstalk 로 배포를 진행하면 해당 인스턴스의 보안그룹이 자동으로 추가된다.

만약 배포한 서버가 AWS 의 특정 RDS 를 사용한다면
해당 RDS 의 보안그룹에 Elastic Beanstalk 가 접근가능하도록 설정해주어야 하는데,
보안그룹에 인바운드 규칙을 추가하면 된다.

유형 및 프로토콜은 내용에 맞게 설정하고, 소스 부분은 Elastic Beanstalk 의 그룹 ID 로 지정한다.
(자동완성 목록이 나타난다.)



Reference

Leave a comment