EB CLI を使用した Elastic Beanstalk 環境の管理 - 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 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 コマンドを使用します。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 events

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 ...

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 でのダングリング委任レコードからの保護」を参照してください。また、ダングリング DNS エントリの詳細については、AWS セキュリティブログの 「Enhanced Domain Protections for Amazon CloudFront Requests」を参照してください。