ホスティングAWS Elastic Beanstalkでのワードプレス
このチュートリアルでは、AWS Elastic Beanstalkで外部のRDS DBインスタンスを起動すると、それに接続するためのWordPressのウェブサイトを実行している高可用性環境を構成するプロセスを説明します。 Elastic Beanstalkで外部のDBインスタンスを実行すると、お使いの環境のライフサイクルからデータベースを切り離し、そしてあなたは、複数の環境から同じデータベースに接続する別のための1つのデータベースを入れ替える、またはデータベースに影響を与えずに、青/緑の配置を実行することができます。
アマゾンRDSでDBインスタンスを起動します。
Elastic Beanstalkでで実行中のアプリケーションで外部データベースを使用するには、まずアマゾンRDSでDBインスタンスを起動します。あなたはアマゾンRDSでインスタンスを起動すると、それは、Elastic Beanstalkで、あなたElastic Beanstalkで環境から完全に独立しており、終了またはElastic Beanstalkでによって監視されることはありません。
マルチAZのMySQL DBインスタンスを起動するためにアマゾンRDSコンソールを使用してください。マルチAZ配備を選択すると、データベースがフェイルオーバーとマスターDBインスタンスがサービスの外に出た場合には利用可能であり続けることを保証します。
デフォルトのVPC内のRDS DBインスタンスを起動するには
ナビゲーションペイン内のインスタンスを選択してください。
起動DBインスタンスを選択してください。
DBエンジンとプリセットの設定を選択してください。
下のDB詳細を指定します。 DBインスタンスのクラスを選択してください。高可用性のために、YesにマルチAZ配備を設定します。
[設定]の下で。 DBインスタンス識別子の値を入力します。マスターユーザー名。そして、マスターパスワード(およびパスワードの確認)およびそれ以降に入力した値に注意してください。
ネットワークとセキュリティの設定については、以下を選択します。
公にアクセス - なし
アベイラビリティゾーン - 優先なし
VPCセキュリティグループ - デフォルトVPCセキュリティグループ
データベース名の。タイプebdb。そして残りのオプションのデフォルト設定を確認します。次のオプションの値に注意してください。
起動DBインスタンスを選択してください。
次に、適切なポート上の着信トラフィックを許可するように、あなたのDBインスタンスにアタッチセキュリティグループを変更します。これは、後で自分のElastic Beanstalkで環境に付着する同じセキュリティグループなので、あなたが追加したルールは、同じセキュリティグループ内の他のリソースへの進入許可を与えます。
あなたのRDSインスタンスのセキュリティグループ上の入力規則を変更するには
ビューを展開するためにあなたのDBインスタンスのエントリの隣にある矢印を選択してください。
[詳細]タブを選択してください。
セキュリティおよびネットワークのセクションでは、DBインスタンスに関連付けられたセキュリティグループが示されています。アマゾンEC2コンソールのセキュリティグループを表示するには、リンクを開きます。
また、エンドポイントは、後で使用するために、このページに表示される注意してください。
セキュリティグループの詳細では、インバウンド]タブを選択します。
[ルールの追加]を選択します。
入力してください。アプリケーションが使用するDBエンジンを選択します。
ソース用。 [カスタム]を選択します。その後、セキュリティグループのグループIDを入力します。これは、セキュリティグループ内のリソースは、同じグループ内の他のリソースからデータベースポート上のトラフィックを受信することができます。
DBインスタンスを作成すると、約10分かかります。一方、ワードプレスをダウンロードして、Elastic Beanstalkで環境を起動します。
ワードプレスをダウンロード
AWS Elastic Beanstalkでを使用してワードプレスを展開する準備をするには、コンピューターにWordPressのファイルをコピーして、いくつかの設定情報を提供する必要があります。 AWS Elastic Beanstalkでは、ZIPまたはWARファイルの形式で、ソース・バンドルが必要です。
ワードプレスをダウンロードして、ソース・バンドルを作成するには
最新リリースをダウンロードしてください。
あなたはワードプレス、豆の木に名前を変更する必要があり、ローカルコンピュータ上のフォルダにダウンロードからWordPressのファイルを抽出します。
以下のリポジトリ内の構成ファイルをダウンロードします。
あなたのワードプレス・豆の木のフォルダに設定ファイルを抽出します。
あなたのワードプレス・豆の木フォルダの構造が正しいことを確認してください。
デフォルトのVPCとサブネット、およびパブリックIPアドレスのIDを持つ.ebextensionsフォルダ内の構成ファイルを変更します。
.ebextensions / EFS-create.configファイルは、EFSファイルシステムを作成し、あなたのVPC内の各アベイラビリティゾーン/サブネットにマウントポイントを。デフォルトのVPCとサブネットIDは、Amazon VPCコンソールで確認します。
.ebextensions / dev.configファイルには、WordPressのインストールプロセス中にそれを保護するためにあなたのIPアドレスにご使用の環境へのアクセスを制限します。あなたのパブリックIPアドレスを使用してファイルの先頭近くにプレースホルダのIPアドレスを交換してください。
お使いのオペレーティングシステムに応じて、次のいずれかの方法を使用して、ワードプレス-ジャックと豆の木フォルダ(ない親ディレクトリ)内のファイルやフォルダからZIPファイルを作成します。
その後、Windowsのエクスプローラで、ファイルやフォルダを選択し、右クリックして、に送信を選択します - Windowsの。圧縮(zip形式)フォルダ。ファイルwordpress-x.y.z.zip名前を付けます。 X.Y.Zは、ワードプレスのバージョンです。
マックOS XとLinux - X.Y.ZはWordPressのバージョンでは、次のコマンドを使用します:
Elastic Beanstalkで環境を起動します。
Elastic Beanstalkで環境を起動するAWS管理コンソールを使用してください。
プラットフォーム用。 PHPを選択してください。
アプリケーションコードの場合。あなたのコードをアップロードして選択します。
アップロード]を選択して、あなたのWordPressのファイル用に作成したZIPファイルに移動します。
アプリケーションコードを選択するためにアップロードして選択してください。
より多くのオプションを設定して選択してください。
設定のプリセットのため。カスタム構成を選択します。
変更のプラットフォーム構成を選択して、64ビットのLinuxのアマゾンにドロップダウンメニューから、PHP 5.6を実行している2016.09 v2.3.1を選択し、[保存]を選択します。
すべてのオプションを確認し、それらのオプションに満足したら、アプリを作成]を選択します。
環境の作成は、約5分かかります。
セキュリティグループおよび環境プロパティを設定します
次に、実行中の環境へのDBインスタンスのセキュリティグループを追加します。この手順は、付属の追加のセキュリティグループを使用して、環境内のすべてのインスタンスを再プロビジョニングするElastic Beanstalkでの原因となります。
ご使用の環境にセキュリティグループを追加するには
お使いの環境の管理ページに移動します。
インスタンスの設定アイコンを選択します()。
EC2のセキュリティグループの場合。 RDS DBインスタンスのセキュリティグループの名前に続いて、自動生成されたセキュリティグループの名前の後にコンマを入力します。デフォルトでは、RDSコンソールは、RDS-発射ウィザードと呼ばれるセキュリティグループを作成します。
警告を読み、[保存]を選択します。
次に、環境プロパティを使用して、環境への接続情報を渡します。サンプルアプリケーションは、プロビジョニング環境内のデータベースをElastic Beanstalkでは、設定したものと一致するプロパティのデフォルトセットを使用しています。
アマゾンRDS DBインスタンスのための環境プロパティを設定するには
お使いの環境の管理ページに移動します。
ソフトウェアの設定]セクションで、選択します。
環境プロパティセクションでは、アプリケーションは、接続文字列を構築するために読み込む変数を定義します。統合されたRDS DBインスタンスを持つ環境との互換性を保つために、次のようにします。
RDS_HOSTNAME - DBインスタンスのホスト名。
アマゾンRDSのコンソールラベル - エンドポイントは、ホスト名とポートを兼ね備えています。
RDS_PORT - DBインスタンスが接続を受け入れるポート。デフォルト値は、DBエンジンの間で変動します。
アマゾンRDSのコンソールラベル - ポート
RDS_DB_NAME - データベース名、ebdb。
アマゾンRDSのコンソールラベル - DB名
RDS_USERNAME - あなたのデータベース用に設定されたユーザ名。
アマゾンRDSコンソールラベル - ユーザー名
RDS_PASSWORD - あなたのデータベース用に設定されたパスワード。
追加のプロパティを追加するには、プラス記号(+)を選択します。
ワードプレスをインストールします。
WordPressのインストールを完了するために、
お使いの環境の管理ページに移動します。
ブラウザでサイトを開くために、環境のURLを選択してください。サイトはまだ設定されていないので、あなたは、WordPressのインストールウィザードにリダイレクトされます。
標準インストールを実行します。 WP-config.phpファイルは既にソースコード中に存在し、環境からのデータベース接続情報を読み取るように構成されているので、あなたは、接続を設定するように要求するべきではありません。
インストールが完了するまでに分程度かかります。
キーと塩を更新
WordPressの設定ファイルのwp-config.phpのも、環境プロパティからキーと塩の値を読み取ります。現在、これらのプロパティは、すべての.ebextensionsフォルダ内wordpress.configファイルでテストするために設定されています。
ハッシュ塩は任意の値とすることができるが、それはソースコントロールに格納されるべきではありません。環境上で直接これらのプロパティを設定するには、Elastic Beanstalkでコンソールを使用してください。
環境プロパティを追加するには
お使いの環境の管理ページに移動します。
ナビゲーションペインで[設定]を選択します。
ソフトウェア構成の場合。歯車のアイコンを選択してください。
環境プロパティについては。次の認証設定を定義します。
AUTH_KEY - AUTH_KEYのために選択した値。
SECURE_AUTH_KEY - SECURE_AUTH_KEYのために選択した値。
LOGGED_IN_KEY - LOGGED_IN_KEYのために選択した値。
NONCE_KEY - NONCE_KEYのために選択した値。
AUTH_SALT - AUTH_SALTのために選択した値。
SECURE_AUTH_SALT - SECURE_AUTH_SALTのために選択した値。
LOGGED_IN_SALT - LOGGED_IN_SALTのために選択した値。
NONCE_SALT - NONCE_SALTのために選択した値。
環境のプロパティを設定すると、直接wordpress.config内の値を上書きします。
環境を更新
このチュートリアルでは、ネットワークからの接続にポート80経由のHTTPアクセスを制限するためにあなたがdev.configに設定されたIPアドレスを使用して、セキュリティグループを作成し、環境の負荷分散装置に割り当て、設定ファイル(ロードバランサー-sg.config)を含み、 。これは、あなたのWordPressのインストールを完了し、管理者アカウントを設定している前に、潜在的にあなたのサイトに接続しているから外部の第三者を防ぐことができます。ロードバランサの設定からこの制限を削除し、インターネットにサイトを開くには、次の手順を使用することができます。
制限を解除し、ご使用の環境を更新するには
ローカルコンピュータ上で、ワードプレス-ジャックと豆の木フォルダから.ebextensions /ロードバランサー-SG-configファイルを削除します。
お使いのオペレーティングシステムに応じて、次のいずれかの方法を使用して、ワードプレス-ジャックと豆の木フォルダ(ない親ディレクトリ)内のファイルやフォルダからZIPファイルを作成します。
その後、Windowsのエクスプローラで、ファイルやフォルダを選択し、右クリックして、に送信を選択します - Windowsの。圧縮(zip形式)フォルダ。 X.Y.ZはWordPressのバージョンで次の形式を使用して、ファイルに名前を付けます。
マックOS XとLinux - X.Y.ZはWordPressのバージョンでは、次のコマンドを使用します:
お使いの環境の管理ページに移動します。
アップロードおよび配布を選択してください。
[ファイルの選択]を選択して、あなたのWordPressのファイル用に作成したZIPファイルに移動します。
以前のバージョンから、この更新されたバージョンを区別バージョンのラベルを入力します。
設定自動スケーリング
最後に、高い最小インスタンス数を、ご使用の環境の自動スケーリンググループを設定します。単一障害点であるから、ご使用の環境内のWebサーバーを防ぐために、そしてあなたがサービスからあなたのサイトを取らずに変更を展開できるようにするために、すべての回で、少なくとも2つのインスタンスを実行します。
高可用性のために、ご使用の環境の自動スケーリンググループを設定するには
お使いの環境の管理ページに移動します。
オートスケーリングの下で。 2カウント最小インスタンスを設定し、最大インスタンスは2よりも高い値にカウント。
環境を起動すると、次のリソースを作成します。
EC2インスタンス - あなたが選択したプラットフォーム上でWebアプリケーションを実行するように構成されたアマゾン弾性計算クラウド(Amazon EC2の)仮想マシン。
各プラットフォームは、ソフトウェア、コンフィギュレーションファイルの異なるセットを実行し、スクリプトは、その特定の言語バージョン、フレームワーク、Webコンテナ、またはそれらの組み合わせをサポートします。ほとんどのプラットフォームでは、Webアプリの前に座っているリバースプロキシとしてApacheやnginxのいずれかを使用して、静的な資産を提供しており、アクセスおよびエラーログを生成し、それに要求を転送します。
インスタンスのセキュリティグループ - ポート80このリソースに侵入するのを許可するように構成されたAmazon EC2のセキュリティグループは、Webアプリケーションを実行しているEC2インスタンスに到達ロードバランサからHTTPトラフィックをすることができます。デフォルトでは、トラフィックが他のポート上で許可されていません。
ロードバランサ - あなたのアプリケーションを実行しているインスタンスに要求を分配するように構成弾性ロードバランシングロードバランサ。ロードバランサは、インターネットに直接あなたのインスタンスを公開する必要がなくなります。
ロードバランサセキュリティグループ - ポート80このリソースに侵入するのを許可するように構成されたAmazon EC2のセキュリティグループは、ロードバランサに達し、インターネットからのHTTPトラフィックをすることができます。デフォルトでは、トラフィックが他のポート上で許可されていません。
自動スケーリンググループ - 自動スケーリンググループは、それが終了するか、使用できなくなっている場合、インスタンスを置き換えるように構成されています。
Amazon S3のバケット - ソースコード、ログ、およびあなたがElastic Beanstalkで使用したときに作成されている他の成果物の保管場所。
アマゾンCloudWatchのアラーム - お使いの環境でのインスタンスの負荷を監視し、負荷が高すぎる、または低すぎる場合にトリガされた2つのCloudWatchのアラーム。アラームがトリガーされると、あなたの自動スケーリンググループは応答してアップまたはスケールダウン。
AWS CloudFormationは、スタック - Elastic Beanstalkでは、ご使用の環境内のリソースを起動し、設定変更を伝播するためにAWS CloudFormationを使用しています。リソースは、あなたがAWS CloudFormationコンソールで表示できるテンプレートで定義されています。
ドメイン名 - フォームのサブドメインでウェブアプリへのルートドメイン名。地域.elasticbeanstalk.com。
これらのリソースはすべて、Elastic Beanstalkでによって管理されています。ご使用の環境を終了すると、Elastic Beanstalkでは、それが含まれているすべてのリソースを終了します。あなたがそのライフサイクルの管理を担当しているので、あなたが開始したRDS DBインスタンスは、ご使用の環境の外にあります。
Elastic Beanstalkでは、作成しS3バケットは、環境の間で共有され、環境の終了時に削除されません。詳細については、Amazon S3のでElastic Beanstalkでの使用を参照してください。
あなたはElastic Beanstalkでの作業が完了したら、あなたは自分の環境を終了することができます。 Elastic Beanstalkでは、Amazon EC2インスタンスとして、ご使用の環境に関連するすべてのAWSリソースを終了します。データベースインスタンス。ロードバランサ。セキュリティグループ、およびアラーム。
あなたのElastic Beanstalkで環境を終了するには
お使いの環境の管理ページに移動します。
アクションを選択してください。 [環境を終了]を選択します。
確認終了]ダイアログボックスで、環境名を入力し、[終了]を選択します。
また、あなたがあなたのElastic Beanstalkで環境外で作成されたデータベースのリソースを終了することができます。あなたはアマゾンRDSデータベースインスタンスを終了するときは、スナップショットを取ると、後で別のインスタンスにデータを復元することができます。
あなたのRDS DBインスタンスを終了するには
あなたのDBインスタンスを選択してください。
インスタンスのアクションを選択してください。その後、[削除]を選択します。
スナップショットを作成するかどうかを選択して、[削除]を選択します。
DynamoDBのテーブルを削除するには
DynamoDBのコンソールに表ページを開きます。
アクションを選択してください。その後、テーブルを削除]を選択します。
次のステップ
あなたがあなたのアプリケーションを開発し続けている、あなたはおそらく環境を管理し、手動で.zipファイルを作成し、Elastic Beanstalkでコンソールにアップロードせずにアプリケーションを配備することをお勧めします。 Elastic Beanstalkでコマンドラインインタフェース(CLI EB)は、作成、構成、およびコマンドラインからElastic Beanstalkで環境にアプリケーションを展開するための使いやすいコマンドを提供します。
サンプルアプリケーションでは、PHPの設定を構成し、それがまだ存在しない場合には、データベース内のテーブルを作成するために、設定ファイルを使用しています。また、時間のかかる設定の更新を回避するために、環境の作成中に、あなたのインスタンスのセキュリティグループの設定を構成するには、構成ファイルを使用することができます。詳細については、設定ファイル(.ebextensions)と高度な環境のカスタマイズを参照してください。
開発とテストのために、ご使用の環境に直接管理DBインスタンスを追加するためのElastic Beanstalkでの機能を使用する場合があります。ご使用の環境内でのデータベースの設定手順については、Elastic Beanstalkでとデータベースの構成を参照してください。
あなたは高性能なデータベースが必要な場合は、Amazonでオーロラを使用することを検討してください。アマゾンオーロラは、低コストで商用データベース機能を提供していますのMySQL互換のデータベースエンジンです。異なるデータベースにアプリケーションを接続するには、セキュリティグループの設定手順を繰り返し、RDS関連の環境プロパティを更新します。
本番環境でアプリケーションを使用する予定の場合は、ご使用の環境に合わせてカスタムドメイン名を設定します。
あなたがセキュアな接続のためにHTTPSを有効にしたい場合は支援するために利用できるWordPressのプラグインがあります。一例としては、本当に簡単SSLプラグインです。
2017年、Amazon Webサービス、Inc.またはその関連会社。全著作権所有。