2023/01/22

クラウドへの移行について

今更な気もするのですが、クラウドでの開発にかかわっていながら認識のない技術者も意外と多いようなので、記事にしてみます。


クラウドへの移行方法

オンプレミスやレンタルサーバからクラウドへの移行については、大きく2つの方法があります。
  1. マイグレーション
  2. モダナイゼーション

マイグレーション

既存のシステムをできるだけそのまま移行あるいは、既存の製品や技術をできるだけ利用して移行する方法です。新しく習得しなければならない技術・知識が最低限で済み、既存の資産もある程度再利用できるので、移行にかかる期間・コストが小さくなります。
一度クラウドへの移行を果たした後も、別のクラウドへの移行が行いやすい利点もあります。GCPで言えばGCE/GKEなどのIaaSと、オープンソースソフト(OSS)への依存度が高くなります。

その反面、クラウドの持つ特徴・能力を限定的にしか利用できず、運用が始まってからのコストが高くなり、自由度も限定的になります。構成によっても違いますが、運用においてはメンテナンス要員が必要となることも珍しくないと思います。
初期コストを削減する代わりに、運用コストに目をつむるような方法です。

コンテナ技術が利用できるようになってからクラウドの利用が多くなったのは、コンテナにより既存の製品・技術を使いながらもクラウドによるスケールアウトのメリットを享受できるようになったからという面があります。コンテナの中身がレガシーの塊になっているのは、『マイグレーションあるある』じゃないでしょうか。マイグレーションしか経験がないのに「クラウド使えます」とか言ってるようでは、技術者としては中途半端です。

モダナイゼーション

クラウドでの実行を前提としたクラウドネイティブな構成にすることにより、クラウドの特徴・能力を大きく享受できるようになります。さらに特定のクラウドに限定するなら、享受できる利益は最大限にもできます。最適なサービスを選択できれば運用コストは少なく、メンテナンスフリーにできる範囲も広くなります。新しく一から開発する際には、魅力的な選択肢になります。
近年リリースされたサービスではクラウド内のサービスの連携を実現するものも少なくないので、OSSとかは蚊帳の外ということもあります。そういった悲劇に遭わなくて済む利点もあります。IaaSへの依存が少なくなり、PaaS/SaaSの利用が多くなります。

反面、クラウドについて新しく知識・技術を習得する必要がでてきます。既存の資産・技術も置き換えが必要になるものも珍しくありません。「GAEインスタンスの起動時間」でSpringが使い物にならいことに触れているのは、その一例です。また特定のクラウドに限定した作りを選ぶと、他のクラウドへの乗り換えが困難になるクラウドロックインが発生します。
初期コストの増加を覚悟する代わりに、運用コストは最適化できるようになります。

GKEの様なコンテナ技術ももちろん利用できますし、GAEのように特に気にせずそれを利用できるサービスもあります。クラウドネイティブな開発が出来るようになれば、「クラウドを使える」技術者と言えると思います。

移行の実際

完全な新規開発ではモダナイゼーションで始めることもありますが、既存システムの移行となるとマイグレーションが多いと思います。マイグレーションで最短期間で移行後に、運用しながら少しずつクラウドネイティブにモダナイズしていくのもお勧めです。
また完全移行ではなく一部のみを移行する場合もあります。クラウドの利用料金は「使った分だけ」ですが、単価が高め設定の機能の利用が多かったり、単価が段階的に安くなる料金体系でない場合は、クラウドにすべてを移行しても運用コストが下がらないケースがあります。「NTTぷらら、映像配信のストレージをAzureからオンプレミスに移行、ストレージ利用コストを削減」のようなケースです。
マイグレーションで移行してそのままというのはお勧めしません。ランニングコストが高く、クラウドに移行した効果が得られにくいからです。「将来また別のクラウドに移行するかもしれないから、クラウドロックインの発生しにくい方法を選択したい」という考えもあるかもしれませんが、「別のクラウドに移行」する未来が来る可能性なんてどれほどあるんでしょう。

0 件のコメント:

コメントを投稿