
【セッションレポート】AWS 規範ガイダンス 〜クラウドデザインパターン、アーキテクチャ、および実装の解説〜(AWS-41) #AWSSummit
本記事は、2025年6月25-26日に幕張メッセで開催された AWS Summit Japan 2025 のセッションレポートとなります。
セッション概要
- 日時: 2025年6月26日(木)14:50-15:30
- 登壇者: 福井 厚(アマゾン ウェブ サービス ジャパン合同会社 プロトタイプ&クラウドエンジニアリング本部 シニアデベロッパースペシャリスト ソリューションアーキテクト)
AWS を有効活用するためにはクラウドにおけるデザインパターンやアーキテクチャとその実装を知ることが大切です。AWS では規範的なガイダンスとして AWS Prescriptive Guidance を公開しています。このセッションでは、このガイダンスに書かれているクラウドデザインパターンとそのアーキテクチャ、実装について分かりやすく解説します。クラウドデザインパターンを改めて見直す良い機会になれば幸いです。
「AWS 規範ガイダンスクラウドデザインパターン、アーキテクチャ、および実装」とは
モダナイゼーションにおける設計パターンを実装するための指針を提供するガイドです。以下のリンクからアクセスできます。
いくつかのデザインパターンが紹介されていますが、時間の都合上、セッションでは以下の4つのデザインパターンが紹介されました。
- 腐敗防止層
- イベントソーシング
- ストラングラーフィグ
- トランザクショナルアウトボックス
(スライドとしては、全パターン分を用意していたとのこと・・・すごい)
セッションで紹介された4つのパターンを本記事ですべてまとめたいところですが、トランザクショナルアウトボックスパターンのみを取り上げます。
パターンの利用についての注意点
の前に、パターンの利用についての注意点が説明されました。
特に重要な点として、パターンは銀の弾丸ではないということです。パターンはあくまでガイドラインであり、すべてのケースに適用できるわけではありません。プロジェクトの要件や制約に応じて適切なパターンを選択する必要があります。
また、パターンは先人の知恵を集約したものである、というところも押さえておくべきポイントです。パターンがチームの共通理解を促進させ、より効率的な開発を実現するための手段となります。
トランザクショナルアウトボックス
分散システムにおいて、データの一貫性を保ちながらイベント駆動型の通信を実現することは難しい課題です。トランザクショナルアウトボックスパターンは、データベースのトランザクションとイベントの発行を一貫して行うための手法です。
セッションでは、航空券予約システムを例に2つのアプローチが紹介されました。航空券の予約と支払いの処理を行うシステムで、予約が成功した場合に支払い処理用にイベントを発行する必要があります。このとき、データベースのトランザクションとイベントの発行をどのように一貫して行うかが課題となります。
最初のアプローチでは、トランザクションの一部としてイベントをアウトボックステーブルに保存します。その後、アウトボックス用のサービスがアウトボックステーブルからイベントを読み取り、別のイベントストリームに書き込みます。支払いサービスがそのイベントを受信し、支払いの処理を行います。
もう1つのアプローチでは、イベントをアウトボックスに保存する代わりに、イベントストリームに直接書き込みます。セッションでは、DynamoDB Streams を使用して、イベントを Amazon Kinesis Data Streams に書き込む方法が紹介されました。
これらのアプローチは、以下のように分類できます。
- リレーショナルデータベースを利用する⽅法
- CDC を利用する⽅法
どちらが優れているというわけではありません。選定した技術スタックやシステムの要件に応じて、適切なアプローチを選択することが重要です。
まとめ
いずれのパターンにも考慮すべき点はあります。パターンは万能ではない、ということを常に念頭に置く必要があるという点をあらためて感じました。
そのためにも、パターンについての理解を深めることが大切です。冒頭で紹介したガイドには、パターンを導入する理由は何か、適用対象は何か、問題点や考慮点は何か、などが詳しく説明されています。これらを参考にしながら、より効率的で信頼性の高いシステムを構築していけると良いですね。