金で買えないものは遅延ひとつ
一言でいうと
クラウドでお金では買えないものは、レイテンシただ1つです。残りはすべて買えるので、残りは計算の問題です。
なぜ数字で決めるのか
クラウドの決定は、たいてい好みの争いになります。「ソウルリージョンのほうがよいのではないか」「マネージドは高い」「とりあえずクラウドへ行こう」。根拠がないので声の大きいほうが勝ち、半年後には、なぜそう決めたのか誰も説明できません。
ところがこの4つの決定には、すべて計算できる根拠があります。
| 決定 | 何で決めるか |
|---|---|
| リージョンをどこに置くか | 距離から出る物理的な限界 |
| AZを分けるか | 1msを払って何を買うのか |
| マネージドを使うか | 人の時間を入れた比較 |
| 何を自分が守るか | 自分が設定できるか |
数字で書いておけば、確認も反論もでき、そこから議論が前に進みます。以下で、その4つを1つずつ求めます。
光より速くはなれない
ソウルからバージニアまでは約11,000km。光ファイバーの中で光は約200,000km/sです(真空の2/3。屈折率が1.5のため)。
편도 55ms · 왕복 110ms
これは物理的な限界です。インスタンスを大きくしても、お金を多く払っても、専用線を敷いても減らせません。実際には、経路が直線ではなく、機器を何度も通るため、180msくらいになります。
そして、これがなぜ重要かというと、1ページでAPIを5回呼び出すと、往復も5回だからです。110ms × 5 = 550msで、その間、何も起きません。
そのため、リージョンの選択は好みではなく計算です。そして、往復の回数を減らす設計(バッチリクエスト、キャッシュ、エッジ)のほうが、インスタンスを大きくするよりはるかに効果が大きいのです。
AZは同じ値段で違うものを買う
| 距離 | 往復 | 何に耐えるか | |
|---|---|---|---|
| 同じAZ | 同じ建物 | < 0.5ms | サーバー1台 |
| AZ間 | 同じ都市圏 | 1ms前後 | 建物・電源・冷却 |
| リージョン間 | 大陸 | 数十–数百ms | 都市・災害 |
AZを分ければ、ほぼ無料で建物の障害に耐えられます。レイテンシが1ms増えるだけです。そのため、AZの分散はほぼ常に行い、リージョンの分散は必要なときだけ行います。
責任共有: 境界を知らないと、どちらも守りません
判断基準は1つです。
自分が設定できるものは、自分の責任です。
| 自分の責任 | クラウド事業者の責任 |
|---|---|
| バケットの公開設定 | ハイパーバイザーのパッチ |
| IAMキーの管理 | 物理的な入退室管理 |
| OSのセキュリティアップデート | 電源・冷却 |
| アプリケーションの脆弱性 | マネージドDBのマイナーパッチ |
| バックアップの設定 | ハードウェアの交換 |
紛らわしいところが1つあります。AZの電源が落ちてインスタンスが止まったことは、事業者の責任です。しかし、そこにだけデプロイしていたことは、自分の責任です。事業者は最初から、AZが落ちることがあると言っており、複数のAZを使うよう案内しています。
事故はほとんど常に、双方が自分の仕事ではないと思った場所で起きます。
マネージドが高く見える理由
インフラ料金だけを比べるからです。
직접 운영 인프라 400$ + 사람 20시간 × 60$ = 1,600$
관리형 900$
人の時間が抜けると、マネージドが2倍高く見え、入れると700$安くなります。
人の時間は帳簿に載りません。すでに給料を払っているので「無料」に感じられます。しかし、その時間はたいてい夜に、事故が起きたときにかかり、その人はその間、別の仕事ができません。
損益分岐は次のように求まります。
(900 - 400) / 60 = 8.3시간
月に8時間未満なら、自前運用のほうが安くなります。バックアップの確認、パッチ、モニタリング、容量の点検、そして1回の障害対応まで、8時間でできるでしょうか。たいていはできません。
クラウドが答えではないとき
「クラウドは安い」ではなく、クラウドは柔軟なのです。柔軟性が必要なければ、その代金を払う理由もありません。
- 負荷が一定で、3年以上使う大量のコンピュート。自動スケーリングの出番がありません
- データを大量に持ち出すワークロード。エグレス料金が支配的です
- データの所在地規制。リージョンがなければ使えません
- 特殊なハードウェア。なければ使えません
一方、負荷が不規則だったり、どれだけ必要になるかわからなかったり、早く始めなければならなかったりする場合は、クラウドのほうがほぼ常に優れています。そのとき買うのは、コンピュートではなく選択を先送りする権利です。
現場での姿
- 本社がアメリカにあるという理由でリージョンをバージニアに置いたところ、韓国のユーザーのページの読み込みが1秒近く増えました。1ページでAPIを5回呼び出していたのです。
- 単一のAZにデプロイしていて、AZの障害が起きると、事業者のせいにして振り返りを終えました。次の四半期に、同じことがまた起きました。
- マネージドは高いと言って自前運用を選びましたが、それ以降、毎月20時間が、パッチ・バックアップの確認・夜間の障害対応に費やされています。その時間は、どの帳簿にもありません。
- バケットを公開にしていたことによる流出を、事業者のセキュリティ事故として報告しましたが、設定した主体は自分たちだったという事実を、あとから確認しました。