AWS Elastic Beanstalk
開発者ガイド

Create New Environment ウィザード

[AWS Elastic Beanstalk 環境を作成するCreate New Environment] ウィザードを開いて、環境を迅速に作成する方法を示します。[Create environment] を選択して、デフォルト名で環境、自動生成されたドメイン、サンプルアプリケーションコードおよび推奨設定を起動します。

このトピックでは、[Create New Environment] ウィザードの完全な詳細と、作成する環境設定に使用できるすべての方法について説明します。

ウィザードのメインページ

[Create New Environment] ウィザードのメインページは、新しい環境の名前付け情報から始まります。環境の名前とサブドメインを設定し、環境の説明を作成します。これらの環境設定は、環境の作成後に変更できないことに注意してください。


        新しい環境の作成ウィザードのメインページ
  • [Name] – 環境の名前を入力します。フォームにはデフォルト名が用意されています。

  • [Domain] – (ウェブサーバー環境) 環境の一意なドメイン名を入力します。このフォームでは、ドメイン名に環境名を入力します。別のドメイン名を入力することができます。Elastic Beanstalk は、この名前を使用して、環境の一意の CNAME を作成します。目的のドメイン名が利用可能かどうか確認するには、[Check Availability] を選択します。

  • [Description] – この環境の説明を入力します。

新しい環境に適したプラットフォームを選択する

新しい環境は、次の 2 種類のプラットフォームから作成できます。

  • サポートされているプラットフォーム

  • カスタムプラットフォーム

サポートされるプラットフォーム

ほとんどの場合、Elastic Beanstalk がサポートされているプラットフォームを新しい環境に使用します。次のスクリーンショットに示すように、新しい環境ウィザードが起動すると、デフォルトで [Preconfigured platform] オプションが選択されます。


          新しい環境の作成ウィザードの事前設定済みプラットフォームオプション

リストをスクロールして、環境を構築するためにサポートされているプラットフォームを選択し、続いて [Create environment] を選択します。

カスタムプラットフォーム

既製のプラットフォームがニーズに合わない場合は、カスタムプラットフォームから新しい環境を作成することができます。カスタムプラットフォームを指定するには、[Custom platform] オプションを選択します。利用可能なカスタムプラットフォームがない場合、このオプションはグレー表示されます。


          新しい環境の作成ウィザードのカスタムプラットフォームオプション

使用可能なカスタムプラットフォームを 1 つ選択します。


          新しい環境の作成ウィザードのカスタムプラットフォームオプションの選択

新しい環境が作成されるプラットフォームを選択した後で、プラットフォームのバージョンを変更できます。[Configure more options] を選択し、[Change platform configuration] を選択します。[Change a platform version] ページが表示されたら、新しい環境に使用するバージョンを選択し、[Save] を選択します。


          新しい環境の作成ウィザードのプラットフォームオプションの変更

アプリケーションコードの提供

使用するプラットフォームを選択したので、次のステップではアプリケーションコードを提供します。


          Elastic Beanstalk コンソール の [新しい環境の作成] ウィザードでのアプリケーションコードの提供

これには複数のオプションがあります。

  • Elastic Beanstalk が各プラットフォーム用に提供するサンプルアプリケーションを使用できます。

  • Elastic Beanstalk にすでにデプロイしているコードを使用できます。[Existing version] セクションを選択します。アプリケーションは [Application code] セクションにあります。

  • 新しいコードをアップロードできます。[コードのアップロード]、[アップロード] の順に選択します。ローカルファイルから新しいアプリケーションコードをアップロードするか、アプリケーションコードを含むAmazon S3 バケットの URL を指定することができます。

    注記

    選択したプラットフォームのバージョンに応じて、ZIP ソースバンドルWAR ファイル、またはプレーンテキストの Docker 設定にアプリケーションをアップロードできます。ファイルサイズの上限は 512 MB です。

    新しいコードをアップロードすることを選択すると、コードに関連付けるタグを指定することもできます。オブジェクトのタグ付けの詳細については、「Elastic Beanstalk 環境でのリソースのタグ付け」を参照してください。

    
              Elastic Beanstalk コンソール の [新しい環境の作成] ウィザードによる新しいアプリケーションコードのアップロード

