Containers as a Service(CaaS)とは

成功するには、デベロッパーはさまざまな種類のアプリケーションを効率的にパッケージ化して転送する必要があります。Container as a Service(CaaS)は、その過程でインフラストラクチャとコンテナのデプロイ、運用、メンテナンスを簡素化する方法の一つです。

Google Cloud でコンテナを実行する方法トップ 3

Container as a Service(CaaS)の定義

Containers as a Service(CaaS)は、コンテナ オーケストレーションのための自動化されたマネージド プラットフォームを提供するクラウド サービス モデルです。これはクラスタ オペレーションを整理して合理化する方法です。

すべてのプログラムが仮想オフィス空間に存在し、そのオフィスを管理して破壊や過負荷から守るマネージャーがいると想像してください。これがコンテナ化です。あなたは問題に対処する必要はありません。代わりに、コードの実行状況に集中できます。

CaaS は、デベロッパーが完成させたコンテナと本番環境グレードのランタイムのギャップを効果的に埋め、基盤となるインフラストラクチャを抽象化して、チームがクラスタ管理ではなくアプリケーション ロジックに集中できるようにします。

CaaS の仕組み

CaaS は、コンテナ オーケストレーション エンジンを中心に構築されたマネージド環境を提供することで機能します。Kubernetes は、コンテナ オーケストレーション エンジンの業界標準です。このプロセスでは、デベロッパーと基盤となるインフラストラクチャの関心事が分離されます。

デベロッパーの仕事: まず、すべての依存関係とアプリケーションを取得し、これらをコンテナ イメージにパッケージ化する必要があります。このイメージは、アプリケーションのポータブルなブループリントです。

完成したら、CaaS プロダクトが引き継ぎます。構築と保存が完了したら、あとは API またはインターフェースを介して管理を適用するだけです。Google Kubernetes Engine などの CaaS プロダクトが、その他すべての処理を支援します。次に、プログラムの状態を定義します。同じプログラムを実行するサーバーが 3 台必要な場合にも、このサービスが役立ちます。

その後、新しいデプロイは自動的に処理されます。これには次のオプションが考えられます。

  • アプリケーションをノードに配置し、接続を介して転送を管理
  • さまざまな種類の指標やリソースを使用してスケーリング
  • 実行中のコードの管理と自動修復
  • サービスとリソースの接続

CaaS の例と用途

CaaS は、アーキテクチャと開発手法の基盤として機能する汎用性の高いプラットフォームです。

アプリケーションとマイクロサービスのデプロイに最適なプラットフォーム。

レガシー アプリケーションのモダナイゼーションで古いアプリケーションをパッケージ化するのに最適。

開発構造には、CaaS プラットフォームは最適です。自動システムで新しいコンテナ イメージを構築し、テストを実行して、ダウンタイムなしで CaaS プラットフォームにデプロイできます。

CaaS はトラフィックのニーズを自動化します。プラットフォームは、ユーザーの需要に合わせてコンテナ インスタンスを自動的に追加または削除できます。

Kubernetes などのオープン スタンダードに基づいて構築された CaaS プラットフォームは、オンプレミス データセンターと複数のパブリック クラウドにわたって一貫した運用環境を提供できます。これにより、企業はコンテナ化されたアプリケーションを、再設計することなくどこでも実行できます。

CaaS と他のクラウドモデルの比較

「サービスとしての」環境にはさまざまなモデルが含まれており、それぞれが異なるレベルの抽象化と管理を提供します。CaaS は、Infrastructure as a Service(IaaS)Platform as a Service(PaaS)の中間に位置する独自のサービスです。

クラウドモデル

管理対象

抽象化レベル

一般的なユースケース

Infrastructure as a Service(IaaS)

オペレーティング システム、ミドルウェア、ランタイム、アプリケーション、データ。

低: 仮想マシンやストレージなどの未加工のコンピューティング リソースにアクセスできます。

