ダウンタイム、データベース同期の問題、またはデータの損失なしで Amazon RDS インスタンスを Elastic Beanstalk 環境からデカップリングするにはどうすればよいですか?

所要時間2分
0

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

簡単な説明

環境の健全性に影響を及ぼすことなく、データベースを Elastic Beanstalk 環境からデカップリングするには、次のステップに従います。

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

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

解決方法

RDS DB スナップショットを作成する

  1. Elastic Beanstalk コンソールを開きます。
  2. RDS DB インスタンスからデカップリングする Elastic Beanstalk 環境 (環境 A) を選択します。
  3. ナビゲーションペインで、[Configuration] (設定) を選択します。
  4. [Database] (データベース) で、[Modify] (変更) を選択します。
  5. [Endpoint] (エンドポイント) を選択します。
  6. RDS DB インスタンスの RDS DB スナップショットを作成します。

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

  1. Amazon RDS コンソールを開きます。
  2. データベースを選択してから、[Modify] (変更) を選択します。
  3. [Deletion protection] (削除保護) で、[Enable deletion protection] (削除保護を有効にする) オプションを選択します。
  4. [Continue] (続行) を選択します。
  5. [Scheduling Modifications] (スケジューリングの修正) で、[Apply immediately] (すぐに適用する) を選択します。
  6. [Modify DB Instance] (DB インスタンスを変更) を選択します。
  7. Amazon RDS コンソールを更新してから、削除保護がオンになっていることを確認します。

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

新しい Elastic Beanstalk 環境 (環境 B) では、同じ Elastic Beanstalk アプリケーションに RDS DB インスタンスを含めないでください。

注: 後でブルー/グリーンデプロイ (または CNAME スワップ) を実行するには、環境 A と環境 B が同じアプリケーションの一部であることを確認してください。

  1. 環境 B を作成します。
  2. 環境 B を環境 A の既存の RDS DB インスタンスに接続してください。
    注: 詳細については、「デフォルトの VPC で外部 Amazon RDS インスタンスを起動して接続」を参照してください。
  3. 環境 B が既存の RDS DB インスタンスに接続し、アプリケーションが正常に動作することを確認します。

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

  1. 環境 BElastic Beanstalk コンソールを開きます。
  2. 古い Elastic Beanstalk 環境と新しい Elastic Beanstalk 環境の環境 URL をスワップします。
    注: 詳細については、「Elastic Beanstalk を使用したブルー/グリーンデプロイ」を参照してください。
  3. 環境 B の URL が応答し、アプリケーションが正しく動作することを確認します。

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

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

  1. 環境 AElastic Beanstalk コンソールを開きます。
  2. ナビゲーションペインで、[Configuration] (設定) を選択します。
  3. [Database] (データベース) の設定で、[Edit] (編集) を選択します。
  4. [Database settings] (データベース設定) で、[Database deletion policy] (データベース削除ポリシー) を [Retain] (保持) に設定します。
  5. [Apply] (適用) を選択します。設定の変更を保存するまでに数分かかります。

重要: [Database deletion policy] (データベース削除ポリシー) の変更が beanstalk 環境 A に適用されるまで、次のステップに進まないでください。

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

  1. 環境 AElastic Beanstalk コンソールを開きます。
  2. ナビゲーションペインで、[Configuration] (設定) を選択します。
  3. [Database] (データベース) の設定で、[Edit] (編集) を選択します。
  4. [Database settings] (データベース設定) で、[Database deletion policy] (データベース削除ポリシー) が [Retain] (保持) に設定されていることを確認します。
  5. [Database connection] (データベース接続) セクションに移動し、[Decouple database] (データベースをデカップリング) を選択します。
  6. [Apply] (適用) を選択して、データベースのデカップリングオペレーションを開始します。

: この期間中もデータベースは引き続き稼働し、通常 5 分もかからずにデータベースをデカップリングできます。

古い Elastic Beanstalk 環境を終了する

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

環境を終了すると、Elastic Beanstalk によって作成された RDS DB インスタンスと RDS セキュリティグループを除くすべての Elastic Beanstalk リソースが削除されます。


AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