メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

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

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

注記

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

次の例では、サンプル 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-west-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-west-2:210774411744: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-west-2:210774411744: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 コマンドリファレンス」を参照します。