外部 Amazon RDS データベースを持つ高可用性 Drupal ウェブサイトを Elastic Beanstalk にデプロイする - AWS Elastic Beanstalk

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

外部 Amazon RDS データベースを持つ高可用性 Drupal ウェブサイトを Elastic Beanstalk にデプロイする

このチュートリアルでは、 の外部で RDS DB インスタンスを起動するプロセスについて説明します AWS Elastic Beanstalk。そして、Drupal ウェブサイトを実行中の高可用性環境を設定して connect する方法を説明します。このウェブサイトでは、アップロードされたファイルの共有ストレージとして Amazon Elastic File System (Amazon EFS) を使用しています。Elastic Beanstalk の外部 DB インスタンスを実行すると、環境のライフサイクルからデータベースを分離し、複数の環境から同じデータベースに接続でき、あるデータベースから別のデータベースへ交換したり、データベースに影響を与えないで Blue-Green Deployment を実行できます。

前提条件

このチュートリアルでは、基本的な Elastic Beanstalk オペレーションと Elastic Beanstalk コンソールに関する知識があることを前提としています。まだ起動していない場合は、Elastic Beanstalk の開始方法 の指示に従って、最初の Elastic Beanstalk 環境を起動します。

このガイドの手順に従うには、run command のためのコマンドラインターミナルまたはシェルが必要になります。コマンドは、該当する場合、プロンプト記号 ($) と現在のディレクトリの名前が前に付けられて、リストに示されます。

~/eb-project$ this is a command this is output

Linux および macOS では、任意のシェルとパッケージ管理者を使用できます。Windows では、Linux 用 Windows サブシステムをインストールして、Windows 統合バージョンの Ubuntu と Bash を取得できます。

このチュートリアルの Amazon Relational Database Service (Amazon RDS) タスクの手順では、デフォルトの Amazon Amazon Virtual Private Cloud ) でリソースを起動することを前提としていますVPC。すべての新しいアカウントには、各リージョンVPCにデフォルトが含まれます。デフォルトの がない場合VPC、手順は異なります。EC2-Classic およびカスタムVPCプラットフォームの手順Amazon での Elastic Beanstalk の使用 RDSについては、「」を参照してください。

サンプルアプリケーションは Amazon を使用しますEFS。Amazon をサポートする AWS リージョンでのみ機能しますEFS。 AWS リージョンのサポートについては、「」のAmazon Elastic File System のエンドポイントとクォータ」を参照してくださいAWS 全般のリファレンス

Elastic Beanstalk 環境のプラットフォームで PHP 7.4 以前を使用している場合は、このチュートリアルで Drupal バージョン 8.9.13 を使用することをお勧めします。8PHP.0 以降でインストールされたプラットフォームでは、Drupal 9.1.5 を使用することをお勧めします。

