AWS Compute Optimizer をオプトインしたにもかかわらず EC2 のレコメンデーションが表示されない原因を教えてください

2021.12.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

この記事はアノテーション株式会社 AWS Technical Support Advent Calendar 2021のカレンダー | Advent Calendar 2021 - Qiita 4日目の記事です。

困っていた内容

AWS Compute Optimizer を使用して現在利用中の環境の最適化を行いたいです。

Compute Optimizer をオプトインしてしばらく経つと EBS・Lambda はレコメンデーションが表示されました。
しかしながら、EC2 はレコメンデーションが出ないようで正常に動作していないように見えます。

Compute Optimizer で EC2 のレコメンデーションを表示させるには、オプトイン操作だけでは足りないのでしょうか?

どう対応すればいいの?

AWS Compute Optimizer の操作はオプトインのみで足りています。

Compute Optimizer がレコメンデーションを作成するには、最低でも 30 時間連続したメトリクスデータを必要とします。

そのため、毎日 EC2 インスタンスの起動/停止を行う環境などでは Compute Optimizer のレコメンデーションが表示されませんのでご注意ください。

Metrics analyzed by AWS Compute Optimizer - AWS Compute Optimizer

After you opt in, AWS Compute Optimizer begins analyzing the specifications (vCPUs, memory, storage, and so on) and the CloudWatch metrics of your running resources from a period of the last 14 days.
Compute Optimizer requires at least 30 consecutive hours of metrics data from your resource to generate recommendations.
After the analysis is completed, which could take up to 12 hours, Compute Optimizer presents its findings on the dashboard page.

どうやってレコメンデーションが表示されない原因を調査するの?

レコメンデーションが表示されない対象リソースに対して Compute Optimizer の API である GetXxxRecommendations 操作を行い errors の結果から原因を調べることができます。

対象が EC2 インスタンスの場合は GetEC2InstanceRecommendations で調べられます。
AWS CLI で確認した結果は以下のとおりです。

$ aws compute-optimizer get-ec2-instance-recommendations
{
    "instanceRecommendations": [],
    "errors": [
        {
            "identifier": "arn:aws:ec2:ap-northeast-1:123456789012:instance/i-xxx",
            "code": "INSUFFICIENT_DATA",
            "message": "Recommendations for this resource are not ready yet. Please try again later."
        }
    ]
}

参考資料