Amazon RDS で Elastic Beanstalk を使用する - AWS Elastic Beanstalk

Amazon RDS で Elastic Beanstalk を使用する

AWS Elastic Beanstalk は、Elastic Beanstalk 環境での「Amazon Relational Database Service (Amazon RDS) インスタンスの実行」をサポートします。詳細については、「データベースを Elastic Beanstalk 環境に追加する」を参照してください。この作業は環境の開発およびテストに適しています。ただし、データベースインスタンスのライフサイクルをアプリケーション環境のライフサイクルに結び付けるため、実稼働環境に理想的なものではありません。

注記

アプリケーションで DB インスタンスを使用したことがない場合は、最初に Elastic Beanstalk コンソールを使用してテスト環境にインスタンスを追加してください。これにより、アプリケーションが環境プロパティを読み取り、接続文字列を作成し、Amazon Virtual Private Cloud (Amazon VPC) とセキュリティグループ設定を組み合わせに追加する前に DB インスタンスに接続できることを確認します。詳細については、「データベースを Elastic Beanstalk 環境に追加する」を参照してください。

環境からデータベースインスタンスを分離するには、Amazon RDS でデータベースインスタンスを実行し、アプリケーションの起動時にそれに接続するように設定します。これにより、複数の環境をデータベースに接続し、データベースに影響を与えないで環境を終了して、Blue/Green デプロイでシームレスな更新を実行できます。詳細については、「ダウンタイム、データベース同期の問題、またはデータの損失なしで Amazon RDSインスタンスを Elastic Beanstalk 環境から分離するには、どうすれば良いですか?」を参照してください。

環境内で Amazon EC2 インスタンスに外部データベースへの接続を許可するには、追加のセキュリティグループで環境の Auto Scaling グループを設定できます。環境にアタッチするセキュリティグループには、データベースのインスタンスにアタッチするセキュリティグループ、またはデータベースセキュリティグループが着信を許可する別のセキュリティグループと同じものを指定できます。

注記

Elastic Beanstalk が環境の Auto Scaling グループにアタッチする自動生成されるセキュリティグループからの着信を許可するデータベースのセキュリティグループにルールを追加することで、データベースに環境を接続することができます。ただし、これを行うことで 2 つのセキュリティグループ間に依存性が生じます。したがって、データベースのセキュリティグループは環境のセキュリティグループに依存するため、環境を終了しようとすると、Elastic Beanstalk は環境のセキュリティグループを削除できなくなります。

データベースインスタンスを起動しセキュリティグループを設定すると、環境プロパティを使用して、接続情報 (エンドポイント、パスワードなど) をアプリケーションに渡すことができます。これは、ご使用の環境でデータベースインスタンスを実行するときに Elastic Beanstalk が使用するのと同じメカニズムです。

セキュリティを高めるには、接続情報を Amazon S3 に保存し、デプロイの間にデータを取得するように Elastic Beanstalk を設定します。設定ファイル (.ebextensions) を使用して環境内のインスタンスを設定し、アプリケーションをデプロイするときに、Amazon S3 からファイルを安全に取得できます。

外部 Amazon RDS インスタンスのクリーンアップ

外部 Amazon RDS インスタンスを Elastic Beanstalk 環境に接続すると、データベースインスタンスは環境のライフサイクルに束縛されず、環境を終了しても削除されません。データベースインスタンスに保存した個人情報が不必要に保持されないようにするには、不要になったレコードを削除するか、データベースインスタンスを削除します。