本日も乙

ただの自己満足な備忘録。

技術書典8 で AWS コスト本を出します

先日、技術書典8のサークル募集が開始されましたね。

blog.techbookfest.org

まだ応募もしていないのにタイトルのようなことを言ってしまっていますが、もしサークル当選したら AWS コスト本を出したいと思います。

なぜコスト本なのか

技術書典7で AWS IAM本が出て人気本となっています。私も買って読みましたが大変勉強になりました(買ってない人はぜひ読まれることをオススメします)。

booth.pm

二番煎じを狙うわけではないといったら嘘になりますが、IAM という AWS の中でも狭いジャンルに需要があったということは大変驚きましたし、次に本を出す人にとっては勇気づけられたと思っています。

私は業務でAWS、特にお金周り・コスト削減について2年以上携わってきており、その中でノウハウや失敗談など多くのネタがあるものの、マイナージャンルでありウケが良くないと思っていたので外部の勉強会でアウトプットがしたくてもできない状況でした。

しかし、技術同人誌であれば、(売上はともかく)自分が好きなものを好きなように書けますし、誰も困りません(売れなかったら自分が困るだけ)。

前回の技術書典7で Spinnaker入門 を出して自分が書いた本が売れていく楽しさにハマってしまい、次も出したいと思うようになりました。

次の本のテーマとして、私がここ数年で最も時間を費やした AWS のお金についての本を書こうという考えに至りました。

タイトル、対象読者

タイトルは仮ぎめです。

AWS のコスト削減を任されたときに読む本(仮)〜初心者から中級者が知っておきたい AWS コスト最適化〜

AWS 初心者から中級者向けになると思います。私が上級者ではないので上級向けに書けないだけですが・・・
想定読者層は次のとおりです。

  • 上司から「AWS コスト高いから削減してよ」って言われた人
  • AWS の請求書を見て愕然とした人
  • もっとお得に AWS を使い倒したい人

逆に想定しない読者層はこんな感じです。

  • 無料枠範囲内で使い倒したい人(無料枠については説明しません)
  • コスト削減のウルトラCを求めている人(そんなのあったら私が知りたい)
  • AWS を知り尽くしている人

どんな内容なのか

トピックだけを列挙しただけですが、ざっと思いつくだけでもこんな感じにしたいと思います。
時間との勝負でできるだけ詰め込みたいですが間に合いそうになかったらガシガシ削っていきます。

## コスト削減するには

* 何にお金がかかるのかを知る
* 何にお金がかかっているのかを分析する(Cost Explorer , CUR)
* どうすれば削減できるかを知って実践する

## EC2

### ネットワーク

* NAT Gatewayの罠
* どういうときにお金がかかるのか
    * リージョン、AZ間
    * AWS外部

### スポットインスタンス

* スポットフリート

### RI

* RIの種類
    * 通常RI
        * リージョナル
        * AZ指定
    * コンパーチブルRI
    * 時間指定(マニアック向け)

* RIの分割・合体
* リージョナル・AZの違い
* Linux、Windows、その他OSの違い
* 予約購入
* Savings Plan(要キャッチアップ)
* ブレンドコスト、アンブレンドコスト

### EBS

* EBSマグネティック(standard)
*     汎用SSD(general purpose; gp2)
* スループット最適化 HDD (st1)
* Cold HDD (sc1)
* プロビジョンド IOPS SSD (io1)

### EFS

### 自動停止・起動

* AWS Instance Scheduler

## RDS

* RIの分割・合体
* ストレージの自動拡張に注意
    * 拡張した後、データを削除しても拡張したストレージは減らない
* Aurora ストレージ
    * リストア or クローンどちらがお得?

## S3

* 削除は無料
* List、Headもお金がかかる
* ストレージクラスの変更、Gracier送り、インテリジェントへの変換にもお金がかかる
* 最初のストレージ戦略が大事(あとからやろうとすると一気にお金がかかって爆死する)
* コスト削減としてはオブジェクト削除が最も効く!不要なファイルがないか棚卸ししよう。
* ライフサイクルで削除。CloudWatch Event + Lambdaで自動設定例

## Lambda

* うまく使えば安いが、誤ればEC2より割高。用途を使い分ける
* 適切なメモリ量の設定
    * CloudWatch Logs Insightで調査可能

## DynamoDB

* オンデマンドキャパシティは割高
* リザーブドキャパシティでコスト削減

## CluodWatch

* Logs高い
    * ログに格納するだけでストレージとは別にかかってしかも高い
    * LambdaでPrint Debugするだけで課金
    * 一部の用途のみ従量割引が効く(CloudTrail etc)

## AWS Billing

* 基本(マネジメントコンソールから見る)
* 中級編(Cost Explorer の活用)
    * RI カバレッジ、使用率
    * RI レコメンド
* 上級編(CURの活用)
    * なぜCURをつかうのか
        * 請求の詳細、リソースIDレベルまで追跡できる
        * 複雑な計算が必要
    * Athenaで見れるようにする
    * 簡単なSQL例
    * re:dashを用いたダッシュボード作成

## AWS Organization

* コンソリ

## AWS Trusted Advisor

* 利用度が低いリソースを指摘してくれる

### コスト配分タグ

* タグ付けする理由
* タグ付けを強制するようにIAMで権限を縛る
* 設定方法
    * AWS OrganizationによるAWSアカウントに対するタグ
    * タグ設定
* タグエディターの使い方
* RDS Auroraクラスタが対応していないのでその対応方法(マニアックすぎる)

### AWS Budgets で予算管理

* マネジメントコンソールでの設定例
* AWS CLIでの設定例
* Slack通知例

## コスト削減のコツ

宣伝

技術書典7 で販売した Spinnaker入門は引き続き BOOTH で販売中です!

ohsawa0515.booth.pm

twitter.com