人気の高いクラウドホスティングサービスDigitalOceanに今日(米国時間10/20)、floating IPと呼ばれる興味深い機能が加わった。
今では多くのデベロッパが、DigitalOceanやAmazon Web Services、Google Cloud Computing、Microsoft Azureなどのクラウドホスティングサービスを利用している。昔の“レンタルサーバ”と違って、アプリケーションのデプロイや運用のための、いろんな機能やサービスが提供される。
とくに便利なのは、アプリケーションを複数のデータセンターで動かしたい場合や、アプリケーションの複製をあちこちに置きたい場合だ。でもそれらのネットワークの管理が、複雑難解になることもある。ドロップレット(個々のクラウドサーバ)の置換が必要以上に難しくなったりするのは、それぞれのドロップレットのIPアドレスが違うからだ。
それはまるで、郵便配達への依存度が大きくなったようなものだ。彼なら誰のことでも知っているし、あなたの町のすべてのアドレスを知っているから、誰かが引っ越ししても彼に聞けば新しい住所が分かる。でも、誰かの住所を知りたくなるたびに彼に依存するなんて、とても面倒だ。
そこで登場するのがfloating IP、すなわち浮動IPだ。DigitalOceanのこの新しい機能では、ひとつのIPを同じデータセンター内のどのドロップレットにも割り当てられる。IPがユーザのアカウントに付随し、ユーザのインスタンスには付随しない。AmazonのEC2 Elastic IPも、このような機能だ。
いろんなユースケースがあるけど、ぼくが好きなのは災害対策だ。あなたのドロップレットのひとつが、完全にダウンしました。治すのに時間がかかりそうなので、セーブされているイメージを新しいドロップレットに載せて動かし、IPは元のIPをそのまま使いたい。…この奇跡を実現するのが、floating IPだ。
もっと良いのは、イメージからリカバーするのではなくて、バックアップドロップレットを用意し、そこにプロダクションドロップレットのすべてを複製しておくのだ。そしてプロダクションドロップレットに異状が起きたら、 IPをそのバックアップドロップレットに移行するだけだ。ユーザ(お客さん)にとっては、サーバが落ちたという認識は完全にゼロだ。適当なスクリプトを書いておけば、IP移行の過程も自動化できる。
また、ロードバランサーを二つ使って(災害時には)floating IPを有効に使えるだろう。DigitalOceanは今や70万のデベロッパのために800万のクラウドサーバをデプロイしているから、この機能は彼らの仕事も楽にするだろう。