

 **このページの改善にご協力ください** 

このユーザーガイドに貢献するには、すべてのページの右側のペインにある「**GitHub でこのページを編集する**」リンクを選択してください。

# Amazon EKS – `eksctl` の使用を開始する
<a name="getting-started-eksctl"></a>

**注記**  
このトピックでは、EKS Auto Mode を**使用せずに**開始する方法について説明します。  
EKS Auto Mode は、クラスターコンピューティング、ストレージ、ネットワーキングのルーチンタスクを自動化します。[アマゾン EKS 自動モードl の使用を開始する方法について説明します。](getting-started-automode.md)

この入門ガイドでは、`eksctl` (Amazon EKS 上に Kubernetes クラスターを作成し管理するためのシンプルなコマンドラインユーティリティ) を使用して、Amazon Elastic Kubernetes Service (Amazon EKS) の開始に必要なすべてのリソースをインストールする方法を解説していきます。このチュートリアルの終わりには、アプリケーションのデプロイが可能な、実行状態の Amazon EKS クラスターが完成します。

AWS マネジメントコンソール からクラスターを作成する場合には手動で作成する必要のあるリソースのいくつかが、このガイドの手順に従うことで自動的に作成されます。リソース間での連携方法について良く理解するために、大半のリソースを手動で作成する場合には、クラスターと計算機能の作成に AWS マネジメントコンソール を使用します。詳細については、「[Amazon EKS の使用を開始する – AWS マネジメントコンソール と AWS CLI](getting-started-console.md)」を参照してください。

## 前提条件
<a name="eksctl-prereqs"></a>

このチュートリアルを開始する前に、「[Amazon EKS を使用するようにセットアップする](setting-up.md)」の説明に従って、AWS CLI、kubectl、および eksctl ツールをインストールして設定する必要があります。

## ステップ 1: Amazon EKS クラスターとノードを作成する
<a name="create-cluster-gs-eksctl"></a>

**重要**  
可能な限りシンプルかつ迅速に使用を開始するため、このトピックでは、クラスターとノードをデフォルト設定で作成する手順について説明します。実稼働で使用するクラスターとノードを作成する際には、すべての設定内容に習熟した上で、ご自身の要件を満たす設定でクラスターとノードをデプロイし直すことをお勧めします。詳細については、[Amazon EKS クラスターを作成します。](create-cluster.md)および[ノードを使用してコンピューティングリソースを管理する](eks-compute.md)を参照してください。一部の設定は、クラスターとノードの作成時にのみ有効にできます。

クラスターの作成には、次のいずれかのノードタイプが使用できます。各タイプの詳細については、「[ノードを使用してコンピューティングリソースを管理する](eks-compute.md)」を参照してください。クラスターをデプロイした後に、他のノードタイプを追加できます。
+  **Fargate – Linux** – [AWS Fargate を使用してコンピューティング管理を簡素化する](fargate.md) で Linux アプリケーションを実行する場合は、このタイプのノードを選択します。Fargate は、Amazon EC2 インスタンスを管理せずに Kubernetes ポッドをデプロイできるサーバーレスコンピューティングエンジンです。
+  **マネージド型ノード – Linux** – Amazon EC2 インスタンスで Amazon Linux アプリケーションを実行する場合は、このタイプのノードを選択します。このガイドでは説明していませんが、[Windows セルフマネージド型](launch-windows-workers.md)および [Bottlerocket](launch-node-bottlerocket.md) ノードを、クラスターに追加することもできます。

次のコマンドを使用して、Amazon EKS クラスターを作成します。*my-cluster* を独自の値に置き換えることができます。この名前には英数字 (大文字と小文字が区別されます) とハイフンのみを使用できます。先頭の文字は英数字である必要があります。また、100 文字より長くすることはできません。名前は、クラスターを作成する AWS リージョンおよび AWS アカウント内で一意である必要があります。*region-code* は、Amazon EKS がサポートする任意の AWS リージョンに置き換えます。AWS リージョンの一覧についてはAWS の全般的なリファレンスガイドの「[アマゾン EKS エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/eks.html)」を参照してください。

**Example**  

```
eksctl create cluster --name my-cluster --region region-code --fargate
```

```
eksctl create cluster --name my-cluster --region region-code
```

クラスターの作成には数分かかります。作成中に、数行の出力が表示されます。出力の最後の行は次のサンプル行のようになります。

```
[...]
[✓]  EKS cluster "my-cluster" in "region-code" region is ready
```

 `eksctl` により、`~/.kube/config` で `kubectl` config ファイルが作成されるか、コンピュータ上の `~/.kube/config` にある既存の config ファイル内に新規クラスター設定が追加されました。

