顧客フロントSEのIT勉強ブログ

2022 Japan AWS Top Engineer / 2022-23 Japan AWS Certifications Engineer。AWS認定12冠、情報処理試験全冠。顧客フロントSEがなるべく手を動かしながらIT技術を学んでいくブログです。

【書評】AWSコスト最適化ガイドブック

こんにちは、大石(@se-o-chan)です。

クラウドを”利用するだけ”ではなく、クラウドの”最適化”を成し遂げることでDXも実現できる」
本書”はじめに”の一節です。クラウドは従量課金という特性上、アーキテクチャによってはコスト過剰になりうるため、コスト最適化の観点はオンプレ以上に重要です。そんなコスト最適化について、AWSの中の人が書いたガイドブックです。

AWSコスト最適化ブック

本の概要

2023年3月に初版発行。アマゾンウェブサービスジャパンの6名による共著です。本書末尾の執筆者一覧によると、著者の1人である門畑さんはAWSのコスト最適化フレームワークCloud Financial Management(CFM)プログラムの立上げに携わっていたそうです。

そんな著者がまとめた本書ですから、まさにAWS CFMの説明書というべき内容になっています。

本の構成

第1章 AWSコスト最適化戦略
第2章 可視化
第3章 クイックウィン最適化
第4章 アーキテクチャ最適化
第5章 予測・計画
第6章 クラウドFinOps
資料 AWSコスト管理に係るサービス

第1章でAWSでシステムを設計する際の基礎となる「AWS Well-Architectedフレームワーク」の6つの柱と、そのうちの1つであるコスト最適化を進めるためにAWSが提唱しているCFMフレームワークを紹介しています。
さらにCFMフレームワークには4つの柱があり、それ以降の章では

  • 可視化 →第2章
  • 最適化 →第3、4章
  • 予測・計画 →第5章
  • FinOpsの実践 →第6章

とそれぞれを説明するという構成になっています。まさにCFMの教科書であり、全384ページの内容も読みやすくまとめられています。

本の書評

多くのノウハウが盛り込まれおり全編をまとめるのは大変なので、私の印象に残った箇所をいくつか抜粋します。

第2章 可視化

コスト最適化は、なににどのくらいの費用がかかっているかを把握する「可視化」からスタートです。可視化の流れは以下の2ステップに集約されます。

  • アカウント分割とタグ付けによって利用料を細分化する
  • Cost ExplorerやCost and Usage Report (CUR)で細分化されたコストを分析する

アカウント分割はコスト可視化だけでなく、システム・環境別の権限管理などメリットが大きいため、AWSでもマルチアカウント運用が主流になっていますね。ありがたいことに100個近いアカウントを本番運用する経験に恵まれているので、マルチアカウント運用のTipsもどこかでまとめたいなと思っています。

第3章 クイックウィン最適化

CFMフレームワークの内、「最適化」こそがクラウド利用料を削減・最適化するステップであり、CFMの中心となる柱です。その最適化も大きく2つに分けられ、アーキテクチャを大きく変更せずにクイックに適用できる「クイックウィン最適化」と、中長期的にクラウドネイティブアーキテクチャに変革していく「アーキテクチャ最適化」があります。

本書では代表的なクイックウィン最適化の取組みがまとめられています。クラウド利用している誰しもが、まずはこれらのアプローチを愚直に丁寧に取り組む必要があります。

アプローチ 概要
インスタンス選定 過剰なリソースが割り当てられている場合、適切な容量まで小さくする。
最新世代のインスタンスタイプやGravitonへの変更もあり得る。
購入オプション選定 リザーブインスタンスやSavings Plans、スポットインスタンスを利用する。
不要リソース停止 使っていないサーバを削除する
スケジュール調整 未使用の時間帯はサーバを停止したり、オートスケールさせる
ストレージ選定 EBS、FSx、EFS、S3など最適なサービスを選定する
ライセンス最適化 商用ソフトのライセンス数を適正化する

個人的にはSQL ServerOracle Databaseといった3rdパーティソフトウェアのライセンス数の考え方や最適化まで踏み込んでいるのが良いと思いました。 MicrosoftOracleも自社でパブリッククラウド保有しているため、AWSGoogle CloudなどでOracle Database等を利用する際、ライセンス費用がオンプレ時よりも高くなってしまうケースがあります。
AWSとしても自社サービスではないため、AWSサポートにこの辺りを質問してもあまり的を射た回答が得られにくいのですが、本書ではしっかり触れられているので「踏み込んでいるなぁ!」という印象です。

第4章 アーキテクチャ最適化

時間はかかるが得られるメリットが大きいアーキテクチャ最適化として、大きく2つ取り上げられています

例えば前者のネットワーク構成について「ECRへのイメージプッシュのようなAWSサービスへの通信をインターネット経由にしていたら、データ転送費用が爆上がりした」という話を時折耳にします。そういう時はVPCエンドポイント経由にしたほうが多くのケースで転送費用を削減できます。
また、ゼロから構築する機会が少ないDirect Connect、Transit Gateway、Site-to-Site VPNの構成パターンも説明してくれていて、頭の整理ができました。

後者のクラウドネイティブアーキテクチャについては、EC2ベースのレガシーアーキテクチャよりもAWS側に管理を任せられる領域が増えるため、管理工数が減らせるという観点が大きいですね。ただ、SIerにいる身としては「顧客自身は手を動かして運用保守していないため、クラウドネイティブにするメリットを感じてもらえない」というシーンを多々目にします。基幹系システムは特にそうなりがちです。せっかくクラウドを使うのであればクラウドネイティブのメリットを上手く訴求し、win-winな運用を目指したいです。

第6章 クラウドFinOps

ここまで触れてきたような活動を持続的に行いコスト最適化を実現することをFinancial Operations(FinOps)と呼びます。

FinOpsはCloud Center of Excellence(CCoE)が中心になって管理・推進しつつも、現場の利用部門がコスト最適化策を主体的に実施していくというのが完成系です。とはいえ、そこに至るまでには長い時間と大きな労力を要するでしょう。ガイドラインの整備、コスト最適化の啓蒙、教育など地道にCCoEが現場に働きかけを続ける必要があります。

またこの章では「Saving Plans / リザーブインスタンスは1年か3年かで割引率の違いが大きく(10%後半~20%台の差)、前払いあり/なしによる割引率の違いは小さい(5%程度の差)ので、購入をためらっているなら前払いなしもアリ」というノウハウもあり、CCoEや現場リーダークラスの方には有益な情報が多いのではないでしょうか。

まとめ

全体を通じて初見の情報は少ないかも知れませんが、コスト最適化に関する情報をCFMというフレームワークを軸に体系的にまとめてくれているのがありがたいです。 「インスタンスタイプは最新世代の方が安いらしい」「EBSよりもS3にファイル保存したら保管料が安くなるよね」という断片的な知識は持っているんだけど・・・という方は必見の一冊です。
コスト最適でサステナブルクラウド運用を目指しましょう!

以上、大石(@se-o-chan)でした。