

# AWS Well-Architected の設計に関する考慮事項
<a name="aws-well-architected-design-considerations"></a>

このソリューションでは、[AWS Well-Architected フレームワーク](https://aws.amazon.com/architecture/well-architected/)のベストプラクティスを使用しています。これにより、お客様は信頼性が高く、安全で、効率的で、コスト効率の高いワークロードをクラウド上で設計し運用することができます。

このセクションでは、Well-Architected Framework の設計原則とベストプラクティスがこのソリューションにどのように役立つかについて説明します。

## 運用上の優秀性
<a name="operational-excellence"></a>

このセクションでは、[オペレーショナルエクセレンスの柱](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/welcome.html)に関する原則とベストプラクティスを用いてこのソリューションをどのように設計したかを説明します。
+ すべてのリソースは、AWS CDK コンストラクトから生成された AWS CloudFormation テンプレートを使用して、Infrastructure as Code として定義されます。
+ ソリューションは、さまざまな段階でメトリクスを CloudWatch にプッシュして、Lambda 関数、ECS タスク、S3 バケット、その他のソリューションコンポーネントにオブザーバビリティを提供します。

## セキュリティ
<a name="security"></a>

このセクションでは、このソリューションを設計する際に、[セキュリティの柱](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/welcome.html)の原則とベストプラクティスをどのように適用したかについて説明します。
+ Cognito は、ウェブコンソールユーザーと API リクエストを認証および認可します。
+ すべてのサービス間通信は、必要な最小限のアクセス許可のみを含む、最小特権アクセスを持つ [AWS Identity and Access Management](https://aws.amazon.com/iam/) (IAM) ロールを使用します。
+ S3 バケットや DynamoDB テーブルを含むすべてのデータストレージは、AWS マネージドキーを使用して、保管中のデータを暗号化します。
+ ログ記録、トレース、バージョニングは、監査およびコンプライアンスの目的で該当する場合に有効化されます。
+ ネットワークアクセスはデフォルトでプライベートで、トラフィックを AWS ネットワーク内に保持できる VPC エンドポイントが有効化されています。

**注記**  
このソリューションは、ログの量とコストの考慮事項に基づいて保持期間が異なる複数の CloudWatch ロググループを作成します。  


| ログのタイプ | 保持期間 | 
| --- | --- | 
| ECS コンテナのインサイト | 1 日 | 
| Step Functions、ECS カスタムログ、API ゲートウェイアクセスログ | 1 年 | 
| Lambda ランタイムログ | 2 年 | 
| API ゲートウェイ実行ログ | 有効期限なし | 
これらの保持期間は、必要に応じて CloudWatch コンソールで変更できます。

## 信頼性
<a name="reliability"></a>

このセクションでは、[信頼性の柱](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/welcome.html)に関する原則とベストプラクティスを用いてこのソリューションをどのように設計したかを説明します。
+ ソリューションでは、可能な限り AWS のサーバーレスサービス (Lambda、API Gateway、Amazon S3、AWS Step Functions、Amazon DynamoDB、AWS Fargate など) を使用して、高可用性とサービス障害からの復旧を確保します。
+ すべてのコンピューティング処理には、Lambda 関数または AWS Fargate 上の Amazon ECS を使用します。
+ データは DynamoDB と Amazon S3 に保存されるため、デフォルトで複数のアベイラビリティーゾーンに保持されます。

## パフォーマンス効率
<a name="performance-efficiency"></a>

このセクションでは、[パフォーマンス効率の柱](https://docs.aws.amazon.com/wellarchitected/latest/performance-efficiency-pillar/welcome.html)に関する原則とベストプラクティスを用いてこのソリューションをどのように設計したかを説明します。
+ このソリューションは、必要に応じて水平方向にスケールできるサーバーレスアーキテクチャを使用します。
+ このソリューションは、対象の AWS のサービス (AWS Lambda、Amazon API Gateway、Amazon S3、AWS Step Functions、Amazon DynamoDB、Amazon ECS、AWS Fargate、Amazon Cognito など) をサポートする任意のリージョンで起動できます。
+ ソリューションでは、全体を通してマネージドサービスを使用しており、リソースのプロビジョニングと管理の運用上の負担を軽減しています。
+ このソリューションは、AWS のサービスの変更に応じて一貫性を確保するために毎日自動的にテストおよびデプロイされます。また、実験と改善が必要な分野については、ソリューションアーキテクトや対象分野のエキスパートによってレビューされます。

## コスト最適化
<a name="cost-optimization"></a>

このセクションでは、このソリューションを設計する際に、[コスト最適化の柱](https://docs.aws.amazon.com/wellarchitected/latest/cost-optimization-pillar/welcome.html)の原則とベストプラクティスをどのように適用したかを説明します。
+ ソリューションはサーバーレスアーキテクチャを使用しているため、お客様は使用した分のみ課金されます。
+ Amazon DynamoDB は必要に応じてキャパシティをスケールするため、お支払いいただくのは使用したキャパシティに対してのみになります。
+ AWS Fargate の AWS ECS では、使用したコンピューティングリソースに対してのみ料金を支払うことが可能で、前払い料金は発生しません。
+ AWS AgentCore Gateway は、分散負荷テスト API に対する費用対効果の高い Lambda ベースのプロキシとして機能し、専用インフラストラクチャの必要の削減と、サーバーレスのリクエストごとの支払い料金を通じたコスト削減が行われます。

## 持続可能性
<a name="sustainability"></a>

このセクションでは、このソリューションを設計する際に、[持続可能性の柱](https://docs.aws.amazon.com/wellarchitected/latest/sustainability-pillar/sustainability-pillar.html)の原則とベストプラクティスをどのように適用したかを説明します。
+ ソリューションでは、マネージドサーバーレスサービスを使用して、継続的に運用されているオンプレミスサービスと比較して、バックエンドサービスの環境への影響を最小限に抑えます。
+ サーバーレスサービスでは、必要に応じてスケールアップまたはスケールダウンできます。