クラスターの作成が完了したら、AWS CloudFormation [コンソール](https://console.aws.amazon.com/cloudformation/)で、`eksctl-my-cluster-cluster` という名前の AWS CloudFormation スタックを表示して、作成されたすべてのリソースを確認します。

## ステップ 2: Kubernetes リソースを表示する
<a name="gs-eksctl-view-resources"></a>

1. クラスターノードを表示します。

   ```
   kubectl get nodes -o wide
   ```

   出力例は次のとおりです。  
**Example**  

------
#### [ Fargate - Linux ]

   ```
   NAME                                                STATUS   ROLES    AGE     VERSION              INTERNAL-IP   EXTERNAL-IP   OS-IMAGE         KERNEL-VERSION                  CONTAINER-RUNTIME
   fargate-ip-192-0-2-0.region-code.compute.internal   Ready    <none>   8m3s    v1.2.3-eks-1234567   192.0.2.0     <none>        Amazon Linux 2   1.23.456-789.012.amzn2.x86_64   containerd://1.2.3
   fargate-ip-192-0-2-1.region-code.compute.internal   Ready    <none>   7m30s   v1.2.3-eks-1234567   192-0-2-1     <none>        Amazon Linux 2   1.23.456-789.012.amzn2.x86_64   containerd://1.2.3
   ```

------
#### [ Managed nodes - Linux ]

   ```
   NAME                                        STATUS   ROLES    AGE    VERSION              INTERNAL-IP   EXTERNAL-IP   OS-IMAGE         KERNEL-VERSION                  CONTAINER-RUNTIME
   ip-192-0-2-0.region-code.compute.internal   Ready    <none>   6m7s   v1.2.3-eks-1234567   192.0.2.0     192.0.2.2     Amazon Linux 2   1.23.456-789.012.amzn2.x86_64   containerd://1.2.3
   ip-192-0-2-1.region-code.compute.internal   Ready    <none>   6m4s   v1.2.3-eks-1234567   192.0.2.1     192.0.2.3     Amazon Linux 2   1.23.456-789.012.amzn2.x86_64   containerd://1.2.3
   ```

------

   出力に表示される内容の詳細については、「[AWS マネジメントコンソール に Kubernetes リソースを表示する](view-kubernetes-resources.md)」を参照してください。

1. クラスターで実行されているワークロードを表示します。

   ```
   kubectl get pods -A -o wide
   ```

   出力例は次のとおりです。  
**Example**  

------
#### [ Fargate - Linux ]

   ```
   NAMESPACE     NAME                       READY   STATUS    RESTARTS   AGE   IP          NODE                                                NOMINATED NODE   READINESS GATES
   kube-system   coredns-1234567890-abcde   1/1     Running   0          18m   192.0.2.0   fargate-ip-192-0-2-0.region-code.compute.internal   <none>           <none>
   kube-system   coredns-1234567890-12345   1/1     Running   0          18m   192.0.2.1   fargate-ip-192-0-2-1.region-code.compute.internal   <none>           <none>
   ```

------
#### [ Managed nodes - Linux ]

   ```
   NAMESPACE     NAME                       READY   STATUS    RESTARTS   AGE     IP          NODE                                        NOMINATED NODE   READINESS GATES
   kube-system   aws-node-12345             1/1     Running   0          7m43s   192.0.2.1   ip-192-0-2-1.region-code.compute.internal   <none>           <none>
   kube-system   aws-node-67890             1/1     Running   0          7m46s   192.0.2.0   ip-192-0-2-0.region-code.compute.internal   <none>           <none>
   kube-system   coredns-1234567890-abcde   1/1     Running   0          14m     192.0.2.3   ip-192-0-2-3.region-code.compute.internal   <none>           <none>
   kube-system   coredns-1234567890-12345   1/1     Running   0          14m     192.0.2.4   ip-192-0-2-4.region-code.compute.internal   <none>           <none>
   kube-system   kube-proxy-12345           1/1     Running   0          7m46s   192.0.2.0   ip-192-0-2-0.region-code.compute.internal   <none>           <none>
   kube-system   kube-proxy-67890           1/1     Running   0          7m43s   192.0.2.1   ip-192-0-2-1.region-code.compute.internal   <none>           <none>
   ```

------

   出力に表示される内容の詳細については、「[AWS マネジメントコンソール に Kubernetes リソースを表示する](view-kubernetes-resources.md)」を参照してください。

## ステップ 3: クラスターとノードを削除する
<a name="gs-eksctl-clean-up"></a>

このチュートリアルのために作成したクラスターとノードの使用が終了したら、クリーンアップのために、次のコマンドを使用してそれらのクラスターとノードを削除する必要があります。クリーンアップせずに、他の目的でこのクラスターを使用する場合は、「[次のステップ](#gs-eksctl-next-steps)」を参照してください。

```
eksctl delete cluster --name my-cluster --region region-code
```

## 次のステップ
<a name="gs-eksctl-next-steps"></a>

以下のトピックはクラスターの機能を拡張するのに役立ちます。
+ [サンプルアプリケーション](sample-deployment.md)をクラスターにデプロイします。
+ クラスターを作成した [IAM プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)は、`kubectl` または AWS マネジメントコンソール を使用して Kubernetes API サーバーを呼び出すことができる唯一のプリンシパルです。他の IAM プリンシパルがクラスターにアクセスできるようにする場合はそれらを追加する必要があります。詳細については、[IAM ユーザーおよびロールに Kubernetes API へのアクセスを付与する](grant-k8s-access.md)および[必要なアクセス許可](view-kubernetes-resources.md#view-kubernetes-resources-permissions)を参照してください。
+ 本番用にクラスターをデプロイする前に、[クラスター](create-cluster.md)と[ノード](eks-compute.md)のすべての設定を理解しておくことをお勧めします。アマゾン EC2 ノードへの SSH アクセスの有効化など一部の設定はクラスターの作成時に行う必要があります。
+ クラスターのセキュリティを強化するには[サービスアカウントの IAM ロールを使用する アマゾン VPC コンテナネットワークインターフェイスプラグインの設定](cni-iam-role.md)を行ってください。