技術書典 応援祭で Amazon Web Servicesコスト最適化入門という技術同人誌を出しました。出した後に AWS コストについて扱った本がないかを調べたところ、「Mastering AWS Cost Optimization」という本がとても良かったので紹介します。
Independently published (2019-04-18T00:00:01Z)
¥4,785
私が読んだのは初版で、今は第2版(Second Edition)が出ていました。目次は変わりませんが、ページ数は増えていました。差分は未確認です。
構成
この本では、3つの柱で構成されています。
- コンピューティング、ストレージ、ネットワークコストの最適化
- アプリケーションレイヤーでのコスト削減
- コストガバナンスに基づいた運用
ただの AWS コスト最適化本ではない
AWS コスト最適化と聞いてよく聞くのが、
「RI 買いましょう」
「Savings Plans 買いましょう」
「不要なインスタンスを落としましょう」
「こういうツール(サードパーティ)を使えばいいですよ」
といったベストプラクティス的な話だと思います。しかし、現場に落とし込んだときに、
「どういう RI を買えばいいのかがわからない」
「不要そうなインスタンスがないのだけどこれ以上どうやってコスト削減すればいいかわからない」
「EC2 以外のコストを下げたいけどやり方がわからない」
といった悩みが出てくるかと思います。
この本では主要な AWS サービスのサービスの基本的な説明から日々の運用でコスト増加につながる要因について解説されていますが、それだけではなく継続的な監視・追跡に基づいたコスト最適化の重要性について語られています。
Cloud cost optimization is a journey.
Cloud cost optimization is a journey. There is really no one-time magic in a cloud cost-optimization process. All actions aimed at cost reduction should be part of a continuous, cross-organizational effort. 「Mastering AWS Cost Optimization Second Edition」から引用
クラウドの最適化は旅です。クラウドのコスト最適化プロセスには、本当に一度きりの魔法はありません。コスト削減を目的としたすべての行動は、組織を横断した継続的な取り組みの一部であるべきです。(DeepL翻訳)
私が本書で最も気に入ったのがこの箇所です。2年以上コスト最適化に携わっているので共感できるのですが、RI を買ったり EC2 を止めたりするだけでは本当の最適化ではないんですよね。定期的にコストレポートをチェックして増加・減少要因を分析したり、AWS サービスを理解し駆使して最適化に努めたりします。もちろん、動いているシステムやアプリケーションについてのドメイン知識もある程度必要ですし、ソフトウェアエンジニアやデータサイエンティストなど、多くの人を巻き込んでいかなければなりません。一人でできる量に限界はあるのです。
本書の後半で CCoE(Cloud Center of Excellence)を確立し、開発・財務の垣根を超えてコスト最適化に取り組むべきと書いてあります。
KAO™ メソドロジー
この本で謳っているのが「KAO™メソドロジー」というものです。KAO は「Knowledge・Architecture・Operation」の頭文字から取っています。
- Knowledge
- AWS サービスを使用・コスト最適化する前に、全体的な理解をする必要がある
- Architecture
- コストの知識だけあっても駄目で、アーキテクチャやAWSサービスだけ詳しくても駄目。両方を知る必要がある
- Operaiton
- AWS のコスト最適化は一度だけ行えばいいものではない。継続的な監視・追跡・最適化が必要である
クラウドの利用状況やコストパターンを把握し、関連する「Knowledge」と「Architecture」の理解に基づいた継続的な「Operaiton」がなければなりません。どれか一つが欠けてしまうと不十分です。
コンピューティング、ストレージ、ネットワークコストの最適化
主要な AWS サービスにおいてこの KAO™メソドロジー に基づいたコスト最適化について解説がされています。
- コンピューティング
- EC2
- サーバレス(AWS Lambda)
- コンテナ(ECS、EKS、Fargate)
- ストレージ
- S3
- EBS、EFS
- ネットワーク
- データ転送料金
- VPC
コストガバナンスに基づいた運用
先ほど、コスト最適化では継続的な監視・追跡・最適化が必要であると書きました。毎日手動でリソース追跡をしたり、環境を管理するのは大変なので自動化をするためのヒントを教えてくれます。
AWS Config によるリソース追跡、IAM で特定のインスタンスタイプの起動を制限する、AWS Budgets で予算管理する、といった具合です。
タグ付け
コスト追跡するためにはタグ付けが重要です。タグ付けすることで、プロジェクトや部署ごとのコストを可視化することができたり、リソース所有者を迅速に特定することができます。
どのようなタグをつければいいかわからない場合は、本書で推奨タグを紹介しているのでそれを真似ると良いでしょう。
KPI に基づいた測定と評価
コスト最適化をした後は、測定と評価をしなければなりません。システムが成長している場合に、クラウド全体費用で評価すると削減分が成長分で消えてしまうため評価ができない場合があります。本書ではAWSリソースとビジネスの2つの軸から定量的な KPI の作り方のヒントが載っています。
感想
著者の一人が AWS の中の人だけあって、AWS サービスについて詳しく解説されています。AWS に少し触れた人なら理解できるかと思います。まったくの初心者だと難しいかもしれないので、別著やドキュメントで補うと良いかと思います。
私が執筆した「Amazon Web Servicesコスト最適化入門」では書ききれなかったところが多く、「こういう書き方があったのか!」と勉強になりました。商用版では大いに参考にさせていただきます(パクるのではなく参考にする)。コストの見積もりや分析方法についてはあまり書かれていなかったので、自著を読まれると良いかと思います(宣伝)。
サードパーティのコスト最適化ツールについて簡単な紹介だけに留めていたのは個人的に高評価です。巷で営業されているサードパーティツールを否定するわけではありませんが、まずは AWS だけでできることをやってからでもいいのでは?と常々思っています。決してサードパーティを否定しているわけではありません。。。
繰り返しになりますが、ただの AWS コスト最適化だけではなく、現場レベルでの継続的な最適化について書かれている「ガチめ」な本です。自著のコスト最適化入門とは違った視点でコスト最適化について学べる良本なのでぜひ読んでみてはいかがでしょうか。