クラウド・ソリューションを導入する際に考慮すべき重要な点について

こんにちは。
ダイワボウ情報システム株式会社のIBM Cloud担当の小林です。

今回は、米国のIBM Cloudブログの「クラウド・ソリューションを導入する際に考慮すべき重要な点について」という内容をもとに、クラウドを導入する際に、計画、設計、実装の各段階で考慮すべき重要な要素を見てみましょう。

今日、なぜクラウド・コンピューティングが適切なのか、クラウドのメリットを解説した記事を数多く目にしたことがある方も多いでしょう。これらの記事の多くは、なぜクラウドが適切で、どのように機能するのかに重点が置かれていますが、実際にどこから始めればよいのか、またクラウド・コンピューティングのジャーニーにどのようにアプローチすればよいのかを検討することも重要です。この記事では、クラウド・ベースのソリューションを実装するという観点から、計画、設計、実装の各段階で考慮すべき点を解説します。

市場にはあらゆる種類のクラウド・サービスがあり、さまざまなベンダーがいろいろな競争力のあるソリューションを提供しています。適切なソリューションを選択するためには、すべての選択肢を考慮する必要があり、場合によっては複数のクラウドを利用することもあります。

適切なクラウドを選定するには

クラウド導入の第一歩は、クラウドの導入が貴社のソリューションに適しているかを判断することであることは明らかです。答えが「はい」であれば、適切なクラウド・サービスを選定する必要があります。

多くのアプリケーションでは、クラウド導入の第一の原動力はインフラのコストの削減ですが、それだけを考慮するべきではありません。クラウドには、活用すべき多くのメリットがあります。また、“ビッグバン”的なアプローチを避け、段階的な導入を目指すべきです。

アプリケーションのクラウド成熟度を評価するためのさまざまなツールが市場に出回っています(例:IBMの診断ツール(英語版))。これらのツールは、アプリケーションのワークロード、非機能要件(NFR)、現在使用されているテクノロジー、既存のハードウェア/ソフトウェア・スタックに基づいて、対象となる導入環境、クラウドの成熟度、および期待されるクラウドのメリットについてアプリケーションを評価するのに役立ちます。クラウドへのジャーニーの最初の段階で、こうしたツールを活用することは価値のあるといえるでしょう。

適切なクラウドを選定するために、以下を自問自答してみてください:

  • クラウドは、既存アプリケーションの移行用か、それともクラウド・ネイティブ・アプリケーション用か。

    クラウド・ネイティブ・アプリケーションの場合、PaaSではMVP(Minimum Viable Product実用最小限の製品)が早く実現できるため、PaaSが適しています。機能は段階的に実装することができます。既存のアプリケーションをそのまま移行する場合は、ミドルウェアの互換性に制限がある(特定のバージョンのOS/ソフトウェアなど)ので、IaaSが適しているかもしれません。

  • クラウド・プロバイダーが提供するミドルウェアは、必要なものがすべてサポートされているか。

    クラウド ・プロバイダーが提供するミドルウェアのオプションとサポートには制限があります。レガシー・アプリケーションを移行する場合は、必要あるいは互換性のあるミドルウェアがサポートされているかどうかを確認してください。互換性がない場合は、アプリケーションを大幅に変更しなければならない可能性があります。これは、移行作業にかなりの時間と労力をとられることになるので、お勧めできません。

  • データのセキュリティー/コンプライアンスへの対応はされているか。

    アプリケーションが安全なデータ(PI/SPIなど)を扱っている場合は、クラウドのデータ・コンプライアンスを確認してください。各種規制要件により、機密データをパブリック・クラウド・インスタンスに保存してはならないと義務付けられている場合や、地理的な制限がある場合もあります。そのような場合は、データをオンプレミスで、アプリケーション・サービスをパブリック・クラウド上に展開するハイブリッド・クラウド・ソリューションを検討することが可能です。もう一つの側面としては、シングル・テナント/マルチ・テナントの提供をベースにしたクラウドの提供を検討することもできます。

  • アプリケーションはインターネットを利用するのか、イントラネットを利用するのか。

    ネットワーク構成やファイアウォールの設定に応じて、アプリケーションをパブリック・クラウドかプライベート・クラウドのどちらに配置するかを決定します。インターネットに接続するアプリケーションは、ファイアウォールの後ろでプライベート・クラウドとして配置することもでき、この場合のインターネット・トラフィックはパブリック・クラウドのインスタンスで処理され、そこからルーティングされます。

  • アプリケーションは、ファイアウォールの背後の既存のエンタープライズ・アプリケーションとの統合が必要か。

    このような要件の場合、企業のファイアウォール・ポリシーによっては、パブリック・クラウドが適していない場合があります。

  • アプリケーションは、特定のサードパーティ製/オープンソースのコンポーネントを使用しているか。

    アプリケーションが特定のツールやライセンスされたソフトウェアを使用している場合、PaaSではサポートされていない可能性があります。その場合アプリケーションのリファクタリングが必要になります。

  • アプリケーションは配置されているサーバー上のネイティブのファイルシステムで動作するか。

    答えが「はい」ならば、クラウド上で利用する場合には信頼性の高いソリューションとはいえません。ファイルシステムの統合は、適切なクラウド・ソリューションのいずれかに移行することができます。

