AWSのKubernetesを使ったサービス(Amazon EKS)についてまとめています。
AWSでKubernetesを使うには、Amazon KCSを利用
AWSのAmazon EKSは、AWS上やオンプレミスでKubernetesを実行できるマネージドKubernetesサービス。AWSにはコンテナアプリを実行するサービスとして、Amazon ECSがありますが、コンテナを実行するクラスター環境(Kubernetes)の制御をおこないたいというユーザには、Amazon EKSは最適です。
【関連記事】
▶AWSのdocker実行はAmazon ECS コンテナアプリケーションをAWS環境で起動
Amazon EKSの使い方
関連)Amazon EKS(AWS でマネージド Kubernetes を実行)
Amazon EKSでは、AWSマネジメントコンソールからのクラスタ作成も可能ですが一部のリソースを手動作成する必要があります。
【関連記事】
▶AWSを集中管理したい!AWS マネジメントコンソールを使いこなそう!
ここでは、kubernetesのコマンドラインツールkubectlとEKSクラスターを操作するeksctlを使った操作方法について紹介します。kubectlとeksctlのインストール方法については、以下を参考にしてください。
関連)Installing kubectl – Amazon EKS
関連)The eksctl command line utility – Amazon EKS
ここでは、以下の3ステップについて紹介します。
- ステップ1:AmazonEKSクラスターとノードを作成する
- ステップ2:リソースを表示する
- ステップ3:クラスターとノードを削除する
「ステップ1:AmazonEKSクラスターとノードを作成する」… eksctlコマンドを使ってクラスター(my-cluster)を作成します。EC2ノードもしくはfargateノードでクラスターを構成することができますが、ここではEC2ノードでの構成を紹介します。
【関連記事】
▶AWSのインスタンス Amazon EC2サービスの料金と使い方
【関連記事】
▶AWSのFargateは、サーバーレスでコンテナを実行/EC2アプリのコンテナ化の方法
以下のコマンドで、SSHアクセスのためのキーペアを作成します。
aws ec2 create-key-pair --region us-west-2 --key-name myKeyPair
作成したキーペアを指定して、クラスター(my-cluster)をリージョンus-west-2に作成します。
eksctl create cluster \ --name my-cluster \ --region us-west-2 \ --with-oidc \ --ssh-access \ --ssh-public-key your-key
クラスターとノードが作成されると、出力の最後に以下のような行が表示されます。
... [✓] EKS cluster "my-cluster" in "us-west-2" region is ready
「ステップ2:リソースを表示する」 … 作成したリソース(クラスタを構成するノード情報)を表示します。
kubectlコマンドで、クラスターノード情報を表示します。
kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME ip-192-168-12-49us-west-2.compute.internal Ready 6m7s v1.18.9-eks-d1db3c 192.168.12.49 52.35.116.65 Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 docker://19.3.6 ip-192-168-72-129.us-west-2.compute.internal Ready 6m4s v1.18.9-eks-d1db3c 192.168.72.129 44.242.140.21 Amazon Linux 2 4.14.209-160.335.amzn2.x86_64 docker://19.3.6
kubectlコマンドで、クラスターで実行されているワークロードを表示します。
kubectl get pods --all-namespaces -o wide NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES kube-system aws-node-6ctpm 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.us-west-2.compute.internal kube-system aws-node-cbntg 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.us-west-2.compute.internal kube-system coredns-559b5db75d-26t47 1/1 Running 0 14m 192.168.78.81 ip-192-168-72-129.us-west-2.compute.internal kube-system coredns-559b5db75d-9rvnk 1/1 Running 0 14m 192.168.29.248 ip-192-168-12-49.us-west-2.compute.internal kube-system kube-proxy-l8pbd 1/1 Running 0 7m46s 192.168.12.49 ip-192-168-12-49.us-west-2.compute.internal kube-system kube-proxy-zh85h 1/1 Running 0 7m43s 192.168.72.129 ip-192-168-72-129.us-west-2.compute.internal
「ステップ3:クラスターとノードを削除する」 … 作成したクラスターとノードを、eksctlコマンドで削除します。
eksctl delete cluster --name my-cluster --region us-west-2
関連)Amazon EKS入門– eksctl – Amazon EKS
Amazon EKSの料金
Amazon EKSでは、クラスターの数1つにつき、1時間あたり0.1ドルがかかります。
1 Clusters x 0.10 USD per hour x 730 hours per month = 73.00 USD
EKS 総コスト (毎月): 73.00 USD
クラスター数が1の場合、365日x24時間を12で割った平均730を掛けて、毎月73ドルのコストがかかることになります。
見積もりツールにて、料金の概算が可能です。
【関連記事】
▶AWSの見積もりは、AWS Pricing Calculatorで自動計算 ユースケースから流用も可能
AWSのKubernetesのまとめ
- AWSでKubernetesを利用するには、Amazon EKSを利用する
- Amazon EKSは、AWS上またはオンプレミスで利用可能。AWSマネジメントコンソールまたはコマンドラインから制御可能
- Amazon EKSは、クラスター1つにつき、1時間あたり0.1ドルのコストがかかる