カテゴリ別のサービス学習
コンテナ
はじめに
このサイトでは、コンテナとは何か、なぜアプリケーションやユースケースに AWS のコンテナサービスを検討した方が良いのかを紹介します。
コンテナとは
コンテナを使用すると、アプリケーションのコード、構成、依存関係を単一のオブジェクトにパッケージ化できます。サーバーにインストールされたオペレーティングシステムを共有し、リソースが分離したプロセスとして実行され、環境に関係なく、迅速で信頼性も高く、一貫性のあるデプロイを保証しています。
コンテナを使用する理由
コンテナは、デベロッパーがアプリケーションをパッケージ化してデプロイするための力強い方法です。軽量で、どこでも簡単にアプリケーションを実行およびスケールできる、一貫したポータブルソフトウェア環境を提供します。マイクロサービスの構築とデプロイ、バッチジョブの実行 (機械学習アプリケーションの場合)、およびクラウド内への既存のアプリケーションの移行は、普及しているコンテナユースケースのほんの一部です。
安全: AWS では、セキュリティ、コンプライアンス、ガバナンスに関する 210 のサービスおよび主要機能をご用意しています。これは、2 番目に大きいクラウドプロバイダーを約 40 上回っています。AWS は、コンテナ間の強力なセキュリティ分離を提供し、最新のセキュリティ更新プログラムを実行していることを保証し、すべてのコンテナにきめ細かいアクセス許可を設定する機能を提供します。
信頼性: AWS コンテナサービスは、22 のリージョンで 69 のアベイラビリティーゾーン (AZ) を備えた最高のグローバルインフラストラクチャで実行されます。AWS では、2 番目に大きいクラウドプロバイダーに比べ、2 倍以上のリージョンで複数のアベイラビリティーゾーンを提供しています (22 対8)。すべてのコンテナサービス(ECS、EKS、および Fargate)には SLA があり、安心できます。
選択肢: AWS コンテナサービスは、コンテナを実行するための最も幅の広いサービスの選択肢を提供します。コンテナに対するサーバーレスコンピューティングを希望する場合は AWS Fargate を選択し、コンピューティング環境のインストール、構成、および管理に対するコントロールが必要な場合は Amazon EC2 コンテナ を選択します。使用するコンテナオーケストレータを選択することもできます。Amazon Elastic Container Service (ECS) またはAmazon Elastic Kubernetes Service (EKS)。
AWS との統合: AWS コンテナサービスは、設計により AWS と深く統合されています。これにより、コンテナアプリケーションは、ネットワーキング、セキュリティからモニタリングまで、AWS クラウドの幅と奥行きを活用できます。AWS は、コンテナの俊敏性とクラウドの弾力性とセキュリティを組み合わせています。
コンテナサービス
AWS は、コンテナを保存、管理、実行するための幅広いサービスを提供しています。小規模な実験から重要な本番アプリケーションまで、ワークロードに適した AWS のサービスを選択してください。
目的... |
お勧めする製品 |
理由... |
---|---|---|
コンテナイメージの保存、暗号化、管理 | Amazon ECR |
ECR はコンテナイメージを圧縮して暗号化するため、イメージをすばやく起動してどこからでも実行できるようになります。 |
コンテナ化されたアプリケーションを実行するか、マイクロサービスを構築する | Amazon ECS | Amazon Elastic Container Service (Amazon ECS) は完全マネージド型のコンテナオーケストレーションサービスで、コンテナ化されたアプリケーションを実行するための最も安全で信頼性の高い、スケーラブルな方法を提供します。 |
Kubernetes でコンテナを管理する | Amazon EKS | Amazon Elastic Kubernetes Service (Amazon EKS) は完全マネージド型の Kubernetes サービスで、Kubernetes を使用してコンテナ化されたアプリケーションを実行するための最も安全で信頼性の高い、スケーラブルな方法を提供します。 |
サーバーの管理が不要なコンテナの使用 |
AWS Fargate | AWS Fargate は、Amazon Elastic Container Service (ECS) と Amazon Elastic Kubernetes Service (EKS) の両方で動作するサーバーレスコンピューティングエンジンです。Fargate ではサーバーのプロビジョニングと管理が不要となり、アプリケーションごとにリソースを指定して支払うことができ、アプリケーション分離の仕様によりセキュリティが強化されます。 |
サーバーレベルの制御でコンテナを実行する | Amazon EC2 |
EC2 仮想マシンは、サーバークラスターを制御し、幅広いカスタマイズオプションを提供します。 |
基礎
このセクションでは、コンテナを理解し、アプリケーションまたはユースケースに適したコンテナサービスを判断するために必要な基本的な概念について説明します。
Docker は、アプリケーションをすばやく構築、テスト、デプロイできるソフトウェアプラットフォームです。Docker は、コンテナと呼ばれる標準化されたユニットにソフトウェアをパッケージ化します。コンテナには、ライブラリ、システムツール、コード、ランタイムなど、ソフトウェアの実行に必要なすべてのものが含まれています。