ここで [環境の作成] を選択すると、新しい環境を作成できます。次のセクションで説明するように、[Configure more options] を選択してさらに設定を変更できます。


        新しい環境のダッシュボード

設定のプリセット

Elastic Beanstalk には、低コストな開発および高可用性のユースケースのための設定プリセットが用意されています。各プリセットには、複数の設定オプション用に推奨値が含まれています。


        新しい環境の作成ウィザードの設定ページの設定のプリセット

[High availability] プリセットにはロードバランサーが含まれますが、[Low cost] プリセットには含まれていません。高可用性のための複数のインスタンスを実行し、負荷に応じてスケールできる負荷分散環境が必要な場合は、このオプションを選択します。

3 番目のプリセットである [Custom configuration] では、ロール設定を除くすべての推奨値を削除し、API デフォルトを使用します。設定オプションを指定する設定ファイルでソースバンドルをデプロイしている場合は、このオプションを選択します。[Low cost] または [High availability] 設定プリセットを変更すると、[Custom configuration] も自動的に選択されます。

設定をカスタマイズする

設定プリセットを選択することに加えて (またはその代わりに)、お使いの環境で 設定オプションを微調整することができます。[さらにオプションを設定] を選択すると、ウィザードにいくつかの設定カテゴリが表示されます。各設定カテゴリには、構成設定のグループの値の要約が表示されます。このグループの設定を編集するには、[変更] を選択します。次の例には、[キャパシティー] 設定カテゴリがあります。


        キャパシティー設定カテゴリ

ソフトウェアの設定

環境でインスタンスを設定して、AWS X-Ray デーモンを実行してログのデバッグ、アップロード、ストリーム処理を行い、アプリケーションに情報を渡す環境プロパティを設定します。プラットフォーム固有の設定は、[Configuration] ページでも使用できます。次の例では、Node.js プラットフォームの設定を確認できます。


          ソフトウェア設定の変更ページ
  • [AWS X-Ray] – [X-Ray daemon] を有効にして、デバッグのための AWS X-Ray デーモンを実行します。

  • [S3 log storage] – [Rotate logs] で、ローテーションされたログを環境内のインスタンスから Amazon S3 の Elastic Beanstalk ストレージバケットにアップロードできるようにします。

  • [Instance log streaming to CloudWatch Logs] – [Log streaming] を有効にして、お使いの環境のインスタンスからのログを Amazon CloudWatch Logs にストリーミングします。

  • [Environment properties] – 環境変数としてインスタンス上のアプリケーションに渡される環境プロパティを設定します。

プロパティがアプリケーションに渡される方法はプラットフォームによって異なります。一般的に、インスタンスに接続して env を実行する場合、プロパティは表示されません

インスタンス

環境でリクエストに対応する Amazon EC2 インスタンスを設定します。


          インスタンス設定の変更ページ
  • [Instance type] – アプリケーションに最適な特性 (メモリサイズや CPU 能力など) を持つサーバーを選択します。

    Elastic Beanstalk 環境で使用可能な Amazon EC2 インスタンスタイプの詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「インスタンスファミリーとタイプ」を参照してください。

  • [AMI ID] – カスタム AMI を作成した場合は、インスタンスで使用する AMI ID を指定します。

  • [Root volume] – ルートボリュームのタイプ、サイズ、および 1 秒あたりの入力/出力オペレーション (IOPS) を指定します。

    • [Root volume type] – Amazon EBS で提供されるストレージボリュームタイプのリストから、Elastic Beanstalk 環境で Amazon EC2 インスタンスにアタッチするタイプを選択します。必要なパフォーマンスと価格の要件を満たすボリュームタイプを選択します。詳細については、「Amazon EBS ボリュームタイプ」および「Amazon EBS 製品の詳細」を参照してください。

    • [Size] – ストレージボリュームのサイズを設定します。マグネティックボリュームのサイズは 8 GiB~1024 GiB、SSD ボリュームは 10 GiB~16,384 GiB のサイズ範囲になります。[Provisioned IOPS (SSD)] をインスタンスのルートボリュームタイプとして選択した場合、ルートボリュームサイズの値を指定する必要があります。他のルートボリュームの場合、独自の値を指定しないと、Elastic Beanstalk ではそのストレージボリュームタイプに対してデフォルトのボリュームサイズを使用します。

    • [IOPS] – 使用する 1 秒あたりの入力/出力オペレーションを指定します。ルートボリュームタイプとして [Provisioned IOPS (SSD)] を選択した場合、IOPS を選択する必要があります。最小値は 100 で、最大値は 4000 です。IOPS とボリュームサイズとの比率は最大で 30:1 です。たとえば、3000 IOPS のボリュームのサイズは 100 GiB 以上である必要があります。

