TT Lab
はじめる
学ぶ 学習パス コース

コストとアーキテクチャ判断

請求書の四行

TT Labで続きを見る

一言でいうと

クラウドの料金は、結局4つの軸に整理されます。起動していた時間、保存した量、移動した量、呼び出した回数です。どの軸でお金が出ていくのかがわかれば、最適化の方向が決まります。

なぜ必要なのか

クラウドの料金は、サーバーの価格1つではなく、実行時間、ストレージの容量とリクエスト、データ転送、マネージド機能の合計です。1つの軸だけを減らすと、別の軸のコストが大きくなることがあるので、請求書はリソースの種類ではなく、コストが発生する原因ごとに読む必要があります。

どう動くのか

4つの軸

軸 課金の基準 減らす方法
コンピューティング インスタンス×時間 サイズの縮小、使わないときは止める、コミットメント割引
ストレージ GB×月 ライフサイクルポリシー、安価な階層、削除
データ転送 GB(主に外へ出る方向) 経路の再設計、キャッシュ、圧縮
リクエスト/オペレーション 呼び出し回数 バッチ処理、キャッシュ

「使わないときは止める」が最初の行にあるのが核心です。開発・ステージング環境を平日の業務時間だけ起動すれば、それだけで約70%減ります(24×7=168時間のうち、9×5=45時間だけを使用)。

コミットメント割引の構造

同じインスタンスでも、どう買うかで値段が大きく変わります。

方式 割引 条件
オンデマンド なし いつでも起動して停止できる
コミットメント(1–3年) 30–60% 期間を約束する。使わなくても支払う
スポット/プリエンプティブル 60–90% いつでも回収される可能性がある

スポットは割引幅が圧倒的ですが、突然回収されます。そのため、中断されても構わない作業にだけ使います。バッチ、CIランナー、リトライ可能なキューのコンシューマーなどです。状態を持つサービスに使うと事故になります。

コミットメントはその反対です。最小のベースライン(baseline)の分だけコミットし、変動分はオンデマンドで埋めるのが定石です。ピークを基準にコミットすると、遊ばせた分だけ損をします。

ストレージの階層

アクセス頻度によって、値段が10倍以上違います。

자주 접근  →  가끔  →  드묾  →  보관용(아카이브)
비쌈                              가장 쌈, 꺼내는 데 시간·요금

ライフサイクルポリシーで自動的に移動させます。「30日経ったら低頻度、90日経ったらアーカイブ、365日経ったら削除」のようなルールです。これを設定しないと、ログが何年分もたまって、最も高い階層にそのまま残ります。

注意: アーカイブ階層は、取り出すときに料金と時間がかかります。よく見るデータを入れると、かえって高くなります。

隠れている料金

請求書を初めて見ると、理解できない行がいくつかあります。

タグがなければ何もできない

コストを減らすには、まず誰が何をなぜ作ったのかを知る必要があります。タグがその役割を果たします。

Owner       = platform-team
Env         = prod | stage | dev
Service     = payments
CostCenter  = 1042

タグのルールは、リソースが少ないうちに決めないと守られません。数百個がタグなしでたまったあとでは、さかのぼって付けるのは事実上不可能です。また、タグのないリソースの作成をポリシーで禁止しておけば、ルールはひとりでに守られます。

現場での姿

次に見ること

4つの軸のなかで最も過小評価されやすいもの、データ転送です。