Kubernetes オープンソースコンテナの管理およびオーケストレーション一ステムです。AWS では、Amazon EC2 を使用して自分で Kubernetes インフラストラクチャを実行および管理するか、Amazon EKS を使用して自動的にプロビジョニングされた Kubernetes コントロールプレーンを取得するかを選ぶことができます。

一般的なコンテナのユースケース
マイクロサービス: コンテナを使い、プロセスを分離します。これにより容易にアプリケーションを分離し、マイクロサービスと呼ばれる独立したコンポーネントとして動作できます。
バッチ処理: バッチ処理と ETL ジョブをコンテナにパッケージ化することで、ジョブを迅速に開始し、要求に応じて同時にスケーリングできます。
Machine Learning: コンテナを使用することで、トレーニングや推論の機械学習モデルをすばやくスケールし、あらゆるプラットフォームのデータソースと連携動作が可能です。
ハイブリッドアプリケーション: コンテナを使用すると、コードのデプロイ方法を標準化できるため、オンプレミス環境とクラウド環境の間で稼働するアプリケーションのワークフローを簡単に作成できます。
クラウドへのアプリケーションの移行: コンテナを使用することにより、アプリケーション全体をパッケージ化し、コード変更することなく簡単にクラウドに移動することができます。
Platform as a Service: コンテナを使用しプラットフォームを構築をすることで、デベロッパーはインフラストラクチャを管理したり、アプリケーションのデプロイや管理を標準化したりする必要がなくなります。
作ってみよう
次のチュートリアルでは、Amazon ECS と Amazon EKS の開始方法について説明します。
ロードバランサーの背後にある Amazon ECS クラスターで Docker 対応のサンプルアプリケーションを実行し、サンプルアプリケーションをテストする方法を学びます。
コンテナ化されたアプリケーションを、Amazon Elastic Container Service for Kubernetes (Amazon EKS) で管理される Kubernetes クラスターにデプロイする方法について学習します。
学習リソース
次のリソースでは、Amazon ECS、Amazon EKS、および AWS App Mesh のより高度な設定とユースケースについて説明しています。
AWS ECS でフロントエンドサービスと複数のバックエンドサービスを起動し、このワークフローをお使いの環境に取り入れる方法を詳しく見ていきます。
Amazon EKS、VPC、ALB、および EC2 Kubernetes ワーカーを設定する複数の方法を探ります。
モノリシックな Node.js アプリケーションを Docker コンテナにデプロイし、ダウンタイムなしでアプリケーションをマイクロサービスに分割する方法について学びます。
AWS App Mesh の機能と使用法について学びます。
専門家から直接、コンテナを実行する方法を学びます。
次の動画では、コンテナをより効果的に使用する上で役立つ主要なコンテナトピックを扱っています。