

 **이 페이지 개선에 도움 주기** 

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 **GitHub에서 이 페이지 편집** 링크를 선택합니다.

# Amazon EKS 시작하기
<a name="getting-started"></a>

시작 안내서를 검토하기 전에 Amazon EKS를 사용하도록 설정되었는지 확인합니다. 자세한 내용은 [Amazon EKS를 사용하도록 설정](setting-up.md) 단원을 참조하십시오.

Amazon EKS에서 노드로 새 Kubernetes 클러스터를 생성할 때 사용할 수 있는 시작 가이드는 다음 두 가지입니다.
+  [Amazon EKS 시작하기 - eksctl](getting-started-eksctl.md) - 이 시작 가이드는 Amazon EKS에서 Kubernetes 클러스터를 생성하고 관리하기 위한 간단한 명령줄 유틸리티인 `eksctl`을 사용하여 Amazon EKS를 시작할 때 필요한 모든 리소스를 설치하는 데 도움이 됩니다. 자습서의 마지막에서는 애플리케이션을 배포할 수 있는 Amazon EKS에 클러스터를 실행하게 됩니다. 이것이 Amazon EKS를 시작하는 가장 빠르고 쉬운 방법입니다.
+  [Amazon EKS - AWS Management Console 및 AWS CLI 시작하기](getting-started-console.md) - 이 시작 가이드는 AWS Management Console 및 AWS를 사용하여 Amazon EKS를 시작할 때 필요한 모든 리소스를 만드는 데 도움이 됩니다. 자습서의 마지막에서는 애플리케이션을 배포할 수 있는 Amazon EKS에 클러스터를 실행하게 됩니다. 이 가이드에서는 Amazon EKS 클러스터에 필요한 리소스를 수동으로 생성합니다. 이 절차를 통해 각 리소스가 만들어지는 방식과 리소스가 상호 작용하는 방식을 파악할 수 있습니다.