クラウド・ソリューションを設計するには

適切なクラウド環境が特定されたら、次はクラウド・ソリューションの設計を行います。この時に考慮すべき重要な点は以下の通りです:

  • セキュリティー対策:企業がクラウド・ソリューションを採用する際の主な抑止力の一つです。適切なセキュリティーを提供するためには、以下の点に注意する必要があります。
    • クラウドのセキュリティー対策: 抑止力対策、予防対策、検知対策、是正対策
    • セキュリティーとプライバシーへの対応:アイデンティティー管理、物理的なセキュリティー、人員のセキュリティー、プライバシー
    • データ・セキュリティーへの対応: 機密性、アクセス制御性、完全性
    • 暗号化対応:輸送中のデータ、休止中のデータ
    • コンプライアンスへの対応:事業継続とデータ復旧、ログと監査証跡
    • 法律と契約上の問題
  • 高可用性(HA)とディザスタリカバリ(DR):クラウドの性質上、計画停止や障害に対する制御は限られています。そのための非機能要件(NFR)があるのであれば、HAとDRの機能を提供するためのコンポーネント設計は十分に堅牢でなければなりません。インフラ自体は関連機能を提供しているわけではありませんが、これはアプリケーションの設計と調和してPaaSプロバイダーが提供するサービスを利用することで実現できます。いくつかの選択肢としては、クラウドの複数のデータセンターでアプリケーションを配置する、アプリケーションを監視して必要に応じてスケールする、サービスの動的プロビジョニングにコンテナを使用する、などがあります。
  • データのバックアップと復元: クラウド・プロバイダーは、さまざまなバックアップ・サービス・オプションを提供しています(IBM Cloud Backupなど)。アプリケーション・チームは、データが失われた場合にシステムを復元する機能のために、これらのサービスを検討する必要があります。
  • DevOpsのパイプライン: 繰り返しのアクティビティーを実行するためのツールを自動化して使用することは、より迅速なデプロイメントを実現し、クライアントにより多くのビジネス価値を提供するための鍵となります。クラウド・サービス、特にPaaSソリューションでは、CI/CD(Continuous Integration/Continuous Delivery), Continuous Deployment, Continuous Operationを実現するためのさまざまなDevOps機能が提供されています。
  • コンテナの利用: プロセスやメモリはクラウド上でセルフ・プロビジョニングが可能であり、このようなクラウドのダイナミックな性質を利用して、マイクロサービスやDockerなどのコンテナ技術を効率的に実装することができます。アプリケーションの負荷に応じて、サービスの追加インスタンスをサポートするために、自動で動的なスケールアップ/スケールダウンを瞬時に実現することができます。
  • ロード・バランシング: ロード・バランシングが重要な理由はいくつかあります。第一に、バックエンドのアプリケーション・サーバーを保護するためのプロキシーとして機能します。第二に、複数のサーバー間で負荷を分散させるためです。クラウド・プロバイダーは、ラウンド・ロビン、min-min、min-maxなど、さまざまな負荷分散アルゴリズムを提供しています。選択肢を理解し、適切なものを選択することが重要です。
  • レイテンシー: ネットワークの遅延は、特にハイブリッド・クラウド環境では考慮すべき重要な要素であり、1つのクライアント・リクエストに対して複数のネットワーク・ホップ(異なるクラウド・ベンダーにまたがる場合もある)が存在します。クラウド・サービス・プロバイダーは、ネットワーク内で最も近いクラウド・データセンターの地域にエンド・ユーザーをインテリジェントにルーティングすることができます。
  • クラスター環境:クラスター環境では、異なるサーバーを別々のポッドにプロビジョニングすることをお勧めします。定期的なメンテナンスは、通常、一度に1つのポッドで行われます。そのため、クラスター内では、この分散により、クライアントのリクエストを処理するために、少なくとも1台のサーバーの常時稼働が保証されます。
  • スケーリング(垂直/水平): ITリソースが増大したり減少したりする需要を処理することのできる機能であり、クラウドの最も有益で人気のある機能の1つです。多くの場合、水平方向のスケーリングは長期的なメリットとみなされ、垂直方向のスケーリングは短期的なメリットとみなされます。垂直スケーリングはコスト面ではメリットがあるかもしれませんが、最終的には最も弱いリンクや単一の障害点になる可能性があります。
  • ミドルウェアとソフトウェア:ソリューションに適したミドルウェアとソフトウェアの選択することは、既存のアプリケーションでの利用状況、利用可能なスキル、ライセンスの制限、クラウド・プロバイダーが提供するオプションなど、複数の要因に依存します。クラウド・ベンダーは、あらかじめ定義されたオプションをセットで提供しています。そのため、既存のアプリケーションを移行する前に互換性のチェックを行う必要があります。クラウドの様々な機能を最大限に活用するためには、アプリケーションの一部/全体の書き換えが必要になるかもしれません。
  • モニタリング: アプリケーションのパフォーマンス監視とインフラストラクチャー(サーバー)の監視は、アプリケーションの安全性と可用性の両方を確保するために非常に重要です。クラウド・プロバイダーは、仮想マシンのワークロードを分析するツールを提供しています。高度にカスタマイズ可能なダッシュボードやメトリック収集を提供しており、一貫した監視のための統合ソリューションを提供することができます。自動化されたアクション(ハードウェア・リソースの増加、サービス・インスタンスの実行数の管理など)を設定して、システムの健全性を維持することができます。
  • ハイブリッドクラウド・ソリューション: これには、異なるベンダーやオンプレミスの異なるクラウド環境にまたがるアプリケーションの統合などがあります。このような統合を可能にするためには、ファイアウォールを設定する必要があります。これらの統合は、機能的/技術的な要件に基づいて、非同期的または同期的な性質を持つことができます。頻繁に変更されないデータのキャッシュは、アプリケーションの処理時間を短縮するのに役立ちます。
  • 暗号化:クラウド環境では、特にマルチテナント環境では、セキュリティーとコンプライアンス上の理由から、保存データの暗号化が重要です。バックアップされたデータの暗号化も同様に重要です。

まとめ

クラウド・ソリューションの導入は、既存のレガシー・アプリケーションを新しい共有インフラに配置するだけではありません。これはインフラのコストを削減するための第一歩かもしれませんが、クラウドはコスト効率の高い方法で柔軟性と効率性を実現するためのさまざまなサービスを提供しています。クラウドの最大の可能性は、適切なサービスを利用することにあります。

より詳しいことは、IBM CloudIBMハイブリッド・クラウド・ソリューションもあわせてご参照いただけますと幸いです。


★IBM様の方で提供されているこちらのIBM Cloudブログもご参考ください!★
https://www.ibm.com/blogs/solutions/jp-ja/category/cloud/

マルチクラウドの記事