AWS Compute Optimizer で分析期間を有償で3ヶ月に延長する新機能などの機能強化アップデート

記事タイトルとURLをコピーする

営業部 佐竹です。
本日は AWS Compute Optimizer の最新アップデートについてご紹介します。

はじめに

AWS Compute Optimizer はコスト最適化とパフォーマンス最適化に役立つサービスの1つで、2020年2月から東京リージョンで利用可能となっています。

blog.serverworks.co.jp

現在、Compute Optimizer の推奨は以下の4つです。

  1. EC2 instances
  2. Auto Scaling groups
  3. EBS volumes
  4. Lambda functions

各リソースの過去利用実績(Amazon CloudWatch metrics)の分析には機械学習が活用されており、その分析結果としてそれぞれのワークロード(負荷)に最適なAWSリソースを推奨します。

つまり、リソースに余剰があればそれを減らす(コストを削減する)ように推奨され、リソースがカツカツの(不足している)状態であればスペックアップを推奨される機能となっております。

アップデート内容

Enhanced Infrastructure Metrics

AWS Compute Optimizer において、2021年11月29日に EC2 の推奨を補強するアップデートがリリースされました。

aws.amazon.com

これまで AWS Compute Optimizer の分析期間は、過去14日間固定でした。しかし、これに少しの利用料金を支払うことで最大3か月間(93日間)まで拡大することが可能となりました。

費用

$0.0003360215/hour が1時間あたりの利用料となり、これが追加請求されます。

この金額は公式ブログ最下部にある通り、1ヶ月(31日)あたり $0.25 が請求されるという料金に基づいて Hourly に再計算された値です(0.25÷24÷31 = 0.0003360215)。

この1時間あたりの利用料金は Running 状態となっているリソース = EC2 インスタンスの実行数に基づいて請求されます。

Account-level preferences

実際にマネジメントコンソールより設定してみます。まずはアカウントレベルでの設定です。この設定を行うとターゲットとしたリージョンの全 EC2 インスタンスが対象となるため、コストの発生に注意してください。

補足ですが、設定レベルは「組織レベル」「アカウントレベル」「リソースレベル」と3つあり、それぞれの単位で有効化を行うことが可能です。詳細は以下の公式ドキュメントをご参考ください。

docs.aws.amazon.com

f:id:swx-satake:20211130133405p:plain

AWS Compute Optimizer を表示した後、左上のメニュー表示ボタンを押下します。

f:id:swx-satake:20211130133836p:plain

一覧から「Accounts」を押下し、Preferences を表示させます。最下部の「Enhanced infrastructure metrics - paid feature」の「Edit」を押下します。

f:id:swx-satake:20211130134153p:plain

有効化したいリージョンを選択し設定を保存します。

f:id:swx-satake:20211130134218p:plain

Active になったことを確認します。

After you activate the enhanced infrastructure metrics feature, Compute Optimizer will apply the preference the next time recommendations are refreshed, which can take up to 24 hours.

なお、上記の通り本設定が反映されるには最大24時間かかるとのことですので、設定完了から結果が更新されるまで待ち時間が発生します。

Resource-level preferences

EC2 インスタンスごとにも設定を行うことが可能です。これは特定の EC2 インスタンスだけ長期間分析したい場合に有効な設定です。

アカウントレベルと比較して設定の手間はかかるものの、コストの発生は抑えられます。

f:id:swx-satake:20211130135250p:plain

EC2 instances の View recommendations を押下して EC2 インスタンスごとの推奨を表示させます。

その後、各インスタンスの詳細となる以下の画面を表示させます。

f:id:swx-satake:20211130135047p:plain

この画面で、「Recommendation preferences」の「Edit」を押下します。

f:id:swx-satake:20211130135424p:plain

「Enhanced infrastructure metrics - paid feature」にチェックを入れて保存します。

Organization-level preferences

組織レベルでの設定画面についてもご紹介します。

