【レポート】より良く、速く、安く、コストを最適化しよう(CMP202) #reinvent 2019

re:Invent 2019 のセッション Better, faster, cheaper— cost optimizing EC2(CMP202)のセッションスライドから読み取った内容から、AWS のコスト削減に関する仕組みと提供スタンスなどについて考察してみました。
2019.12.29

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

こんにちは、札幌在住 AWS 事業本部 オペレーション部(通称オペ部)の池田です。
今回は re:Invent 2019 のセッション Better, faster, cheaper— cost optimizing EC2(CMP202)のセッションスライドから読み取った内容をもとに、EC2 のコスト削減に関する仕組みと AWS による提供スタンスなどについて考察してみました。

セッションについて

  • タイトル
    • Better, faster, cheaper— cost optimizing EC2(CMP202)
  • 発表者
    • Jeanine Banks, General Manager, AWS Compute Services, Amazon Web Services
    • Alex Estrovitz, Director Platform Engineering, Salesforce

概要

It’s easier than ever to grow your compute capacity and enable new types of cloud computing applications while maintaining the lowest TCO by blending Amazon EC2 Spot, On-Demand, and Reserved Instance purchase models. In this session, learn how to use the power of Amazon EC2 with other AWS services and features such as Auto Scaling, Amazon ECS, Amazon EKS, Amazon EMR, and AWS Batch to programmatically optimize costs while maintaining high performance and availability‚ all without breaking a sweat. Finally, we dive deep into how AWS Compute Optimizer can help you maximize Amazon EC2 performance and lower cost.

公開資料はこちらにあります。残念ながらセッション動画は公開されていないようです。

Key takeaways from this session

このセッションのポイント

  • 低コストで新たなことを試してみる、テストを行う。イノベーションを加速する
  • コスト、キャパシティの最適化を自動的に行う方法を知る
  • ワークロードを最適化するためのベストプラティクスを知る
  • Immersion Day(没入法、集中講座のようなもの)を利用して得られる事柄について知る

Broadest and deepest platform choice

ほぼ全てのワークロード / ニーズに対応するため、用途(ワークロード)と性能(処理能力)およびオプションの自在な組み合わせによって 270種を超えるインスタンスタイプを提供

これらの 90% は AWS 利用者の要望に基づいてそれぞれのニーズを満たせるよう、設計して提供している

Optimizing Amazon EC2 cost and capacity

We continue to innovate for our customers

複数の購入方法、料金と性能のオプションを提供

  • オンデマンドインスタンス
    • 長期コミットをすることなく秒単位でリソース利用料を支払う
    • 急な利用増への対応など用途が明確な場合の利用
  • リザーブドインスタンス(RI)
    • 1年または 3年のコミットをすることでオンデマンド料金に比べて大幅な割引を得られる
    • インスタンスの常時長期稼働が確定している場合に利用
  • セービングプラン(Savings Plans : SP)
    • RI よりも柔軟でありながら同等の割引を得られる
    • 様々なインスタンスの利用に柔軟に対応可能
    • EC2 および Fargate を対象にできる
  • スポットインスタンス
    • EC2 インスタンスのキャパシティ(在庫)に余裕がある際に、オンデマンド料金に対して最大 90% 割引された料金で利用可能
    • 耐障害性の向上や柔軟性の向上、ステートレスな用途に利用

Using Amazon EC2 Auto Scaling

より使いやすくなった Auto Scaling の活用方法について

  • キャパシティの最適化
    • 利用するスポットインスタンス(の種類)に優先順位(重み)をつける
  • 低コスト
    • 最も低コストで利用可能なオンデマンドインスタンスとスポットインスタンスの組み合わせを選択
  • 優先順位(重み)づけされたリストの利用
    • インスタンスをスケールさせる際に、あらかじめ指定された優先順位に沿って起動するオンデマンドインスタンスを選択

あらかじめ Auto Scaling Group(ASG)において必要とする性能、利用したいインスタンスサイズと支払いオプション(オンデマンドまたはスポット)の内訳について優先順位(重み)づけにより指定しておくことで、台数ベースではなく性能ベースでの稼働インスタンスを確保できるようになった