容量

環境のコンピューティング性能を設定し、使用中のインスタンスの数を最適化する [Auto Scaling Group] 設定を行います。


          キャパシティー設定変更ページの Auto Scaling グループセクション
  • [Environment type] – [Load balanced] を選択してロードバランサーの背後の環境で Amazon EC2 インスタンスを実行するか、[Single instance] を選択して、ロードバランサーなしで 1 つのインスタンスを実行します。

    警告

    シングルインスタンス環境は、本稼働環境では利用できません。インスタンスがデプロイ中に不安定になった場合、または設定の更新中に Elastic Beanstalk がインスタンスを終了して再起動した場合、アプリケーションは一定期間使用できなくなる場合があります。開発、テスト、またはステージングには、単一インスタンス環境を使用します。本稼働用には負荷分散された環境を使用します。

  • [Availability Zones] – インスタンスで使用するアベイラビリティーゾーンの数を制限します。

  • [Instances] – 実行するインスタンスの最小数と最大数を設定します。

  • [Placement] – 常にインスタンスが必要なアベイラビリティーゾーンを選択します。ここでアベイラビリティーゾーンを割り当てる場合、インスタンスの最小数は、少なくとも選択するアベイラビリティーゾーンの数である必要があります。

負荷分散された環境では、高可用性のための複数のインスタンスを実行し、設定の更新およびデプロイ中にダウンタイムを防ぐことができます。負荷分散された環境では、ドメイン名はロードバランサーにマッピングされます。シングルインスタンス環境では、インスタンスの Elastic IP アドレスにマッピングされます。

[scaling trigger] は、環境でインスタンス数をいつスケールするかを Amazon EC2 Auto Scaling に通知する Amazon CloudWatch アラームです。環境には 2 つのトリガーがデフォルトで含まれます。1 つはスケールアップ用の高トリガー、もう 1 つはスケールダウン用の低トリガーです。


          キャパシティー設定変更ページのスケーリングトリガーセクション
  • [Metric] – アラームが監視し、アプリケーションが受信しているトラフィック量に対して実行中のインスタンスが少なすぎる、または多すぎることを識別するメトリクスを選択します。

  • [Statistic] – メトリクスを解釈する方法を選択します。メトリクスは、すべてのインスタンス全体の平均、発生した最大値または最小値、あるいはすべてのインスタンスによって送信された数値の合計の平均値として測定できます。

  • [Unit] – 上限および下限のしきい値の測定単位を指定します。

  • [Period] – 各メトリクスの評価の間隔を指定します。

  • [Breach duration] – アラームをトリガーするまでにメトリクスがしきい値を満たすか超えることができる時間を指定します。この値は、[Period] の値の倍数である必要があります。たとえば、期間が 1 分で違反期間が 10 分の場合、スケーリングオペレーションをトリガーするには、10 回の連続した評価でしきい値を超過する必要があります.

  • [Upper threshold] – 違反と見なされるために統計が一致する最小値を指定します。

  • [Lower threshold] – 違反と見なされるために統計が一致する最大値を指定します。

