クラウドコンテナとは何ですか?

クラウドコンテナは、アプリケーションのコード、ライブラリ、およびクラウドで実行するのに必要なその他の依存関係を含むソフトウェアコードパッケージです。どのソフトウェアアプリケーションコードでも、実行する前にライブラリと依存関係と呼ばれる追加ファイルが必要です。従来、Windows、Linux、Mac、モバイルなどのさまざまな環境で実行するには、ソフトウェアを複数のフォーマットでパッケージ化する必要がありました。ただし、コンテナはソフトウェアとそのすべての依存関係をどこでも実行できる 1 つのファイルにパッケージ化します。コンテナをクラウドで実行することで、規模に応じて柔軟性とパフォーマンス上のメリットをさらに得られます。

クラウドコンテナのメリットは何ですか?

アプリケーションは、数十、数百、または数千のコンテナで構成されている場合があります。クラウドコンテナを使用することで、これらのコンテナをさまざまなクラウドサーバーまたはインスタンスに分けて管理できます。クラウドコンテナはコロケーションされているかのように機能します。分散型クラウドコンピューティングアプリケーションアーキテクチャには多くのメリットがあります。 

クラウドサーバーについて読む

簡素化されたアプリケーションのデプロイ

コンテナは、基盤となるアーキテクチャやオペレーティングシステムにソフトウェアを特別にバンドルしなくても、ほぼすべての環境にソフトウェアをデプロイできるという点で独特です。コンテナ化が普及する前に、アプリケーションを特定のプラットフォームで実行させるには、特定のライブラリにバンドルする必要がありました。つまり、1 つのソフトウェアを複数のオペレーティングシステムにデプロイすると、複数のソフトウェアバージョンが作成されることになります。クラウドコンテナは、コンテナ化されたプラットフォームが上位で実行されている限り、アプリケーションが基盤となるすべてのアーキテクチャで実行するのを可能にします。これで、必要な製品レベルのコンテナのバージョンが 1 つだけとなります。

柔軟性

クラウドのコンテナ化を使用することで、基盤となる仮想マシン (VM) はすべてクラウドインスタンスとなります。クラウドインスタンスは、高速起動、ティアダウン、需要に応じるクラウドコンピューティング料金など、さまざまな設定で利用できます。再度設定が可能になるため、アプリケーションの需要に応じて、必要に合わせてマシンをスワップインとスワップアウトできます。個々のサーバーではなく、さまざまなクラウドインスタンスにわたってコンテナに基づくアプリケーションの負荷を分散することで、リソースの使用を最適化できます。

負荷分散について読む

回復性

クラウドコンテナは、アプリケーションの信頼性と可用性を向上させます。分散されたコンテナ化アーキテクチャでは、あるマシンに障害が発生しても、別のマシンが停止したコンテナをすぐに起動できるため、アプリケーションの耐障害性が強化されます。アプリケーションの他の部分への影響を最小限に抑えながら、アプリケーション内の単一コンテナの新しいバージョンを更新できます。その結果、稼働時間が長くなります。

スケーラビリティ

従来のアプリケーション稼働環境では、アプリケーションは単一サーバーのリソースに制限されていました。適切なアプリケーション設計とクラウドコンテナ化アプローチがあれば、アプリケーションのデータ処理と入力/出力が、単一サーバーに制限されることもなくなります。これらは複数のマシンに分散されているため、制限なくスケールできて、一貫したパフォーマンスとユーザーエクスペリエンスを確保できます。

 

クラウドコンテナのユースケースとは何ですか?

クラウドコンテナは、コンテナ化されたアプリケーションを作成または実行し、クラウドコンピューティングリソースを利用したいと考えているあらゆる組織にも役立ちます。

マイクロサービス

マイクロサービスアーキテクチャを使用することで、アプリケーションを 1 つの機能を発揮する小さな独立コンポーネントまで分解できます。それによって柔軟性を提供し、コードの再利用と効率化を促進します。クラウドコンテナを使用すると、クラウドインスタンスの分散型ネットワークにわたる数百または数千ものマイクロサービスからなる大規模なアプリケーションを実行できます。ワークロードを複数のインスタンスに配布することで、最適なコストで操作を最適化、マシンがダウンした場合でもサービスの継続性を確保できます。

DevOps

DevOps は、ソフトウェアアプリケーションの構築、テスト、実行の自動化と管理プロセスです。そのプロセス自体は繰り返し可能で、バージョン管理が行われ、そしてコードとして利用できるため、開発時間を節約し、発生する可能性のあるマニュアルエラーの数を減らすことができます。コンテナ化とデプロイのプロセスは似ており、従来の DevOps プロセスやツールとよくなじみます。クラウドコンテナファイルのバージョン管理が可能で、継続的インテグレーション/継続的デプロイ (CI/CD) DevOps プラクティスをサポートします。

DevOps について読む

継続的インテグレーションについて読む

ハイブリッドクラウド

コンテナに基づくアプリケーションアーキテクチャを、オンサイトサーバーやクラウドに基づくサーバーで実行したい場合があるかもしれません。クラウドコンテナのデプロイは、ハイブリッドクラウドの組み合わせによくなじみます。コンテナサービスをまとめて実行するには、正しいネットワーク設定、およびコンテナ化されたサービスがすべてのマシンで実行されていることが必要です。

クラウドコンテナはどのように機能しますか?

