

# アーキテクチャの概要
<a name="architecture-overview"></a>

このセクションでは、このソリューションで導入されるコンポーネントのリファレンス実装のアーキテクチャ図を示します。

## アーキテクチャ図
<a name="architecture-diagram"></a>

このソリューションをデフォルトのパラメータを使用してデプロイすると、AWS アカウントに次のコンポーネントがデプロイされます。

![\[画像は、AWS のクォータモニターのアーキテクチャ図を示しています。\]](http://docs.aws.amazon.com/ja_jp/solutions/latest/quota-monitor-for-aws/images/quota-monitor-architecture-diagram.png)


AWS のクォータモニタには、モニタリングアカウントにデプロイする**ハブテンプレート**が含まれています。さらに、このソリューションでは、**Service Quotas スポークテンプレート**と **Trusted Advisor スポークテンプレート**が提供されます。これらのテンプレートは、クォータモニタリングが必要なアカウントにそれぞれデプロイする必要があります。アカウントに Trusted Advisor サービスを含むサポートプランがない場合、ソリューションは **Trusted Advisor スポークテンプレート**をデプロイしません。

これらのテンプレートの使用方法と 2 つの補足テンプレートの詳細については、「[デプロイシナリオを選択する](step-1.-choose-your-deployment-scenario.md)」を参照してください。

**ハブテンプレート**は、次のワークフローを起動します。

1.  **レポート** – このワークフローは、[Amazon SNS](https://aws.amazon.com/sns/) トピック、[Amazon Simple Queue Service](https://aws.amazon.com/sqs/) (Amazon SQS) キュー、[AWS Lambda](https://aws.amazon.com/lambda) 関数サマライザー、および [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) テーブルをプロビジョニングします。キューは、すべてのモニタリング対象アカウントから使用量イベントを受け取ります。Lambda 関数は、すべての使用状況データを DynamoDB テーブルに格納します。

1.  **一元化されたイベント収集** – このワークフローでは、[Amazon EventBridge](https://aws.amazon.com/eventbridge) のカスタムバス、対応するルール、およびアラートを発生させる Amazon SNS トピックをプロビジョニングします。このワークフローでは、クォータの使用状況に関するアラートを発生させ、アラートレベルを次のように定義します。
   +  **OK** (使用率 80% 未満)
   +  **WARN** (使用率 80%～99%)
   +  **ERROR** (使用率 100%)

     [AWS Systems Manager](https://aws.amazon.com/systems-manager/) [Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) の通知設定を使用して特定のサービスまたはクォータを除外することで、アラートをフィルタリングできます。ワークフローはまた、DynamoDB に使用状況データを保存するために、*すべて*のイベントをレポートキューに送信します。

1.  **デプロイ管理** – このワークフローでは、パラメータストア、[Amazon EventBridge](https://aws.amazon.com/eventbridge) ルール、Lambda 関数、および CloudFormation StackSets をプロビジョニングします。ワークフローは以下を管理します。
   + 一元化された EventBridge バスに対するアクセス許可を管理して、モニタリング対象アカウントが使用状況イベントを EventBridge バスに送信できるようにします。
   + ソリューションが組織 (または OU) にデプロイされたときに、StackSets を使用してモニタリング対象アカウントにスポークテンプレートをデプロイします。
**注記**  
Systems Manager パラメータ値を OU ID またはアカウント ID で更新すると、ワークフローは、更新された OU またはアカウントのリストのモニタリングを開始するために必要な設定変更を行います。

**Service Quotas スポークテンプレート**は、以下のワークフローを起動します。

1.  **クォータリストの生成** – このワークフローでは、Lambda 関数と 2 つの DynamoDB テーブルをプロビジョニングします。ワークフローは、CloudWatch メトリクスを使用した使用状況のモニタリングをサポートする Service Quotas のアクティブで検証済みのリストを管理します。

1.  **クォータ使用状況アラート** — このワークフローでは、スケジュールベースの Lambda 関数、EventBridge のカスタムバス、および [Amazon EventBridge](https://aws.amazon.com/eventbridge) ルールをプロビジョニングします。`CW Poller` 関数は、クォータリスト表をクエリし、CloudWatch メトリクスからそれらのクォータの使用状況データを取得します。ワークフローは、使用状況データをイベントとして EventBridge バスに送信します。スポークバスは、これらの使用イベントを集中バスとスポーク SNS バス (提供されている場合) の両方にルーティングします。

**スポーク SNS テンプレート**は、次のワークフローを起動します。

1.  **スポークアカウント通知** – このワークフローでは、スポークアカウントの通知リソースをプロビジョニングして、通知を分散させます。具体的には、SNS パブリッシャー Lambda 関数にメッセージをルーティングするルールを使用して EventBridge バスをプロビジョニングします。この関数は、SSM パラメータストアの通知ミュートパラメータを介して設定された通知ミュートルールを適用します。次に、Lambda 関数は関連するイベントをスポークアカウントの SNS トピックに発行します。

**Trusted Advisor スポークテンプレート**は、以下のワークフローを起動します。

1.  **Trust Advisor のアラート** – このワークフローでは、Trusted Advisor を使用したクォータ使用状況モニタリングをサポートするために、Lambda 関数と [Amazon EventBridge](https://aws.amazon.com/eventbridge) ルールをプロビジョニングします。Lambda 関数は 24 時間の間隔で実行され、Trusted Advisor のチェックをリフレッシュします。イベントルールは、Trusted Advisor の使用状況イベントを集中バスにルーティングします。
**注記**  
AWS CloudFormation のリソースは、[AWS Cloud Development Kit](https://aws.amazon.com/cdk) (AWS CDK) のコンポーネントで作成されています。