カスタム インフラストラクチャをゼロから構築。

Containers as a Service(CaaS)

アプリケーションと構成。

中: クラスタと OS は管理されますが、コンテナ環境はユーザーが制御できます。

コンテナ化されたアプリケーションを大規模にオーケストレート。

Platform as a Service(PaaS)

アプリケーションとデータ。

高: ほぼすべてを管理。ソースコードを提供すれば、プラットフォームがそれを実行します。

シンプルなウェブ アプリケーションと API を迅速にデプロイ。

Functions as a Service(FaaS)(サーバーレス)

コード機能のみ。

非常に高い: イベントに応答して個々のステートレス関数を実行します。

軽量でイベント ドリブンなデータ処理タスク。

Software as a Service(SaaS)

なし(エンドユーザーであるため)。

完了: 完成したソフトウェア プロダクトをウェブ経由で配信する。

メールや CRM などのすぐに使えるソフトウェアを利用する。

クラウドモデル

管理対象

抽象化レベル

一般的なユースケース

Infrastructure as a Service(IaaS)

オペレーティング システム、ミドルウェア、ランタイム、アプリケーション、データ。

低: 仮想マシンやストレージなどの未加工のコンピューティング リソースにアクセスできます。

カスタム インフラストラクチャをゼロから構築。

Containers as a Service(CaaS)

アプリケーションと構成。

中: クラスタと OS は管理されますが、コンテナ環境はユーザーが制御できます。

コンテナ化されたアプリケーションを大規模にオーケストレート。

Platform as a Service(PaaS)

アプリケーションとデータ。

高: ほぼすべてを管理。ソースコードを提供すれば、プラットフォームがそれを実行します。

シンプルなウェブ アプリケーションと API を迅速にデプロイ。

Functions as a Service(FaaS)(サーバーレス)

コード機能のみ。

非常に高い: イベントに応答して個々のステートレス関数を実行します。

軽量でイベント ドリブンなデータ処理タスク。

Software as a Service(SaaS)

なし(エンドユーザーであるため)。

完了: 完成したソフトウェア プロダクトをウェブ経由で配信する。

メールや CRM などのすぐに使えるソフトウェアを利用する。

よくある質問

コンテナは、ソフトウェアをあらゆる場所に配信することを目的としています。コンテナの詳細を確認する。

はい。実際には、責任の分離、アプリケーションの分離、バッチ処理、ハイブリッド クラウドのデプロイなど、他の多くのメリットも得られます。

Google Kubernetes Engine(GKE)は、Service オブジェクトや DNS などの Kubernetes のネイティブ メカニズムとのシームレスな統合により、サービス ディスカバリを簡素化します。マネージド サービスとして提供される GKE は、マルチクラスタ サービス(MCS)や Service Directory との直接統合などの機能によって、これらの機能を強化します。

新しいコードをより迅速に作成してデプロイできますが、リソースは管理されず、何度も考え直されることもありません。

CaaS のメリット

CaaS プラットフォームの導入は、企業の開発チームと運用チームにさまざまな戦略的メリットをもたらします。

ポータビリティ

CaaS はワークロードに役立ちます。コンテナベースのアプリケーションが標準の CaaS フレームワークで実行されている場合、簡単に編集できます。

スケーラビリティ

リソースを必要なものに適合させることができます。

コーディングの高速化

これにより、自動化のプラクティスを改善できます。

メンテナンスの改善

コンポーネントに障害が発生した場合、プラットフォームによって対処され、ユーザーの機能を維持するために迅速に修正されます。

CaaS のセキュリティ

プロバイダが基盤となる作業を処理するため、アプリのコード、アカウントへのアクセス、ファイアウォール、アクセスルールに依存することになります。CaaS 環境のセキュリティは、責任共有モデルに基づいて運用されます。CaaS プロバイダは、基盤となるインフラストラクチャを保護する責任を負います。これには、コンテナ オーケストレーションのコントロール プレーンの保護、物理データセンターとネットワークのセキュリティ確保、マネージド サービス自体の完全性の確保が含まれます。

