기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
EB CLI를 사용하여 Elastic Beanstalk 환경 관리
EB CLI를 설치하고 프로젝트 디렉터리를 구성하면 EB CLI를 사용하여 Elastic Beanstalk 환경을 생성하고, 소스 및 구성 업데이트를 배포하고, 로그와 이벤트를 가져올 준비가 됩니다.
참고
EB CLI로 환경을 생성하려면 서비스 역할이 필요합니다. Elastic Beanstalk 콘솔에서 환경을 생성하여 서비스 역할을 생성할 수 있습니다. 서비스 역할이 없는 경우 사용자가 eb create
를 실행할 때 EB CLI가 역할 생성을 시도합니다.
EB CLI는 성공한 모든 명령에 대해 종료 코드 0
을 반환하고, 오류가 발생한 경우 0이 아닌 종료 코드를 반환합니다.
다음 예제에서는 샘플 Docker 애플리케이션에서 사용하도록 EB CLI를 사용하여 초기화된 eb
라는 이름의 빈 프로젝트 폴더를 사용합니다.
Eb create
첫 번째 환경을 생성하려면 eb create를 실행하고 프롬프트를 따릅니다. 프로젝트 디렉터리 안에 소스 코드가 있는 경우 EB CLI는 이를 번들링한 후 환경에 배포합니다. 그렇지 않은 경우 샘플 애플리케이션이 사용됩니다.
~/eb$ eb create
Enter Environment Name
(default is eb-dev): eb-dev
Enter DNS CNAME prefix
(default is eb-dev): eb-dev
WARNING: The current directory does not contain any source code. Elastic Beanstalk is launching the sample application instead.
Environment details for: elasticBeanstalkExa-env
Application name: elastic-beanstalk-example
Region: us-west-2
Deployed Version: Sample Application
Environment ID: e-j3pmc8tscn
Platform: 64bit Amazon Linux 2015.03 v1.4.3 running Docker 1.6.2
Tier: WebServer-Standard
CNAME: eb-dev.elasticbeanstalk.com
Updated: 2015-06-27 01:02:24.813000+00:00
Printing Status:
INFO: createEnvironment is starting.
-- Events -- (safe to Ctrl+C) Use "eb abort" to cancel the command.
환경이 준비되는 데 몇 분 정도 걸릴 수 있습니다. 환경이 생성되는 동안 명령줄로 돌아가려면 Ctrl+C를 누릅니다.
Eb status
eb status를 실행하여 환경의 현재 상태를 확인합니다. 상태가 ready
이면 elasticbeanstalk.com에서 샘플 애플리케이션을 사용할 수 있고 환경을 업데이트할 준비가 됩니다.
~/eb$ eb status
Environment details for: elasticBeanstalkExa-env
Application name: elastic-beanstalk-example
Region: us-west-2
Deployed Version: Sample Application
Environment ID: e-gbzqc3jcra
Platform: 64bit Amazon Linux 2015.03 v1.4.3 running Docker 1.6.2
Tier: WebServer-Standard
CNAME: elasticbeanstalkexa-env.elasticbeanstalk.com
Updated: 2015-06-30 01:47:45.589000+00:00
Status: Ready
Health: Green
Eb health
eb health 명령을 사용하여 환경 전반의 상태와 환경의 인스턴스에 대한 상태 정보를 봅니다. --refresh
옵션을 사용하여 10초마다 업데이트되는 대화형 보기에서 상태를 봅니다.
~/eb$ eb health
api Ok 2016-09-15 18:39:04
WebServer Java 8
total ok warning degraded severe info pending unknown
3 3 0 0 0 0 0 0
instance-id status cause health
Overall Ok
i-0ef05ec54918bf567 Ok
i-001880c1187493460 Ok
i-04703409d90d7c353 Ok
instance-id r/sec %2xx %3xx %4xx %5xx p99 p90 p75 p50 p10
Overall 8.6 100.0 0.0 0.0 0.0 0.083* 0.065 0.053 0.040 0.019
i-0ef05ec54918bf567 2.9 29 0 0 0 0.069* 0.066 0.057 0.050 0.023
i-001880c1187493460 2.9 29 0 0 0 0.087* 0.069 0.056 0.050 0.034
i-04703409d90d7c353 2.8 28 0 0 0 0.051* 0.027 0.024 0.021 0.015
instance-id type az running load 1 load 5 user% nice% system% idle% iowait%
i-0ef05ec54918bf567 t2.micro 1c 23 mins 0.19 0.05 3.0 0.0 0.3 96.7 0.0
i-001880c1187493460 t2.micro 1a 23 mins 0.0 0.0 3.2 0.0 0.3 96.5 0.0
i-04703409d90d7c353 t2.micro 1b 1 day 0.0 0.0 3.6 0.0 0.2 96.2 0.0
instance-id status id version ago deployments
i-0ef05ec54918bf567 Deployed 28 app-bc1b-160915_181041 20 mins
i-001880c1187493460 Deployed 28 app-bc1b-160915_181041 20 mins
i-04703409d90d7c353 Deployed 28 app-bc1b-160915_181041 27 mins
Eb events
eb events를 사용하여 Elastic Beanstalk의 이벤트 출력 목록을 확인합니다.
~/eb$ eb events
2015-06-29 23:21:09 INFO createEnvironment is starting.
2015-06-29 23:21:10 INFO Using elasticbeanstalk-us-east-2-EXAMPLE as Amazon S3 storage bucket for environment data.
2015-06-29 23:21:23 INFO Created load balancer named: awseb-e-g-AWSEBLoa-EXAMPLE
2015-06-29 23:21:42 INFO Created security group named: awseb-e-gbzqc3jcra-stack-AWSEBSecurityGroup-EXAMPLE
...
Eb logs
eb logs를 사용하여 환경의 인스턴스에서 로그를 가져옵니다. 기본적으로 eb logs는 시작된 첫 번째 인스턴스에서 로그를 가져와 이를 표준 출력으로 표시합니다. --instance 옵션으로 인스턴스 ID를 지정하여 특정 인스턴스에서 로그를 가져올 수 있습니다.
--all 옵션은 모든 인스턴스에서 로그를 가져와 이를 .elasticbeanstalk/logs
아래의 하위 디렉터리에 저장합니다.
~/eb$ eb logs --all
Retrieving logs...
Logs were saved to /home/local/ANT/mwunderl/ebcli/environments/test/.elasticbeanstalk/logs/150630_201410
Updated symlink at /home/local/ANT/mwunderl/ebcli/environments/test/.elasticbeanstalk/logs/latest
Eb open
브라우저에서 환경의 웹 사이트를 열려면 eb open을 사용합니다.
~/eb$ eb open
윈도우 모드 환경에서 기본 브라우저는 새 창에서 열립니다. 터미널 환경에서는 명령줄 브라우저(예: w3m)가 사용됩니다(사용 가능한 경우).
Eb deploy
환경을 시작할 준비가 되면 eb deploy를 사용하여 이를 업데이트할 수 있습니다.
이 명령은 소스 코드를 번들링한 후 배포할 때 더 잘 작동하므로 이 예제에서는 프로젝트 디렉터리에 다음 콘텐츠가 포함된 Dockerfile
을 만들었습니다.
~/eb/Dockerfile
FROM ubuntu:12.04
RUN apt-get update
RUN apt-get install -y nginx zip curl
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
RUN curl -o /usr/share/nginx/www/master.zip -L https://codeload.github.com/gabrielecirulli/2048/zip/master
RUN cd /usr/share/nginx/www/ && unzip master.zip && mv 2048-master/* . && rm -rf 2048-master master.zip
EXPOSE 80
CMD ["/usr/sbin/nginx", "-c", "/etc/nginx/nginx.conf"]
이 Dockerfile
은 Ubuntu 12.04의 이미지를 배포하고 게임 2048
을 설치합니다. eb deploy를 실행하여 애플리케이션을 환경에 업로드합니다.
~/eb$ eb deploy
Creating application version archive "app-150630_014338".
Uploading elastic-beanstalk-example/app-150630_014338.zip to S3. This may take a while.
Upload Complete.
INFO: Environment update is starting.
-- Events -- (safe to Ctrl+C) Use "eb abort" to cancel the command.
eb deploy를 실행하면 EB CLI가 프로젝트 디렉터리의 콘텐츠를 번들링한 후 이를 환경에 배포합니다.
참고
프로젝트 폴더의 git 리포지토리를 초기화한 경우, 대기 중인 변경 사항이 있더라도 EB CLI가 항상 최신 커밋을 배포합니다. eb deploy를 실행하기 전에 변경 사항을 커밋하여 이를 환경에 배포합니다.
Eb config
eb config 명령을 사용하여 실행 중인 환경에 사용 가능한 구성 옵션을 봅니다.
~/eb$ eb config
ApplicationName: elastic-beanstalk-example
DateUpdated: 2015-06-30 02:12:03+00:00
EnvironmentName: elasticBeanstalkExa-env
SolutionStackName: 64bit Amazon Linux 2015.03 v1.4.3 running Docker 1.6.2
settings:
AWSEBAutoScalingScaleDownPolicy.aws:autoscaling:trigger:
LowerBreachScaleIncrement: '-1'
AWSEBAutoScalingScaleUpPolicy.aws:autoscaling:trigger:
UpperBreachScaleIncrement: '1'
AWSEBCloudwatchAlarmHigh.aws:autoscaling:trigger:
UpperThreshold: '6000000'
...
이 명령은 텍스트 편집기에서 사용 가능한 구성 옵션 목록을 채웁니다. 표시되는 옵션 중 대부분이 null
값을 가지며, 이러한 옵션은 기본적으로 설정되어 있지 않으나 환경의 리소스를 업데이트하도록 수정할 수 있습니다. 이러한 옵션에 대한 자세한 내용은 구성 옵션 단원을 참조하십시오.
Eb terminate
환경 사용을 마치면 eb terminate를 사용하여 환경을 종료합니다.
~/eb$ eb terminate
The environment "eb-dev" and all associated instances will be terminated.
To confirm, type the environment name: eb-dev
INFO: terminateEnvironment is starting.
INFO: Deleted CloudWatch alarm named: awseb-e-jc8t3pmscn-stack-AWSEBCloudwatchAlarmHigh-1XLMU7DNCBV6Y
INFO: Deleted CloudWatch alarm named: awseb-e-jc8t3pmscn-stack-AWSEBCloudwatchAlarmLow-8IVI04W2SCXS
INFO: Deleted Auto Scaling group policy named: arn:aws:autoscaling:us-east-2:123456789012:scalingPolicy:1753d43e-ae87-4df6-a405-11d31f4c8f97:autoScalingGroupName/awseb-e-jc8t3pmscn-stack-AWSEBAutoScalingGroup-90TTS2ZL4MXV:policyName/awseb-e-jc8t3pmscn-stack-AWSEBAutoScalingScaleUpPolicy-A070H1BMUQAJ
INFO: Deleted Auto Scaling group policy named: arn:aws:autoscaling:us-east-2:123456789012:scalingPolicy:1fd24ea4-3d6f-4373-affc-4912012092ba:autoScalingGroupName/awseb-e-jc8t3pmscn-stack-AWSEBAutoScalingGroup-90TTS2ZL4MXV:policyName/awseb-e-jc8t3pmscn-stack-AWSEBAutoScalingScaleDownPolicy-LSWFUMZ46H1V
INFO: Waiting for EC2 instances to terminate. This may take a few minutes.
-- Events -- (safe to Ctrl+C)
사용 가능한 EB CLI 명령의 전체 목록은 EB CLI 명령 참조 단원을 확인하십시오.
중요
환경을 종료하는 경우 생성한 CNAME 매핑도 모두 삭제해야 합니다. 그래야 다른 고객이 사용 가능한 호스트 이름을 재사용할 수 있습니다. 매달린 DNS를 방지하려면 종료된 환경을 나타내는 DNS 레코드를 삭제해야 합니다. 매달린 DNS 항목이 있는 경우 도메인으로 향하는 인터넷 트래픽이 보안 취약성에 노출될 수 있습니다. 다른 위험도 초래할 수 있습니다.
자세한 내용은 Amazon Route 53 개발자 안내서의 Route 53에서 누락된 위임 레코드 보호를 참조하세요. AWS보안 블로그의 Amazon CloudFront 요청을 위한 강화된 도메인 보호