電磁波に撃たれて眠りたい!

今日も電磁波浴びまくりのIT業界で働く@mamohacyがガジェット/クラウド/IT業界を語ってくブログ

【AWS re:learning】Day8(1/1) AWS Compute Optimizer

f:id:mamoahcy:20210107230614p:plain

●調査リスト

①公式サイト
https://aws.amazon.com/jp/compute-optimizer/
②ユーザーガイド
https://docs.aws.amazon.com/ja_jp/compute-optimizer/latest/ug/what-is-compute-optimizer.html
③BlackBelt
-
④DevelopersIO記事一覧
https://dev.classmethod.jp/tags/aws-compute-optimizer/
⑤リリースノート

⑥ドキュメント更新履歴
https://docs.aws.amazon.com/ja_jp/compute-optimizer/latest/ug/doc-history.html

●温度感調査

Developers IO パラメータ

記事数:6
最終更新日Top3:2020.12.242020.12.082020.10.14

サービスアップデート状況

サービス提供開始:2019/12/2

https://aws.amazon.com/jp/new/?whats-new-content-all.sort-by=item.additionalFields.postDateTime&whats-new-content-all.sort-order=desc&whats-new-content-all.q=Compute%2BOptimizer&whats-new-content-all.q_operator=AND

2020/12/23 AWS Compute Optimizer が AWS Lambda 関数の推奨事項の提供を開始
2020/10/08 AWS Compute Optimizer が、Amazon EBS メトリクスを使用して EC2 インスタンスタイプの推奨事項を強化
2020/10/07 AWS Key Management Service に保存されているカスタマーマスターキー (CMK) を使用して AWS Compute Optimizer のレコメンデーションデータを保護
2020/09/15 AWS Systems Manager Explorer が運用データソースのグループ化とカスタマイズのサポートを開始
2020/06/10 AWS Compute Optimizer が Amazon S3 へのレコメンデーションのエクスポートのサポートを開始

2020年内のサービスアップデートアナウンス:8

ドキュメントアップデート状況

https://docs.aws.amazon.com/en_us/codedeploy/latest/userguide/document-history.html

December 23, 2020 AWS Lambda function recommendations
December 3, 2020 Amazon EBS volume recommendations
October 7, 2020 Amazon EBS metrics and encrypted S3 buckets
June 10, 2020 Recommendations export
April 6, 2020 Self-service opt out

2020年内ドキュメントアップデート回数:5回


API バージョン: 2019-11-30
ドキュメント最新更新日: 2020 年 10 月 7 日

●AWS Compute Optimizer サマリ

EC2のメトリクス情報をCloudWatchから収集/分析し、リソースの利用状況が最適なのかを一覧表示してくれるサービス。 分析には30時間以上のEC2稼働時間が必要で、分析が出るまでには数時間から最長12時間程度かかる必要があるとのこと。

ネットワーク最適化(-n)、Graviton2 プロセッサ(-g)を除くM、C、R、T、X のインスタンスタイプの推奨事項を生成できる。

サービス画面から起動してオプトインするとマネジメントコンソールが表示されて、対象となるインスタンスから情報が収集され、一覧表示される

↓テストでやってみた f:id:mamoahcy:20210109105454p:plain

情報収集と分析は一覧を表示するたびに実行されるようで、対象となるインスタンス数が多いと表示完了までに時間がかかる。

やってみてわかったが、EC2やEBSだけでなく、AutoScalingやLambdaも分析対象に入っているようだ。 Lambdaでは分析結果から最適なメモリサイズがレコメンドされる模様。(AutoScalingは不明)

一覧表示されると、EC2では「プロビジョニング不足 」「最適化 」「過剰なプロビジョニング」の3種類が表示され、該当するインスタンスを表示するととその分析結果に分類されたインスタンスリストが表示される。私のテストではプロビジョニング不足、過剰なプロビジョニングはなかった。

f:id:mamoahcy:20210109110301p:plain

該当のインスタンスを選択すると、収集されたメトリクス情報がグラフで表示され、さらに現在の状態から変更すべきインスタンスタイプが2種類表示。 そこからそれぞれの推奨インスタンスタイプを選択すると、変更後のパフォーマンス予測がグラフにプロットされる。

f:id:mamoahcy:20210109111726p:plain

EBSでも同様なメトリクスグラフと選択オプションが表示される。

f:id:mamoahcy:20210109111749p:plain

グラフに表示できる列は設定変更できるようだ

f:id:mamoahcy:20210109111416p:plain

表示されたレコメンデーションのエクスポートやCLIからのアクセスなども可能。

ここからEC2やEBSのマネジメントコンソールに直接アクセスできるようだが、レコメンドされたインスタンスタイプやEBCに自動的にマイグレーションするサービスは提供されない。つまり比較検討を行い、マイグレーションリスクを判断した上で自分自身で切り替えを行う必要がある。

深堀りの有無

実施しない

●所感

今回、AutoScalingやLambdaまでは深堀りできませんでしたが、それでも収集メトリクスからレコメンドを出してくれる機能は非常に有り難いと感じました。

特にサービスパフォーマンスに影響が出ている状況において、どんなインスタンスタイプやどんな設定変更を行えば効果的なのかは別環境を作ってテストするなどの必要がありましたが、これによりだいたいの比較検討結果が出せるので、短期的な対策を取るには有効的な分析機能と言えると思います。

ただ、これを判断できたとしても、マイグレーションに必要な手続きがすべて手動で行う必要があります。

となると状況を把握し、移行すべき先がどれかの判断ができたとしても、これを実際のオペレーションに移すのは敷居が高そうです。AWSがこの機能を実装しなかったのは移行リスクが単純なインスタンスマイグレーションだけでは判断できないからで、「あえてやらなかった」んだと思いますが、たとえばマイグレーションのためのオペレーションシーケンスを予め組んでおくと本番とは別環境で評価できるような機能が用意できれば、マイグレーション機能と統合されることで強力なオプティマイゼーションサービスになると思います。(このようなサービスって、私が知らないだけで既にAWSにあるのでしょうか?)

こちらも今後に期待です。

●参考情報

↓[アップデート] AWS Compute Optimizer で Lambda 関数の最適なメモリサイズがレコメンド可能になりました! | Developers.IO
https://dev.classmethod.jp/articles/aws-compute-optimizer-delivers-recommendations-aws-lambda-functions/

↓AWS Compute Optimizer – カスタマイズされたリソース最適化サービス | Amazon Web Services ブログ
https://aws.amazon.com/jp/blogs/news/aws-compute-optimizer-your-customized-resource-optimization-service/