CloudWatch メトリクスとアラームの詳細については、Amazon CloudWatch ユーザーガイドの「Amazon CloudWatch の概念」を参照してください。

ロードバランサー

ロードバランサー環境では、環境のロードバランサーがアプリケーションに送信されるすべてのトラフィック用のエントリポイントとなります。Elastic Beanstalk は 複数のロードバランサーをサポートしています。[Modify load balancer] の設定ページを使用して、ロードバランサータイプを選択し、設定を行います。デフォルトでは、Elastic Beanstalk コンソールで Classic Load Balancer を作成し、ポート 80 で HTTP トラフィックを処理するよう設定します。

ロードバランサータイプの詳細および設定については、「AWS Elastic Beanstalk 環境のロードバランサー」と「Elastic Beanstalk 環境用に HTTPS を設定する」を参照してください。


          環境の作成時のロードバランサーの設定

ローリング更新とデプロイ

単一インタンス環境の場合は、[Deployment policy] を選択し、新しいアプリケーションバージョンと変更をインスタンスのソフトウェア構成にデプロイする方法を設定します。[All at once] を選択するとデプロイが速やかに完了しますが、ダウンタイムを引き起こす場合があります。[Immutable] デプロイでは、新しいインスタンスがヘルスチェックに合格したことを確認した上で新しいバージョンに切り替えます。合格しない場合は、古いバージョンがそのまま残ります。詳細については、「デプロイポリシーと設定」を参照してください。

負荷分散型環境の場合は、[Deployment policy] を選択し、新しいアプリケーションバージョンと変更をインスタンスのソフトウェア構成にデプロイする方法を設定します。[All at once] を選択するとデプロイが速やかに完了しますが、ダウンタイムを引き起こす場合があります。[Rolling] デプロイは、全般的なデプロイプロセス中に、いくつかのインスタンスを実行状態に保ちます。詳細については、「デプロイポリシーと設定」を参照してください。


          ローリング更新とデプロイ設定の変更ページのアプリケーションのデプロイセクション
  • [Deployment policy] – [Rolling] デプロイは、停止中のインスタンスのバッチを 1 つずつ選んで新しいバージョンをデプロイします。[Rolling with additional batch] では最初に新しいバッチを起動して、デプロイ中にそのキャパシティーが影響を受けないようにします。[Immutable] は、デプロイ時に変更不可能な更新を実行します。

  • [Batch size] – 各バッチで更新するインスタンス数の割合。

ローリング更新は、環境のインスタンスの削除または置換が必要となる、インスタンス起動設定または Amazon Virtual Private Cloud (Amazon VPC) 設定を変更するときに発生します。その他の設定変更は、キャパシティーに影響を与えることなく行われます。詳細については、「設定変更」を参照してください。


          [Modify rolling updates and deployments configuration] ページの [Configuration updates] セクション
  • [Rolling update type] – 新しいインスタンスの登録後に指定された時間が経過するのを AWS CloudFormation が待機してから次のバッチに進む時間ベース、またはインスタンスがヘルスチェックに合格するまで AWS CloudFormation が待機するヘルスベース。[Immutable] は、設定の変更により通常はローリング更新がトリガーされるときに変更不可能な更新を実行します。

  • [Batch size] – 各バッチで置き換えるインスタンスの数。

  • [Minimum capacity] – ある時点においてサービスで保持するインスタンスの最小数。

  • [Pause time] – 時間ベースのローリング更新の場合、ロードバランサーに登録された後で新しいインスタンスが高速化されるまでに待機する時間。

残りのオプションでは、ヘルスチェックとタイムアウトをカスタマイズします。


          ローリング更新とデプロイ設定の変更ページのデプロイの設定セクション
  • [Ignore health check] – バッチが [Command timeout] の時間内に正常な状態にならなかった場合に、デプロイがロールバックするのを防ぎます。

  • [Healthy threshold] – ローリングデプロイやローリング更新、変更不可能な更新中に、インスタンスが正常と見なされるしきい値を引き下げます。

  • [Command timeout] – デプロイがキャンセルされるまで、または [Ignore health check] が設定されている場合は次のバッチの処理に移るまで、インスタンスが正常な状態になるために待機する秒数。

