AWS での Kubernetes
オープンソースコンテナの管理およびオーケストレーション
Kubernetes は、コンテナ化アプリケーションを大規模にデプロイおよび管理できるオープンソースソフトウェアです。Kubernetes では、デプロイ、メンテナンス、スケーリングのプロセスにより、Amazon Elastic Compute Cloud (EC2) コンピューティングインスタンスのクラスターを管理し、これらのインスタンスでコンテナを実行します。Kubernetes では、同じツールセットを使用して、オンプレミスやクラウド上で、すべてのタイプのコンテナ化アプリケーションを実行できます。
AWS では、スケーラブルで可用性の高い仮想マシンインフラストラクチャ、コミュニティによってサポートされたサービス統合、Amazon Elastic Kubernetes Service (EKS) (Kubernetes 準拠の認定を受けているマネージドサービス) により、クラウドで簡単に Kubernetes を実行できます。
Kubernetes の仕組み
Kubernetes では、利用可能なコンピューティングリソースおよび各コンテナのリソース要件に基づいて、コンピューティングインスタンスのクラスターを管理し、クラスター上で実行するコンテナをスケジュールします。コンテナはポッドという論理グループ内で実行され、ユーザーは 1 つまたは複数のコンテナをまとめて 1 つのポッドとして実行およびスケーリングできます。
Kubernetes コントロールプレーンソフトウェアでは、使用率またはユーザー定義のその他のメトリクスに基づいて、ポッドをいつどこで実行するかの判断、トラフィックルーティングの管理、ポッドのスケーリングが実施されます。Kubernetes は、リソース要件に基づいてクラスターでポッドを自動的に開始します。ポッドまたはポッドが実行中のインスタンスに障害が発生した場合は、ポッドを自動的に再開します。各ポッドには IP アドレスと単一の DNS 名が割り当てられており、Kubernetes ではこれを利用して、サービス間およびサービスと外部トラフィック間を接続します。
Kubernetes を使用する利点
Kubernetes はオープンソースプロジェクトであるため、Kubernetes を使用すれば、運用ツールの変更は不要で、どこからでもコンテナ化アプリケーションを実行できます。Kubernetes は、大規模なボランティアのコミュニティによって保守されており、常に改善されています。さらに、他の多くのオープンソースプロジェクトやベンダーによって、アプリケーションアーキテクチャを改善および拡張できる Kubernetes 互換ソフトウェアが作成および保守されています。
アプリケーションを大規模に実行
Kubernetes では、複雑なコンテナ化アプリケーションを定義し、サーバーのクラスター全体で大規模に実行できます。
アプリケーションをシームレスに移行
Kubernetes では、同じ運用ツールを使用し、コンテナ化アプリケーションをローカルの開発マシンからクラウドの本番デプロイにシームレスに移行させることができます。
どこでも実行可能
スケーラブルで可用性の高い Kubernetes クラスターを AWS で実行しながら、オンプレミスで実行している Kubernetes のデプロイと完全な互換性を保つことができます。
新機能の追加
オープンソースプロジェクトとして、Kubernetes に新機能を追加することは容易です。デベロッパーや企業の大規模なコミュニティによって、Kubernetes のユーザーに役立つ拡張機能、統合機能、プラグイン機能が作成されています。
AWS で Kubernetes を実行
AWS では、簡単に Kubernetes を実行できます。 Amazon EC2 を使用して自分で Kubernetes インフラストラクチャを管理するか、Amazon EKS を使用して自動的にプロビジョニングされた、マネージド Kubernetes コントロールプレーンを取得するかを選ぶことができます。どちらにしても、Amazon Virtual Private Cloud (VPC)、AWS Identity and Access Management (IAM)、サービスディスカバリなどの AWS のサービスや、AWS のセキュリティ、スケーラビリティ、高可用性に対して、コミュニティによってサポートされた強力な統合が得られます。
目的 |
お勧めする製品 | |
---|---|---|
Kubernetes のデプロイを完全に管理する。強力なインスタンスタイプを選択し、Kubernetes をプロビジョニングおよび実行する。 | Amazon EC2 | |
マスターインスタンスおよび etcd のプロビジョニングや管理を行うことなく、Kubernetes を実行する。 |
Amazon EKS | |
コンテナイメージの保存、暗号化、管理を行って迅速にデプロイする。 |
Amazon ECR |
AWS コミュニティ Kubernetes コラボレーション
AWS では、Kubernetes のコードベースに貢献するなど、Kubernetes コミュニティと積極的に協力して、Kuberentes ユーザーが AWS のサービスや機能を活用しやすくなるようにしています。
Kubernetes に関するよくある質問
AWS での Kubernetes の詳細
AWS におけるコンテナの詳細はこちら