또한 다음과 같은 참고 자료를 제공합니다.
+ 실습 자습서 모음은 *AWS Community*의 [EKS Cluster Setup](https://community.aws/tags/eks-cluster-setup)을 참조하세요.
+ 코드 예제는 [AWS SDK를 사용하는 Amazon EKS의 코드 예제](https://docs.aws.amazon.com/code-library/latest/ug/eks_code_examples.html)를 참조하세요.

# Amazon EKS 시작하기-EKS Auto Mode
<a name="getting-started-automode"></a>

다른 EKS 시작하기 경험과 마찬가지로 EKS Auto Mode를 사용하여 첫 번째 클러스터를 생성하면 클러스터 자체의 관리가 AWS로 위임됩니다. 그러나 EKS Auto Mode는 워크로드 인프라(노드, 네트워크, 다양한 서비스)를 설정하는 데 필요한 많은 필수 서비스 관련 책임을 처리하여 EKS 자동화를 확장하므로 노드를 더 쉽게 관리하고 워크로드 수요에 맞춰 스케일 업할 수 있습니다.

다음 방법 중 하나를 선택하고 EKS Auto Mode를 사용하여 클러스터를 생성합니다.
+  [AWS CLI를 사용하여 EKS Auto Mode 클러스터 생성](automode-get-started-cli.md): `aws` 명령줄 인터페이스를 사용하여 클러스터를 생성합니다.
+  [AWS Management Console을 사용하여 EKS 자동 모드 클러스터 생성](automode-get-started-console.md): AWS Management Console을 사용하여 클러스터를 생성합니다.
+  [eksctl CLI를 사용하여 EKS Auto Mode 클러스터 생성](automode-get-started-eksctl.md): `eksctl` 명령줄 인터페이스를 사용하여 클러스터를 생성합니다.

첫 번째 EKS 클러스터를 생성하는 다양한 접근 방식을 비교하는 경우 EKS Auto Mode에서 구성 요소를 다음과 같이 설정하는 등의 추가 클러스터 관리 책임을 AWS가 담당하도록 설정한다는 점을 알아야 합니다.
+ 워크로드 수요가 증가 및 감소함에 따라 노드를 시작하고 확장합니다.
+ 클러스터 자체(컨트롤 플레인), 노드 운영 체제, 노드에서 실행되는 서비스를 정기적으로 업그레이드합니다.
+ 노드 스토리지의 크기 및 속도, 포드 네트워크 구성 등을 결정하는 기본 설정을 선택합니다.

EKS Auto Mode 클러스터에서 얻는 것에 대한 자세한 내용은 [EKS Auto Mode를 사용하여 클러스터 인프라 자동화](automode.md) 섹션을 참조하세요.

# Amazon EKS 시작하기 – `eksctl`
<a name="getting-started-eksctl"></a>

**참고**  
이 주제에서는 EKS Auto Mode **없이** 시작하는 방법을 설명합니다.  
EKS Auto Mode는 클러스터 컴퓨팅, 스토리지, 네트워킹의 일상적인 작업을 자동화합니다. [Amazon EKS Auto Mode를 시작하는 방법을 자세히 알아봅니다. ](getting-started-automode.md) 

이 가이드는 Amazon EKS에서 Kubernetes 클러스터를 생성 및 관리하기 위한 간단한 명령줄 유틸리티인 `eksctl`을 사용하여 Amazon Elastic Kubernetes Service(Amazon EKS)를 시작할 때 필요한 모든 리소스를 설치하는 데 도움이 됩니다. 이 자습서의 마지막에서는 애플리케이션을 배포할 수 있는 Amazon EKS에 클러스터를 실행하게 됩니다.

이 가이드의 절차에서는 AWS Management Console을 사용하여 클러스터를 생성할 경우 수동으로 생성해야 하는 여러 리소스를 자동으로 생성합니다. 대부분의 리소스를 수동으로 만들고 리소스가 상호 작용하는 방식을 더 잘 이해하려면 AWS Management Console을 사용하여 클러스터 및 컴퓨팅을 생성합니다. 자세한 내용은 [Amazon EKS 시작하기 - AWS Management Console 및 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 General Reference 가이드의 [Amazon EKS endpoints and quotas](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` 구성 파일을 생성했거나 컴퓨터의 `~/.kube/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 Management Console에서 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 Management Console에서 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 Management Console을 사용하여 Kubernetes API 서버를 직접적으로 호출할 수 있는 유일한 위탁자입니다. 다른 IAM 보안 주체가 클러스터에 액세스할 수 있게 하려면 해당 보안 주체를 추가해야 합니다. 자세한 내용은 [IAM 사용자 및 역할에 Kubernetes API에 대한 액세스 권한 부여](grant-k8s-access.md) 및 [필수 권한](view-kubernetes-resources.md#view-kubernetes-resources-permissions) 섹션을 참조하세요.
+ 프로덕션 용도로 클러스터를 배포하기 전에 [클러스터](create-cluster.md)와 [노드](eks-compute.md)에 대한 모든 설정을 숙지하는 것이 좋습니다. Amazon EC2 노드에 대한 SSH 액세스 사용 설정과 같은 일부 설정은 클러스터를 생성할 때 지정해야 합니다.
+ 클러스터의 보안을 강화하려면 [서비스 계정에 IAM 역할을 사용하도록 Amazon VPC 컨테이너 네트워킹 인터페이스 플러그 인을 구성합니다](cni-iam-role.md).

# Amazon EKS 시작하기 - AWS Management Console 및 AWS CLI
<a name="getting-started-console"></a>

**참고**  
이 주제에서는 EKS Auto Mode **없이** 시작하는 방법을 설명합니다. 관리형 노드 그룹을 사용하여 노드를 배포합니다.  
EKS Auto Mode는 클러스터 컴퓨팅, 스토리지, 네트워킹의 일상적인 작업을 자동화합니다. [Amazon EKS Auto Mode를 시작하는 방법을 자세히 알아봅니다. ](getting-started-automode.md) EKS 자율 모드는 노드를 배포하는 기본적인 방법입니다.

이 가이드는 AWS Management Console 및 AWS CLI를 사용하여 Amazon Elastic Kubernetes Service(Amazon EKS)를 시작할 때 필요한 모든 리소스를 생성하는 데 도움이 됩니다. 이 가이드에서는 수동으로 각 리소스를 만듭니다. 이 튜토리얼의 마지막에서는 애플리케이션을 배포할 수 있는 Amazon EKS에 클러스터를 실행하게 됩니다.

이 안내서의 절차를 통해 각 리소스가 만들어지는 방식과 리소스가 상호 작용하는 방식을 완벽하게 파악할 수 있습니다. 대부분의 리소스를 자동으로 생성하려는 경우 `eksctl` CLI를 사용하여 클러스터 및 노드를 생성합니다. 자세한 내용은 [Amazon EKS 시작하기 – `eksctl`](getting-started-eksctl.md) 섹션을 참조하세요.

## 사전 조건
<a name="eks-prereqs"></a>

이 튜토리얼에서는 Amazon EKS 클러스터를 생성하고 관리할 때 필요한 다음 도구 및 리소스를 설치하고 구성해야 합니다.
+  ** AWS CLI **- Amazon EKS를 비롯한 AWS 서비스를 사용한 작업을 위한 명령줄 도구입니다. 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서에서 [설치하기](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html)를 참조하세요. AWS CLI 설치 후, 구성 작업도 수행하는 것이 좋습니다. 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서에서 [aws config를 사용한 빠른 구성](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config)을 참조하세요. 이 페이지에 나와 있는 **update-kubeconfig** 옵션을 사용하려면 AWS CLI v2가 필요합니다.
+  ** `kubectl` ** - Kubernetes 클러스터 작업을 위한 명령줄 도구입니다. 자세한 내용은 [`kubectl` 및 `eksctl` 설정](install-kubectl.md) 섹션을 참조하세요.
+  **필요한 IAM 권한** - 사용하는 IAM 보안 주체에 Amazon EKS IAM 역할, 서비스 연결 역할, AWS CloudFormation, VPC 및 관련 리소스를 사용할 수 있는 권한이 있어야 합니다. 자세한 내용은 IAM 사용 설명서의 [서비스 연결 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html) [사용](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonelastickubernetesservice.html)을 참조하세요. 이 가이드의 모든 단계를 동일한 사용자로 완료해야 합니다. 현재 사용자를 확인하려면 다음 명령을 실행합니다.

  ```
  aws sts get-caller-identity
  ```

Bash 셸에서 이 주제의 단계를 완료하는 것이 좋습니다. Bash 셸을 사용하지 않는 경우 줄 연속 문자 및 변수 설정 및 사용 방식과 같은 일부 스크립트 명령을 통해 셸이 조정되어야 합니다. 또한 쉘의 인용 및 이스케이프 규칙이 다를 수 있습니다. 자세한 내용은 AWS 명령줄 인터페이스 사용 설명서의 [AWS CLI에서 문자열에 따옴표 사용하기](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-parameters-quoting-strings.html)를 참조하세요.

## 1단계: Amazon EKS 클러스터 생성
<a name="eks-create-cluster"></a>

**중요**  
이 주제에는 가능한 한 간단하고 빠르게 시작하기 위해 기본 설정으로 클러스터를 생성하는 단계가 포함되어 있습니다. 프로덕션 용도로 클러스터를 생성하기 전에 모든 설정을 숙지하고 요구 사항을 충족하는 설정으로 클러스터를 배포하는 것이 좋습니다. 자세한 내용은 [Amazon EKS 클러스터 생성](create-cluster.md) 섹션을 참조하세요. 일부 설정은 클러스터를 생성할 때만 사용 설정할 수 있습니다.

1. Amazon EKS 요구 사항을 충족하는 퍼블릭 및 프라이빗 서브넷이 있는 Amazon VPC PC를 생성합니다. *region-code*를 Amazon EKS에서 지원하는 AWS 리전으로 바꿉니다. AWS 리전 목록은 AWS General Reference 가이드의 [Amazon EKS endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/eks.html)를 참조하세요. 선택하는 이름으로 *my-eks-vpc-stack*을 바꿀 수 있습니다.

   ```
   aws cloudformation create-stack \
     --region region-code \
     --stack-name my-eks-vpc-stack \
     --template-url https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
   ```
**작은 정보**  
이전 명령이 생성하는 모든 리소스 목록을 보려면 AWS CloudFormation 콘솔(https://console.aws.amazon.com/cloudformation/)을 엽니다. *my-eks-vpc-stack* 스택을 선택한 다음 **리소스(Resources)** 탭을 선택합니다.

1. 클러스터 IAM 역할을 생성하고 필요한 Amazon EKS IAM 관리형 정책을 연결합니다. Amazon EKS에서 관리하는 Kubernetes 클러스터는 사용자 대신 다른 AWS 서비스를 직접 호출하여 서비스에 사용하는 리소스를 관리합니다.

   1. 다음 콘텐츠를 *eks-cluster-role-trust-policy.json*이라는 파일에 복사합니다.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "eks.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. 역할을 생성합니다.

      ```
      aws iam create-role \
        --role-name myAmazonEKSClusterRole \
        --assume-role-policy-document file://"eks-cluster-role-trust-policy.json"
      ```

   1. 필요한 Amazon EKS 관리형 IAM 정책을 역할에 연결합니다.

      ```
      aws iam attach-role-policy \
        --policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \
        --role-name myAmazonEKSClusterRole
      ```

1. [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters)에서 Amazon EKS 콘솔을 엽니다.

   콘솔의 오른쪽 상단에 표시된 AWS 리전이 클러스터를 생성하려는 AWS 리전인지 확인합니다. 그렇지 않은 경우 AWS 리전 이름 옆에 있는 드롭다운을 선택하고 사용할 AWS 리전을 선택합니다.

1. **클러스터 생성**을 선택합니다. 이 옵션이 표시되지 않으면 먼저 왼쪽 검색 창에서 **클러스터**를 선택합니다.

1. **클러스터 구성** 페이지에서 다음을 수행합니다.

   1. **사용자 지정 구성**을 선택하고 **EKS 자율 모드 사용**을 비활성화하세요. (EKS 자율 모드 클러스터를 선호하는 경우 대신 [AWS Management Console을 사용하여 EKS 자동 모드 클러스터 생성](automode-get-started-console.md) 섹션을 참조하세요.)

   1. 클러스터 **이름**을 입력하세요(예: *my-cluster*). 이름에는 영숫자(대소문자 구분)와 하이픈만 사용할 수 있습니다. 영숫자로 시작해야 하며 100자 이하여야 합니다. 이름은 클러스터를 생성하는 AWS 리전과 AWS 계정 내에서 고유해야 합니다.

   1. **클러스터 서비스 역할**에서 *myAmazonEKSClusterRole*을 선택합니다.

   1. 나머지 설정을 기본값으로 두고 **다음**을 선택합니다.

1. **네트워킹 지정** 페이지에서 다음을 수행합니다.

   1. **VPC** 드롭다운 목록에서 이전 단계에서 생성한 VPC의 ID를 선택합니다. VPC는 *\$1 \$1 my-eks-vpc-stack-VPC*와 같이 표시됩니다.

   1. **서브넷** 드롭다운 목록에서 이전 단계에서 생성된 서브넷을 선택합니다. 서브넷은 *\$1 \$1 my-eks-vpc-stack-\$1*와 같이 표시됩니다.

   1. **추가 보안 그룹** 드롭다운 목록에서 이전 단계에서 생성한 보안 그룹을 선택합니다. 보안 그룹은 *\$1 \$1 my-eks-vpc-stack-ControlPlaneSecurityGroup-\$1*와 같이 표시됩니다.

   1. 나머지 설정을 기본값으로 두고 **다음**을 선택합니다.

1. **관찰성 구성** 페이지에서 **다음**을 선택합니다.

1. **추가 기능 선택** 페이지에서 **다음**을 선택합니다.

   추가 기능에 대한 자세한 내용은 [Amazon EKS 추가 기능](eks-add-ons.md) 섹션을 참조하세요.

1. **선택한 추가 기능 설정 구성** 페이지에서 **다음**을 선택합니다.

1. **검토 및 생성** 페이지에서 **생성**을 선택합니다.

   클러스터 이름 오른쪽에 있는 클러스터 상태는 클러스터 프로비저닝 프로세스가 완료될 때까지 몇 분 동안 **생성 중Creating**으로 표시됩니다. 상태가 **활성**이 되면 다음 단계를 진행합니다.
**참고**  
요청의 가용 영역 중 하나에 Amazon EKS 클러스터를 생성하는 데 충분한 용량이 없다는 오류가 표시될 수 있습니다. 이 경우 오류 출력에는 새 클러스터를 지원할 수 있는 가용 영역이 포함됩니다. 사용자 계정의 지원 가용 영역에 있는 2개 이상의 서브넷을 사용하여 클러스터를 다시 생성합니다. 자세한 내용은 [용량 부족](troubleshooting.md#ice) 섹션을 참조하세요.

## 2단계: 클러스터와 통신하도록 컴퓨터 구성
<a name="eks-configure-kubectl"></a>

이 부분에서는 클러스터에 대해 `kubeconfig` 파일을 생성합니다. 이 파일의 설정을 사용하면 `kubectl` CLI를 사용하여 클러스터와 통신할 수 있습니다.

진행하기 전에 1단계에서 클러스터 생성이 성공적으로 완료되었는지 확인합니다.

1. 클러스터에 대해 `kubeconfig` 파일을 생성 또는 업데이트합니다. *region-code*를 클러스터를 생성한 AWS 리전으로 바꿉니다. *my-cluster*를 해당 클러스터의 이름으로 바꿉니다.

   ```
   aws eks update-kubeconfig --region region-code --name my-cluster
   ```

   기본적으로 `config` 파일이 `~/.kube`에 생성되거나 새 클러스터의 구성이 `~/.kube`의 기존 `config` 파일에 추가됩니다.

1. 구성을 테스트합니다.

   ```
   kubectl get svc
   ```
**참고**  
권한 부여 또는 리소스 유형 오류가 표시되는 경우 문제 해결 주제의 [권한이 없거나 액세스가 거부됨(`kubectl`)](troubleshooting.md#unauthorized) 부분을 참조하세요.

   예제 출력은 다음과 같습니다.

   ```
   NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
   svc/kubernetes   ClusterIP   10.100.0.1   <none>        443/TCP   1m
   ```

## 3단계: 노드 생성
<a name="eks-launch-workers"></a>

**중요**  
가능한 한 간단하고 빠르게 시작하기 위해 이 주제에는 대부분 기본 설정을 사용하여 노드를 생성하는 단계가 포함되어 있습니다. 프로덕션 용도로 노드를 생성하기 전에 모든 설정을 숙지하고 요구 사항을 충족하는 설정으로 노드를 배포하는 것이 좋습니다. 자세한 내용은 [노드를 사용하여 컴퓨팅 리소스 관리](eks-compute.md) 섹션을 참조하세요. 일부 설정은 노드를 생성할 때만 사용 설정할 수 있습니다.

이 절차에서는 관리형 노드 그룹을 사용하여 이전 단계에서 생성한 서브넷 및 노드 IAM 역할을 지정하여 노드를 생성하도록 클러스터를 구성합니다. 이를 통해 Amazon EC2 인스턴스에서 Amazon Linux 애플리케이션을 실행할 수 있습니다.

EKS에서 노드를 구성하는 다양한 방법에 대한 자세한 내용은 [노드를 사용하여 컴퓨팅 리소스 관리](eks-compute.md) 섹션을 참조하세요. 클러스터를 배포한 후에 다른 노드 유형을 추가할 수 있습니다. 이 가이드에서는 다루지 않지만 [Windows 자체 관리형](launch-windows-workers.md) 및 [Bottlerocket](launch-node-bottlerocket.md) 노드를 클러스터에 추가할 수도 있습니다.

 **Amazon EC2 Linux 관리형 노드 그룹 생성** 

1. 노드 IAM 역할을 생성하고 필요한 Amazon EKS IAM 관리형 정책을 연결합니다. Amazon EKS 노드 `kubelet` 대몬은 사용자를 대신하여 AWS API를 직접 호출합니다. 노드는 IAM 인스턴스 프로필 및 연결 정책을 통해 이 API 직접 호출에 대한 권한을 수신합니다.

   1. 다음 콘텐츠를 `node-role-trust-policy.json`라는 파일에 복사합니다.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "ec2.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. 노드 IAM 역할을 생성합니다.

      ```
      aws iam create-role \
        --role-name myAmazonEKSNodeRole \
        --assume-role-policy-document file://"node-role-trust-policy.json"
      ```

   1. 필요한 관리형 IAM 정책을 역할에 연결합니다.

      ```
      aws iam attach-role-policy \
        --policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \
        --role-name myAmazonEKSNodeRole
      aws iam attach-role-policy \
        --policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly \
        --role-name myAmazonEKSNodeRole
      aws iam attach-role-policy \
        --policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \
        --role-name myAmazonEKSNodeRole
      ```

   1. [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters)에서 Amazon EKS 콘솔을 엽니다.

   1. [1단계: Amazon EKS 클러스터 만들기](#eks-create-cluster)에서 생성한 클러스터의 이름(예: *my-cluster*)을 선택합니다.

   1. ** *my-cluster* ** 페이지에서 다음을 수행합니다.

   1. **컴퓨팅** 탭을 선택합니다.

   1. **노드 그룹 추가**를 선택합니다.

1. **노드 그룹 구성** 페이지에서 다음을 수행합니다.

   1. **이름**에 관리형 노드 그룹(예: *my-nodegroup*)의 고유한 이름을 입력합니다. 노드 그룹 이름은 63자를 초과할 수 없습니다. 문자나 숫자로 시작하되, 나머지 문자의 경우 하이픈과 밑줄을 포함할 수 있습니다.

   1. **노드 IAM 역할 이름**에서 이전 단계에서 생성한 *myAmazonEKSNodeRole* 역할을 선택합니다. 각 노드 그룹은 고유한 IAM 역할을 사용하는 것이 좋습니다.

   1. **다음**을 선택합니다.

1. **컴퓨팅 및 크기 조정 구성 설정** 페이지에서 기본값으로 두고 **다음**을 선택합니다.

1. **네트워킹 지정** 페이지에서 기본값을 수락하고 **다음**을 선택합니다.

1. **검토 및 생성** 페이지에서 관리형 노드 그룹 구성을 검토하고 **생성**을 선택합니다.

1. 몇 분 후 **노드 그룹 구성** 섹션의 **상태**가 **생성 중**에서 **활성**으로 바뀝니다. 상태가 **활성**이 되면 다음 단계를 진행합니다.

## 4단계: 리소스 보기
<a name="gs-view-resources"></a>

노드 및 Kubernetes 워크로드를 볼 수 있습니다.

1. 좌측 탐색 창에서 **클러스터**를 선택합니다. **클러스터** 목록에서 생성한 클러스터의 이름을 선택합니다(예: *my-cluster*).

1. ** *my-cluster* ** 페이지에서 다음을 선택합니다.

   1.  **컴퓨팅** 탭 - 클러스터에 대해 배포된 **노드** 목록이 표시됩니다. 노드 이름을 선택하면 노드에 대한 자세한 정보를 볼 수 있습니다.

   1.  **리소스** 탭 - Amazon EKS 클러스터에 기본적으로 배포되는 Kubernetes 리소스가 모두 표시됩니다. 자세한 내용을 알아보려면 콘솔에서 모든 리소스 유형을 선택하세요.

## 5단계: 리소스 삭제
<a name="gs-console-clean-up"></a>

이 튜토리얼용으로 생성한 클러스터와 노드의 사용을 끝낸 후에는 생성한 리소스를 삭제해야 합니다. 리소스를 삭제하기 전에 이 클러스터로 추가 작업을 수행하려면 [다음 단계](#gs-console-next-steps) 부분을 참조하세요.

1. 생성한 노드 그룹 프로파일을 삭제하세요.

   1. [https://console.aws.amazon.com/eks/home\$1/clusters](https://console.aws.amazon.com/eks/home#/clusters)에서 Amazon EKS 콘솔을 엽니다.

   1. 좌측 탐색 창에서 **클러스터**를 선택합니다. 클러스터 목록에서 *my-cluster*를 선택합니다.

   1. **컴퓨팅** 탭을 선택합니다.

   1. 노드 그룹을 생성한 경우 *my-nodegroup* 노드 그룹을 선택한 다음 **삭제**를 선택합니다. *my-nodegroup*을 입력하고 **삭제**를 선택합니다.

   1. 노드 그룹 프로파일이 삭제될 때까지 계속 진행하지 마세요.

1. 클러스터를 삭제합니다.

   1. 좌측 탐색 창에서 **클러스터**를 선택합니다. 클러스터 목록에서 *my-cluster*를 선택합니다.

   1. **클러스터 삭제**를 선택합니다.

   1. *my-cluster*를 입력하고 **삭제**를 선택합니다. 클러스터가 삭제될 때까지 계속하지 마세요.

1. 생성한 VPC AWS CloudFormation 스택을 삭제합니다.

   1. https://console.aws.amazon.com/cloudformation/에서 CloudFormation 콘솔을 엽니다.

   1. *my-eks-vpc-stack* 스택을 선택하고 **삭제**를 선택합니다.

   1. ***my-eks-vpc-stack* 삭제** 확인 대화 상자에서 **스택 삭제**를 선택합니다.

1. 생성한 IAM 역할을 삭제합니다.

   1. IAM 콘솔(https://console.aws.amazon.com/iam/)을 엽니다.

   1. 왼쪽 탐색 창에서 **역할**을 선택합니다.

   1. 목록에서 생성한 각 역할(***myAmazonEKSClusterRole* ** 및 *myAmazonEKSNodeRole*)을 선택하세요. **삭제**를 선택하고 요청한 확인 텍스트를 입력한 다음 **삭제**를 선택합니다.

## 다음 단계
<a name="gs-console-next-steps"></a>

다음은 클러스터의 기능을 확장하는 데 도움이 되는 설명서 주제입니다.
+ 클러스터를 생성한 [IAM 위탁자](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal)는 `kubectl` 또는 AWS Management Console을 사용하여 Kubernetes API 서버를 직접적으로 직접 호출할 수 있는 유일한 위탁자입니다. 다른 IAM 보안 주체가 클러스터에 액세스할 수 있게 하려면 해당 보안 주체를 추가해야 합니다. 자세한 내용은 [IAM 사용자 및 역할에 Kubernetes API에 대한 액세스 권한 부여](grant-k8s-access.md) 및 [필수 권한](view-kubernetes-resources.md#view-kubernetes-resources-permissions) 섹션을 참조하세요.
+ 클러스터에 [샘플 애플리케이션](sample-deployment.md)을 배포합니다.
+ 프로덕션 용도로 클러스터를 배포하기 전에 [클러스터](create-cluster.md)와 [노드](eks-compute.md)에 대한 모든 설정을 숙지하는 것이 좋습니다. Amazon EC2 노드에 대한 SSH 액세스 사용 설정과 같은 일부 설정은 클러스터를 생성할 때 지정해야 합니다.
+ 클러스터의 보안을 강화하려면 [서비스 계정에 IAM 역할을 사용하도록 Amazon VPC 컨테이너 네트워킹 인터페이스 플러그 인을 구성합니다](cni-iam-role.md).