お客様は、管理するコンポーネントのセキュリティについて責任を負います。これには、アプリケーション コードの保護、Identity and Access Management(IAM)を使用したクラスタへのアクセスの管理、コンテナ間のトラフィックを制御するためのネットワーク ポリシーの構成、そして最も重要なソフトウェア サプライ チェーンの保護が含まれます。つまり、安全なコンテナ レジストリを使用し、コンテナ イメージをデプロイする前に既知の脆弱性についてスキャンします。

IT チームの責任:

  • アプリケーション コードをテストする
  • IAM(Identity and Access Management)の使用と制御
  • ソフトウェア セキュリティ

Google Cloud でビジネスの課題を解決する

新規のお客様には、Google Cloud で使用できる無料クレジット $300 分を差し上げます。

Google Kubernetes Engine で CaaS を設定する方法

Google Kubernetes Engine(GKE)は、Google Cloud の優れた CaaS サービスです。基本的なデプロイのセットアップは、論理的なコンテナネイティブのワークフローに従います。

ステップ 1: アプリケーションをコンテナ化する。

まず、アプリケーションのテキスト ファイルを作成します。このシンプルなテキスト ファイルには、アプリケーション、その依存関係、ランタイム環境を静的コンテナ イメージにビルドする手順が含まれています。

ステップ 2: イメージをレジストリに保存する。

テキスト ファイルからコンテナ イメージをビルドし、安全な非公開レジストリに push します。Artifact Registry は、コンテナ イメージの保存とバージョン管理を行うための Google Cloud のマネージド サービスです。

ステップ 3: GKE クラスタを作成する。

Google Cloud コンソールまたは gcloud コマンドライン ツールを使用して Kubernetes クラスタをプロビジョニングします。ノードの管理とスケーリングを自動化するフルマネージドのエクスペリエンスを実現するには、GKE Autopilot クラスタを選択できます。

ステップ 4: デプロイを定義する。 

Kubernetes マニフェスト ファイル(deployment.yaml など)を作成します。このファイルでは、使用するコンテナ イメージ、必要なレプリカ数、必要な CPU とメモリのリソースを指定して、アプリケーションの望ましい状態を宣言的に定義します。

ステップ 5: アプリケーションをクラスタにデプロイする。 

Kubernetes コマンドライン ツールである kubectl を使用して、マニフェスト ファイルをクラスタに適用します。GKE のコントロール プレーンはリクエストを受け取り、アプリケーションのコンテナがクラスタのワーカーノードで実行されるようにスケジュールします。

ステップ 6: アプリケーションを公開する。

ユーザーがインターネット経由でアプリケーションにアクセスできるようにするには、LoadBalancer タイプの Kubernetes Service マニフェストを作成します。このマニフェストを適用すると、GKE はクラウド ロードバランサを自動的にプロビジョニングし、パブリック IP アドレスを割り当てて、外部トラフィックを実行中のコンテナにルーティングします。

解決したい問題は何ですか?
What you'll get:
手順ガイド
リファレンス アーキテクチャ
利用可能な事前構築済みソリューション
このサービスは Vertex AI を使用して構築されました。ご利用いただけるのは 18 歳以上のユーザーのみです。機密情報や個人情報は入力しないでください。

参考情報

  • Google Cloud Skills Boost のこの動画では、コンテナの基本的な概要と、オーケストレーション エンジンとしての Kubernetes の仕組みについて説明します。
  • この便利なガイドでは、IaaS、PaaS、SaaS などの他の主要なクラウド サービスモデルとの主な違いについて説明します。

次のステップ

$300 分の無料クレジットと 20 以上の Always Free プロダクトを活用して、Google Cloud で構築を開始しましょう。

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud