

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# クラウド設計パターン、アーキテクチャ、および実装
<a name="introduction"></a>

Amazon Web Services (AWS)、Anitha Deenadayalan

*2024 年 5 月* ([ドキュメント履歴](doc-history.md))

本ガイドでは、一般的に使用されるモダナイゼーション設計パターンを AWS のサービスを使って実装するためのガイダンスを提供します。スケーラビリティの実現、リリース速度の向上、変更による影響範囲の縮小、リグレッションの軽減を目的として、マイクロサービスアーキテクチャを使用して設計される最新のアプリケーションが増えています。これにより、開発者の生産性が向上し、俊敏性が向上し、イノベーションが促進され、ビジネスニーズへの注力を強化することができます。マイクロサービスアーキテクチャは、サービスとデータベースに最適なテクノロジーの使用もサポートし、多言語コードや多言語永続性を促進します。

従来、モノリシックアプリケーションは単一プロセスで実行され、1 つのデータストアを使用し、垂直方向にスケーリングするサーバー上で実行されていました。それに比べ、最新のマイクロサービスアプリケーションはきめ細かく、独立したフォールトドメインを持ち、ネットワーク全体でサービスとして実行され、ユースケースによっては複数のデータストアを使用できます。サービスは水平方向にスケーリングするため、1 つのトランザクションが複数のデータベースにまたがる場合もあります。開発チームは、マイクロサービスアーキテクチャを使用してアプリケーションを開発する場合、ネットワーク通信、多言語永続性、水平スケーリング、結果整合性、およびデータストア全体のトランザクション処理に重点を置く必要があります。したがって、モダナイゼーションパターンは、最新のアプリケーション開発でよく発生する問題を解決する上で不可欠であり、ソフトウェア配信の迅速化にも役立っています。

本ガイドでは、綿密に設計されたベストプラクティスに基づいて設計パターンに適したクラウドアーキテクチャを選択したいと考えているクラウドアーキテクト、テクニカルリード、アプリケーションオーナー、ビジネスオーナー、および開発者向けのテクニカルリファレンスを提供します。本ガイドで説明する各パターンは、マイクロサービスアーキテクチャにおける 1 つまたは複数の既知のシナリオに対応しています。このガイドでは、各パターンに関連する問題と考慮事項について説明し、高レベルのアーキテクチャ実装を示すほか、パターンに合わせた AWS 実装について説明します。利用可能な場合は、オープンソースの GitHub サンプルとワークショップのリンクが提供されます。

このガイドでは以下のパターンがカバーされています。
+ [腐敗防止層](acl.md)
+ [API ルーティングパターン](api-routing.md):
  + [ホスト名ルーティング](api-routing-hostname.md)
  + [パスルーティング](api-routing-path.md)
  + [HTTP ヘッダールーティング](api-routing-http.md)
+ [回路ブレーカー](circuit-breaker.md)
+ [イベントソーシング](event-sourcing.md)
+ [六角形アーキテクチャ](hexagonal-architecture.md)
+ [Publish-subscribe](publish-subscribe.md)
+ [バックオフでの再試行](retry-backoff.md)
+ [Saga パターン](saga.md):
  + [Saga コレオグラフィ](saga-choreography.md)
  + [Saga オーケストレーション](saga-orchestration.md)
+ [散布-収集](scatter-gather.md)
+ [Strangler fig](strangler-fig.md)
+ [トランザクション送信トレイ](transactional-outbox.md)

## 目標とするビジネス成果
<a name="targeted-business-outcomes"></a>

本ガイドで説明されているパターンを使用してアプリケーションをモダナイズすると、次のことが可能になります。
+ コストとパフォーマンスが最適化された、信頼性が高く、セキュアで、運用効率の高いアーキテクチャを設計および実装できます。
+ これらのパターンを必要とするユースケースのサイクルタイムを短縮できるため、代わりに組織固有の課題に集中できるようになります。
+ AWS のサービスを使用してパターン実装を標準化することにより、開発を加速できます。
+ 技術的負債を引き継ぐことなく、開発者が最新のアプリケーションを構築できるように支援できます。