リフト&シフトが失敗する理由
一言でいうと
そのまま移すと(lift and shift)、たいてい高くなります。オンプレミスは買っておいた資源を使い切る構造で、クラウドは使った分だけ払う構造なので、設計の前提が逆だからです。
なぜ必要なのか
「サーバー30台をそのままクラウドに載せたら、コストが2倍になった」という事例は、非常によくあります。それぞれを分解すると、次のようになります。
- オンプレミスのサーバーはピーク基準で買ったもので、普段のCPU使用率は10–20%です。そのスペックのままインスタンスを起動すると、遊んでいるリソースに毎月お金を払うことになります。
- オンプレミスではネットワークは無料でした。クラウドでは、リージョンの外へ出るトラフィックごとに料金が付きます。
- バックアップ・レプリケーションのために使っていたストレージが、すべて課金の対象になります。
つまり、移す前に、サイズを測り直し(right-sizing)、使わない時間は止め、トラフィックの経路を描き直して初めて、効果が出ます。その作業をしなければ、クラウドは、ただの高いデータセンターです。
移行の対象から外す基準
移さないほうがよいもの
| 対象 | 理由 |
|---|---|
| 24時間フル稼働の大規模バッチ | 従量課金の利点がありません。買って使うほうが安くなります |
| 超低レイテンシが必要なシステム | 物理的に隣に置く必要がある場合があります |
| 特殊なハードウェアへの依存 | ライセンスドングル、特定のカード、産業用インターフェース |
| データの国外移転が禁止された対象 | リージョンがなければ、そもそも不可能です |
| すでに減価償却が終わった安定したシステム | うまく動いているものを移すのにも、コストがかかります |
| 大容量を頻繁に持ち出すワークロード | エグレス料金で元が取れなくなります |
最後の行がよく見落とされます。入ってくるトラフィックはたいてい無料なのに、出ていくトラフィック(egress)は高くつきます。大容量のファイルを絶えず外部に出すサービスなら、クラウド料金の大部分がここから出ます。
ハイブリッドが答えになる場合
すべてか無かで見る必要はありません。
- 変動が大きいフロントだけクラウド。トラフィックの急増を吸収し、安定したバックエンドはオンプレミスに置きます。
- 災害復旧だけクラウド。普段は最小限にしておき、いざというときだけ大きくします。従量課金の値打ちが最もよく表れる用途です。
- 開発・テストだけクラウド。必要なときだけ作り、終わったら消します。
移すと決めたなら順序
- インベントリ。何が何に依存しているかを描きます。これがなければ、次はありません。
- 分類。そのまま移すもの/作り直すもの/マネージドに替えるもの/捨てるもの。捨てるものを見つけるのが、実際には最も値打ちがあります。誰も使っていないサーバーは、必ずあります。
- サイズの再見積もり。実使用のメトリクスを基準に。ピーク基準のスペックをそのまま使いません。
- 小さいものから。元に戻せるものから始めて、手順を磨きます。
- コストの観測。移した最初の月から、タグ基準で見ます。あとから付けようとしても付けられません。
現場での姿
- 移行後にコストが2倍 → サイズの再見積もりをしていませんでした。
- エグレス料金がコンピュートより大きい → トラフィックの性格を見ていませんでした。
- 半分ほど移したところで中断し、両方とも管理している → 依存関係を描かずに始めました。
コストは設計で決まる
移行後に料金を減らそうとしても、たいていできることはあまりありません。クラウドコストの大部分は、何をどう使うと決めた時点で、すでに決まっているからです。そこで、設計の段階で押さえるべきことを別に書いておきます。
どれだけ長く使うかわかっているリソースは、先にコミットメントを結びます。1年または3年を約束すれば、同じインスタンスをかなり安く使えます。逆に、いつでも回収されうる低価格のインスタンスは、中断されてもかまわない処理にだけ使います。バッチやテスト環境がこれに当たり、状態を持つサービスに使うと、回収されるたびに事故が起きます。
ストレージはアクセス頻度で分けます。ログやバックアップのように、ほとんど読まないデータを、頻繁に読むデータと同じ等級に置くと、料金が数倍になります。ただし、安い等級は取り出すときにお金がかかったり、時間がかかったりするので、復旧に使うデータをあまりに冷たい等級に入れると、いざ必要なときに困ります。ライフサイクルルールで、古いものだけを自動で下げるのが無難です。
トラフィックがどこを流れるかを描きます。同じリージョン内、アベイラビリティゾーンの間、リージョンの外、インターネットへ出るものの料金は、すべて違います。データベースを別のアベイラビリティゾーンに置くことは、可用性のために必要ですが、その分料金がかかるので、知って選ぶことと、知らずにそうなることは違います。
マネージドサービスは、運用コストを含めた値段で見ます。自前で運用するデータベースは、料金表だけを見れば安いのですが、バックアップ・冗長化・バージョン更新・夜間対応を人がしなければなりません。その時間をコストに換算して比較しないと、いつも自前運用が安く見えます。チームが小さいほど、この項目の重みが大きくなります。
最後に、タグを最初から強制します。どのチームのどのサービスかが付いていないリソースは、数か月経つだけで誰も手を付けられなくなります。消してよいかわからないので、そのままにしてしまい、そうして残ったリソースが、料金表のかなりの部分を占めるようになります。
次のコース
権限。クラウドで事故が最もよく起きる場所であり、アカウントがなくても、ポリシー文書を自分で書きながら学べる領域です。