クラウドアプリケーション開発ガイド

クラウドはアプリケーションの開発方法を変えます。そして、組織の競争力を高めるために必要な俊敏性をもたらします。これはどういうことを意味するのでしょうか。

このガイドではその答えを探るとともに、クラウドコンピューティングに関するあらゆる疑問に答えます。また、クラウドネイティブについても詳細に説明します。さらに、デジタルトランスフォーメーションの一環としてクラウドおよびクラウドネイティブ開発の導入を成功させる方法も紹介します。

クラウドコンピューティングとは

クラウドコンピューティングは、ネットワーク(インターネットまたはWeb)を介してオンデマンドでITリソースを提供するサービスで、従量課金モデルをとります。

先進的なクラウドコンピューティングIT組織では、アプリケーション、サーバー(物理/仮想)、データストレージ、開発ツール、ネットワーク、その他のITリソースがリモートのデータセンターでホスティングされ、クラウドプロバイダによって管理されています。従来のIT組織では、これらすべてへの対応を組織がオンプレミスで行っています。

クラウドコンピューティングのメリット

  • 拡張性
  • サーバーストレージ
  • データセキュリティ
  • ディザスタリカバリとバックアップ
  • コスト
  • 拡張性: クラウドコンピューティングでは、オンプレミスのソフトウェアやインフラと異なり、計算性能、ストレージ、ソフトウェアのスケールアップ/スケールダウンを簡単に行うことができるため、使用した分のコストしかかかりません。
  • サーバーストレージ: クラウドプロバイダがサーバーの管理・保守を行います。組織で保守を行わなければならないオンプレミスインフラに比べ、コストやスペースを削減できます。
  • データセキュリティ: クラウドプロバイダがセキュリティ、リスク管理、監視サービスを提供し、不正アクセスや侵害からユーザーを保護します。
  • ディザスタリカバリとバックアップ: クラウドコンピューティングには自動のバックアップオプションとディザスタリカバリオプションが含まれています。そのため、サーバーとソフトウェアを別のクラウドリージョンにフェイルオーバーさせたり、必要に応じてバックアップを実行したりすることができます。セキュリティ侵害が発生しても、別のクラウドリージョンにバックアップとリカバリストレージがあるため、IT組織はデータをほとんど(またはまったく)失わずにすみ、スタッフのダウンタイムを最小限に抑えることができます。
  • コスト: クラウドコンピューティングを利用すると、スタッフがシステム保守業務から解放されるため、コストを削減できます。保守だけでなくハードウェアやソフトウェアの設定もクラウドプロバイダが行うため、それらに伴うコストもかかりません。また、インフラやデータセンター、冷却システムの電気代もかからなくなります。
cloud-native-cta 

Explore the latest cloud predictions:

ウェビナーを見る

クラウドデプロイモデル

クラウドに移行することを決断した組織が最初に行うべきことの1つが、どのクラウドデプロイモデルがビジネスニーズに適しているかの判断です。

選択できるモデルは5つあります。

  • パブリック
  • プライベート
  • ハイブリッド
  • マルチクラウド
  • コミュニティ

1. パブリッククラウド

パブリッククラウドでは、データはサードパーティのサーバーに保存され、クラウドプロバイダがサーバーインフラやリソースの管理全般を行います。そのため、ハードウェアの購入や保守について考える必要がありません。

Amazon Elastic Compute Cloud(Amazon EC2)、Microsoft Azure、Google Cloud、IBM Cloudなどがパブリッククラウドの代表例です。

パブリッククラウドのメリットとデメリット

メリット デメリット
  • 最小限の投資: サブスクリプションで開始するため、多額の設備投資が不要です。
  • 拡張性: スケールアップやスケールダウンはクラウドプロバイダが行います。
  • コストの削減: 使用した分の料金しかかかりません。
  • 常時利用可能: クラウドプロバイダがインフラの常時稼働を保証します。
  • 直接管理できない: 構成、サーバーの障害、一部のアプリケーションへのアクセスを直接管理することができません。
  • データアクセス: 情報がどこに保存され、誰がアクセスできるのかを確認できません。
  • 汎用型: パブリッククラウドプロバイダが常に固有のニーズに合致するとは限りません。

2. プライベートクラウド

プライベートクラウドの場合、1つの組織専用に運用され、その組織のみがアクセスできるクラウドインフラが用意されます。このモデルでは、サーバーを外部でホストすることもオンプレミスでホストすることもできます。サーバーは強力なファイアウォールで保護され、ゲートキーパー役は組織のIT部門が務めます。

プライベートクラウドプロバイダの例はAmazon、IBM、Cisco、Dell、Red Hatなどです。

プライベートクラウドのメリットとデメリット

メリット デメリット
  • プライバシーとセキュリティ: データはすべてプライベートリポジトリに保存されるため、データセキュリティリスクを最小限に抑えることができます。
  • 管理性: 環境を自社保有するため、自由に管理できます。
  • レガシーシステムの統合: パブリッククラウドには統合できないシステムもサポートされます。
  • カスタマイズ性: ビジネスに固有のニーズに応じてカスタマイズできます。
  • コスト: ハードウェア、ソフトウェア、プライベートクラウドの開発・保守を行うスタッフへの投資が必要です。
  • キャパシティと拡張性の制限: 多くの場合、プライベートクラウドではハードウェアやリソースに制限があります。
  • ベンダーロックイン: プライベートクラウドベンダーの変更は難しく、コストもかかります。

