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

Create New Environment ウィザード

このトピックでは、[Create New Environment] ウィザードのページについての詳細情報を示します。基本的な手順については、「AWS Elastic Beanstalk 環境を作成する」を参照してください。

新しい環境の作成

サンプルアプリケーションの使用、独自のアプリケーションのアップロード、アプリケーションコードを含んでいる Amazon S3 バケットの URL の指定を行うことができます。

[Create environment] を選択して、デフォルト名ですぐに環境、自動生成されたドメイン、および推奨設定を起動します。起動する前にその他のオプションを設定するには、[Configure more options] を選択します。以下のスクリーンショットに示すように、[カスタムプラットフォーム] を選択して、カスタムプラットフォームに基づく新しい環境を立ち上げることもできます。利用可能なカスタムプラットフォームがない場合、このオプションはグレー表示されます。

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

サポートされているプラットフォームから新しい環境を作成する

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

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

カスタム プラットフォームから新しい環境を作成する

既製のプラットフォームがニーズに合わない場合は、カスタムプラットフォームから新しい環境を作成することができます。新しい環境ウィザードが起動したら、次のスクリーンショットに示すように、[カスタムプラットフォーム] オプションを選択します。

注記

選択したプラットフォーム設定に応じて、ZIP ソースバンドルWAR ファイル、またはプレーンテキストの Docker 設定にアプリケーションをアップロードできます。ファイルサイズの上限は 512 MB です。 [カスタムプラットフォーム] を選択すると、コンソールでは、カスタムプラットフォーム設定を指定できる次のようなウィンドウがポップアップ表示されます。

新しい環境が作成されるプラットフォームを選択すると、プラットフォームのバージョンを変更できます。[その他のオプションを設定] を選択し、[プラットフォーム設定の変更] を選択します。[プラットフォームバージョンの変更] ウィンドウが表示されたら、新しい環境に使用するバージョンを選択し、[保存] を選択します。

使用するプラットフォームを選択したので、次のステップではアプリケーションコードをロードします。すでに Elastic Beanstalk にコードをデプロイしている場合は、[既存バージョン] とアプリケーションを [アプリケーションコード] セクションで選択します。

新しいコードをアップロードする場合は、[コードをアップロード]、次に [アップロード] を選択し、画面の指示に従います。

アプリケーションコードを環境にアップロードしたら、[環境の作成] を選択して、新しい環境を作成します。

設定のプリセット

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

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

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

環境設定

名前とサブドメインを設定し、環境の説明を作成します。環境設定は、一度指定すると後で変更できないことに注意してください。

  • [Name] – 環境の名前を入力します。

  • [Domain] – (ウェブサーバー環境) 環境の一意な URL を入力します。環境 URL には環境名を利用して入力されていますが、URL に別の名前を入力することができます。Elastic Beanstalk は、この名前を使用して、環境の一意の CNAME を作成します。目的の URL が利用可能かどうか確認するには、[Check Availability] をクリックします。

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

  • [Tags] – 環境のリソースにタグを追加します。タグキーとタグ値の制限は次のとおりです。

    • キーと値には、任意の言語のアルファベット文字、数字、空白、表示されない区切り文字、記号(_)を使用できます。: / = + \ - @

    • キーと値は大文字と小文字が区別されます

    • 値と環境名を同じすることはできません

    • 値に aws: または elasticbeanstalk: を含めることはできません

    タグの使用の詳細については、『Linux インスタンス用 Amazon EC2 ユーザーガイド』の「Amazon EC2 リソースにタグを付ける」を参照してください。

ソフトウェアの設定

環境でインスタンスを設定して Amazon S3 にローテーションされたログをアップロードし、デバッグのため AWS X-Ray デーモンを実行して、アプリケーションに情報を渡す環境プロパティを設定します。環境を作成すると、[Configuration] ページでさらにプラットフォーム固有の設定が利用できます。

  • [X-Ray Daemon] –、デバッグのため AWS X-Ray デーモンを実行します。

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

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

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

インスタンス

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

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

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

  • [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] 設定を行います。

  • [Environment type] – [Load balanced] を選択してロードバランサーの背後の環境で Amazon EC2 インスタンスを実行するか、[Single instance] を選択して、ロードバランサーなしで 1 つのインスタンスを実行します。

    警告

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

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

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

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

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

[scaling trigger] は、環境でインスタンス数をいつスケールするかを 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 は 複数のロードバランサーをサポートしています。Elastic Beanstalk コンソールを使用して環境を作成すると、ご使用の環境に Classic Load Balancer が作成されます。ロードバランサータイプの詳細については、「AWS Elastic Beanstalk 環境のロードバランサー」を参照してください。

デフォルトでは、ロードバランサーはポート 80 で HTTP トラフィックに対応します。HTTPS を使用したセキュアな接続を許可するようセキュアリスナーを設定することもできます。HTTPS を使用してポート 443 でセキュアな接続を提供する場合、デフォルトリスナーで安全な接続をユーザーに求めないようにできます。

  • [ELB listener] – ロードバランサーのデフォルトリスナーはインターネットからの HTTP トラフィックに対応するか、内部アプリケーション向けには、VPC に接続されたネットワークに対応します。

  • [Secure ELB listener] – セキュアリスナーは TLS/SSL 証明書を使用して HTTPS 接続を終了し、復号されたトラフィックをインスタンスに渡します。所有しているドメインに対して、IAM を使用して証明書をアップロードするか、AWS Certificate Manager を使用して新しい証明書を作成できます。

残りのオプションを使用して、クロスゾーンの負荷分散やConnection Drainingを有効にします。

  • [Cross-zone load balancing] – 各アベイラビリティーゾーンのインスタンス数が均等でない場合にトラフィックを正しく分散し、クライアントでの DNS キャッシュによる問題を回避します。

  • [Connection draining] – スケーリングオペレーション、更新、およびデプロイ中にロードバランサーからインスタンスの登録解除を完了する前に、アクティブな接続が完了する時間を許可します。

設定ファイルを使用して、高度なリスナー設定、TCP パススルー、アプリケーションの負荷分散、およびバックエンド認証を含むさらに多くのロードバランサーオプションを設定できます。詳細については、「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] – 各バッチで更新するインスタンス数の割合。

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

  • [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 ユーザーガイド の 「Using Credentials」を参照してください。

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

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

Monitoring

負荷分散された環境の場合、[Health check path] により、ヘルスチェック用のリクエストの送信先ロードバランサーが指定されます。

  • [Health check path] – ヘルスチェックリクエストの送信先パス。設定されていない場合、ロードバランサーは、状態を確認するためにポート 80 での TCP 接続をするよう試みます。 / で始まるパスに設定し、HTTP GET リクエストをそのパスに送信します。 プロトコル (HTTP、HTTPS、TCP、SSL) およびパスの前のポートを含めて、HTTPS 接続を確認することも、デフォルトでないポートを使用することもできます。たとえば、HTTPS:443/health と指定します。

  • [Health reporting system] – 拡張ヘルスレポートは、追加料金なしで環境のリソースに関する追加のヘルス情報を提供します。

通知

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

  • [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 はデータベースのホスト名、ユーザー名、パスワード、テーブル名、ポートの環境プロパティを設定して、インスタンスに接続情報を提供します。環境にデータベースを追加すると、そのライフサイクルは環境のライフサイクルに結び付けられます。

実稼働環境では、外部データベースに接続するようインスタンスを設定できます。

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

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

  • [Instance class] – データベースインスタンスクラスを選択します。DB インスタンスクラスの詳細については、http://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)」を参照してください。

ワーカーの詳細

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

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

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

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

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

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