CI部 佐竹です。
本日は、AWS Compute Optimizer のアップデートについて記載します。
はじめに
AWS Compute Optimizer はコスト最適化に役立つサービスの1つで、2020年2月から東京リージョンで利用可能となっています。
現在、Compute Optimizer の推奨は以下の4つです。
- EC2 instances
- Auto Scaling groups
- EBS volumes
- Lambda functions
このうち、1. EC2 instances と 2. Auto Scaling groups はリリース当初から利用が可能でした。3. EBS volumes 及び 4. Lambda functions はリリース後に順次追加された推奨機能です。
今回のリリースは「1. EC2 instances」の機能強化となっております。
EC2 インスタンスに関する推奨の機能強化
強化されたのは以下の4点です。
Recommendation Quality Improvements
推奨品質の改善が行われました。具体的には、Compute Optimizerは EC2 インスタンスタイプの推奨作成時、1秒あたりのネットワークパケット、ローカルストレージのスループット、加えてローカルストレージ IOPS を考慮するようになりました。
EC2 インスタンスは、インスタンスタイプによってネットワークパフォーマンス(帯域)が異なります。基本的に新しい世代になるほど早く、インスタンスサイズが大きいものほど早くなります。以前はコスト削減のためにインスタンスタイプをより小さいサイズに下げた場合に、ネットワークパフォーマンスに影響が出る可能性がありましたが、この推奨によりそのあたりの懸念点も払拭可能となりました。
上画像の通り、今まで表示のなかった項目 (Disk read operations (per second) など) がマネジメントコンソールからも確認できます。
※画像では No data available.
となっている箇所です
Recommendation Coverage Improvements
レコメンデーションカバレッジ(推奨範囲となるインスタンスタイプのカバー率)の改善が行われました。これにより、今までに加えて 153 のEC2 インスタンスタイプがサポートされます。新たにサポートされるインスタンスタイプは、ストレージ最適化インスタンス(I3、I3en、D2、D3、D3en、H1)、最大100Gbpsのネットワーク帯域幅を持つインスタンス(C5n、M5n、R5n、M5dn、R5dn、M5zn)、高周波インスタンス(z1d)、およびGraviton2インスタンス(C6g、M6g、R6g、C6gd、M6gd、R6gd、C6gn)が加えられました。
今まで n
や dn
のインスタンスタイプは推奨に掲載されず、また Graviton2 インスタンスも推奨に出てきませんでした。推奨されるインスタンスタイプが増加したことは非常に喜ばしい機能強化です。これらの表記の意味するところは、以下のブログをご参考ください。
また、東京リージョンで利用可能な(現時点での)インスタンスタイプ一覧も合わせてご参考ください。
以下の通り、マネジメントコンソールから「r5n」が推奨に掲載されていることが確認できました。
Recommendation Insights
推奨事項の洞察が追加されました。Compute Optimizerは、プロビジョニングが過剰もしくは不足と判断されたリソースの要素(ディメンション)を特定することで、推奨事項に関するより深い洞察(インサイト)を提供するようになりました。サポートされているリソースの要素には「CPU、メモリ、ネットワーク帯域幅、1秒あたりのネットワークパケット、ローカルストレージIOPS、ローカルストレージスループット、EBSスループット、EBS IOPS」が含まれます。
本改善を受けて、今まで存在しなかった 「Finding reasons」 という項目がマネジメントコンソールに新たに追加されております。一例として CPU over-provisioned, Memory over-provisioned, EBS IOPS over-provisioned, EBS throughput over-provisioned, Network bandwidth over-provisioned, Network PPS over-provisioned
のように、どのような理由で「Finding」の結果となったのかが本項目内に記載されるようになっています。
推奨において表示される Reasons については、以下のドキュメントにパターンと詳細が掲載されておりますので合わせてご覧ください。
また、「Finding reason」でフィルターが可能なように検索窓も強化されています。
Platform Difference Information
異なるプラットフォームに関する情報が記載されるようになりました。具体的には、現在の EC2 インスタンスタイプと推奨される EC2 インスタンスタイプのプラットフォーム間の違いが明確となりました。この強化により、現在のインスタンスタイプから推奨されるインスタンスタイプへの変更作業時、必要となる「潜在的な構成変更(ネットワークドライバー、NVMeドライバーなど)」を特定することが容易となります。
本強化を受け、マネジメントコンソールには以下の通り「Platform differences」の表記が追加されています。
非 Nitro 世代である「m4.large」を Nitro 世代である t3
や m5
ファミリーのインスタンスタイプへと変更するには、Hypervisor がまず異なるという点が強調されており、そのために Network interface
= ドライバーのアップデートが必要なことが示唆されています。世代を跨ぐインスタンスタイプの変更については以下の公式ドキュメントも合わせてご確認ください。
この点は今まで本機能内で示唆されておらず、t2 ファミリー から t3 ファミリーへの推奨等が出力された場合には、お客様へ「Nitro 世代に変更となるので要注意です」とご案内してきましたが、このような「一言添えてきた箇所」が本アップデートで明確になりました。これもコスト最適化の運用面でヘルプフルなアップデートです。
まとめ
本日は、AWS Compute Optimizer の EC2 インスタンスに関する推奨が強化されたというアップデート内容について記載しました。
本ブログでは、強化された推奨内容4点を翻訳・解説するにあたり、AWS マネジメントコンソールの画面キャプチャを用いて補足させて頂きました。追加された4つのアップデートをまとめると以下の通りです。
- ネットワークやストレージの IOPS/Throughput が加味されるようになった
- 推奨に現れるインスタンスタイプが 153 種類追加された
- 何故そのような推奨となったのかを説明する
Finding reason
が新たに追加され、検索条件としても利用可能となった - インスタンスタイプ変更時の潜在的な変更項目
Platform differences
が表示されるようになり、タイプ変更時のリスクが明確になった
AWS Compute Optimizer が強化されたことで、EC2 インスタンスのインスタンスタイプを見直してコストを最適化することがまた一歩やりやすくなりました。ただし、実際インスタンスタイプを変更するには EC2 インスタンスの停止を必ず伴います。AWS の本推奨は信頼に値するものではありますが、変更にあたっては十分な現場調整とテストを実行されてから行われますようお願い致します。
ではまたお会いしましょう。
佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ
マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023 Japan AWS Top Engineers/2020-2023 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。