使っているクラウドを乗り換えたことがある人?
(news.ycombinator.com)AWS、Azure、Google などのクラウド間で移行した理由や体験を尋ねる HN の質問と回答集
- 自分のクライアント環境を AWS → Google、さらに Google → Hetzner へゼロダウンタイムで移行した
- 主な理由は価格。AWS/Google の無料クレジットを使い切ったあと Hetzner へ
- クレジットの利用で節約できた金額は、移行コストの 20 倍だった
- 移行作業は、各環境でリバースプロキシを使ってバックエンドに接続し、サービス間 VPN を設定したうえで DNS を変更
- 最も難しかったのはデータベースのフェイルオーバーで、マスター切り替え後に更新がリトライされるようにすること
- これによってクライアントはクラウドプロバイダーに縛られない構成を手に入れ、手元の無料クレジットをうまく活用できた
- 技術的な詳細
- haproxy、nginx などのリバースプロキシ + Hashicorp Consul + ngx_mruby
- 各クラウド間で VPN を構成し、リバースプロキシが両側のバックエンドへ接続できるようにする
- 新しいクラウドへデータベースをレプリケーション
- アプリがどのデータベースをマスターとして使うか選べるようにする(Consul)
- アプリがデータベースエラーを graceful に処理できるようにする。ここが最も難しい
- DNS TTL を小さく設定
- 新しいバックエンドをリバースプロキシに接続し、エラーがないか確認
- 新しいリバースプロキシを環境に追加するため DNS を更新
- 新しいクラウド上のレプリカをマスターに昇格
- 既存バックエンド上のコネクションを減らす
- 最後に既存のリバースプロキシを DNS から削除
- すべて確認後、既存環境を削除して DNS TTL を元に戻す
- GitLab は AWS から Azure に移り、その後 再び Google Cloud に移った(数年前の話)
- 最初はみんなそうであるように AWS で始めたが、とにかくお金がかかった(札束を燃やしているようなものだった)
- YC メンバーに Azure クレジットが配られると聞き、計算すると 1 年分ほどの利用額になりそうだったので移行した
- しかし移行は苦痛で、Azure を使っていた期間中は誰も満足していなかった。しかも無料クレジットもかなり早く消えた
- GCP へ移行した理由は正確には覚えていないが、かなり長くかかる非常に難しいプロセスだった
- GCP の体験はずっと良かったが、完璧と言えるほどではない
- 特に GCP は、明確な理由もなく VM をランダムに停止する傾向があった
- きれいに終了することもあれば、中途半端な状態で終わってしまい、他のシステムが接続を試みて即座にエラーになる代わりにタイムアウトが起きることもあった
- 記憶では時間とともに改善されたが、「何か壊れていますが、理由はお伝えできません」と言われるような、いかにも Google らしい感じだった
- 振り返ると、もしまた会社を作るなら、おそらく Hetzner や他の安価なベアメタルプロバイダーのような会社を選び続けると思う
- クラウドサービスは最大限に活用できるなら素晴らしいが、90% のケースでは利点もないまま使っていて、ただコストだけ多く払っているだろう
- Google Cloud → Digital Ocean → OVH
- 高性能サーバー上で自前運用するのは、思ったより問題が少なく簡単
git pushでデプロイし、コンテナをビルドするのは "Set it and forget it" なレベル- テラバイト級の PostgreSQL データを持っているため、ほとんどのクラウドでは非常に高額になる
- クラウドは食べやすくスライスされたパンのようなものだと思っている人もいるようだが、実際には開発者の時間を減らしてはくれない
- クラウドはサーバー運用より高く、しかもずっと遅い。中規模のワークロードではクラウドを使う利点はない
最も票を集めた 3 件の回答だけを抜き出しました。上の回答には、さらにさまざまな質問・意見・反論コメントも付いているので、あわせて参考にしてください。
5件のコメント
このスレッドを名指しして、いまだにクラウドへの理解不足が蔓延していると批判する内容の記事がITWorldに掲載されました。
'クレジットに惑わされて' クラウド移行…"最大の錯覚"
ITWorldの記事を書いた Matt Asay は、少し前まで AWS のデベロッパーマーケティング責任者だったという事実を踏まえて読む必要があります。
https://www.linkedin.com/in/mjasay/details/experience/
おお、良い情報をありがとうございます。
クラウドが万能というわけではありませんよね。3つ目の回答の最後の文は少し疑問ですね。活用の仕方次第ではないでしょうか..
クラウド間の移行を問う質問でしたが、多くの人がクラウドよりも Hetzner のようなホスティングサービスを勧めていました。
やはりコストが最大の理由ではあるのでしょうが、それでもクラウドをうまく使うことにはそれなりに利点が多いと思います。
小さな会社が「うちはクラウドを使わずホスティングを使っています!」と言うと、開発者の採用も難しくなるのが実情です。 (自分で開発されるなら、まあ問題ないでしょうが)
途中で出てきた、Google Cloud には明確な理由もなく VM をランダムに停止する傾向があった、という点には完全に同意します。
私が数年前に小さなサーバーを Google で運用していて AWS LightSail に移したのも、そういう理由でした。
ある日突然、理由もなくサーバーがふっと落ちたり接続できなくなったりする状況がしばしば発生していました。今は改善されているのかもしれませんが……。良い経験ではありませんでした。