目次
AWS Trusted Advisor API 完全ガイド v2.0
ベストプラクティス自動スキャン・推奨事項 API による組織全体最適化プラットフォーム
概要
AWS Trusted Advisor API は 「AWS Well-Architected フレームワークに基づいてアカウントを自動スキャンし、コスト削減・セキュリティ改善・パフォーマンス向上・信頼性強化・サービス制限超過の推奨事項を API で自動取得するサービス」 です。
Trusted Advisor コンソール UI とは異なり、API を通じてチェック結果を自動取得し、カスタムダッシュボード・自動修復・組織全体の最適化推奨を実装。AWS Support プランに応じて利用可能なチェック数・API 機能が異なり、Business/Enterprise/Unified Operations プラン向けの Trusted Advisor Priority は優先度付けと自動修復推奨を提供します。
このサービスを選ぶ理由
なぜ AWS Trusted Advisor API なのか
-
AWS ベストプラクティスの自動スキャン・即効性: AWS Config・Security Hub は設定ベースの監視であるが、Trusted Advisor は「今すぐ対処できるコスト削減機会」(未使用 EIP・低使用率 EC2)を定量的に提示。修復による効果額(月額 $200 削減)を明示して即座の対応を促す
-
コスト最適化の定量的根拠: 未使用 EIP・EBS スナップショット・RI 未活用を自動検出して具体的なコスト削減額を見積もり。CFO・経営層への説得力が高い
-
API による自動化・組織全体スケーラビリティ: Business/Enterprise プラン向け API で複数アカウントのチェック結果を一括取得。社内ダッシュボード・自動修復・部門別コスト最適化を組織全体で実装
-
Trusted Advisor Priority による AI 駆動優先度付け: Enterprise/Unified Operations プラン限定で、AWS のアカウントチームが組織の文脈を踏まえて「今週対処すべき上位 10 件」を AIが推奨。人的判断を減らし効率化
-
Security Hub・Config・Compute Optimizer との補完: 各サービスとの役割分担を明確に。Trusted Advisor は「即効性のあるコスト・セキュリティ」に特化し、他サービスは深い分析に注力
具体的なユースケース
-
スタートアップが Trusted Advisor で月次クラウドコスト削減機会を自動検出。未使用 EIP・RI 未活用・低使用率 EC2 を特定して毎月 $2,000 削減
-
金融機関が Trusted Advisor API を社内ダッシュボール・ITSM ツール(ServiceNow)と連携。セキュリティチェック(MFA・パブリック S3)の状態を自動同期
-
大規模エンタープライズが Trusted Advisor Priority で AWS アカウントチームからの AI 推奨を自動取得。対処すべき優先事項を明確化
-
AWS Organizations 配下の複数アカウント Trusted Advisor 結果を Lambda で一括取得。部門別・環境別のコスト削減機会をレポート生成・経営層に報告
-
自動修復パイプライン構築:Trusted Advisor で S3 パブリックアクセス検出 → Lambda で Block Public Access 自動有効化 → CloudTrail で審査ログ記録
課題と特徴
Trusted Advisor が解決する課題
❌ 課題:AWS リソース最適化が手動・断片的
→ 未使用 EIP・EBS スナップショット・低使用率 EC2 が放置
→ 年に 1 回コスト棚卸しで「あ、これ削減できた」と気付く
→ セキュリティリスク(MFA 未設定・パブリック S3)を見落とし
→ RI 未活用・キャパシティオーバープロビジョニング
✅ 解決:Trusted Advisor で能動的・定量的・自動スキャン
→ 未使用リソースを自動検出・月額削減額を明示
→ セキュリティ・信頼性・パフォーマンスの改善点を優先度付け
→ API で自動修復パイプラインを構築
→ 組織全体のベストプラクティス準拠を継続監視
コアの特徴
| 特徴 | 説明 |
|---|---|
| 6 カテゴリ 200+ チェック | コスト・セキュリティ・信頼性・パフォーマンス・制限・運用優秀性 |
| Support プラン別利用チェック数 | Basic(50)→ Developer/Business/Enterprise(200+) |
| 即効性のあるコスト削減 | 未使用・低使用率リソースの月額削減額を明示 |
| API による自動化 | Business/Enterprise で API アクセス・複数アカウント統合 |
| Trusted Advisor Priority | Enterprise/Unified Ops 向けの AI 駆動優先度付け |
| CloudWatch Alarm 統合 | チェック結果変化を CloudWatch アラームで監視 |
| EventBridge 統合 | チェック更新を自動キャッチ・Lambda で自動対応 |
| Security Hub との相互連携 | Trusted Advisor のセキュリティチェック結果を Security Hub に集約可能 |
アーキテクチャ(Mermaid 図 1)
graph TB
subgraph "Trusted Advisor スキャン層"
A["Scheduled Scan<br/>Weekly Auto Scan<br/>Manual Refresh"]
B["Real-time API Check<br/>describe_trusted_advisor_checks<br/>get_trusted_advisor_check_result"]
end
subgraph "チェックカテゴリ"
C["Cost Optimization<br/>未使用 EIP・EBS<br/>RI 未活用"]
D["Security<br/>パブリック S3<br/>MFA・CloudTrail"]
E["Fault Tolerance<br/>Multi-AZ・Backup<br/>Route 53 Health"]
F["Performance<br/>高使用率・CDN<br/>EBS 最適化"]
G["Service Limits<br/>VPC・EC2・Auto Scaling<br/>80% 超過警告"]
H["Operational Excellence<br/>CloudFormation 失敗<br/>Lambda ランタイム廃止"]
end
subgraph "データ取得層"
I["AWS Support API<br/>describe_trusted_advisor_check_result"]
J["Trusted Advisor Priority API<br/>list_organization_recommendations<br/>get_organization_recommendation"]
end
subgraph "自動化レイヤー"
K["Lambda<br/>自動修復スクリプト<br/>S3 Block Public Access<br/>EIP 解放"]
L["EventBridge<br/>Trusted Advisor イベント<br/>トリガー"]
end
subgraph "アウトプット"
M["CloudWatch Dashboard<br/>チェック状態可視化<br/>メトリクス"]
N["Custom Dashboard<br/>社内ITSM・BI ツール<br/>ServiceNow・Tableau"]
O["SNS/Email<br/>定期レポート・通知"]
end
A --> C
A --> D
A --> E
A --> F
A --> G
A --> H
C --> I
D --> I
E --> I
F --> I
G --> I
H --> I
D --> J
J --> K
L --> K
I --> M
I --> N
I --> O
style A fill:#fff3cd
style B fill:#fff3cd
style C fill:#cfe2ff
style D fill:#cfe2ff
style E fill:#cfe2ff
style F fill:#cfe2ff
style G fill:#cfe2ff
style H fill:#cfe2ff
style I fill:#d1ecf1
style J fill:#d1ecf1
style K fill:#d4edda
style L fill:#d4edda
style M fill:#f8f9fa
style N fill:#f8f9fa
style O fill:#f8d7da
チェックカテゴリ詳細(6 カテゴリ 200+ チェック)
1. Cost Optimization(コスト最適化)
主要チェック:
1. Underutilized Amazon EC2 Instances
→ CPU 使用率が低い(デフォルト 5%)EC2 インスタンス
→ スペックダウン・廃止で月額削減額を提示
2. Unassociated Elastic IP Addresses
→ インスタンスに紐付いていない EIP
→ 即座に削除して月額 $3.60/EIP を削減
3. Amazon RDS Idle DB Instances
→ 低アクティビティの RDS インスタンス
→ 廃止・スペックダウンで削減額を明示
4. Unattached Amazon EBS Volumes
→ インスタンスに紐付いていない EBS ボリューム
→ 削除して月額削減
5. Reserved Instance Optimization
→ RI の購入推奨・購入済み RI の未使用を検出
→ コミットメント期間・インスタンスタイプの最適化提案
6. Underutilized Load Balancers
→ 低トラフィック ALB/NLB
→ 削除または統合提案
7. Unused CloudFront Distributions
→ 低トラフィック CloudFront ディストリビューション
→ 削除提案
2. Security(セキュリティ)
主要チェック:
1. Security Groups - Specific Ports Unrestricted
→ SSH(22)・RDP(3389)が 0.0.0.0/0 で開放
→ 即座に修正すべき重大リスク
2. S3 Bucket Permissions
→ パブリックアクセス許可の S3 バケット
→ Block Public Access 有効化推奨
3. IAM Access Key Age
→ 90 日以上ローテーションされていない IAM アクセスキー
→ 新規キー生成・古いキー削除推奨
4. Root Account Access Key
→ ルートアカウントが MFA 未設定
→ MFA 有効化必須
5. CloudTrail Enabled for AWS CloudTrail
→ CloudTrail が無効化されている
→ 監査ログ記録が失われているリスク
6. AWS CloudTrail enabled across AWS Organizations
→ Organizations 配下で CloudTrail 無効アカウント
→ 一元管理の CloudTrail を推奨
7. AWS Config Enabled
→ AWS Config が無効化されている
→ コンプライアンス監視が機能していないリスク
8. CloudFront SSL/TLS Certificate Expiration
→ 有効期限切れ間近の SSL/TLS 証明書
→ 更新推奨
3. Fault Tolerance(信頼性・フォールトトレランス)
主要チェック:
1. Auto Scaling Group Health Check
→ Auto Scaling Group でヘルスチェックが未設定
→ インスタンス障害時の自動置換ができないリスク
2. EBS Snapshots
→ EBS スナップショットが存在しない
→ ディザスタリカバリのリスク
3. RDS Multi-AZ
→ RDS が Single-AZ で構成
→ Multi-AZ 有効化して AZ 障害への耐性向上
4. Route 53 Health Check
→ Route 53 ヘルスチェックが未設定
→ エンドポイント障害時のフェイルオーバーができないリスク
5. RDS Backups
→ RDS バックアップが無効化
→ データ喪失リスク
6. Lambda Dead Letter Queue
→ Lambda が Dead Letter Queue(DLQ)を設定していない
→ 失敗メッセージ追跡ができないリスク
4. Performance(パフォーマンス)
主要チェック:
1. High Utilization Amazon EC2 Instances
→ CPU 使用率が高い EC2 インスタンス
→ スケールアップ・水平スケーリング推奨
2. CloudFront Content Delivery Optimization
→ CloudFront を活用できていない静的コンテンツ
→ CloudFront デプロイで応答時間短縮
3. EBS Throughput Optimization
→ 高 I/O 容量が必要な EBS ボリューム
→ プロビジョンドー IOPS ボリュームへの変更推奨
4. EC2 Optimized Instance Types
→ 古い世代の EC2 インスタンスタイプ(M3 等)
→ 新世代インスタンス(M5・M6 等)への移行で性能向上
5. Service Quotas(サービス制限)
主要チェック:
1. VPC Count
→ VPC 数がクォータ(デフォルト 5)の 80% 超過
→ クォータ増加申請推奨
2. Security Groups per VPC
→ セキュリティグループがクォータの 80% 超過
3. Elastic IP Addresses per Region
→ EIP がクォータの 80% 超過
4. On-Demand Instance Count
→ On-Demand EC2 インスタンス数がクォータ超過傾向
→ クォータ増加申請推奨
5. Auto Scaling Group Count
→ Auto Scaling Group がクォータの 80% 超過
6. Lambda Concurrent Execution
→ Lambda 同時実行数がクォータの 80% 超過
→ 非同期処理・SQS 緩衝推奨
7. DynamoDB On-Demand Billing
→ DynamoDB On-Demand のスループットが高い
→ プロビジョンド課金への移行検討
6. Operational Excellence(運用優秀性)
主要チェック:
1. CloudFormation Stack Health
→ CloudFormation スタック作成失敗・ロールバック
→ テンプレート修正・デバッグ必要
2. AWS Lambda Runtime Deprecation
→ 廃止予定の Lambda ランタイム(Node.js 14 等)
→ 新しいランタイムへの移行推奨
3. SSL/TLS Certificate Expiration
→ サーバー証明書の有効期限切れ間近
→ 更新推奨
4. AWS Secrets Manager Rotation
→ Secrets Manager で自動ローテーション未設定
→ 有効化推奨
5. AWS Directory Service Certificate Expiration
→ AWS Directory Service 証明書期限切れ間近
Support プラン別の利用可能機能
プラン別チェック数・API アクセス:
┌─────────────────────────────────────────────────────────────┐
│ Basic(無料) │
├─────────────────────────────────────────────────────────────┤
│ 利用可能チェック数:約 50 チェック │
│ ✓ セキュリティ 6 チェック(MFA・パブリック S3 等) │
│ ✓ サービス制限 全チェック │
│ ✗ API アクセス不可 │
│ ✗ Trusted Advisor Priority 不可 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Developer($29/月〜) │
├─────────────────────────────────────────────────────────────┤
│ 利用可能チェック数:全 200+ チェック │
│ ✓ 全カテゴリ:Cost・Security・Fault Tolerance 等 │
│ ✓ API アクセス可能 │
│ ✗ Trusted Advisor Priority 不可 │
│ ✗ CloudWatch Alarm 統合 不可 │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Business($100/月〜 または使用量の 10% 以上) │
├─────────────────────────────────────────────────────────────┤
│ 利用可能チェック数:全 200+ チェック │
│ ✓ 全カテゴリ・全チェック │
│ ✓ API アクセス(全操作) │
│ ✓ CloudWatch Alarm 統合 │
│ ✓ Trusted Advisor Priority(有限) │
│ ✓ 定期メールサマリー │
│ ✗ Organizations 統合(限定的) │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Enterprise($15,000/月〜) │
├─────────────────────────────────────────────────────────────┤
│ 利用可能チェック数:全 200+ チェック │
│ ✓ 全機能・全チェック │
│ ✓ API アクセス(全操作) │
│ ✓ Trusted Advisor Priority(フル機能) │
│ ✓ Organizations 統合(全アカウント) │
│ ✓ AWS アカウントチームによる AI 駆動推奨 │
│ ✓ AWS Well-Architected Review との連携 │
│ ✓ コンシェルジュサービス │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Unified Operations($10,000/月〜) │
├─────────────────────────────────────────────────────────────┤
│ 利用可能チェック数:全 200+ チェック │
│ ✓ Enterprise と同等の全機能 │
│ ✓ Trusted Advisor Priority │
│ ✓ Organizations 統合 │
│ ✓ 他の OpsCenter サービスとの統合 │
└─────────────────────────────────────────────────────────────┘
注意:2026 年中に Enterprise On-Ramp からの自動 Enterprise
アップグレードが予定。詳細は AWS Support に問い合わせ。
API 操作例
CLI 操作例
# Trusted Advisor チェック一覧取得
aws support describe-trusted-advisor-checks \
--language en \
--region us-east-1 # Trusted Advisor API は us-east-1 のみ対応
# セキュリティカテゴリのチェックのみ取得
aws support describe-trusted-advisor-checks \
--language en \
--query 'checks[?category==`security`].{Id: id, Name: name, Description: description}' \
--region us-east-1
# 特定チェック(セキュリティグループ全開放)の結果取得
aws support describe-trusted-advisor-check-result \
--check-id HCP4007jGY \
--language en \
--region us-east-1
# セキュリティ問題のある S3 バケットのみ取得
aws support describe-trusted-advisor-check-result \
--check-id Pfx0RwqBli \
--language en \
--query 'result.flaggedResources[?status==`error`]' \
--region us-east-1 | jq '.[] | {ResourceId: .[0], IssueType: .[2]}'
# チェック結果サマリー(赤・黄・緑の数)
aws support describe-trusted-advisor-checks-summary \
--region us-east-1 \
--query 'checkSummaries[*].{CheckName: checkName, Status: resourcesSummary.resourcesProcessed, ErrorCount: resourcesSummary.resourcesFlagged}' \
| jq '.[]'
# チェックの結果更新(キャッシュをリフレッシュ)
# Business/Enterprise プランのみ
aws support refresh-trusted-advisor-check \
--check-id HCP4007jGY \
--region us-east-1
# Organizations 配下の全アカウントのチェック結果統合取得
# Enterprise/Unified Operations プランのみ
aws support list-organization-recommendations \
--language en \
--max-results 100 \
--region us-east-1
Terraform 操作例
# Trusted Advisor チェック結果を CloudWatch メトリクスに送信
resource "aws_cloudwatch_metric_alarm" "trusted_advisor_red" {
alarm_name = "trusted-advisor-red-checks"
comparison_operator = "GreaterThanOrEqualToThreshold"
evaluation_periods = "1"
metric_name = "RedResources"
namespace = "AWS/TrustedAdvisor"
period = "300"
statistic = "Sum"
threshold = "1"
alarm_description = "Alert when Trusted Advisor detects issues"
alarm_actions = [aws_sns_topic.alerts.arn]
dimensions = {
CheckName = "Security Groups - Specific Ports Unrestricted"
}
}
# Lambda 関数:Trusted Advisor チェック結果を自動取得・S3 に保存
resource "aws_lambda_function" "trusted_advisor_export" {
filename = "lambda_trusted_advisor.zip"
function_name = "trusted-advisor-export"
role = aws_iam_role.lambda_role.arn
handler = "index.lambda_handler"
runtime = "python3.12"
environment {
variables = {
BUCKET_NAME = aws_s3_bucket.trusted_advisor_reports.id
}
}
timeout = 60
}
# CloudWatch Events:毎週日曜 2:00 UTC に Lambda 実行
resource "aws_cloudwatch_event_rule" "weekly_scan" {
name = "weekly-trusted-advisor-scan"
description = "Trigger weekly Trusted Advisor scan"
schedule_expression = "cron(0 2 ? * SUN *)" # UTC
}
resource "aws_cloudwatch_event_target" "lambda" {
rule = aws_cloudwatch_event_rule.weekly_scan.name
target_id = "TrustedAdvisorLambda"
arn = aws_lambda_function.trusted_advisor_export.arn
}
resource "aws_lambda_permission" "allow_cloudwatch" {
statement_id = "AllowExecutionFromCloudWatch"
action = "lambda:InvokeFunction"
function_name = aws_lambda_function.trusted_advisor_export.function_name
principal = "events.amazonaws.com"
source_arn = aws_cloudwatch_event_rule.weekly_scan.arn
}
SDK 操作例(Python)
import boto3
import json
from datetime import datetime
support = boto3.client('support', region_name='us-east-1') # us-east-1 必須
s3 = boto3.client('s3')
def get_trusted_advisor_summary():
"""Trusted Advisor チェック結果を取得・S3 に保存"""
# チェック一覧取得
checks_response = support.describe_trusted_advisor_checks(language='en')
checks = {check['id']: check['name'] for check in checks_response['checks']}
print(f"Total checks available: {len(checks)}")
# サマリー取得(赤・黄・緑の数)
summary_response = support.describe_trusted_advisor_checks_summary()
summary_data = {
'timestamp': datetime.utcnow().isoformat(),
'checks_summary': []
}
for summary in summary_response['checkSummaries']:
check_data = {
'check_id': summary['checkId'],
'check_name': checks.get(summary['checkId'], 'Unknown'),
'status': {
'resources_processed': summary['resourcesSummary']['resourcesProcessed'],
'resources_flagged': summary['resourcesSummary']['resourcesFlagged'],
'resources_suppressed': summary['resourcesSummary']['resourcesSuppressed'],
'resources_processed_with_flag': summary['resourcesSummary'].get('resourcesProcessedWithFlag', 0)
}
}
summary_data['checks_summary'].append(check_data)
# セキュリティ関連チェックの詳細取得
security_checks = [
'HCP4007jGY', # Security Groups - Specific Ports Unrestricted
'Pfx0RwqBli', # S3 Bucket Permissions
'uth1K0rANd' # IAM Access Key Age
]
for check_id in security_checks:
result_response = support.describe_trusted_advisor_check_result(
checkId=check_id,
language='en'
)
result = result_response['result']
flagged_resources = [
resource for resource in result['flaggedResources']
if resource['status'] == 'error'
]
print(f"\nCheck: {checks.get(check_id)}")
print(f" Flagged resources: {len(flagged_resources)}")
for res in flagged_resources[:5]: # 最初の 5 件のみ表示
print(f" - {res['metadata'][:2]}")
# 結果を S3 に保存
bucket_name = 'my-trusted-advisor-reports'
key = f"reports/{datetime.utcnow().strftime('%Y/%m/%d')}/summary.json"
s3.put_object(
Bucket=bucket_name,
Key=key,
Body=json.dumps(summary_data, indent=2, default=str)
)
print(f"\nSummary saved to s3://{bucket_name}/{key}")
return summary_data
def auto_remediate_security_issues():
"""セキュリティ問題を自動修復"""
support = boto3.client('support', region_name='us-east-1')
ec2 = boto3.client('ec2')
s3_client = boto3.client('s3')
# S3 パブリックアクセス設定
result = support.describe_trusted_advisor_check_result(
checkId='Pfx0RwqBli',
language='en'
)
for resource in result['result']['flaggedResources']:
if resource['status'] == 'error':
bucket_name = resource['metadata'][0]
print(f"Enabling Block Public Access for bucket: {bucket_name}")
# Block Public Access を有効化
s3_client.put_public_access_block(
Bucket=bucket_name,
PublicAccessBlockConfiguration={
'BlockPublicAcls': True,
'IgnorePublicAcls': True,
'BlockPublicPolicy': True,
'RestrictPublicBuckets': True
}
)
print(f" ✓ Block Public Access enabled")
if __name__ == '__main__':
# Trusted Advisor サマリー取得
summary = get_trusted_advisor_summary()
# セキュリティ問題の自動修復
# auto_remediate_security_issues()
Organizations 統合(Enterprise プラン)
import boto3
import pandas as pd
support = boto3.client('support', region_name='us-east-1')
def get_organization_recommendations():
"""Organizations 配下全アカウントの推奨事項取得"""
# 推奨事項一覧取得
paginator = support.get_paginator('list_organization_recommendations')
pages = paginator.paginate(maxResults=100)
recommendations = []
for page in pages:
for rec in page.get('recommendations', []):
recommendations.append({
'recommendation_id': rec['id'],
'account_id': rec.get('accountId'),
'resource_id': rec.get('resourceId'),
'status': rec.get('lifecycleStage'),
'type': rec.get('type'),
'description': rec.get('description'),
'estimated_monthly_savings': rec.get('estimatedMonthlySavings')
})
# DataFrame に変換
df = pd.DataFrame(recommendations)
# コスト削減機会の集計
total_monthly_savings = df['estimated_monthly_savings'].sum()
print(f"Total estimated monthly savings: ${total_monthly_savings:,.2f}")
# アカウント別集計
account_summary = df.groupby('account_id').agg({
'estimated_monthly_savings': 'sum',
'recommendation_id': 'count'
}).rename(columns={'recommendation_id': 'recommendation_count'})
print("\nSavings by Account:")
print(account_summary)
# 推奨事項を CSV にエクスポート
df.to_csv('trusted_advisor_recommendations.csv', index=False)
return df
類似サービス比較表
| サービス | 対象 | 強み | 弱み |
|---|---|---|---|
| Trusted Advisor | AWS ベストプラクティス自動チェック | 即効性・定量的・AWS ネイティブ・無料チェック多数 | API は Business 以上のみ・深い分析は限定的 |
| AWS Compute Optimizer | EC2・RDS・Lambda・EBS 最適化 | 機械学習による推奨・詳細分析・無料 | 全カテゴリ非対応・Trusted Advisor より狭い |
| AWS Config | リソース設定・コンプライアンス評価 | 継続監視・変更履歴・自動修復 | コスト最適化に特化していない |
| Security Hub | セキュリティ検出結果の集約 | 複数サービス統合・標準化 | コスト最適化非対応・即効性は低い |
| Cloudability(IBM) | クラウドコスト最適化専門プラットフォーム | 深い分析・RI・Savings Plans 最適化・複数クラウド | 高額・Trusted Advisor より専門的 |
| CloudHealth(VMware) | クラウド管理・コスト最適化 | 統合管理・複数クラウド・ガバナンス | 高額・セットアップ負荷 |
| Spot.io(NetApp) | クラウドコスト最適化・ワークロード管理 | Kubernetes・複数クラウド・AI | 高額・AWS 限定でない |
| Apptio | FinOps・エンタープライズクラウド管理 | 組織全体の FinOps・チャージバック | 非常に高額・大企業向け |
ベストプラクティス
✅ 推奨事項
| # | 項目 | 実装例 |
|---|---|---|
| 1 | 最低 Business プラン以上 | Basic の 50 チェックは不十分。全 200+ チェック + API 必須 |
| 2 | API による自動化・定期スキャン | Lambda + EventBridge で毎週スキャン・結果を S3 に保存 |
| 3 | CloudWatch Alarm で重大問題の自動通知 | セキュリティグループ全開放・MFA 未設定を自動検出 |
| 4 | セキュリティチェックの自動修復 | S3 パブリックアクセス検出 → Block Public Access 自動有効化 |
| 5 | Organizations 統合(Enterprise) | 複数アカウントの推奨事項を一元管理・優先度付け |
| 6 | Trusted Advisor Priority の活用 | AWS アカウントチームからの AI 推奨を実装優先順位に反映 |
| 7 | 月次レポート生成・経営層報告 | コスト削減機会・セキュリティ改善をデータ駆動で報告 |
| 8 | 他サービスとの組み合わせ | Trusted Advisor + Compute Optimizer + Config で完全カバー |
| 9 | クォータ監視 | サービス制限チェックで事前にクォータ増加申請 |
| 10 | 定期的な改善実装 | 推奨事項を優先度付けして実装・実装後に確認 |
❌ 非推奨事項
| # | 項目 | 回避理由 |
|---|---|---|
| 1 | Basic プランのみ使用 | 50 チェックのみで不十分・API なし・自動化できない |
| 2 | コンソール UI のみに依存 | 200+ チェック全体を把握できない・手動・非効率 |
| 3 | 推奨事項を無視・放置 | 未使用リソース・セキュリティリスク・コスト増加 |
| 4 | 自動修復なし | 推奨事項が増える一方・対応が追いつかない |
| 5 | Organizations 非統合 | 複数アカウント環境で全体最適化ができない |
トラブルシューティング表
| 問題 | 原因 | 解決策 |
|---|---|---|
| API で Access Denied エラー | IAM 権限不足・Support プラン不足 | IAM ユーザーに support:DescribeTrustedAdvisorChecks 権限付与・Support プラン確認(Business 以上必須) |
| チェック結果が古い | キャッシュされた結果・リフレッシュ未実行 | refresh-trusted-advisor-check で手動リフレッシュ |
| Organizations 推奨事項取得できない | Enterprise プラン不足・Organizations 設定 | Enterprise または Unified Operations プランに upgrade・Organizations Trusted Advisor 有効化確認 |
| セキュリティチェック 0 件 | セキュリティグループ・S3 設定なし | セキュリティグループ・S3 バケット確認・作成推奨 |
2025-2026 最新動向
Trusted Advisor Priority の AI 強化
Enterprise/Unified Operations プラン向けに、Trusted Advisor Priority が組織文脈を踏まえた「今週対処すべき上位 10 件」を AI で自動生成。2026 年 Q2 以降、生成 AI による推奨度分析が強化予定。
Organizations 統合の拡張
複数アカウント環境での推奨事項統合・優先度付けが強化。部門別・環境別・チーム別の分析が標準化。
Enterprise On-Ramp からの自動アップグレード
2026 年中、Enterprise On-Ramp サポートプランから Enterprise Support への自動アップグレードが予定。Trusted Advisor Priority 機能が自動で利用可能に。
学習リソース・参考文献
公式ドキュメント
- Get started with AWS Trusted Advisor
- AWS Trusted Advisor check reference
- Get started with Trusted Advisor Recommendations
- Trusted Advisor Priority Feature
AWS ブログ
- Best Practice Guidance for AWS Optimization - Trusted Advisor
- Sample Code for AWS Trusted Advisor API
- How to Use AWS Trusted Advisor Recommendations
関連 AWS サービス
実装例・導入ロードマップ
Trusted Advisor 自動化(4 週間)
Week 1: 環境準備・API 検証
├── Support プランを Business 以上に upgrade
├── IAM ユーザーに Trusted Advisor API 権限付与
├── CLI で API テスト実行
└── チェック一覧・結果取得確認
Week 2: 自動スキャンパイプライン構築
├── Lambda 関数作成(Trusted Advisor スキャン)
├── CloudWatch Events で毎週スケジュール設定
├── 結果を S3 に保存
└── パイプラインテスト実行
Week 3: 監視・アラーム設定
├── CloudWatch Alarm(セキュリティ)作成
├── CloudWatch Alarm(コスト)作成
├── SNS 通知設定
└── 本番切り替え
Week 4: レポート・自動修復
├── 月次レポート生成スクリプト作成
├── 経営層への自動メール配信設定
├── セキュリティ問題の自動修復実装(S3 等)
└── チーム向けドキュメント整備
実装チェックリスト
- [ ] Support プラン確認(Business 以上必須)
- [ ] Trusted Advisor API アクセス テスト
- [ ] IAM 権限設定(DescribeTrustedAdvisor 等)
- [ ] Lambda 関数作成(スキャン・結果保存)
- [ ] CloudWatch Events スケジュール設定(毎週)
- [ ] S3 バケット作成(レポート保存用)
- [ ] CloudWatch Alarm 設定(セキュリティ・コスト)
- [ ] SNS トピック・メール通知設定
- [ ] CloudWatch ダッシュボード作成・可視化
- [ ] セキュリティ問題の自動修復スクリプト実装
まとめ
AWS Trusted Advisor API は 「AWS アカウントのコスト・セキュリティ・信頼性・パフォーマンス・クォータを自動スキャンするベストプラクティス推奨サービス」 です。
6 つのカテゴリ 200+ チェック により、即効性のあるコスト削減機会(未使用 EIP・低使用率 EC2)から重大なセキュリティリスク(パブリック S3・MFA 未設定)まで網羅。API による自動化で Organizations 配下の複数アカウント推奨事項を一元管理できます。
Business プラン以上で API アクセス可能 となり、カスタムダッシュボード・自動修復・定期レポート生成を実装。Enterprise/Unified Operations プランの Trusted Advisor Priority で AWS アカウントチームからの AI 駆動推奨を活用すれば、戦略的なクラウド最適化を実現できます。
Security Hub・Config・Compute Optimizer と補完関係を維持しながら、「今すぐ対処できる改善」に特化した Trusted Advisor を組織全体のクラウド運用に組み込むことを強く推奨します。
最終更新:2026-04-26
バージョン:v2.0