Amazon Web Services ブログ

AWS Compute Optimizer – カスタマイズされたリソース最適化サービス

Amazon EC2 インスタンスタイプについて公に話すと、よく受ける質問の 1 つに「アプリケーションに適したインスタンスタイプを間違いなく選択するにはどうすればよいですか?」というものがあります。 正しいインスタンスタイプの選択は、芸術と科学の中間にあります。通常は、通常の環境 (ベースライン) でのアプリケーションのパフォーマンス特性と予想される日ごとの変動を把握して、これらの特性に一致するインスタンスタイプを選択します。その後、主要なメトリクスをモニタリングして選択を検証し、時間をかけてプロセスを繰り返して調整し、アプリケーションのコストとパフォーマンスの割合に最適なインスタンスタイプになるようにします。リソースを過剰にプロビジョニングするとインフラストラクチャへの支払いが過剰になり、リソースを過少にプロビジョニングするとアプリケーションのパフォーマンスが低下し、顧客体験に影響を与える可能性があります。

今年の初めに Cost Explorer Rightsizing Recommendations を開始しました。これは、使用率が低い Amazon Elastic Compute Cloud (EC2) インスタンスを特定するのに役立ちます。このインスタンスを同じファミリー内でダウンサイジングして、お金を節約します。受け取ったフィードバックは素晴らしく、お客様からは同じインスタンスファミリー内の単なるダウンサイジング以上の推奨事項を求める声が上がりました。

本日、ワークロード向けのコンピューティングリソースの最適化に役立つ新しいサービスを発表しますAWS Compute Optimizer です。AWS Compute Optimizer は、機械学習技術を使用してアカウントのリソース消費の履歴を分析し、リソースの使用状況に合わせて明確で実用的な推奨事項を作成します。AWS Compute Optimizer は AWS Organizations に統合されており、マスター titletitleAWS Organizations アカウントから複数のアカウントの推奨事項を確認できます。

AWS Compute Optimizer を開始するには、AWS マネジメントコンソールに移動し、[AWS Compute Optimizer] を選択してサービスをアクティブ化します。Amazon CloudWatch メトリクスを使用してリソースの使用状況と履歴の分析をすぐに開始し、数時間後に最初の推奨事項を提示します。

次のように、AWS Compute Optimizer ダッシュボードで最初の推奨事項を確認できます。

次のように、[オーバープロビジョニング: 8 インスタンス] をクリックして詳細を取得します。

8 つのリンクのいずれかをクリックすると、実用的な結果が表示されます。

AWS Compute Optimizer には複数のオプションがあります。そのページの下部をスクロールすると、この推奨事項を適用することに決めた場合にどのような影響があるかを確認できます。

次のように、AWS コマンドラインインターフェイス (CLI) から推奨事項にアクセスすることもできます。

$ aws compute-optimizer get-ec2-instance-recommendations --instance-arns arn:aws:ec2:us-east-1:012345678912:instance/i-0218a45abd8b53658
{
    "instanceRecommendations": [
        {
            "instanceArn": "arn:aws:ec2:us-east-1:012345678912:instance/i-0218a45abd8b53658",
            "accountId": "012345678912",
            "currentInstanceType": "m5.xlarge",
            "finding": "OVER_PROVISIONED",
            "utilizationMetrics": [
                {
                    "name": "CPU",
                    "statistic": "MAXIMUM",
                    "value": 2.0
                }
            ],
            "lookBackPeriodInDays": 14.0,
            "recommendationOptions": [
                {
                    "instanceType": "r5.large",
                    "projectedUtilizationMetrics": [
                        {
                            "name": "CPU",
                            "statistic": "MAXIMUM",
                            "value": 3.2
                        }
                    ],
                    "performanceRisk": 1.0,
                    "rank": 1
                },
                {
                    "instanceType": "t3.xlarge",
                    "projectedUtilizationMetrics": [
                        {
                            "name": "CPU",
                            "statistic": "MAXIMUM",
                            "value": 2.0
                        }
                    ],
                    "performanceRisk": 3.0,
                    "rank": 2
                },
                {
                    "instanceType": "m5.xlarge",
                    "projectedUtilizationMetrics": [
                        {
                            "name": "CPU",
                            "statistic": "MAXIMUM",
                            "value": 2.0
                        }
                    ],
                    "performanceRisk": 1.0,
                    "rank": 3
                }
            ],
            "recommendationSources": [
                {
                    "recommendationSourceArn": "arn:aws:ec2:us-east-1:012345678912:instance/i-0218a45abd8b53658",
                    "recommendationSourceType": "Ec2Instance"
                }
            ],
            "lastRefreshTimestamp": 1575006953.102
        }
    ],
    "errors": []
}

AWS Compute Optimizer は、推奨事項のベースとして Amazon CloudWatch メトリクスを使用することに注意してください。デフォルトでは、CloudWatch メトリクスは、CPU 使用率、ディスク IO、ネットワーク IO など、ハイパーバイザーの観点から観察できるメトリクスです。AWS Compute Optimizer でメモリ使用量などのオペレーティングシステムレベルのメトリクスを考慮する場合、EC2 インスタンスに CloudWatch エージェントをインストールする必要があります。AWS Compute Optimizer は、利用可能な場合にこれらのメトリクスを自動的に認識し、推奨事項の作成時にこれらを考慮します。利用できない場合には、コンソールに「Data Unavailable」と表示されます。

AWS のお客様は、リソースを選択する際にパフォーマンスだけが評価される指標ではなく、価格対パフォーマンスの割合も重要だと語っています。たとえば、新しい世代がワークロードに対して過剰にプロビジョニングされているように見える場合でも、古い世代 (m3 または m4) ではなく、m5 などの新しい世代のインスタンスファミリーを使用するのが理にかなっている場合があります。AWS Compute Optimizer がワークロードに最適な AWS リソースのリストを特定した後に、オンデマンド料金、予約済みインスタンス料金、リザーブドインスタンスの使用率、リザーブドインスタンスのカバレッジ、およびその推奨事項に対する予想されるリソース効率を提示するのは、このためです。

AWS Compute Optimizer を使用すると、リソースのサイズを簡単に調整できます。ただし、最新のアプリケーションや水平方向にスケーリングするステートレスアプリケーションのリソースを適切にサイズ調整することは比較的簡単ですが、古いアプリケーションを適切にサイズ調整することは非常に困難になり得ます。一部の古いアプリは、異なるハードウェアアーキテクチャで正しく実行されない可能性があったり、異なるドライバーが必要であるか、アプリケーションベンダーによってまったくサポートされていなかったりします。パッケージ化されたアプリや古いアプリのクラウドリソースを最適化する前に、必ずベンダーに確認してください。

本番環境に推奨事項を適用する前に、新しい推奨インスタンスタイプでアプリケーションを徹底的にテストすることを強くお勧めします。

Compute Optimizer は、先ずは米国東部 (バージニア北部)米国西部 (オレゴン)欧州 (アイルランド)米国東部 (オハイオ) 南米 (サンパウロ) の AWS リージョンで無料でご利用いただけます。今すぐ AWS マネジメントコンソールに接続し、クラウドアプリケーションに適切なリソースサイズを選択することでどれだけ節約できるかをご自身の目で確かめてみてください。

— seb