289-AWS SAP AWS 「理論・実践・一問道場」Amazon Aurora MySQL 双方向書き込み

 

理論

notion image

クロスリージョンレプリケーションの基本と活用方法

クロスリージョンレプリケーションは、複数のリージョン間でデータを同期し、アプリケーションのパフォーマンスと可用性を向上させる技術です。Amazon RDSとAuroraは、これをサポートし、異なる地域にまたがるデータベースを同期させ、以下の利点を提供します。
  • 低レイテンシ: ユーザーが近いリージョンにアクセスすることで、データアクセスが高速化。
  • 高可用性: 障害発生時にもサービスが継続可能。
  • 災害復旧: 他リージョンでデータを自動的にバックアップ。

主な実装方法

  • Amazon RDS for MySQL: クロスリージョンレプリカを作成し、プライマリインスタンスとの同期を行う。ただし、書き込みは片方向に制限されます。
  • Amazon Aurora MySQL: マルチリージョンAuroraクラスターを使い、双方向書き込みをサポート。これにより、リアルタイムでデータが同期されます。

ベストプラクティス

  • データ整合性の確保: 書き込み競合を管理し、整合性を保つ。
  • モニタリング: レプリケーション状態を監視し、異常時にアラートを受け取る。
これらの技術を活用することで、グローバルに展開するアプリケーションのパフォーマンスと信頼性を高めることができます。
 

実践

一問道場

質問 #289
ある会社は、us-east-1 リージョンの Amazon RDS for MySQL DB インスタンスにデータベースを展開しています。会社は、ヨーロッパのお客様にも同じデータを提供する必要があります。ヨーロッパのお客様は、アメリカのお客様と同じデータにアクセスできる必要があり、高いアプリケーションのレイテンシや古いデータは許容されません。アメリカのお客様とヨーロッパのお客様は両方ともデータベースに書き込みを行う必要があり、どちらのグループのお客様も、もう一方のグループからの更新をリアルタイムで確認できる必要があります。
どのソリューションがこの要件を満たしますか?
A. Amazon Aurora MySQL のレプリカを RDS for MySQL DB インスタンスのレプリカとして作成します。RDS DB インスタンスへのアプリケーションの書き込みを一時停止します。Aurora レプリカをスタンドアロンの DB クラスターとして昇格させます。アプリケーションを Aurora データベースに再構成し、書き込みを再開します。DB クラスターに eu-west-1 をセカンダリリージョンとして追加し、DB クラスターで書き込み転送を有効にします。アプリケーションを eu-west-1 にデプロイし、アプリケーションが eu-west-1 の Aurora MySQL エンドポイントを使用するように設定します。
B. RDS for MySQL DB インスタンスのクロスリージョンレプリカを eu-west-1 に追加します。レプリカを設定して、書き込みクエリをプライマリ DB インスタンスに戻すようにします。アプリケーションを eu-west-1 にデプロイし、アプリケーションが eu-west-1 の RDS for MySQL エンドポイントを使用するように設定します。
C. RDS for MySQL DB インスタンスから最も最近のスナップショットを eu-west-1 にコピーします。そのスナップショットから eu-west-1 に新しい RDS for MySQL DB インスタンスを作成します。us-east-1 から eu-west-1 への MySQL 論理レプリケーションを設定します。DB クラスターで書き込み転送を有効にします。アプリケーションを eu-west-1 にデプロイし、アプリケーションが eu-west-1 の RDS for MySQL エンドポイントを使用するように設定します。
D. RDS for MySQL DB インスタンスを Amazon Aurora MySQL DB クラスターに変換します。DB クラスターに eu-west-1 をセカンダリリージョンとして追加します。DB クラスターで書き込み転送を有効にします。アプリケーションを eu-west-1 にデプロイし、アプリケーションが eu-west-1 の Aurora MySQL エンドポイントを使用するように設定します。

解説

この問題では、ヨーロッパとアメリカの顧客が、リアルタイムで同じデータにアクセスできるように、データベースを高可用性と低レイテンシで提供する方法を求められています。両方の地域からデータベースへの書き込みが必要で、データの整合性を保ちながら、リアルタイムでの更新を反映させることが求められています。

各選択肢の解説

A. Aurora MySQLのレプリカを作成

  • 説明: Aurora MySQLのレプリカを作成し、書き込み転送を有効にするという選択肢です。Auroraでは、セカンダリリージョンにレプリケーションを設定し、書き込み転送を可能にします。しかし、この方法はAurora MySQLを使用する必要があり、RDS for MySQLを使い続ける選択肢には適していません。
  • 適用不可: RDS for MySQLのままで、同じDBインスタンスで書き込みを行いたいという要件に完全には対応していません。

B. RDS for MySQLのクロスリージョンレプリカを作成

  • 説明: クロスリージョンレプリケーションを使用して、書き込みクエリを両地域に同期させる方法です。RDS for MySQLのクロスリージョンレプリケーションは、異なるリージョン間でのデータ同期に有効ですが、書き込みは片方のリージョンで行われ、その書き込みがもう一方のリージョンに転送されます。リアルタイムでの書き込み同期が必要な場合、この方法では適切ではありません。
  • 不適切: 書き込みの同期に遅延が生じる可能性があり、リアルタイム更新の要件には不十分です。

C. スナップショットを使ったMySQLの論理レプリケーション

  • 説明: RDS for MySQLのスナップショットを使用して、別のリージョンに新しいインスタンスを作成し、論理レプリケーションで同期を取る方法です。これにより、データが同期されますが、書き込みの転送については制限があります。また、手動で設定が必要となるため、リアルタイムの更新を保つには手間がかかります。
  • 不適切: データのリアルタイム更新が難しく、複雑な設定が必要です。

D. Aurora MySQLクラスターへの変換とクロスリージョン書き込み転送

  • 説明: RDS for MySQLをAmazon Aurora MySQLに変換し、Aurora MySQLのクロスリージョン機能を活用して、リアルタイムでのデータの整合性を保ちながら、書き込み転送を有効にする方法です。この選択肢は、データベースのスケーラビリティやリアルタイムでのデータ更新を確保できる最適な方法です。Auroraでは、クロスリージョンでの書き込み転送がサポートされており、高可用性が提供されます。
  • 適切: Aurora MySQLは高いパフォーマンスと可用性を提供し、複数リージョン間でのリアルタイム同期が可能です。このため、リアルタイム更新と高可用性を求める要件に最適なソリューションです。

結論

最適なソリューションはDです。RDS for MySQLをAurora MySQLに変換し、クロスリージョン書き込み転送を有効にすることで、両方のリージョンでリアルタイムにデータを更新できるようになります。
290-AWS SAP AWS 「理論・実践・一問道場」VPCホスト型エンドポイント288-AWS SAP AWS 「理論・実践・一問道場」S3+SQS
Loading...
minami
minami
みなみの成長 🐝
Announcement

🎉 ブログへようこそ 🎉

名前: みなみ一人会社
性別:
国籍: China 🇨🇳
政治スタンス: 民主主義支持者
完全独学で基本情報技術者をはじめ、32個の資格を仕事をしながら取得。
現在はIT会社で技術担当として働きながら、ブログ執筆や学習支援にも取り組んでいます。
独学で合格できる学習法や勉強法、試験対策を発信中!

📚 発信内容

  • 💻 IT・システム開発
  • 🏠 不動産 × 宅建士
  • 🎓 MBA 学習記録