スキップしてコンテンツを表示

ダウンタイム、データベース同期の問題、またはデータ損失を回避して Amazon RDS インスタンスを Elastic Beanstalk 環境からデカップリングする方法を教えてください。

所要時間3分
0

AWS Elastic Beanstalk 環境にアタッチされた Amazon Relational Database Service (Amazon RDS) インスタンスがあります。ダウンタイム、データベースの同期の問題、データ損失が発生しないようにしながら、インスタンスと環境の間の依存関係を除去したいと考えています。

簡単な説明

環境の状態に影響を及ぼすことなく、データベースを Elastic Beanstalk 環境からデカップリングするには、以下の手順に従います。

  1. Amazon RDS DB スナップショットを作成します。
  2. RDS DB インスタンスを削除から保護します。
  3. 新しい Elastic Beanstalk 環境を作成します。
  4. ブルー/グリーンデプロイを実行します。
  5. 古い環境のデータベース削除ポリシーを更新します。
  6. RDS インスタンスを古い環境からデカップリングします。
  7. 古い環境を終了します。

重要: RDS DB インスタンスを Elastic Beanstalk 環境にアタッチすることは、開発環境とテスト環境でのみ行うことがベストプラクティスです。本番環境では、データベースインスタンスのライフサイクルはアプリケーション環境のライフサイクルに関連しています。したがって、本番環境では RDS DB インスタンスを Elastic Beanstalk 環境にアタッチしないことがベストプラクティスです。環境を終了すると、DB インスタンスが環境によって削除されるため、データが失われます。詳細については、「Using Elastic Beanstalk with Amazon RDS」(Amazon RDS で Elastic Beanstalk を使用する) を参照してください。

解決策

インスタンスの DB スナップショットを作成する

インスタンスの DB スナップショットを作成するには、次の手順を実行します。

  1. Elastic Beanstalk コンソールを開きます。
  2. Elastic Beanstalk 環境を選択します
  3. 環境 ID をコピーします。
  4. Aurora と RDS コンソールを開きます。
  5. ナビゲーションペインで [データベース] をクリックします。
  6. 検索フィールドに環境 ID を入力し、データベースを選択します。
  7. DB スナップショットを作成します

DB インスタンスを削除から保護する

DB インスタンスを削除から保護するには、次の手順を実行します。

  1. Aurora と RDS コンソールを開きます。
  2. ナビゲーションペインで [データベース] をクリックします。
  3. データベースを選択し、[変更] をクリックします。
  4. [削除保護][削除保護を有効にする] を選択し、[続行] をクリックします。
  5. [スケジュールの変更] で、[すぐに適用する] を選択し、[クラスターを変更する] をクリックします。
  6. Aurora と RDS コンソールを更新してから、削除保護が有効になっていることを確認します。

新しい Elastic Beanstalk 環境を作成する

注: 新しい Elastic Beanstalk 環境には DB インスタンスを含めることはできません。

新しい Elastic Beanstalk 環境を作成するには、以下の手順を実行します。

  1. 新しい Elastic Beanstalk 環境を作成します。
  2. 新しい Elastic Beanstalk 環境を古い Elastic Beanstalk 環境の既存の DB インスタンスに接続します。詳細については、「Launching and connecting to an external Amazon RDS instance in a default virtual private cloud (VPC)」(デフォルトの仮想プライベートクラウド (VPC) で外部 Amazon RDS インスタンスを起動して接続する) を参照してください。
  3. 新しい環境が既存の DB インスタンスに接続し、アプリケーションが正常に動作することを確認します。

ブルー/グリーンデプロイを実行してダウンタイムを回避する

注: ブルー/グリーンデプロイまたは CNAME スワップを後で実行するには、両方の Elastic Beanstalk 環境が同じアプリケーションの一部である必要があります。

ブルー/グリーンデプロイを実行するには、次の手順を実行します。

  1. 新しい環境の Elastic Beanstalk コンソールを開きます。
  2. 古い Elastic Beanstalk 環境と新しい Elastic Beanstalk 環境の環境 URL を交換します。詳細については、「Blue/green deployments with Elastic Beanstalk」(Elastic Beanstalk によるブルー/グリーンデプロイ) を参照してください。
  3. 新しい環境の URL が応答し、アプリケーションが正しく動作することを確認します。

重要: DNS の変更が反映され、古い DNS レコードが期限切れになるまで、古い Elastic Beanstalk 環境を終了しないでください。DNS レコードが期限切れになるまでに最大 48 時間かかることがあります。DNS サーバーは、DNS レコードに設定した保持期間 (TTL) に基づいてキャッシュから古いレコードを消去しません。