セキュリティ

Amazon EC2 キーペアを選択して、環境のインスタンスへの SSH または RDP アクセスを有効にします。カスタムインスタンスロールとインスタンスプロファイルを作成している場合は、リストからそれらを選択します。そうでない場合は、デフォルトロールの aws-elasticbeanstalk-service-role および aws-elasticbeanstalk-ec2-role を使用します。


          セキュリティ設定の変更ページ
  • [Service role] – サービスロールは、環境内のリソースを監視するための Elastic Beanstalk 権限を付与します。

  • [EC2 key pair] – 環境内のインスタンスに SSH キーを割り当てて、デバッグのためにリモート接続できるようにします。Amazon EC2 キーペアに関する詳細は、Linux インスタンス用 Amazon EC2 ユーザーガイドの「認証情報の使用」を参照してください。

    注記

    キーペアを作成すると、Amazon EC2 はパブリックキーのコピーを保存します。Amazon EC2 インスタンスに接続するためにこれが必要なくなった場合は、Amazon EC2 から削除できます。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「キーペアの削除」を参照してください。

  • [IAM instance profile] – インスタンスプロファイルは、環境内の Amazon EC2 インスタンスに、AWS リソースへのアクセス権限を付与します。

Elastic Beanstalk コンソールは、aws-elasticbeanstalk-ec2-role インスタンスプロファイルと aws-elasticbeanstalk-service-role というサービスロールを探します。これらのロールが無い場合は、コンソールはこれらを作成します。詳細については、「サービスロール、インスタンスプロファイル、ユーザーポリシー」を参照してください。

モニタリング

負荷分散された環境のヘルスチェックを設定します。


          モニタリング設定の変更ページ
  • [Health check] – ヘルスチェックリクエストの送信先パス。設定されていない場合、ロードバランサーは、状態を確認するためにポート 80 での TCP 接続をするよう試みます。別のパスに設定し、HTTP GET リクエストをそのパスに送信します。パスは / で始まり、アプリケーションのルートからの相対パスでなければなりません。プロトコル (HTTP、HTTPS、TCP、SSL) およびパスの前のポートを含めて、HTTPS 接続を確認することも、デフォルトでないポートを使用することもできます。("HTTPS:443/health" など)。

  • [Health reporting] – 拡張ヘルスレポートは、環境のリソースに関する追加のヘルス情報を提供します。拡張ヘルスレポートを有効にするには、[Enhanced] を選択します。システムには、無料で EnvironmentHealth メトリクスが用意されています。追加のメトリクスをリストから選択すると、追加料金がかかります。

  • [Health event streaming to CloudWatch Logs] – [Log streaming] を有効にして、お使いの環境ヘルスのログイベントを Amazon CloudWatch Logs にストリーミングします。

通知

環境からの重要イベントに関するメール通知の受信を希望する場合は、メールアドレスを入力します。


          通知設定の変更ページ
  • [Email] – 通知のメールアドレス。

ネットワーク

カスタム VPC を作成した場合、これらの設定を使用して環境を設定し、使用します。VPC を選択しない場合、Elastic Beanstalk はデフォルト VPC とサブネットを選択します。


          ネットワーク設定の変更ページ
  • [VPC] – 環境のリソースを起動する VPC。

  • [Load balancer visibility] – ロードバランサーを内部向けとして設定し、インターネットからの接続を防止します。このオプションは、VPC に接続されているネットワークからのトラフィックのみに対応するアプリケーション用です。

  • [Load balancer subnets] – サイトがインターネットからのトラフィックに対応している場合、ロードバランサー用のパブリックサブネットを選択します。


          ネットワーク設定の変更ページのインスタンス設定セクション
  • [Public IP address] – インスタンスとロードバランサーを同じパブリックサブネットで実行する場合は、このオプションを選択します。

  • [Instance subnets] – インスタンスのプライベートサブネットを選択します。

  • [Instance security groups] – Elastic Beanstalk が作成する標準セキュリティグループに加えて、インスタンスに割り当てるセキュリティグループを選択します。