この重みづけについては、下記 2つの記事が詳しいのでぜひご参照ください

[アップデート] EC2 Auto Scalingがインスタンスタイプ混在時の「インスタンスの重み付け」をサポートしました

[アップデート]EC2 AutoScalingでインスタンスタイプの重み付けができるようになりました

コスト削減のための考察

ここから、本セッションで触れられたコスト削減に関する仕組みについて考察してみます。

多種多様なインスタンスの提供について

これは Broadest and deepest platform choice の項にあったように、現在 270種を超えるインスタンスタイプ(と、そのオプションの組み合わせ)があります。これによって、欲しい性能に対して不足した / 過剰なスペックまたは台数のインスタンスを利用する必要はほぼなくなりました。しかし、コスト削減の視点で RI やスポットインスタンスを活用したくとも、種類が多くなった分その選定や管理などの負荷が増えてしまってきたのも事実かと思います。

  • 数百ものインスタンスを稼働させているアカウントにおけるコスト管理
  • 複数の ASG を利用しており頻繁に稼働インスタンス数が増減するケース
  • 中長期計画によって実施されるインスタンスタイプの変更

システム構成の検討でも大変なこれらの作業、管理においてコスト面まで含めると担当者ならめまいがするだろうと思います。そこで登場したのが SP なのではないでしょうか。

【レポート】Savings Plans でコストを削減する #CMP210 #reinvent (について #cmregrowth で発表しました)

re:Invent 振り返り勉強会 re:Growth 2019 in SAPPORO にて上記記事にあるように、SP についてのお話をさせていただきました。
この、利用者にとって超絶嬉しい(ですよね?)サービス SP がなぜ re:Invent 開催前に発表、リリースされたのか不思議に思っていましたが、本記事を書いている今、やっと納得ができた気がします。毎年のことながら re:Invent では新世代のインスタンスファミリーや、非常に多くの新サービス、アップデートが発表されます。それが、今年 2019年は今までにない規模であったわけです。つまり、それら新しいインスタンスファミリーや新サービス、新たなサービスの利用の仕方を提供するうえで SP が持つ強力な柔軟性は必要不可欠な存在であったと考えます。

低コストで新たなことを試してみる、テストを行う。イノベーションを加速する

SP を re:Invent 前に発表、リリースすることでその後に控えた多くの新サービスをコスト面でも、安心して利用してもらいたいという意図があったのではないでしょうか。

AWS 利用者の要望に基づいてそれぞれのニーズを満たせるよう、設計して提供している

まさに利用者(顧客)視点でのサービス展開なのだと感じています。
オンデマンド利用から、長期利用者のための割引オプションとして提供された Standard RI、さらに柔軟性を持たせた Convertible RI の提供開始もそうですよね。
従来、利用しているインスタンスファミリーやサイズ、OS とリージョンを考慮して RI を購入していたのが、アカウントとして「1時間あたりどれくらいのコストを支払っているか」の視点に置き換えて考えることで非常にわかりやすい仕組みになったと思います。

Auto Scaling のアップデートについて

これも SP 同様、推論や機械学習といった用途での需要増を見越したものなのではないかと感じました。今まで長年の企業活動において集積された膨大なデータを活用していくための計算リソースとして従来よりも多くの EC2 インスタンスが利用されるでしょう。また、新たな視点での新サービスが生まれればそこでも多くの EC2 インスタンスが必要とされるでしょう。このときに、処理やサービスの停止 / 中断といった事業継続や機会損失回避の視点に加え、より柔軟かつ、コスト削減の視点にも寄与できる仕組みが ASG に組み込まれたのだと思います。

まとめ

re:Growth 2019 in SAPPORO の発表でもお伝えしたのですが、AWS サービスをより効果的に低コストで利活用していくにはシステム設計、運用のノウハウだけではなくコスト管理、総合的な視野でのコスト最適化も必要不可欠だと考えます。ここを抑えるには、エンジニアだけでなくコスト管理をされている部門の方々とのディスカッションや AWS が提供する様々な購入オプション、仕組みについての共有も大切だと思います。
この記事がどなたか、あるいはどこかの組織のコスト削減施作の一助になればこの上なく嬉しいです。