クラウドの普及が進んでいます。 多くの組織にとって、クラウドコンピューティングは、各地に分散したチームでコミュニケーションやコラボレーションを行うための必須ツールになっています。 Amazon Web Services (AWS) や Google Cloud、Azure などのどのクラウドサービスを選んでも コストを削減し、柔軟性を高め、リソースを最適化することができます。
ケーブルで埋め尽くされたやかましいサーバールームの中でキャリアを送ってきた方は、この騒動は一体何事かと思われているかもしれません。 この記事では、そうした方のために、クラウドコンピューティングの活用法トップ 8 をご紹介します。 クラウドコンピューティングでできることが詳しく分かれば、きっとクラウドが好きになるでしょう。
1.Infrastructure as a Service (IaaS)
クラウドの明白なメリットの 1 つは、アプリケーションがクラウドでホストされるので自前のハードウェアが不要になることです。 巨大なサーバーをデータセンターまで苦労して運ぶことなく、仮想マシン (VM) や Kubernetes クラスタ、ドメインネームシステム (DNS) サービス、ストレージ、キュー、ネットワーク、ロードバランサー、その他数々のサービスをスピンアップできます。
IaaS への切り替えで最も推されるメリットは、コスト削減です。 自前のサーバーが不要で、かかるコストは必要なクラウドサービスの分だけ。 さらに、自前のハードウェアの設置やメンテナンスを行わないのであれば、諸経費も節約できます。
しかも、こうしたクラウドサービスの作成や構成は、スクリプトや Infrastructure as Code (IaC) で行えます。 変数をいくつか指定するだけで完全な環境を自動で作成でき、環境のクローンも簡単です。 オンプレミスサーバーでもこうしたことはある程度できますが、クラウドの方が簡単です。
ただし、注意事項もあります。それは、これらのサービスに移行しても、引き続きメンテナンスが必要だということです。 たとえば、ソフトウェアのインストールや、クラウド仮想マシン (VM) とソフトウェアの両方を最新の状態に維持する作業は、これまでと同様にユーザーの責任です。
また、自前の VM なら隅から隅までカスタマイズできますが、クラウドでは事前に定義されている VM 以外は選べません。 選択肢が用意されているとはいえ、必要なものが見つからないこともあります。
結局のところ、IaaS には時間と費用を節約できるメリットはありますが、一部のサーバーをクラウド VM に移行するだけでは費用に見合う価値が得られないケースもあります。 IaaS が自分に適しているか判断する際は、スケーラビリティなどのニーズや、諸経費などのコストを詳しく検討しましょう。
2.Platform as a service (PaaS)
PaaS は、IaaS をステップアップしたものです。 IaaS ではハードウェアをクラウドに移行しますが、PaaS はさらに一歩進んで、メンテナンス作業の大部分もクラウドに移します。
たとえば、サービスとデータベースを稼働させる必要があるとしましょう。 サーバーは VM で置き換えられますが、サービスのインストールやデータベースのメンテナンスは、引き続き自分自身で行う必要があります。 PaaS ソリューションでは、サービスを稼働させるリソースと、データベースを稼働させるリソースを作成します。 わずか数回のボタンクリック (または IaC) で、サービスとデータベースを自由に使うことができます。 インストールや更新の作業は不要で、PaaS が自動的に対応してくれます。
PaaS の場合、サービスを実行するシステムやハードウェアはほとんどコントロールできません。 とはいえ、プランの選択肢は豊富に用意されているので、コンピューティングパワーが問題になることはおそらくないでしょう。
ただし、覚えておいていただきたいのは、ほとんどの PaaS ソリューションでは、一部のアプリケーションで必要になる低レベルのシステムアクセスに対応していないということです。 つまりは、システムやハードウェアにはアクセスできません。 また、サーバーにインストールする特定のプログラムにアプリケーションが依存している場合、PaaS は不向きです。
PaaS ソリューションはすばやく簡単に使い始められますが、実行できるものにはいくらかの制限があります。 アプリケーションを実行するサーバーに特定のソフトウェアをインストールする必要があるなら、それらも一緒に PaaS ソリューションに切り替えることを検討しましょう。
3.サーバーレス
サーバーレスとは、オンプレミス環境に存在しないクラウドサービスを指します。 サーバーレスという名称は少し正確ではありません。というのも、サーバーは間違いなく関係しているからです。 ただし、プログラマーや管理者などのユーザーの立場から見れば、操作したり管理したりするサーバーはありません。
タイマー、HTTP リクエスト、キューのメッセージなどのトリガーを使用して、(実行時間の短い) コードをいくつか作成するだけです。 コードは、トリガー時にはクラウドプロバイダーの管理下の仮想サーバーに配置されます。 コードの実行が終わると、仮想サーバーは消去されます。
サーバーレスはコスト効率に優れ (ほとんどのサービスは無料)、スケーリングも簡単です。 そのため、メッセージが数百万件あるキューを処理する必要がある場合でも、自動的に起動される複数のインスタンス上でそれらのメッセージを並行して処理できます。
とは言え、マイナス面もあります。コードの実行方法とタイミングを一切コントロールできません。 また、サーバーレスでは起動が遅延することもたびたびあります。それでもなお、クラウドツールボックスのパワフルなツールのひとつです。
4.ハイブリッドクラウドとマルチクラウド
厳重な環境、特に歴史のある企業においては、現代でもファイルやサービスなどのオンプレミスリソースへのアクセスが必須です。 ハイブリッドクラウドモデルなら、クラウドリソースが仮想ネットワークなどを経由しオンプレミスサーバーにセキュアにアクセスできます。 この方式では、クラウドがオンプレミスシステムの拡張部分となります。
クラウドを拡張するもうひとつの方法が、マルチクラウド環境です。 マルチクラウド環境を実現する方法には、以下の 2 つがあります。
- 一部のサービスはあるクラウドプラットフォーム (たとえば Azure) で実行し、他のサービスは別のクラウドプラットフォーム (たとえば AWS や GCP) で実行する
- 同じサービスを複数のクラウドで同時に実行する
同じサービスを複数のクラウドプラットフォームで実行するメリットは、いずれかのクラウドで問題が発生したとき (残念ながら今でも発生します) でも、他のクラウドに引き継がせられることです。 これにより、サービスの可用性が高まります。 マルチクラウドのもうひとつのメリットは、ベンダーロックインを回避できることです。
しかし、マイナス面も当然あります。2 つのクラウドを稼働させるので、コストが倍になります。 マルチクラウドについて検討するのであれば、冗長性のニーズと予算面のニーズを比較することをお勧めします。
5.テストと開発
クラウドコンピューティングは、開発、テスト、受け入れ、本番 (DTAP) の各環境の迅速なスピンアップに適しています。 クラウドリソースの作成と構成は IaC ですばやく行えます。 新しい環境を作成するために必要な作業は、いくつかの変数の変更だけです。
スクリプトは、お使いの DevOps 環境から自動で実行できます。 環境を追加するために VM を新たに作成し (悪いケースではサーバーを購入し)、本番環境を完全にミラーリングしてくれるよう祈る必要はありません。
クラウド環境は常に不変です。 一部のサービスで安めのプランを選んだ場合でさえ、何もかも期待通りに動作すると確信できます。
6.ビッグデータ分析
ビッグデータ分析用に、さまざまなクラウドソリューションが提供されています。 データウェアハウジングやデータレイク、抽出/変換/ロード (ETL) 用の各種ツールを使って、構造化データおよび非構造化データの格納や処理を行えます。
データを使う準備がまだ整っていない場合でも、クラウドプラットフォームでは容量無制限のストレージが提供されているので、後で必要になりそうなデータをとりあえず収集しておけます。 このようなデータには、顧客の購買習慣、検索やサイトナビゲーションのルート、センサーのデータ、画像などがあります。 クラウドサービスはデータストリームの流入に合わせてスケール可能なので、データをすべて収集できます。
人工知能 (AI) や機械学習 (ML) のさまざまなクラウドサービスを利用すれば、データに潜むパターンを発見し、大量のデータからビジネスにつながる価値を生み出せます。 こうしたインサイトをもとに、ビジネスの成長を加速させ、機器やコストの最適化を推進し、カスタマーエクスペリエンスやマーケティング活動の改善を後押しできます。 クラウドサービスならではのコンピューティングパワーがあれば、データをリアルタイムで分析しビジネス上の決断を迅速に下すこともできます。
ストレージとコンピューティングパワーを無制限に使える点はクラウドのメリットですが、コストが増加するにつれてデメリットにもなり得ます。 定期的に監視することが、こうしたコストを予算内に収めるうえで役立ちます。
7.クラウドストレージ
クラウドにデータやファイルを保存できます。保存したデータにはどこからでもアクセスでき、アクセス可能なユーザーの設定も自由に行えます。 クラウドストレージが特に役立つのは、公衆衛生上の理由でのオフィスの閉鎖期間に従業員や契約社員に在宅勤務をさせる場合や、世界各地のオフィスが力を結集して業務に取り組む場合です。
ほとんどのクラウドプロバイダーは冗長的にてファイルを保管しているので、自動的にバックアップが残されます。 オンプレミス環境とファイルを同期可能なので、万が一の機器の故障や火災、自然災害に備えてバックアップを常に確保できます。 料金は使用したストレージの分だけ払えばよく、ストレージの容量はビジネスの成長に合わせてスケールできます。
クラウドストレージは、高速でアクセスしやすく、セキュアです。 クラウドにおけるセキュリティ侵害の原因の多くは、ユーザー権限によるコンテナのロックダウンの失敗など、ユーザーのサービスのセットアップ中におけるエラーです。クラウドプラットフォームのセキュリティの不備が問題になることはほとんどありません。
8.データバックアップと災害復旧
データのバックアップは大変な作業です。 クラウドプロバイダーを利用すれば、多くのリソースのバックアップがデフォルトで行われます。さらに、追加のバックアップサービスを比較的容易に追加できます。
さまざまなサービスのバックアップ方針を選び、バックアップを地域内や大陸内、さらには世界中のさまざまな拠点に保管しておくことができます。 たとえば、重要なファイルの保管先として、3 大陸に点在する 3 箇所のデータセンターのそれぞれに配置されている 3 台のサーバーを指定できます。つまり、3 x 3 x 3 = 27 個のバックアップ (同一ファイルのコピー) を確保可能です。
バックアップの復旧手順は簡単で、復旧するバックアップを選んでボタンをクリックするだけです。
これにより、災害復旧も迅速かつコスト効率よく行えます。 1 つのデータセンター、あるいは地域全体で災害が発生した場合も、別の地域にある別のデータセンターに引き継がせることで、災害の影響をすばやく緩和できます。 データベースなどの一部サービスには、デフォルトのフェイルオーバー用の地域が設定されています (ほとんどの場合は主要バックボーン)。 これにより、データ転送を高速に行えます。 これらのフェイルオーバーインスタンスは読み取り専用のコピーとしても機能し、リクエストの遅延を最小限に抑えられます。
おわりに
クラウドは多くの用途に適しています。 IaaS、PaaS、IaC を利用すれば、追加のリソースを迅速にスピンアップして完全な環境を整えられます。 料金は使用した分だけ払えばよいため、オンプレミス環境よりも安く済むかもしれません。
しかし、クラウドの真価はリソースの安さではありません。 クラウドによって、開発に要する時間や環境間のバグを削減し、DevOps 環境向けの優れた IaC サポートを得られます。また、SaaS ソリューションでは特に、全体的なメンテナンス作業が少なくなります。
クラウドでは、チームのニーズすべてに対応しきれないケースもあります。 組織によっては、ハイブリッドソリューションが最適な場合もあります。 ですが、この記事でクラウドの力を学んだみなさまであれば、どのようなユースケースであっても、自組織に合わせてクラウドコンピューティングのパワーを活用する準備ができています。
ぜひ、CircleCI の無料トライアルに登録して、エンジニアリングチームのビルド、テスト、デプロイのプロセスを加速するクラウドコンピューティングのメリットを体感してみてください。