Drupal リリースとそれらがサポートするPHPバージョンの詳細については、Drupal ウェブサイトPHPの要件を参照してください。Drupal が推奨するコアバージョンは、ウェブサイト (https://www.drupal.org/project/drupal) に掲載されています。

Amazon で DB インスタンスを起動する RDS

Elastic Beanstalk で実行されているアプリケーションで外部データベースを使用するには、まず Amazon で DB インスタンスを起動しますRDS。Amazon でインスタンスを起動する場合RDS、インスタンスは Elastic Beanstalk 環境と Elastic Beanstalk 環境から完全に独立しており、Elastic Beanstalk によって終了またはモニタリングされることはありません。

Amazon RDSコンソールを使用して、マルチ AZ MySQL DB インスタンスを起動します。マルチ AZ 配置を選択すると、データベースがフェイルオーバーされ、出典 DB インスタンスがサービスを停止しても引き続き利用できます。

デフォルト で RDS DB インスタンスを起動するには VPC
  1. RDS コンソール を開きます。

  2. ナビゲーションペインで、[データベース] を選択します。

  3. [データベースの作成] を選択します。

  4. [Standard Create (スタンダード作成)] を選択します。

    重要

    [Easy Create (簡易作成)] を選択しないでください。選択した場合、この RDS DB を起動するために必要な設定を構成することはできません。

  5. [Additional configuration (追加の設定)] の [Initial database name (初期データベース名)] に 「ebdb」と入力します。

  6. デフォルト設定を確認し、特定の要件に従ってこれらの設定を調整します。以下のオプションに注目します。

    • DB インスタンスクラス – ワークロードに適した量のメモリとCPUパワーを持つインスタンスサイズを選択します。

    • Multi-AZ deployment (マルチ AZ 配置) – 高可用性を得るには、これを [Create an Aurora Replica/Reader node in a different AZ (異なる AZ に Aurora レプリカ/リーダーノードを作成)] に設定します。

    • [Master username (マスター・ユーザーネーム)] と [Master password (マスターパスワード)] – データベースのユーザー名とパスワード。後で使用するため、これらの設定を書き留めておきます。

  7. 残りのオプションのデフォルト設定を確認し、[データベースの作成] を選択します。

次に、DB インスタンスに添付するセキュリティグループを変更して、適切なポートへのインバウンドトラフィックを許可します。これは、後で Elastic Beanstalk 環境にアタッチするのと同じセキュリティグループで、追加するルールは、同じセキュリティグループ内の他のリソースにアクセス許可を付与するものです。

RDS インスタンスにアタッチされているセキュリティグループのインバウンドルールを変更するには
  1. Amazon RDSコンソール を開きます。

  2. [データベース] を選択します。

  3. 詳細を表示する DB インスタンスの名前を選択します。

  4. [Connectivity] (接続) セクションで、このページに表示される [Subnets] (サブネット)、[Security groups] (セキュリティグループ)、[Endpoint] (エンドポイント) をメモします。これは、後でこの情報を使用できるようにするためです。

  5. [Security] (セキュリティ) には、DB インスタンスに関連付けられるセキュリティグループが表示されます。リンクを開いて、Amazon EC2コンソールでセキュリティグループを表示します。

  6. セキュリティグループの詳細で、インバウンド を選択します。

  7. [編集] を選択します。

  8. [ルールの追加] を選択します。

  9. タイプ として、アプリケーションが使用する DB エンジンを選択します。

  10. 出典 として、sg- と入力して、使用可能なセキュリティグループのリストを表示します。Elastic Beanstalk 環境で使用される Auto Scaling グループに関連付けられているセキュリティグループを選択します。これは、環境内の Amazon EC2インスタンスがデータベースにアクセスできるようにするためです。

    Amazon EC2コンソールでセキュリティグループのインバウンドルールを編集する画面イメージ。
  11. [Save] を選択します。

DB インスタンスの作成には約 10 分かかります。その間に、Elastic Beanstalk 環境を起動します。

Elastic Beanstalk 環境の起動

Elastic Beanstalk コンソールを使用して、Elastic Beanstalk 環境を作成します。PHP プラットフォームを選択し、デフォルト設定とサンプルコードを受け入れます。環境を起動した後、データベースに connect するように環境を設定して、Drupal コードを環境にデプロイできます。

環境を起動するには (コンソール)
  1. 次の事前設定済みリンクを使用して Elastic Beanstalk コンソールを開きます: console.aws.amazon.com/elasticbeanstalk/home#/newApplication?applicationName=tutorials&environmentType=LoadBalanced

  2. [プラットフォーム] で、アプリケーションで使用される言語に一致するプラットフォームとプラットフォームブランチを選択します。

  3. アプリケーションコード として、サンプルアプリケーション を選択します。

  4. 確認と起動 を選択します。

  5. 使用できるオプションを確認します。使用する有効なオプションを選択し、準備ができたら [アプリケーションの作成] を選択します。

環境の作成の所要時間は約 5 分です。以下のリソースが作成されます。

  • EC2 インスタンス – 選択したプラットフォームでウェブアプリケーションを実行するように設定された Amazon Elastic Compute Cloud (Amazon EC2) 仮想マシン。

    各プラットフォームは、それぞれ特定の言語バージョン、フレームワーク、ウェブコンテナ、またはそれらの組み合わせをサポートするための、特定のソフトウェア、設定ファイル、スクリプトを実行します。ほとんどのプラットフォームでは、Apache または をウェブアプリの前にあり、リクエストを転送し、静的アセットを提供し、アクセスログとエラーログを生成するリバースプロキシNGINXとして使用します。

  • インスタンスセキュリティグループ – ポート 80 でインバウンドトラフィックを許可するように設定された Amazon EC2 セキュリティグループ。このリソースにより、ロードバランサーからのHTTPトラフィックがウェブアプリケーションを実行しているEC2インスタンスに到達できます。デフォルトでは、トラフィックは他のポート上で許可されません。

  • ロードバランサー – アプリケーションを実行するインスタンスにリクエストを分散するよう設定された Elastic Load Balancing ロードバランサー。ロードバランサーにより、インスタンスを直接インターネットに公開する必要もなくなります。

  • ロードバランサーセキュリティグループ – ポート 80 でインバウンドトラフィックを許可するように設定された Amazon EC2 セキュリティグループ。このリソースは、インターネットからのHTTPトラフィックがロードバランサーに到達できるようにします。デフォルトでは、トラフィックは他のポート上で許可されません。

  • Auto Scaling グループ – インスタンスが終了されたか利用不可になった場合にそのインスタンスを置き換えるよう設定された Auto Scaling グループ。

  • Amazon S3 バケット – Elastic Beanstalk の使用時に作成されるソースコード、ログ、その他のアーティファクトの保存場所。

  • Amazon CloudWatch アラーム – 環境内のインスタンスの負荷をモニタリングし、負荷が高すぎるか低すぎる場合にトリガーされる 2 つの CloudWatch アラーム。アラームがトリガーされると、Auto Scaling グループはレスポンスとしてスケールアップまたはダウンを行います。

  • AWS CloudFormation スタック — Elastic Beanstalk は AWS CloudFormation を使用して環境内のリソースを起動し、設定変更を伝達します。リソースは、AWS CloudFormation コンソールに表示できるテンプレートで定義されます。

  • ドメイン名 — フォームでウェブアプリケーションにルーティングするドメイン名 subdomain.region.elasticbeanstalk.com

    注記

    Elastic Beanstalk アプリケーションのセキュリティを強化するために、elasticbeanstalk.com ドメインはパブリックサフィックスリスト (PSL) に登録されています。セキュリティ強化のため、Elastic Beanstalk アプリケーションのデフォルトドメイン名に機密な Cookie を設定する必要が生じた場合は、__Host- プレフィックスの付いた Cookie の使用をおすすめします。この手法は、クロスサイトリクエストの偽造の試み () からドメインを保護するのに役立ちますCSRF。詳細については、Mozilla 開発者ネットワークの「Set-Cookie」ページを参照してください。

これらのリソースはすべて Elastic Beanstalk によって管理されます。環境を終了すると、Elastic Beanstalk は含まれているすべてのリソースを終了します。起動した RDS DB インスタンスは環境外にあるため、ライフサイクルを管理する責任はユーザーにあります。

注記

Elastic Beanstalk が作成する Amazon S3 バケットは、環境間で共有され、環境の終了時に削除されません。詳細については、「Amazon S3 で Elastic Beanstalk を使用する」を参照してください。

セキュリティ設定および環境プロパティの設定

DB インスタンスのセキュリティグループを実行中の環境に追加します。この手順によって、アタッチされる追加のセキュリティグループを使用して、Elastic Beanstalk が環境内のすべてのインスタンスの再プロビジョニングを行います。

環境にセキュリティグループを追加するには
  • 次のいずれかを行います。

    • Elastic Beanstalk コンソールを使用してセキュリティグループを追加するには

      1. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します AWS リージョン。

      2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

        注記

        環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

      3. ナビゲーションペインで、[設定] を選択します。

      4. [インスタンス] 設定カテゴリで、[編集] を選択します。

      5. EC2 セキュリティグループ で、Elastic Beanstalk が作成するインスタンスセキュリティグループに加えて、インスタンスにアタッチするセキュリティグループを選択します。

      6. ページの最下部で [適用] を選択し変更を保存します。

      7. 警告を読み取り、確認 を選択します。

    • 設定ファイルを使用してセキュリティグループを追加するには、securitygroup-addexisting.config サンプルファイルを使用します。

次に、環境プロパティを使用して環境に接続情報を渡します。サンプルアプリケーションは、環境内でデータベースをプロビジョニングする場合、Elastic Beanstalk 設定と一致するプロパティのデフォルトセットを使用します。

Amazon RDS DB インスタンスの環境プロパティを設定するには
  1. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します AWS リージョン。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [更新、モニタリング、ログ] の設定カテゴリで、[編集] を選択します。

  5. [環境プロパティ] セクションで、アプリケーションが読み取りする変数を定義して、接続文字列を構成します。統合された RDS DB インスタンスを持つ環境との互換性を保つには、次の名前と値を使用します。パスワードを除くすべての値は、RDSコンソール で確認できます。

    プロパティ名 説明 プロパティ値

    RDS_HOSTNAME

    DB インスタンスのホスト名。

    Amazon RDSコンソールの接続とセキュリティタブ: エンドポイント

    RDS_PORT

    DB インスタンスが接続を許可するポート。デフォルト値は DB エンジンによって異なります。

    Amazon RDSコンソールの接続とセキュリティタブ: ポート

    RDS_DB_NAME

    データベース名 ebdb

    Amazon RDSコンソールの設定タブ: DB 名

    RDS_USERNAME

    お客様のデータベース用に設定したユーザー名。

    Amazon RDSコンソールの設定タブで、マスターユーザー名

    RDS_PASSWORD

    お客様のデータベース用に設定したパスワード。

    Amazon RDSコンソールでは参照できません。

    プロパティが追加された環境RDSプロパティ設定セクション
  6. ページの最下部で [適用] を選択し変更を保存します。

Drupal をインストールしたら、 を使用してインスタンスに接続SSHし、設定の詳細を取得する必要があります。環境のインスタンスに SSHキーを割り当てます。

を設定するには SSH
  1. キーペアをまだ作成していない場合は、Amazon EC2コンソールのキーペアページを開き、手順に従って作成します。

  2. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します AWS リージョン。

  3. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  4. ナビゲーションペインで、[設定] を選択します。

  5. [セキュリティ] で、[編集] を選択します。

  6. EC2 キーペア で、キーペアを選択します。

  7. ページの最下部で [適用] を選択し変更を保存します。

アプリケーションの設定とデプロイ

Elastic Beanstalk 用の Drupal プロジェクトを作成するには、Drupal ソースコードをダウンロードし、 の aws-samples/eb-php-drupal リポジトリにあるファイルと組み合わせます GitHub。

Drupal プロジェクトを作成するには
  1. 次のコマンドを実行して、www.drupal.org/download から Drupal をダウンロードします。ダウンロードの詳細については、Drupal のウェブサイトをご参照ください。

    Elastic Beanstalk 環境のプラットフォームで PHP 7.4 以前を使用している場合は、このチュートリアル用に Drupal バージョン 8.9.13 をダウンロードすることをお勧めします。次のコマンドを実行してダウンロードできます。

    ~$ curl https://ftp.drupal.org/files/projects/drupal-8.9.13.tar.gz -o drupal.tar.gz

    プラットフォームで 8.0 PHP 以降を使用している場合は、Drupal 9.1.5 をダウンロードすることをお勧めします。このコマンドを使用してダウンロードできます。

    ~$ curl https://ftp.drupal.org/files/projects/drupal-9.1.5.tar.gz -o drupal.tar.gz

    Drupal リリースとそれらがサポートするPHPバージョンの詳細については、公式の Drupal ドキュメントPHPの要件を参照してください。Drupal が推奨するコアバージョンは、Drupal のウェブサイトに掲載されています。

  2. 次のコマンドを使用して、サンプルリポジトリから設定ファイルをダウンロードします。

    ~$ wget https://github.com/aws-samples/eb-php-drupal/releases/download/v1.1/eb-php-drupal-v1.zip
  3. Drupal を抽出してフォルダ名を変更します。

    Drupal 8.9.13 をダウンロードした場合:

    ~$ tar -xvf drupal.tar.gz ~$ mv drupal-8.9.13 drupal-beanstalk ~$ cd drupal-beanstalk

    Drupal 9.1.5 をダウンロードした場合:

    ~$ tar -xvf drupal.tar.gz ~$ mv drupal-9.1.5 drupal-beanstalk ~$ cd drupal-beanstalk
  4. インストールした Drupal で設定ファイルを抽出します。

    ~/drupal-beanstalk$ unzip ../eb-php-drupal-v1.zip creating: .ebextensions/ inflating: .ebextensions/dev.config inflating: .ebextensions/drupal.config inflating: .ebextensions/efs-create.config inflating: .ebextensions/efs-filesystem.template inflating: .ebextensions/efs-mount.config inflating: .ebextensions/loadbalancer-sg.config inflating: LICENSE inflating: README.md inflating: beanstalk-settings.php

以下に示すように、drupal-beanstalk フォルダの構造が正しいことを確認してください。

drupal-beanstalk$ tree -aL 1 . ├── autoload.php ├── beanstalk-settings.php ├── composer.json ├── composer.lock ├── core ├── .csslintrc ├── .ebextensions ├── .ebextensions ├── .editorconfig ├── .eslintignore ├── .eslintrc.json ├── example.gitignore ├── .gitattributes ├── .htaccess ├── .ht.router.php ├── index.php ├── LICENSE ├── LICENSE.txt ├── modules ├── profiles ├── README.md ├── README.txt ├── robots.txt ├── sites ├── themes ├── update.php ├── vendor └── web.config

プロジェクトリポジトリの beanstalk-settings.php ファイルでは、前のステップで定義した環境変数を使用してデータベース接続を設定します。.ebextensions フォルダ内の設定ファイルでは、Elastic Beanstalk 環境内に追加のリソースを作成します。

設定ファイルをアカウントで使用するには、変更が必要です。ファイル内のプレースホルダー値を適切な に置き換えIDs、ソースバンドルを作成します。

設定ファイルを更新して出典バンドルを作成するには
  1. 設定ファイルを次のように変更します。

    • .ebextensions/dev.config – 環境へのアクセスを IP アドレスに制限して、Drupal のインストールプロセス中に環境を保護します。ファイルの先頭にあるプレースホルダー IP アドレスをパブリック IP アドレスに置き換えます。

    • .ebextensions/efs-create.config – は、 の各アベイラビリティーゾーン/サブネットにEFSファイルシステムとマウントポイントを作成しますVPC。Amazon コンソール IDs でデフォルトVPCとサブネットを特定します。 VPC

  2. プロジェクトフォルダのファイルを含む出典バンドルを作成します。次のコマンドでは、drupal-beanstalk.zip という出典バンドルが作成されます。vendor フォルダ内のファイルは除外されます。これらのファイルは、多くのスペースを使用するだけでなく、アプリケーションを Elastic Beanstalk にデプロイするのに不要です。

    ~/eb-drupal$ zip ../drupal-beanstalk.zip -r * .[^.]* -x "vendor/*"

ソースバンドルを Elastic Beanstalk にアップロードして、Drupal を環境にデプロイします。

出典バンドルをデプロイするには
  1. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します AWS リージョン。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. 環境の概要ページで、[Upload and deploy (アップロードとデプロイ)] を選択します。

  4. 画面上のダイアログボックスを使用して、ソースバンドルをアップロードします。

  5. [デプロイ] を選択します。

  6. デプロイが完了したら、サイトを選択して新しいタブでウェブサイトURLを開くことができます。

Drupal のインストール

Drupal のインストールを完了するには
  1. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します AWS リージョン。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. ブラウザでサイトURLを開く環境を選択します。サイトがまだ設定されていないため、Drupal のインストールウィザードにリダイレクトされます。

  4. データベースの次の設定でスタンダードインストールを実行します。

    • データベース名 — Amazon RDSコンソールに表示される DB 名。

    • データベースのユーザーネームとパスワード – データベースの作成時に入力した [Master Username (マスターユーザー名)] と [Master Password (マスターパスワード)] の値。

    • 詳細オプション > ホスト — Amazon RDSコンソールに表示される DB インスタンスのエンドポイント

インストールには約 1 分かかります。

Drupal 設定を更新してアクセス制限を削除する

Drupal のインストールプロセスで、インスタンスの sites/default フォルダに settings.php というファイルを作成しました。このファイルを出典コードで使用して、以降のデプロイでサイトがリセットされるのに防ぐ必要がありますが、ファイルには現在ソースにコミットしたくないシークレットが含まれています。アプリケーションインスタンスに connect して設定ファイルから情報を取得します。

を使用してアプリケーションインスタンスに接続するには SSH
  1. Amazon EC2コンソールのインスタンスページを開きます。

  2. アプリケーションインスタンスを選択します。これは、Elastic Beanstalk 環境と同じ名前を付けたインスタンスです。

  3. [Connect] を選択します。

  4. 手順に従って、インスタンスを に接続しますSSH。コマンドは次のようになります。

    $ ssh -i ~/.ssh/mykey ec2-user@ec2-00-55-33-222.us-west-2.compute.amazonaws.com

設定ファイルの最後の行から同期ディレクトリ ID を取得します。

[ec2-user ~]$ tail -n 1 /var/app/current/sites/default/settings.php $config_directories['sync'] = 'sites/default/files/config_4ccfX2sPQm79p1mk5IbUq9S_FokcENO4mxyC-L18-4g_xKj_7j9ydn31kDOYOgnzMu071Tvc4Q/sync';

ファイルにはサイトの現在のハッシュキーも含まれていますが、現在の値は無視して独自の値を使用できます。

同期ディレクトリパスとハッシュキーを環境プロパティに割り当てます。プロジェクトリポジトリのカスタマイズされた設定ファイルは、前に設定したデータベース接続プロパティに加えて、これらのプロパティを読み取ることで、デプロイ中にサイトを設定します。

Drupal 設定プロパティ
Elastic Beanstalk コンソールで環境プロパティを設定するには
  1. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します AWS リージョン。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [更新、モニタリング、ログ] の設定カテゴリで、[編集] を選択します。

  5. [環境プロパティ] まで下にスクロールします。

  6. [環境プロパティの追加] を選択します。

  7. プロパティの [名前] と [値] のペアを入力します。

  8. さらに変数を追加する必要がある場合は、ステップ 6 および ステップ 7 を繰り返します。

  9. ページの最下部で [適用] を選択し変更を保存します。

最後に、サンプルプロジェクトには、セキュリティグループを作成して環境のロードバランサーに割り当てる設定ファイル (loadbalancer-sg.config) が含まれています。この際、ポート 80 で設定した IP アドレスを使用してHTTP、ネットワークからの接続へのアクセスdev.configを制限します。そうしないと、Drupal をインストールして管理者アカウントを設定する前に、部外者がサイトに connect する可能性があります。

Drupal の設定を更新してアクセス制限を削除するには
  1. プロジェクトディレクトリから .ebextensions/loadbalancer-sg.config ファイルを削除します。

    ~/drupal-beanstalk$ rm .ebextensions/loadbalancer-sg.config
  2. カスタマイズした settings.php ファイルをサイトのフォルダ内にコピーします。

    ~/drupal-beanstalk$ cp beanstalk-settings.php sites/default/settings.php
  3. 出典バンドルを作成します。

    ~/eb-drupal$ zip ../drupal-beanstalk-v2.zip -r * .[^.]* -x "vendor/*"

ソースバンドルを Elastic Beanstalk にアップロードして、Drupal を環境にデプロイします。

出典バンドルをデプロイするには
  1. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します AWS リージョン。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. 環境の概要ページで、[Upload and deploy (アップロードとデプロイ)] を選択します。

  4. 画面上のダイアログボックスを使用して、ソースバンドルをアップロードします。

  5. [デプロイ] を選択します。

  6. デプロイが完了したら、サイトを選択して新しいタブでウェブサイトURLを開くことができます。

Auto Scaling グループの設定

最後に、より高いインスタンス数で、環境の Auto Scaling グループを設定します。環境のウェブサーバーが、単一障害点となることを防ぎ、サイトをサービス停止状態にせずに変更をデプロイすることが許可されるように、常に少なくとも 2 つのインスタンスを実行します。

高可用性のために環境の Auto Scaling グループを設定するには
  1. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します AWS リージョン。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. ナビゲーションペインで、[設定] を選択します。

  4. [容量] 設定カテゴリで、[編集] を選択します。

  5. [Auto Scaling group (Auto Scaling グループ)] セクションで、[Min instances (最小インスタンス数)] を 2 に設定します。

  6. ページの最下部で [適用] を選択し変更を保存します。

複数のインスタンスにわたるコンテンツのアップロードを support するために、サンプルプロジェクトでは Amazon Elastic File System を使用して共有ファイルシステムを作成します。サイトで投稿を作成し、コンテンツをアップロードして共有ファイルシステムに保存します。投稿を表示して両方のインスタンスをヒットするまでページを複数回更新し、共有ファイルシステムが動作していることを検証します。

クリーンアップ

Elastic Beanstalk での作業が終了したら、環境を終了できます。Elastic Beanstalk は、Amazon EC2インスタンスデータベースインスタンスロードバランサー、セキュリティグループ、アラーム など、環境に関連付けられたすべての AWS リソースを終了します。

コンソールから Elastic Beanstalk 環境を終了するには
  1. Elastic Beanstalk コンソール を開き、リージョンリストで を選択します AWS リージョン。

  2. ナビゲーションペインで、[環境] を選択し、リストから環境の名前を選択します。

    注記

    環境が多数ある場合は、検索バーを使用して環境リストをフィルタリングします。

  3. [Actions] (アクション)、[Terminate environment] (環境の終了) の順に選択します。

  4. 画面上のダイアログボックスを使用して、環境の終了を確認します。

Elastic Beanstalk を使用すると、いつでもアプリケーション用の新しい環境を簡単に作成できます。

さらに、Elastic Beanstalk 環境の外に作成したデータベースリソースを終了できます。Amazon RDS DB インスタンスを終了すると、スナップショットを作成し、後で別のインスタンスにデータを復元できます。

RDS DB インスタンスを終了するには
  1. Amazon RDSコンソール を開きます。

  2. [データベース] を選択します。

  3. DB インスタンスを選択します。

  4. [アクション] を選択し、[削除] を選択します。

  5. スナップショットを作成するかどうかを選択してから、削除 を選択します。

次のステップ

アプリケーションの開発が進むにつれ、.zip ファイルを手動で作成して Elastic Beanstalk コンソールにアップロードすることなく、環境を管理してアプリケーションをデプロイする方法が必要になります。Elastic Beanstalk コマンドラインインターフェイス (EB CLI) は、 easy-to-use コマンドラインからアプリケーションを作成、設定、および Elastic Beanstalk 環境にデプロイするためのコマンドを提供します。

サンプルアプリケーションは、設定ファイルを使用してPHP設定を設定し、データベースにまだ存在しない場合はテーブルを作成します。設定ファイルを使用して、環境の作成時に時間がかかる設定更新を避けるために、インスタンスのセキュリティグループ設定を設定できます。詳細については、「設定ファイル (.ebextensions) による高度な環境のカスタマイズ」を参照してください。

開発とテストのために、マネージド DB インスタンスを環境に直接追加するために Elastic Beanstalk の機能を使用することが必要になる場合があります。環境内でのデータベースのセットアップについては、「Elastic Beanstalk 環境にデータベースを追加する」を参照してください。

高パフォーマンスデータベースが必要な場合は、Amazon Aurora の使用を検討します。Amazon Aurora は、商用データベース機能を低コストで提供する SQL互換のデータベースエンジンです。アプリケーションを別のデータベースに接続するには、セキュリティグループ設定手順を繰り返し、 RDS関連の環境プロパティ を更新します

最後に、実稼働環境でアプリケーションを使用する予定の場合は、環境にカスタムドメイン名を設定し、安全な接続のために を有効にするHTTPS必要があります。