f:id:swx-satake:20211130135657p:plain

上図は、AWS Organizations のマネジメントアカウントの AWS Compute Optimizer でのみ表示される画面です。本設定を Edit することで組織レベルでの有効化を行うことが可能です。

設定方法の紹介は以上となります。

AWS マネージドポリシーが追加されました

ComputeOptimizerServiceRolePolicyComputeOptimizerReadOnlyAccess が追加されました。

特に後者の ComputeOptimizerReadOnlyAccess は IAM エンティティにアタッチして利用できますので、有効活用できそうです。

以下にそれぞれの権限を Json で記載します。

ComputeOptimizerServiceRolePolicy

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "ComputeOptimizerFullAccess",
            "Effect": "Allow",
            "Action": [
                "compute-optimizer:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AwsOrgsAccess",
            "Effect": "Allow",
            "Action": [
                "organizations:DescribeOrganization",
                "organizations:ListAccounts",
                "organizations:ListAWSServiceAccessForOrganization"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "CloudWatchAccess",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetMetricData"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AutoScalingAccess",
            "Effect": "Allow",
            "Action": [
                "autoscaling:DescribeAutoScalingInstances",
                "autoscaling:DescribeAutoScalingGroups"
            ],
            "Resource": "*"
        }
    ]
}

ComputeOptimizerReadOnlyAccess

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "compute-optimizer:DescribeRecommendationExportJobs",
                "compute-optimizer:GetEnrollmentStatus",
                "compute-optimizer:GetEnrollmentStatusesForOrganization",
                "compute-optimizer:GetRecommendationSummaries",
                "compute-optimizer:GetEC2InstanceRecommendations",
                "compute-optimizer:GetEC2RecommendationProjectedMetrics",
                "compute-optimizer:GetAutoScalingGroupRecommendations",
                "compute-optimizer:GetEBSVolumeRecommendations",
                "compute-optimizer:GetLambdaFunctionRecommendations",
                "compute-optimizer:GetRecommendationPreferences",
                "compute-optimizer:GetEffectiveRecommendationPreferences",
                "ec2:DescribeInstances",
                "ec2:DescribeVolumes",
                "autoscaling:DescribeAutoScalingGroups",
                "autoscaling:DescribeAutoScalingInstances",
                "lambda:ListFunctions",
                "lambda:ListProvisionedConcurrencyConfigs",
                "cloudwatch:GetMetricData",
                "organizations:ListAccounts",
                "organizations:DescribeOrganization",
                "organizations:DescribeAccount"
            ],
            "Resource": "*"
        }
    ]
}

ダッシュボードの表示が新しくなりました

AWS Compute Optimizer のダッシュボードが大幅にアップデートされ、特にコスト削減効果は Trusted Advisor に似た表示となりました。

Savings opportunity

f:id:swx-satake:20211130155745p:plain
Savings opportunity

過剰なスペック = コスト削減の機会として提案されています。金額と占める割合が円グラフで表示されます。

Performance improvement opportunity

f:id:swx-satake:20211130155840p:plain
Performance improvement opportunity

スペック不足 = パフォーマンス向上の機会として提案されます。なお、パフォーマンス向上には基本的に追加コストが必要となりますためご注意ください。

まとめ

本ブログ記事では AWS Compute Optimizer の最新アップデートについて3つご紹介しました。3つは以下の通りです。

  1. EC2 インスタンスの分析期間を有償(1台あたり $0.25/31日間)で最大93日間とする設定が可能になりました
  2. AWS マネージドポリシーが新規に2つ追加されました
  3. ダッシュボードが刷新されました

これからも Compute Optimizer の更新には注目していきたいですね。

それでは、またお会いしましょう。

佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ

営業部カスタマーサクセス課所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 Japan AWS Partner Ambassador/2020-2022 APN ALL AWS Certifications Engineer。AWSのコスト削減、最適化を得意としています。