AWS Trusted Advisorでベストプラクティスに近づこう！

## はじめに
AWSを触っていると、現状どんなセキュリティリスクがあるか、無駄なコストがかかっているかなどを、**かんたんに知りたい**場面がありませんか？
**AWS Trusted Advisor**を使えば、AWSの定義するベストプラクティス（AWS Well-Architected Framework）を基に、かんたんに現状の課題と改善策を知ることができます。
AWS Trusted Adisorの概要と、ベストプラクティス、画面の見方や具体例を紹介していきます。

## AWS Trusted Advisor とは

AWSの定義するベストプラクティス（AWS Well-Architected Framework）に基づき、AWS 環境を継続的にチェックして、課題と改善策を提案してくれます。
Trusted Advisorでは、**6つのカテゴリー**に分類して、課題と改善策を提案してくれます。

1. コスト最適化
1. パフォーマンス
1. 耐障害性
1. セキュリティ
1. サービスの制限
1. 運用上の優秀性

https://aws.amazon.com/jp/premiumsupport/technology/trusted-advisor/ 


## AWSのベストプラクティス（AWS Well-Architected Framework）とは？
AWS Well-Architected Framework では、AWSのアーキテクチャのベストプラクティスについて、**6つの柱**で定義しています。

### オペレーショナルエクセレンスの柱
システムの実行やモニタリング、プロセスなどの手順について、**継続的な改善**をすることです。
ex) プロセスの自動化、継続したモニタリング、業務の標準化など

### セキュリティの柱
情報とシステムを**保護**することです。
ex) データの機密性と完全性、ユーザー許可の管理、セキュリティイベントを検出するための仕組み化など

### 信頼性の柱
障害が起きた際に、**迅速に復旧**することです。
ex) 分散システムの設計、冗長化、復旧計画など

### パフォーマンス効率の柱
リソースを精査して、**効率的に運用**することです。
ex) 最適化されたリソースタイプの選択、パフォーマンスのモニタリング、ニーズの増大に応じて効率を維持するなど

### 持続可能性の柱
**環境への影響**を最小限に抑えることです。
ex) 持続可能性の責任共有モデル、影響についての把握など

## Trusted Advisorの機能

### レコメンデーション（ダッシュボード）

Trusted Advisor を開くと、レコメンデーション（ダッシュボード）が表示されます。

![スクリーンショット 2024-08-27 19.41.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2501281/bc1d0f43-75b2-aeb2-fd4d-9ea4734e38ad.png)

### 3つのチェック（優先度）
レコメンデーションでは、3つのチェック（優先度）に分類されて、課題が表示されます。

<font color="red">**推奨されるアクション**</font>
※重要度大

<font color="yellow">**調査が推奨されます**</font>
※重要度小〜中

<font color="gray">**除外された項目があるチェック**</font>
<font color="gray">※ AWS Trusted Advisor によるチェックを無視するリソース（EC2など）を選択することができ、無視しているリソースが表示されます</font>

該当のチェックがあれば、カテゴリーごとに件数とリンクが表示されます。
リンクを押下すると、該当する課題と改善策の一覧を見ることができます。

※実際に運用している画面なので、詳細は隠しています
※具体例は後述します
![スクリーンショット 2024-08-27 20.04.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2501281/199aa67f-490e-7bc2-7f21-ce020d3e967b.png)

![スクリーンショット 2024-08-27 19.59.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2501281/239de60e-88be-c7af-87bd-6d24aabc764c.png)


### サイドバー

前述の6つのカテゴリーと詳細設定が表示されます。

![スクリーンショット 2024-08-27 19.50.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2501281/a6018e26-3adc-58e2-a44a-45f60174f1de.png)

#### カテゴリー
カテゴリーごとのリンクを押すと、カテゴリーごとの課題と改善策が一覧表示されます。

![スクリーンショット 2024-08-27 19.53.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2501281/e06d0274-c6fc-9cfe-90fe-fbb802eb2ce8.png)


#### Trusted Advisor を管理
Trusted Advisor の有効・無効を設定できます。

![スクリーンショット 2024-08-27 19.55.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2501281/c683a0f6-0e4c-bb6f-06b4-bf0e91530754.png)


#### 通知 

メール通知を設定できます。

![スクリーンショット 2024-08-27 19.55.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2501281/41231db2-b4ae-0c23-9cff-c50a548c433f.png)


## 具体例
Trusted Advisorで実際に警告される課題について、
カテゴリーごとに、<font color="red">**推奨されるアクション**</font>で警告される例を挙げていきます。
※要約しているため、実際の文言とは異なります


### コスト最適化
<font color="red">**・未使用の Elastic IP Address があります**</font>
<font color="red">**・未使用の EBSボリューム があります**</font>
<font color="red">**・低利用率のEC2インスタンスがあります**</font>

### パフォーマンス
<font color="red">**・使用率が高いEC2インスタンスがあります**</font>
<font color="red">**・EBSボリュームのスループットが不足しています**</font>
<font color="red">**・低キャッシュヒット率のCloudFrontがあります**</font>

### 耐障害性
<font color="red">**・EBSに最新のスナップショットがありません**</font>
<font color="red">**・RDSのストレージで自動スケーリングがオフになっています**</font>
<font color="red">**・ELBの負荷分散が偏っています**</font>

### セキュリティ
<font color="red">**・ルートユーザーのMFA認証が無効になっています**</font>
<font color="red">**・S3バケットのブロックパブリックアクセスが無効になっています**</font>
<font color="red">**・ECSのルートファイルシステムが読み取り専用アクセスになっていません**</font>

### サービスの制限
<font color="red">**・EC2インスタンスの利用制限数に近づいています**</font>
<font color="red">**・EBSボリュームの利用上限に近づいています**</font>
<font color="red">**・VPCリソースの制限の使用制限に近づいています**</font>

### 運用上の優秀性
<font color="red">**・S3バケットのバージョニングが無効になっています**</font>
<font color="red">**・IAMユーザーのMFA（多要素認証）が設定されていません**</font>
<font color="red">**・CloudTrailのログが設定されていません**</font>

## おわりに

AWS Trusted Advisorでは、ポチポチするだけでかんたんに現状の課題を知ることができます。
課題を把握するだけでなく、優れたアーキテクチャやAWSサービスに対する理解も向上します。
特に<font color="red">**推奨されるアクション**</font>は定期的にチェックしていこうと思いました。
ベストプラクティスに近づくため、AWS Trusted Advisorを活用してみてはいかがでしょうか。