EKSとは?
コンテナオーケストレーターとは?やk8sの簡単な構成や動きについて記載。
JAWS-UG初心者支部#53 新年LTスペシャル会の登壇資料です。
EKSの簡単な試し方
1.Cloud9の準備
Cloud9環境の作成
AMTC無効化
環境作成が完了し、Cloud9のコンソール画面に接続後、歯車のアイコン→AWS Settingsの順に選択しAWS managed temporary credentialsを無効にします。

kubectlのインストール
Cloud9のコンソールで下記コマンドを入力します。
curl -o kubectl https://s3.us-west-2.amazonaws.com/amazon-eks/1.23.7/2022-06-29/bin/linux/amd64/kubectl
chmod +x ./kubectl
mkdir -p $HOME/bin && cp ./kubectl $HOME/bin/kubectl && export PATH=$PATH:$HOME/bin
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc
kubectl version --short --client
参考(AWS公式手順)
eksctlのインストール
Cloud9のコンソールで下記コマンドを入力します。
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/local/bin
eksctl version
参考(AWS公式手順)
IAMロール作成
一般的なユースケースでEC2を選択してIAMロールを作成します。
テスト用途なのでAdministratorAccessを追加して次に進みます。
IAMロール割当
EC2のコンソール画面に移動後、Cloud9のインスタンスをチェックして、アクション→セキュリティ→IAMロールを変更の順に選択します。

2.クラスタの作成
Cloud9のコンソールから下記コマンドを入力します。
eksctl create cluster \
--region ap-northeast-1 \
--name eks-clu \
--version 1.23 \
--nodegroup-name eks-ng \
--node-type t3.micro \
--nodes 2 \
--nodes-min 2
プロンプトが返ってきたら作成完了です。(20分位かかります。)
CloudFormationでスタックのステータスがCREATE_COMPLETEになっていることを確認します。
またEKSコンソールから作成したクラスタの確認、EC2コンソールからデータプレーン用のEC2が作成されていることを確認出来ます。
3.リソースの作成
マニフェストの作成
Cloud9のFile→New Fileという箇所から新しいファイルが作成できますので、下記の内容でnginx-deployment.ymlとnginx-service.ymlを作成します。

apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx-app
replicas: 2
template:
metadata:
labels:
app: nginx-app
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: LoadBalancer
selector:
app: nginx-app
ports:
- protocol: TCP
port: 80
targetPort: 80
マニフェストの適用
kubectl applyコマンドでマニフェストファイル適用後、kubectl get podでPodが作成されていることを確認します。
kubectl apply -f nginx-deployment.yml
kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-deployment-6c588ccdf7-bghpc 1/1 Running 0 18s
nginx-deployment-6c588ccdf7-nq244 1/1 Running 0 18s
kubectl applyコマンドでマニフェストファイル適用後、kubectl get serviceでLoadBalancerが作成されていることを確認します。
kubectl apply -f nginx-service.yml
kubectl get service
kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 15m
nginx-service LoadBalancer 10.100.34.217 xxxxxxxxx.ap-northeast-1.elb.amazonaws.com 80:30276/TCP 8s
上記LoadBalancerのDNS名xxxxxxxxx.ap-northeast-1.elb.amazonaws.comにアクセスして、nginxのTOP画面が表示されることを確認します。
4.クラスタの削除
忘れないようにクラスタの削除を実施します。Cloud9コンソールで下記コマンドを実行します。
eksctl delete cluster \
--region ap-northeast-1 \
--name eks-clu
プロンプトが返ってきたら念のため下記を確認しておきます。
作成したCloud9の環境とIAMロールも削除します。












