メニュー
AWS Elastic Beanstalk
開発者ガイド

EB CLI による Elastic Beanstalk 環境の管理

EB CLI をインストールし、プロジェクトディレクトリを構成したら、EB CLI を使用した Elastic Beanstalk 環境の作成、ソースのデプロイと設定の更新、ログとイベントのプルの準備が整います。

注記

EB CLI を使用して環境を作成するには、サービスロールが必要です。Elastic Beanstalk コンソール で環境を作成することで、サービスロールを作成できます。サービスロールがない場合は、eb create を実行すると EB CLI で作成されます。

EB CLI は、成功したすべてのコマンドに対して (0) 終了コードを返し、エラーが発生した場合はゼロ以外の終了コードを返します。

次の例では、サンプル Docker アプリケーションで使われる CLI で初期化された ebeb という名前の空プロジェクトフォルダーを使用します。

eb の作成

初期環境を作成するには、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 ステータス

現在の環境のステータスを見るには、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 コマンドを使用します。10 秒ごとに更新されるインタラクティブビューでヘルス情報を表示するには、--refresh オプションを使用します。

~/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 イベント

Elastic Beanstalk から出力されるイベントのリストを見るには、eb events を使用します。

~/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 2015-06-29 23:21:45 INFO Created Auto Scaling launch configuration named: awseb-e-gbzqc3jcra-stack-AWSEBAutoScalingLaunchConfiguration-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 デプロイ

環境が起動されて準備完了すると、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 コマンドリファレンス」を参照します。