クラウドコンテナは、ローカルマシンやデータセンターではなく、単なるクラウドインフラストラクチャ上で実行されるコンテナです。クラウドコンピューティングのコンテナは、コード、ランタイム、ライブラリ、環境変数、設定ファイルなどソフトウェアの実行に必要なすべてのものを含むイメージファイルです。イメージはレイヤーで構成されます。基本イメージ (通常はオペレーティングシステムの最低バージョン) から始め、コンテナ設定ファイルの指示に従ってレイヤーを追加します。コンテナイメージの重要な特徴の 1 つはその不変性です。一度作成されると、変更されることはありません。イメージをコンテナレジストリーに保存し、さまざまなクラウド環境で一貫して再利用できます。

コンテナ技術のさまざまな側面の概要は次のとおりです。

コンテナランタイム

コンテナランタイムはコンテナの実際の実行を担当します。コンテナの実行、ライフサイクル、およびリソースの分離を管理します。コンテナは、クラウドインスタンスオペレーティングシステムのユーザースペースで、独立されたプロセスとして実行します。ホストオペレーティングシステムを共有しますが、互いに、そしてホストから分離されたままです。この分離により、ランタイムがコンテナ間のリソース競合を回避するために強制的な制限を適用する効率的なリソース割り当てが可能になります。

ネットワーク

独自の分離されたネットワークスタックを使用してクラウドコンテナを設定することで、別々のコンテナで実行されるアプリケーションが互いに干渉しないようにできます。ポートマッピングと事前定義されたネットワークチャネルは、外部との通信やコンテナ間の通信を管理します。 

ストレージ

クラウドコンテナは通常、エフェメラルストレージを使用します。つまり、コンテナが停止されると、コンテナの書き込み可能なレイヤーに書き込まれたデータが失われるということです。クラウドストレージボリュームを使用することで、永続的なストレージに手に入ることができます。これらのボリュームはコンテナのライフサイクルに依存せず、複数のコンテナに共有されることができます。

オーケストレーション

大規模システムでは、オーケストレーションツールが複数のコンテナのデプロイ、スケール、および管理を自動化します。ツールはこれらのコンテナをクラウドサーバーのクラスターに配布し、負荷を分散してフェイルオーバープロセスを管理します。自動化により、複雑な環境におけるコンテナ化されたアプリケーションの管理が大幅に簡素化されます。すべてのクラウドインスタンスで操作を実施しなくても、ハイブリッドクラウドアーキテクチャにわたって、高度で大規模なコンテナ化されたアプリケーションをデプロイして管理できます。コンテナイメージファイルを各インスタンスにマニュアルで転送する代わりに、オーケストレーションツールをプログラムして、コンテナレジストリからイメージファイルを取得し、クラウドインスタンスに自動的にデプロイできます。

クラウドコンテナとクラウドインスタンスの違いは何ですか?

クラウドインスタンスとは、基盤となる物理リソースがクラウドプロバイダーによって完全に管理されている VM です。クラウドインスタンスは実際のサーバーのように機能し、完全設定が可能なため、オンサイトサーバーと同じように使用できます。ただし、ハードウェアやオペレーティングシステムの管理は必要ありません。クラウドインスタンスが、迅速かつ簡単にインスタンス化して削除されることができます。クラウドコンテナをクラウドインスタンスにデプロイして、クラウドに基づく分散型アプリケーションを実行できます。クラウドコンテナという用語は、クラウドインスタンスで実行されるコンテナを指します。

クラウドインスタンスについて読む

コンテナと仮想マシンの違う点について読む

AWS はクラウドコンテナの要件をどのようにサポートしますか?

現在、すべてのクラウドコンテナのほぼ 80% が Amazon Web Services (AWS) で稼働しています。AWS コンテナサービスには、基盤となるコンテナインフラストラクチャを管理するためのシステムツールが多数用意されているため、イノベーションとビジネスニーズに集中できます。

  • AWS Copilot は、AWS でコンテナ化されたアプリケーションを素早く起動し、管理することを可能にするコマンドラインインターフェイス (CLI) です
  • Amazon Elastic Container Service (Amazon ECS) は、コンテナ化されたアプリケーションを効果的にデプロイ、管理、スケールする完全に管理されたコンテナオーケストレーションサービスおよびシステムツールです
  • Amazon Elastic Kubernetes Service (Amazon EKS) は、AWS クラウドおよびオンプレミスデータセンターで Kubernetes コンテナオーケストレーションを実行するための管理された Kubernetes サービスです。
  • Amazon Elastic Container Registry (Amazon ECR) は、コンテナイメージとアーティファクトの管理とアクセスを簡単にする完全管理されたコンテナレジストリです
  • AWS Fargate はコンテナ用のサーバーレスコンピューティングエンジンで、インフラストラクチャの管理ではなくアプリケーションの開発に集中できます

以下のイメージは、AWS コンテナソリューションのオプションをレイヤー別に示しています (準備、オーケストレーション、容量)。

今すぐアカウントを作成して、AWS でクラウドコンテナの使用を開始しましょう。

AWS での次のステップ

追加の製品関連リソースをチェックする
サービス指向アーキテクチャの詳細 
無料のアカウントにサインアップ

AWS 無料利用枠にすぐにアクセスできます。 

サインアップ 
コンソールで構築を開始する

AWS マネジメントコンソールで、AWS を使って構築を開始しましょう。

サインイン