AWSのコンテナとは?関連するサービスなどを解説
公開日
2023年12月20日
近年は、アプリケーションの動作環境を構築する技術としてコンテナが注目されており、Amazon社の提供するクラウドプラットフォームAWS(Amazon Web Services)でも、コンテナに関連するサービスが展開されています。
この記事では、コンテナの詳細やAWSのコンテナ関連サービス、コンテナの運用に活用できるサービスについて解説します。
コンテナとは仮想化技術のひとつ
コンテナとは、1台の物理サーバを複数の仮想サーバに分割して利用する仮想化技術のひとつです。
アプリなどの開発を行うには、さまざまな環境下でアプリの動作を確かめなくてはいけません。しかし、必要な環境をいちいちハードから構築していては、膨大な費用と手間がかかります。そこで、より効率的に環境構築を行う方法として、仮想化技術が活用されています。
仮想空間を作る仮想化技術には、いくつかの方法があります。
従来は、ハイパーバイザー方式といって、物理サーバに仮想化ソフトウェア(ハイパーバイザー)をインストールし、その上でゲストOS(仮想サーバ)を稼働させる方法が取られていました。
この方式は、ハイパーバイザーが直接ハードウェアを制御できるので、処理速度の低下を最小限に抑えられ、実用的なゲストOS(仮想サーバ)を作りやすいのが強みです。一方で、ハイパーバイザーが動作可能な専用の物理サーバを新しく用意する必要があり、コストがかかるという問題もあります。
そんな中で、ハイパーバイザー方式の問題が解決できる技術として最近注目を集めているのが、ホストとなるコンピューターをOSとアプリケーションのまとまり単位で論理分割するのではなく、アプリケーションと構成情報などのまとまり単位で分割するのがコンテナです。ハイパーバイザー方式との違いは、ハイパーバイザー方式がゲストOS(仮想サーバ)を必要とするのに対しコンテナは必要としないことで、その分軽く速い処理が可能です。
コンテナは、ホストOSにコンテナエンジンと呼ばれる仮想化ソフトウェアをインストールし、その上にアプリケーションを設置する構造になっており、同時に複数のアプリケーションを動作させることができます。
コンテナの運用に欠かせないシステム
コンテナを使って開発環境を運用するには、Docker(ドッカー)とKubernetes(クバネティス)という2つのシステムがよく用いられますが、ここでは、それぞれのシステムについて特長をご紹介します。
Docker
Dockerは、Docker社が提供しているもので、コンテナエンジンと呼ばれる、コンテナが稼働するための環境を管理するオープンソースソフトウェア(OSS)です。シンプルなコマンドを使って、コンテナの構築、起動、停止ができます。
Kubernetes
Kubernetesは、Googleが開発したコンテナオーケストレーションシステムです。複数のコンテナを運用するには、コンテナが正常に稼働しているかトレースしたり、新しいコンテナがどこかのホストに偏ってデプロイされないようにコントロールしたりする管理などが不可欠です。コンテナの数が多くなると、人の手で管理するのは現実的ではないので、管理ツールが必要になります。Kubernetesはそんな場合に活躍する、コンテナの運用・管理を自動化できるツールです。
AWSのコンテナ関連サービス
AWSには、コンテナを簡単に構築したり、運用したりするためのサービスがいくつも存在します。代表的なものは、Amazon ECS、Amazon EKS、AWS Fargateの3つです。それぞれの特長を見ていきましょう。
Amazon ECS
Amazon ECS(Elastic Container Service)とは、AWS上でコンテナを管理するためのオーケストレーションサービスです。役割としてはKubernetesに近いですが、AWSが独自に開発した専用プラットフォームであり、AWS上でのみ利用できたり、ほかのAWSサービスと連携しやすかったりするという違いがあります。
Amazon EKS
Amazon EKS(Elastic Kubernetes Service)もAmazon ECSと同じく、AWSが独自に開発したオーケストレーションサービスです。Amazon ECSとの違いは、より細かく、高度なコンテナ運用が可能なことで、オープンソースのKubernetesと同程度の機能が使えます。基本的に、複雑で巨大なシステムを組みたい場合はAmazon EKS、複雑な運用をしないシンプルなシステムを組みたい場合はAmazon ECSの利用が適しているでしょう。
なお、Kubernetesは機能が多く、すべてを自分で構築して運用するのは大変ですが、Amazon EKSはフルマネージドサービスを利用することで、構築や運用の負荷を軽減できるメリットがあります。
AWS Fargate
AWS Fargateとは、Amazon ECSとAmazon EKSの両方で利用できるサーバレスコンピューティングサービスです。
Amazon ECSとAmazon EKSはどちらも、コンテナの実行環境として、AmazonがAWS上で提供している仮想サーバであるAmazon EC2を利用できます。AWS Fargateは、このコンテナの実行環境を自動化し、サーバの管理や保守を意識することなくコンテナを実行できるサーバレスを可能にするものです。AWS Fargateを利用すれば、ホストマシンのOSやミドルウェアなどの管理が不要になります。
AWS FargateとAmazon ECS、Amazon EKSは、連携してコンテナを起動することができ、簡単にいえば、AWS FargateはAmazon ECS、Amazon EKSでコンテナを実行する方法のひとつです。具体的には、Amazon ECS、Amazon EKSでは、起動モードをAmazon EC2とAmazon Fargateの2種類から選択できます。
それぞれの特長としては、Amazon EC2でコンテナを起動する場合は、ホストマシンの管理や運用が必要になりますが、Amazon Fargateを選択した場合は、ホストマシンなどを意識することなくコンテナの実行が可能です。
コンテナ運用に活用できるAWSのサービス
Amazon ECS、Amazon EKS、AWS Fargateはすべて、AWSでコンテナを構築するためのサービスです。これに加え、AWSにはコンテナの運用負荷軽減に役立つサービスとして、以下のようなものがあります。
Container Insights
Container Insightsは、Amazon CloudWatchの中で提供される、コンテナの情報を取得するためのサービスです。AWS上で提供されるサービスの情報を取得するには、Amazon CloudWatchを利用しますが、コンテナに関するAmazon ECSやAmazon EKSのメトリクス(さまざまな活動を定量化し、定量化したデータを管理に使えるように加工した指標)は、Container Insightsを用いてタスクやコンテナ単位のメトリクスが取得できるほか、極めて簡単に導入できます。
AWS Auto Scaling
AWS Auto Scalingは、アプリケーションをモニタリングして、自動的にAWSリソースの割り当てを行ってくれるサービスです。AWSのサービス料金は基本的に従量課金制のため、使い方によっては無駄なコストがかかってしまいます。AWS Auto Scalingを利用すると、需要の増減に合わせて自動でリソースのスケールが調整されるので、コストの最適化が可能です。
Amazon CloudWatch Logs
Amazon CloudWatch Logsは、使用中のすべてのシステム、アプリケーション、AWSのサービスからのログを集約して、一元管理できるサービスです。特定のエラーコードやパターンの検索、特定のフィールドにもとづいてのフィルターリングなどを含め、ログの保存・監視・分析ができます。
オンプレミス上のサーバからログを収集することも可能です。
コンテナ技術利用のセキュリティ対策にTrend Cloud One™ を活用しよう
AWSの各種サービスを利用すれば、コンテナ技術によって、アプリ開発に必要な環境を手軽に作ることが可能です。ただし、AWSのセキュリティ対策は、サービスの提供者と利用者が担当する範囲を明確に区分けし、それぞれがそれぞれの範囲に責任を持つ「責任共有モデル」なので、AWSサービスを利用するには、利用者自身もセキュリティ対策をしっかり行うことが欠かせません。
トレンドマイクロのTrend Cloud Oneなら、Trend Micro Cloud One - Workload Security™ で仮想マシンやコンテナの保護ができます。また、Trend Micro Cloud One - Container Security™ で、レジストリーに保存されているコンテナイメージのスキャン・リスク検知やコンテナを操作してくれる機能であるコンテナランタイムの保護が可能。一般的なクラウド利用のセキュリティ対策になるのはもちろん、コンテナのセキュリティ対策としても効果的です。企業のビジネスに貢献するTrend Cloud Oneをぜひご利用ください。
監修
福田 俊介
トレンドマイクロ株式会社 ビジネスマーケティング本部
ストラテジックマーケティンググループ
グループ長 シニアマネージャー
IPA 情報処理安全確保支援士(第000893号)、AWS Certified Solutions Architect – Professional保有。
約10年間クラウドセキュリティ領域およびエンドポイントセキュリティ領域に従事、クラウドの最新アーキテクチャに対応するセキュリティ戦略を立案、市場啓蒙を実施。これまでのセミナー登壇は100回を超える。専門領域は「クラウド」「サーバ」「仮想化」「コンテナ」「脆弱性」「EDR」「XDR」。
電子公告 | ご利用条件 | 個人情報保護方針 | Privacy and Legal |利用者情報の外部送信について | 製品使用許諾契約 |プレスリリース | サポート | サイトマップ | RSS
Copyright ©2024 Trend Micro Incorporated. All rights reserved