3. ハイブリッドクラウド

ハイブリッドクラウドは、パブリッククラウドとプライベートクラウドの機能を組み合わせたものです。このモデルでは、たとえば、非常に重要なデータはプライベートクラウドでホストし、機密性の低いデータをパブリッククラウドでホストすることで、パブリッククラウドのメリットである経済性とプライベートクラウドのメリットであるセキュリティを両立させることができます。

ハイブリッドクラウドのメリットとデメリット

メリット デメリット
  • ディザスタリカバリ: プライベートクラウドで障害が発生しても、パブリッククラウドで環境全体をアクティベートできます。
  • 拡張性と柔軟性: 負荷が変化した場合、パブリッククラウドを利用して拡張できます。
  • コストの削減: 環境の一部が従量課金制のパブリッククラウドであるため、コストを削減できます。
  • 複雑さ: ハイブリッドクラウドでは複数のクラウドアーキテクチャを統合することになるため、設定が複雑になります。
  • セキュリティ: アクセスレベル、ネットワーク、エントリポイントが環境ごとに異なるため、セキュリティリスクが増大します。
  • データの遅延: パブリッククラウドへのデータ転送が低速になる場合があり、ボトルネックが増加します。

4. マルチクラウド

マルチクラウドはハイブリッドクラウドに似ています。違うのは、プライベートとパブリックを併用するのではなく、複数のパブリッククラウドプロバイダを併用することで多様な機能を利用できるようになるという点です。

メリット デメリット
  • サービスの可用性: 複数のプロバイダを利用することで停止やダウンタイムの可能性が減ります。
  • 多様な機能: ビジネスに最適な機能を複数のプロバイダから選択できます。
  • 遅延の抑制: 特定のデータユーザーから地理的に近いクラウドプロバイダを選択することで、データ転送のボトルネックを減らすことができます。
  • 過大な管理負荷: 複数の環境を監視するため、データのバックアップ、リソースへのアクセス、システム運用などの作業が複雑になります。
  • クラウド専門スタッフの必要性: 様々なクラウドプラットフォームを熟知したIT専門スタッフは簡単には見つかりません(また、報酬も安くありません)。
  • セキュリティ: アプリケーションが複数のクラウド上で実行されるため攻撃の対象が増え、侵害のリスクが高まります。

5. コミュニティクラウド

コミュニティクラウドでは、クラウド内にあるITリソースに同じコミュニティに属する組織グループがアクセスできます。通常、この「コミュニティ」のメンバーはセキュリティ、プライバシー、パフォーマンス、コンプライアンスの要件が似ています。

コミュニティクラウドは、一般には公開されていないものの1つの企業専用でもないため、パブリッククラウドとプライベートクラウドの中間的なものとみなすことができます。内部で管理する場合とサードパーティが管理する場合があります。

メリット デメリット
  • コスト効率: コストとリソースを複数の組織で共同負担できます。
  • カスタマイズ性: 特定のコミュニティの要件に応じてカスタマイズできます。
  • セキュリティ: 「コミュニティ」内の組織間でデータが共有されるため、共有するデータには注意する必要があります。

クラウドサービスモデル

クラウドプロバイダは、主に3つのタイプのサービスを提供します。

  • サービスとしてのインフラ(IaaS)
  • サーバーレスコンピューティング
  • サービスとしてのプラットフォーム(PaaS)
  • サービスとしてのソフトウェア(SaaS)

cloud-guide-cloud-application-development-figure-3

サービスとしてのインフラ(IaaS)

サービスとしてのインフラ(IaaS)モデルでは、クラウドサービスのインフラをレンタルします。サーバー、ストレージ、ネットワーク、オペレーティングシステムなどの利用状況に応じて料金を支払います。

IaaSの例としては、Amazon Elastic Compute Cloud(Amazon EC2)、Amazon Simple Storage Service(Amazon S3)、Compute Engine from Google Cloudが挙げられます。

サービスとしてのプラットフォーム(PaaS)

サービスとしてのプラットフォーム(PaaS)では、アプリケーションの開発、テスト、提供、管理に必要なツールをすべて備えたプラットフォームをレンタルします。サーバー、ストレージ、ネットワーク、データベースの設定について考える必要がありません。

AWS Elastic Beanstalk、Heroku、Microsoft Azure、Red Hat OpenShift、OutSystemsがPaaSの例です。

3. サーバーレスコンピューティング

PaaSと同様、サーバーレスコンピューティングモデルでは、開発に関する設定、容量計画、サーバー管理をクラウドプロバイダが行うため、開発者はアプリケーション開発のみに集中できます。PaaSと違い、サーバーレスアプリケーションでは、拡張が即座に自動的にオンデマンドで実行され、追加の構成は一切必要ありません。

サービスとしてのソフトウェア(SaaS)

サービスとしてのソフトウェア(SaaS)では、ソフトウェアプログラムをレンタルします。サードパーティプロバイダがホストし、承認されたエンドユーザーがインターネット経由で利用できます。

SaaSの例としては、Slack、MailChimp、Zendeskなどがあります。