[レポート]無駄のないアーキテクチャの実行:AWSで費用対効果を追求する #ARC209 #reinvent

re:Invent 2019 セッション ARC209 Running lean architectures: How to be cost-effective on AWSのレポートです。コスト節約に集中した内容となっています。
2019.12.05

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

はじめに

ARC209: Runnning lean architectures : How to be cost-effective on AWSのセッションに関するエントリーです。

[REPEAT 1] Running lean architectures: How to be cost-effective on AWS

このセッションでは、AWSにて無駄のないアーキテクチャを実行するために費用対効果の追求を中心に触れていきます。

  1. SavingsPlansのすすめ
  2. 使っていないインスタンスは落とす
  3. Amazon EC2 Auto Scalingを使う
  4. HERE.comによるカスタマートーク
  5. 非同期処理と待ちの繰り返し
  6. あらゆるものをあらゆる場所でキャッシュ
  7. AI/MLでの節約
  8. おさらい

SavingsPlansのすすめ

新しいフレキシブルな価格体系で、Amazon EC2及び Amazon Fargateの利用費を最大72%まで節約します。1年あるいは3年通しての利用を確約します。

Savings Plans – Amazon Web Services

使っていないインスタンスは落とす

開発・テスト・およびトレーニング用のインスタンスが該当します。

インスタンスの開始・停止を活用する

AmazonRDSにて有効です。

アーキテクチャのセットアップを用いたオンオフ

AWS CloudFormation及びHashiCorp、TerraFormあるいはバッチ処理などが使えます。

AWS CloudFormation(テンプレートを使ったリソースのモデル化と管理)| AWS

HashiCorp: Infrastructure enables innovation

Terraform by HashiCorp

Amazon EC2 Auto Scalingを使う

CloudWatchのモニタリングにより、自動的にEC2インスタンスの数を調整します。

  • キャパシティを増やすために新しいインスタンスを開始する
  • キャパシティを減らすためにインスタンスを終了させる
  • インスタンス数の最小・最大値を操作する

これにはAmazon EC2 スポットインスタンスを用いると効果的です。補完的なキャパシティで、価格は需要と供給ベースにて決まり、最大で90%の割引が可能です。わずか2分程度で開始できます。

HERE.comによるカスタマートーク

カスタマートークセッションとして、HERE.comのHERE Cloud Management Teamによる紹介がありました。

構成図についても紹介がありましたが、confidentialのため、このエントリーでの掲載は行いません。

RI利用率の推移

RIの利用率が一年で80%越えに推移。85を越えた利用率を維持。チームでのコストを意識。

構成の拡張

以下のモデルをEC2からRIへ推移させて、基盤プログラムを移行。

  • Amazon RDS
  • Amazon RedShift
  • Amazon ElasticCache
  • Amazon ElasticSearch Service
  • Amazon DynamoDB

また、構成の変更に対し柔軟性を持たせるためにコンパーチブルRIを追加。

結果

3.5年をかけて、1億5千万ドル以上の節約にて5000万ドル以上の収益を得られました。

非同期処理と待ちの繰り返し

処理時間を短縮することで、利用の節約につなげます。下図は上が同期モデル、下が非同期なやり取りの例となります。

60%のLambda関数実行時間の節約となりました。

AWS Step Functionsを使うことで節約に繋げた例もあります。

Things Go Better With Step Functions | AWS News Blog

あらゆるものをあらゆる場所でキャッシュ

DataBase、App、Web、等ありとあらゆるものがキャッシュできます。

例えば、Amazon CloudFrontは210拠点(37ヶ国、78の街)で静的及び動的なコンテンツをキャッシュしています。リージョンからの直接リクエストよりもコストが抑えられます。

実際にDynamoDBで節約できたグラフの例です。合計秒間2万回の読み込みを秒間3000回まで抑えています。

AI/MLでの節約

具体的な方法と関連するドキュメントへのリンクです。

使わないインスタンスを落とす
Amazon SageMaker notebooks
ノートブックインスタンスの使用 - Amazon SageMaker
すべてを自動化
Amazon SageMaker
Amazon SageMaker(機械学習モデルを大規模に構築、トレーニング、デプロイ)| AWS
オートスケーリングを使う
Amazon SageMaker auto scaling
Amazon SageMaker のモデルを自動的にスケーリングする - Amazon SageMaker
スポットインスタンスを使う
Amazon SageMaker Managed Spot Training
Amazon SageMaker のマネージドスポットトレーニング - Amazon SageMaker

費用効果のよいMLパイプラインの作成

  • データプレパレーションにAWSマネージド・サービスを用いる。
  • Amazon Athena, AWS Glue, AWS Lake Formation等
  • ラベリングにAmazon SageMaker Ground Truthを用いる
  • アクティブ・ラーニングは70%以上のラベリングコスト削減が可能です
  • Amazon SageMaker notebooksの開始停止を自動化
  • Amazon SageMaker notebooksのサイズを軽量化

MLモデルトレーニングの節約

プロダクションでのinference(推測)/MLの節約

おさらい

  • EC2スポットインスタンス、RI、そしてSavingsPlansを使う
  • 使っていないインスタンスは落とす
  • Amazon EC2 AutoScalingを使った自動化
  • 非同期処理と待ちの繰り返し
  • あらゆるものをあらゆる場所でキャッシュ
  • マネージドサービスを活用する
  • AI/ML Amazon SageMakerの高度な機能を活用する

関連コンテンツ

aws-well-architected-labs/arc219
aws-well-architected-labs/arc219.md at master · awslabs/aws-well-architected-labs
aws-well-architected-labs/ent206
aws-well-architected-labs/ent206.md at master · awslabs/aws-well-architected-labs

過去のコスト最適化セッション

AWS re:Invent 2018: Running Lean Architectures: How to Optimize for Cost Efficiency (ARC202-R2)
AWS AWS re:Invent 2017: Running Lean Architectures: How to Optimize for Cost Efficiency (ARC303)
AWS re:Invent 2016: Running Lean Architectures: How to Optimize for Cost Efficiency (ARC313)

あとがき

AWSにおけるコスト節約に関するセッションでした。AWS Well-Architected programにもコスト最適化の資料があります。必要に応じて参照してください。

コスト最適化 - AWS Well-Architected フレームワーク