古い環境のデータベース削除ポリシーを更新する

古い環境のデータベース削除ポリシーを更新するには、次の手順を実行します。

  1. 古い環境の Elastic Beanstalk コンソールを開きます。
  2. ナビゲーションペインで、[設定] をクリックします。
  3. [ネットワークとデータベース][編集] を選択します。
  4. [データベース設定] で、[データベース削除ポリシー][保持する] に設定します。
  5. [適用] をクリックします。設定の変更を保存するまでに数分かかります。

重要: データベース削除ポリシーの変更が古い環境に適用されてから、次のステップに進んでください。

RDS インスタンスを古い環境からデカップリングする

RDS インスタンスを古い環境からデカップリングするには、次の手順を実行します。

  1. 古い環境の Elastic Beanstalk コンソールを開きます。
  2. ナビゲーションペインで、[設定] をクリックします。
  3. [ネットワークとデータベース] 設定で、[編集] をクリックします。
  4. [データベース設定] で、**[データベース削除ポリシー] ** が [保持する] に設定されていることを確認します。
  5. [データベース接続] セクションで、[データベースをデカップリング] を選択します。
  6. [適用] をクリックします。

注: データベースがデカップリングされても、データベースは引き続き稼働します。通常 5 分もかからずにデータベースをデカップリングできます。

古い環境を終了する

新しい環境の機能が検証されたら、古い Elastic Beanstalk 環境を終了します。

環境を終了すると、Elastic Beanstalk によって作成された DB インスタンスと RDS セキュリティグループを除くすべての Elastic Beanstalk リソースが削除されます。ロードバランスされた Elastic Beanstalk 環境の一部として RDS インスタンスを作成すると、Elastic Beanstalk は Elastic Load Balancing (ELB) セキュリティグループを作成します。また、Elastic Beanstalk は Amazon Elastic Compute Cloud (Amazon EC2) セキュリティグループも作成して、環境内の EC2 インスタンスにアタッチします。また、Elastic Beanstalk は RDS セキュリティグループを作成して、RDS インスタンスにアタッチします。EC2 セキュリティグループからのポート 3306 でのインバウンドトラフィックを許可するために、Elastic Beanstalk は RDS セキュリティグループにセキュリティグループインバウンドルールを追加します。

データベースをデカップリングしても、Elastic Beanstalk はセキュリティグループのインバウンドルールを削除しません。このセキュリティグループのインバウンドルールは、Elastic Beanstalk が作成した RDS セキュリティグループから EC2 セキュリティグループを参照します。環境を終了しても、デカップリングされた RDS セキュリティグループは EC2 セキュリティグループを参照し続けるため、Elastic Beanstalk は環境を終了できません。

Elastic Beanstalk 環境を終了するには、次の手順を実行します。

  1. 古い環境の Elastic Beanstalk コンソールを開きます。
  2. ナビゲーションペインで、[設定] をクリックします。
  3. [インスタンストラフィックとスケーリング] で、[EC2 セキュリティグループ] にある EC2 セキュリティグループ名をメモします。
  4. Amazon EC2 コンソールを開きます。
  5. ナビゲーションペインで [セキュリティグループ] をクリックします。
  6. [セキュリティグループ] ページで、EC2 セキュリティグループ名を入力します。
  7. セキュリティグループ ID を書き留めておきます。形式は「sg-xxxxxxxx」のようになります。
  8. Aurora と RDS コンソールを開きます。
  9. ナビゲーションペインで、[データベース] をクリックし、DB インスタンスの名前を選択します。
  10. [接続とセキュリティ] で、サブネット、セキュリティグループ、およびエンドポイントを書き留めておきます。次に、[セキュリティ] で、セキュリティグループ名を選択します。
  11. EC2 コンソールで [セキュリティグループ] ページが開いたら、セキュリティグループを選択します。
  12. [インバウンドルール] で、[インバウンドルールの編集] を選択します。
  13. セキュリティグループのルールを特定します。
  14. [削除] をクリックしてから、[ルールを保存] をクリックします。
  15. 古い環境の Elastic Beanstalk コンソールを開きます。
  16. [アクション] をクリックし、[環境を終了する] をクリックします。データベースをデカップリングしても、Elastic Beanstalk はセキュリティグループのインバウンドルールを削除しません。セキュリティグループのインバウンドルールは、Elastic Beanstalk が作成した RDS セキュリティグループから EC2 セキュリティグループを参照します。
AWS公式更新しました 3年前
コメントはありません

関連するコンテンツ