Amazon VPC​ の詳細については、Amazon Virtual Private Cloud (Amazon VPC) を参照してください。

データベース

開発およびテスト用に、Amazon RDS SQL データベースを環境に追加します。Elastic Beanstalk はデータベースのホスト名、ユーザー名、パスワード、テーブル名、ポートの環境プロパティを設定して、インスタンスに接続情報を提供します。

実行中の環境で以前に取得したデータベーススナップショットを復元することも、新しい Amazon RDS データベースを作成することもできます。

この設定ページを使用して環境にデータベースを追加すると、そのライフサイクルは環境のライフサイクルに左右されます。環境を終了すると、データベースは削除され、データが失われます。実稼働環境では、Elastic Beanstalk 以外で作成されたデータベースに接続するようにインスタンスを設定することを検討してください。


          データベース設定の変更ページ
  • [スナップショット] – 既存のデータベースのスナップショットを選択します。Elastic Beanstalk は、スナップショットを復元して、環境に追加します。デフォルト値は [なし] であり、このページの他の設定を使用して新しいデータベースを設定できます。

  • [Engine] – アプリケーションによって使用されるデータベースエンジンを選択します。

  • [Engine version] – データベースエンジンのバージョンを選択します。

  • [Instance class] – データベースインスタンスクラスを選択します。DB インスタンスクラスの詳細については、「https://aws.amazon.com/rds/」を参照してください。

  • [Storage] – データベースに割り当てるストレージ領域の容量を、ギガバイト単位で指定します。ストレージの割り当ての詳細については、Featuresを参照してください。

  • [Username] – データベース管理者のユーザー名。ユーザー名の要件は、データベースエンジンごとに異なります。

  • [Password] – データベース管理者のパスワード。パスワード要件は、データベースエンジンごとに異なります。

  • [Retention] – スナップショットを使用して、新しい DB インスタンスを起動することで、データを復元できます。[Create snapshot] を選択すると、環境を終了するときにデータベースのスナップショットを自動的に保存できます。

  • [Availability] – 可用性を高めるために別のアベイラビリティーゾーンで 2 番目の DB インスタンスを実行するには、[High (Multi-AZ)] を選択します。

Amazon RDS​ の詳細については、Amazon Relational Database Service (Amazon RDS) を参照してください。

タグ

環境内のリソースにタグを追加します。環境タグ付けの詳細については、「Elastic Beanstalk 環境でのリソースのタグ付け」を参照してください。


          Elastic Beanstalk コンソールのタグページ

ワーカーの詳細

(ワーカー環境) ワーカーアプリケーション用に Amazon SQS キューを作成したり、既存のキューから作業項目を取得することができます。環境内のインスタンスのワーカーデーモンはキューから項目を取得し、POST リクエストボディ内でローカルホストからの相対ローカル HTTP パスに中継します。


          Elastic Beanstalk コンソールのワーカー環境の詳細ページ
  • [Worker queue] – ワーカー環境枠が処理するメッセージをどのキューから読み取るかを選択します。値を入力しない場合は、Elastic Beanstalk が自動的に作成します。

  • [HTTP path] – キューから生成されたメッセージを HTTP POST リクエストの形式で転送する、ローカルホスト上の相対パスを指定します。

  • [MIME type] – HTTP POST リクエストで送信するメッセージの MIME タイプを選択します。

  • [HTTP connections] – アプリケーションへの同時接続の最大数。この値は、アプリケーションが並列で処理できるプロセスメッセージやスレッドメッセージの数に設定します。

  • [Visibility timeout] – 受信メッセージが処理のためにロックされてからキューに返されるまでの時間。この値は、メッセージの処理で必要になると考えられる最長時間に設定します。