

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS Snow에서 Amazon EKS Anywhere 사용
<a name="using-eksa"></a>

Amazon EKS Anywhere on AWS Snow는 Snowball Edge에서 Kubernetes 클러스터를 생성하고 운영하는 데 도움이 됩니다. Kubernetes는 컨테이너화된 애플리케이션의 배포, 조정 및 관리의 자동화를 위한 오픈 소스 소프트웨어입니다. 외부 네트워크 연결 여부에 관계없이 Snowball Edge 디바이스에서 Amazon EKS Anywhere를 사용할 수 있습니다. 외부 네트워크에 연결되지 않은 디바이스에서 Amazon EKS Anywhere를 사용하려면 Snowball Edge 디바이스에서 실행할 컨테이너 레지스트리를 제공하세요. Amazon EKS Anywhere에 대한 일반 정보는 [Amazon EKS Anywhere 설명서](https://anywhere.eks.amazonaws.com/docs/)를 참조하세요.

Amazon EKS Anywhere on AWS Snow를 사용하면 다음과 같은 기능을 사용할 수 있습니다.
+ Snowball Edge 컴퓨팅 최적화 디바이스에서 Amazon EKS Anywhere CLI(eksctl anywhere)를 사용하여 Kubernetes(K8s) 클러스터를 프로비저닝하세요. Amazon EKS Anywhere는 단일 Snowball Edge 디바이스 또는 세 대 이상의 디바이스에서 프로비저닝하여 고가용성을 확보할 수 있습니다.
+ Cilium 컨테이너 네트워크 인터페이스(CNI)를 지원합니다.
+ Ubuntu 20.04를 노드 운영 체제로 지원합니다.

이 다이어그램은 Snowball Edge 디바이스에 배포된 Amazon EKS Anywhere 클러스터를 보여줍니다.

![\[AWS Snowball Edge 디바이스에 배포된 Amazon EKS Anywhere on Snow 클러스터와 구성 요소 간의 관계를 보여주는 다이어그램입니다.\]](http://docs.aws.amazon.com/ko_kr/snowball/latest/developer-guide/images/eskaarch.jpg)


Amazon EKS Anywhere에서 지원하는 사용 가능한 최신 Kubernetes 버전으로 Kubernetes 클러스터를 생성하는 것이 좋습니다. 자세한 내용은 [Amazon ECS Anywhere 버전 관리](https://anywhere.eks.amazonaws.com/docs/concepts/support-versions/)를 참조하세요. 애플리케이션에 특정 버전의 Kubernetes가 필요한 경우 Amazon EKS에서 표준 또는 확장 지원으로 제공하는 모든 버전의 Kubernetes를 사용합니다. 배포 수명 주기를 계획할 때 Kubernetes 버전의 릴리스 및 지원 날짜를 고려합니다. 이렇게 하면 사용하려는 Kubernetes 버전에 대한 지원이 잠재적으로 손실되는 것을 방지할 수 있습니다. 자세한 내용은 [Amazon EKS Kubernetes 출시 일정](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html#kubernetes-release-calendar)을 참조하세요.

Amazon EKS Anywhere on AWS Snow에 대한 자세한 내용은 [Amazon EKS Anywhere 설명서를](https://anywhere.eks.amazonaws.com/docs/) 참조하세요.

**Topics**
+ [

# Amazon EKS Anywhere on Snow용 AWS Snowball Edge 디바이스 주문 전에 완료해야 할 작업
](eksa-gettingstarted.md)
+ [

# Amazon EKS Anywhere on Snow와 함께 사용할 AWS Snowball Edge 디바이스 주문
](order-sbe.md)
+ [

# Snowball Edge 디바이스에서 Amazon EKS Anywhere를 구성하고 실행
](eksa-configuration.md)
+ [

# 연결 해제된 작업을 위해 AWS Snow에서 Amazon EKS Anywhere 구성
](configure-disconnected.md)
+ [

# Snowball Edge 디바이스에서 클러스터 생성 및 유지 관리
](maintain-eks-a-clusters-snow.md)

# Amazon EKS Anywhere on Snow용 AWS Snowball Edge 디바이스 주문 전에 완료해야 할 작업
<a name="eksa-gettingstarted"></a>

현재 Amazon EKS Anywhere는 Snowball Edge 컴퓨팅 최적화 디바이스와 호환됩니다. Snowball Edge 디바이스를 주문하기 전에 몇 가지 준비해야 할 사항이 있습니다.
+ 디바이스에서 가상 시스템을 생성하는 데 사용할 운영 체제 이미지를 빌드하고 제공하세요.
+ 네트워크에는 K8s 컨트롤 플레인 엔드포인트에 사용할 수 있는 고정 IP 주소가 있어야 하며 주소 확인 프로토콜(ARP)을 허용해야 합니다.
+ Snowball Edge 디바이스에는 특정 포트가 열려 있어야 합니다. 포트에 대한 자세한 내용은 Amazon EKS Anywhere 설명서의 [포트 및 프로토콜](https://anywhere.eks.amazonaws.com/docs/reference/ports/)을 참조하세요.

**Topics**
+ [

## Snowball Edge용 Ubuntu EKS Distro AMI 생성
](#create-eksd-ami)
+ [

## Snowball Edge용 Harbor AMI 빌드
](#existing-private-registry)

## Snowball Edge용 Ubuntu EKS Distro AMI 생성
<a name="create-eksd-ami"></a>

Ubuntu EKS Distro AMI를 생성하려면 [Snow 노드 이미지 빌드](https://anywhere.eks.amazonaws.com/docs/reference/artifacts/#build-snow-node-images)를 참조하세요.

생성된 AMI의 이름은 `capa-ami-ubuntu-20.04-version-timestamp` 패턴을 따릅니다. 예를 들어 `capa-ami-ubuntu-20.04-v1.24-1672424524`입니다.

## Snowball Edge용 Harbor AMI 빌드
<a name="existing-private-registry"></a>

Harbor 프라이빗 레지스트리 AMI를 Snowball Edge 디바이스에 포함하도록 설정하면 외부 네트워크 연결 없이 디바이스에서 Amazon EKS Anywhere를 사용할 수 있습니다. Snowball Edge 디바이스가 외부 네트워크에 연결되어 있지 않은 동안에는 Amazon EKS Anywhere를 사용하지 않을 예정이거나 AMI에 디바이스에서 사용할 프라이빗 Kubernetes 레지스트리가 있는 경우에는 이 섹션을 건너뛰어도 됩니다.

Harbor 로컬 레지스트리 AMI를 생성하려면 [Harbor AMI 구축](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/container-registry-ami-builder#build-harbor-ami)을 참조하세요.

# Amazon EKS Anywhere on Snow와 함께 사용할 AWS Snowball Edge 디바이스 주문
<a name="order-sbe"></a>

Snowball Edge 컴퓨팅 최적화를 주문하려면이 가이드[Snowball Edge 디바이스 주문 작업 생성](create-job-common.md)의 섹션을 참조하고 주문 프로세스 중에 다음 항목을 염두에 두세요.
+ 1단계에서 **로컬 컴퓨팅 및 스토리지 전용** 작업 유형을 선택합니다.
+ 2단계에서 **Snowball Edge 컴퓨팅 최적화** 디바이스 유형을 선택합니다.
+ 3단계에서 **Amazon EKS Anywhere on AWS Snow**를 선택한 다음 필요한 Kubernetes 버전을 선택합니다.
**참고**  
최신 소프트웨어를 제공하기 위해 현재 사용 가능한 버전보다 최신 버전의 ESK Anywhere로 디바이스를 구성할 수 있습니다. 자세한 내용은 *Amazon EKS 사용 설명서*의 [버전 관리](https://anywhere.eks.amazonaws.com/docs/concepts/support-versions/)를 참조하세요.  
Amazon EKS Anywhere에서 지원하는 사용 가능한 최신 Kubernetes 버전으로 Kubernetes 클러스터를 생성하는 것이 좋습니다. 자세한 내용은 [Amazon ECS Anywhere 버전 관리](https://anywhere.eks.amazonaws.com/docs/concepts/support-versions/)를 참조하세요. 애플리케이션에 특정 버전의 Kubernetes가 필요한 경우 Amazon EKS에서 표준 또는 확장 지원으로 제공하는 모든 버전의 Kubernetes를 사용합니다. 배포 수명 주기를 계획할 때 Kubernetes 버전의 릴리스 및 지원 날짜를 고려합니다. 이렇게 하면 사용하려는 Kubernetes 버전에 대한 지원이 잠재적으로 손실되는 것을 방지할 수 있습니다. 자세한 내용은 [Amazon EKS Kubernetes 출시 일정](https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html#kubernetes-release-calendar)을 참조하세요.
+ EKS Distro AMI([Snowball Edge용 Ubuntu EKS Distro AMI 생성](eksa-gettingstarted.md#create-eksd-ami) 참조) 및 선택적으로 구축한 Harbor AMI([Snowball Edge용 Harbor AMI 빌드](eksa-gettingstarted.md#existing-private-registry) 참조)를 포함하여 디바이스에 포함할 AMI를 선택합니다.
+ 고가용성을 위해 여러 Snowball Edge 디바이스가 필요한 경우 **고가용성**에서 필요한 디바이스 수를 선택합니다.

Snowball Edge 디바이스를 받은 후, [Snowball Edge 디바이스에서 Amazon EKS Anywhere를 구성하고 실행](eksa-configuration.md)에 따라 Amazon EKS Anywhere를 구성하세요.

# Snowball Edge 디바이스에서 Amazon EKS Anywhere를 구성하고 실행
<a name="eksa-configuration"></a>

다음 절차에 따라 Snowball Edge 디바이스에서 Amazon EKS Anywhere를 구성하고 시작하세요. 그런 다음 연결이 끊긴 디바이스에서도 작동하도록 Amazon EKS Anywhere를 구성하려면 외부 네트워크에서 디바이스 연결을 끊기 전에 추가 절차를 완료하세요. 자세한 내용은 [연결 해제된 작업을 위해 AWS Snow에서 Amazon EKS Anywhere 구성](configure-disconnected.md) 단원을 참조하십시오.

**Topics**
+ [

## Snowball Edge의 Amazon EKS Anywhere에 대한 초기 설정
](#initial-setup)
+ [

## Snowball Edge 디바이스에서 Amazon EKS Anywhere를 자동으로 구성 및 실행
](#auto-eksa-configuration)
+ [

## Snowball Edge 디바이스에서 Amazon EKS Anywhere를 수동으로 구성 및 실행
](#manual-eksa-configuration)

## Snowball Edge의 Amazon EKS Anywhere에 대한 초기 설정
<a name="initial-setup"></a>

각 Snowball Edge 디바이스를 로컬 네트워크에 연결하고, Snowball Edge 클라이언트를 다운로드하고, 자격 증명을 받고, 디바이스를 잠금 해제하여 초기 설정을 수행합니다.

**초기 설정을 수행합니다.**

1. Snowball Edge 클라이언트를 다운로드 및 설치합니다. 자세한 내용은 [Snowball Edge 클라이언트 다운로드 및 설치](using-client-commands.md#download-the-client) 섹션을 참조하세요.

1. 디바이스를 로컬 네트워크에 연결 자세한 내용은 [로컬 네트워크에 Snowball Edge 연결](getting-started.md#getting-started-connect) 섹션을 참조하세요.

1. 자격 증명을 받아 디바이스 잠금을 해제하세요. 자세한 내용은 [Snowball Edge에 액세스하기 위한 자격 증명 가져오기](getting-started.md#get-credentials) 섹션을 참조하세요.

1. 디바이스의 잠금을 해제합니다. 자세한 내용은 [Snowball Edge 잠금 해제](unlockdevice.md) 섹션을 참조하세요. 또한 디바이스를 수동으로 잠금 해제하는 대신 스크립트 도구를 사용할 수도 있습니다. [디바이스 잠금 해제](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/setup-tools#Unlock-devices)를 참조하세요.

## Snowball Edge 디바이스에서 Amazon EKS Anywhere를 자동으로 구성 및 실행
<a name="auto-eksa-configuration"></a>

샘플 스크립트 도구를 사용하여 환경을 설정하고 Amazon EKS Anywhere 관리자 인스턴스를 실행하거나 수동으로 실행할 수 있습니다. 스크립트 도구를 사용하려면 [Amazon EKS Anywhere의 디바이스 잠금 해제 및 환경 설정](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/setup-tools#Unlock-devices-and-setup-envorinment-for-EKS-Anywhere)을 참조하세요. 환경을 설정하고 Amazon EKS Anywhere 관리자 인스턴스를 실행한 후, 네트워크 연결이 끊긴 상태에서도 Snowball Edge 디바이스에서 작동하도록 Amazon EKS Anywhere를 구성해야 하는 경우 [연결 해제된 작업을 위해 AWS Snow에서 Amazon EKS Anywhere 구성](configure-disconnected.md)을 참조하세요. 그렇지 않으면 [Snowball Edge 디바이스에서 클러스터 생성 및 유지 관리](maintain-eks-a-clusters-snow.md) 섹션을 참조하세요.

환경을 수동으로 설정하고 Amazon EKS Anywhere 관리자 인스턴스를 실행하려면 [Snowball Edge 디바이스에서 Amazon EKS Anywhere를 수동으로 구성 및 실행](#manual-eksa-configuration)을 참조하세요.

## Snowball Edge 디바이스에서 Amazon EKS Anywhere를 수동으로 구성 및 실행
<a name="manual-eksa-configuration"></a>

Snowball Edge 디바이스에서 Amazon EKS Anywhere를 구성하기 전에 Snowball Edge 클라이언트에 대한 프로필을 설정합니다. 자세한 내용은 [Snowball Edge 클라이언트 구성 및 사용](using-client-commands.md) 단원을 참조하십시오.

**Topics**
+ [

### Amazon EKS Anywhere IAM 로컬 사용자 생성
](#create-role)
+ [

### (선택 사항) Snowball Edge에서 Secure Shell 키 생성 및 가져오기
](#create-ssh-key)
+ [

### Snowball Edge에서 Amazon EKS Anywhere 관리자 인스턴스를 실행하고 자격 증명 및 인증서 파일을 해당 인스턴스로 전송
](#start-config-eksa-admin-instance)

### Amazon EKS Anywhere IAM 로컬 사용자 생성
<a name="create-role"></a>

최상의 보안 사례를 위해 Snowball Edge 디바이스에서 Amazon EKS Anywhere용 로컬 IAM 사용자를 생성하세요. 이를 위해 다음 절차를 사용할 수 있습니다.

**참고**  
사용하는 각 Snowball Edge 디바이스에 대해 이 작업을 수행하세요.

#### Snowball Edge에서 로컬 사용자 생성
<a name="create-eksa-iam-user"></a>

`create-user` 명령을 사용하여 Amazon EKS Anywhere IAM 사용자를 생성합니다.

```
aws iam create-user --user-name user-name --endpoint http://snowball-ip:6078 --profile profile-name
    {
        "User": {
            "Path": "/",
            "UserName": "eks-a-user",
            "UserId": "AIDACKCEVSQ6C2EXAMPLE",
            "Arn": "arn:aws:iam::123456789012:user/eks-a-user",
            "CreateDate": "2022-04-06T00:13:35.665000+00:00"
        }
    }
```

#### Snowball Edge에서 로컬 사용자에 대한 정책 생성
<a name="create-eksa-iam-user-policy"></a>

정책 문서를 생성하고, 이를 사용하여 IAM 정책을 생성하고, 해당 정책을 Amazon EKS Anywhere 로컬 사용자에게 연결합니다.

**정책 문서를 생성하여 Amazon EKS Anywhere 로컬 사용자에게 첨부하려면**

1. 정책 문서를 생성하여 컴퓨터에 저장합니다. 아래 정책을 문서에 복사하세요.

------
#### [ JSON ]

****  

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "snowball-device:DescribeDevice",
           "snowball-device:CreateDirectNetworkInterface",
           "snowball-device:DeleteDirectNetworkInterface",
           "snowball-device:DescribeDirectNetworkInterfaces",
           "snowball-device:DescribeDeviceSoftware"
         ],
         "Resource": ["*"]
       },
       {
         "Effect": "Allow",
         "Action": [
           "ec2:RunInstances",
           "ec2:DescribeInstances",
           "ec2:TerminateInstances",
           "ec2:ImportKeyPair",
           "ec2:DescribeKeyPairs",
           "ec2:DescribeInstanceTypes",
           "ec2:DescribeImages",
           "ec2:DeleteTags"
         ],
         "Resource": ["*"]
       }
     ]
   }
   ```

------

1. `create-policy` 명령을 사용하여 정책 문서를 기반으로 IAM 정책을 생성합니다. `--policy-document` 파라미터 값은 정책 파일의 절대 경로를 사용해야 합니다. 예: `file:///home/user/policy-name.json`

   ```
   aws iam create-policy --policy-name policy-name --policy-document file:///home/user/policy-name.json --endpoint http://snowball-ip:6078 --profile profile-name
   {
       "Policy": {
           "PolicyName": "policy-name",
           "PolicyId": "ANPACEMGEZDGNBVGY3TQOJQGEZAAAABP76TE5MKAAAABCCOTR2IJ43NBTJRZBU",
           "Arn": "arn:aws:iam::123456789012:policy/policy-name",
           "Path": "/",
           "DefaultVersionId": "v1",
           "AttachmentCount": 0,
           "IsAttachable": true,
           "CreateDate": "2022-04-06T04:46:56.907000+00:00",
           "UpdateDate": "2022-04-06T04:46:56.907000+00:00"
       }
   }
   ```

1. `attach-user-policy` 명령을 사용하여 Amazon EKS Anywhere 로컬 사용자에게 IAM 정책을 연결합니다.

   ```
   aws iam attach-user-policy --policy-arn policy-arn --user-name user-name --endpoint http://snowball-ip:6078 --profile profile-name     
   ```

#### Snowball Edge에서 액세스 키 및 자격 증명 파일 생성
<a name="create-eksa-iam-user-access-key"></a>

Amazon EKS Anywhere IAM 로컬 사용자를 위한 액세스 키를 생성합니다. 그런 다음 자격 증명 파일을 생성하고 로컬 사용자에 대해 생성된 `AccessKeyId` 및 `SecretAccessKey` 값을 이 파일에 포함하세요. 자격 증명 파일은 나중에 Amazon EKS Anywhere 관리자 인스턴스에서 사용됩니다.

1. `create-access-key` 명령을 사용하여 Amazon EKS Anywhere 로컬 사용자를 위한 액세스 키를 생성합니다.

   ```
   aws iam create-access-key --user-name user-name --endpoint http://snowball-ip:6078 --profile profile-name
       {
           "AccessKey": {
               "UserName": "eks-a-user",
               "AccessKeyId": "AKIAIOSFODNN7EXAMPLE",
               "Status": "Active",
               "SecretAccessKey": "RTT/wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
               "CreateDate": "2022-04-06T04:23:46.139000+00:00"
           }
       }
   ```

1. 자격 증명 파일을 생성합니다. 여기에 `AccessKeyId` 및 `SecretAccessKey` 값을 다음 형식으로 저장합니다.

   ```
   [snowball-ip] 
   aws_access_key_id = ABCDEFGHIJKLMNOPQR2T
   aws_secret_access_key = AfSD7sYz/TBZtzkReBl6PuuISzJ2WtNkeePw+nNzJ
   region = snow
   ```
**참고**  
여러 Snowball Edge 디바이스를 사용하는 경우 파일의 자격 증명 순서는 중요하지 않지만 모든 디바이스의 자격 증명이 하나의 파일에 있어야 합니다.

#### Snowball Edge에서 관리자 인스턴스에 대한 인증서 파일 생성
<a name="create-credentials-for-admin-instance"></a>

Amazon EKS Anywhere 관리자 인스턴스를 실행하려면 Snowball Edge 디바이스의 인증서가 있어야 합니다. 인증서가 들어 있는 인증서 파일을 생성하여 나중에 Amazon EKS Anywhere 관리자 인스턴스에서 사용할 수 있도록 Snowball Edge 디바이스에 액세스할 수 있습니다.

**인증서 파일을 생성하는 방법**

1. `list-certificates` 명령을 사용하여 사용하려는 각 Snowball Edge 디바이스의 인증서를 가져올 수 있습니다.

   ```
   PATH_TO_Snowball_Edge_CLIENT/bin/snowballEdge list-certificates --endpoint https://snowball-ip --manifest-file path-to-manifest-file --unlock-code unlock-code
   {
     "Certificates" : [ {
       "CertificateArn" : "arn:aws:snowball-device:::certificate/xxx",
       "SubjectAlternativeNames" : [ "ID:JID-xxx" ]
     } ]
   }
   ```

1. `CertificateArn`의 값을 `get-certificate` 명령의 `--certificate-arn` 파라미터 값으로 사용합니다.

   ```
   PATH_TO_Snowball_Edge_CLIENT/bin/snowballEdge get-certificate --certificate-arn ARN --endpoint https://snowball-ip --manifest-file path-to-manifest-file --unlock-code unlock-code            
   ```

1. 디바이스 인증서 파일을 생성하는 방법 `get-certificate`의 출력을 인증서 파일에 넣습니다. 다음은 출력을 저장하는 방법의 예시입니다.
**참고**  
여러 Snowball Edge 디바이스를 사용하는 경우 파일의 자격 증명 순서는 중요하지 않지만 모든 디바이스의 자격 증명이 하나의 파일에 있어야 합니다.

   ```
   -----BEGIN CERTIFICATE-----
   ZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGUgZWtzYSBzbm93IHRlc3QgY2VydGlm  
   aWNhdGVla3NhIHNub3cgdGVzdCBjZXJ0aWZpY2F0ZWVrc2Egc25vdyB0ZXN0IGNl  
   cnRpZmljYXRlZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGVla3NhIHNub3cgdGVz  
   dCBjZXJ0aWZpY2F0ZQMIIDXDCCAkSgAwIBAgIJAISM0nTVmbj+MA0GCSqGSIb3DQ  
   ...                                                               
   -----END CERTIFICATE-----
   ```

1. 모든 Snowball Edge 디바이스에서 Amazon EKS Anywhere용 IAM 로컬 사용자를 생성하려면 [Amazon EKS Anywhere IAM 로컬 사용자 생성](#create-role) 단계를 반복합니다.

### (선택 사항) Snowball Edge에서 Secure Shell 키 생성 및 가져오기
<a name="create-ssh-key"></a>

이 선택적 절차를 사용하여 모든 Amazon EKS Anywhere 노드 인스턴스에 액세스할 수 있는 보안 쉘(SSH) 키를 생성하고 퍼블릭 키를 모든 Snowball Edge 디바이스로 가져올 수 있습니다. 이 키 파일을 잘 보관하고 보호하세요.

이 절차를 건너뛰면 Amazon EKS Anywhere는 필요할 때 SSH 키를 자동으로 생성하고 가져옵니다. 이 키는`${PWD}/${CLUSTER_NAME}/eks-a-id_rsa`의 관리자 인스턴스에 저장됩니다.

**SSH 키를 생성하여 Amazon EKS Anywhere 인스턴스로 가져옵니다.**

1. `ssh-keygen` 명령을 사용하여 SSH 키를 생성합니다.

   ```
   ssh-keygen -t rsa -C "key-name" -f path-to-key-file
   ```

1. `import-key-pair` 명령을 사용하여 컴퓨터에서 Snowball Edge 디바이스로 키를 가져옵니다.
**참고**  
키를 모든 디바이스로 가져올 때는 `key-name` 파라미터 값이 같아야 합니다.

   ```
   aws ec2 import-key-pair --key-name key-name --public-key-material fileb:///path/to/key-file --endpoint http://snowball-ip:8008 --profile profile-name 
   {
       "KeyFingerprint": "5b:0c:fd:e1:a0:69:05:4c:aa:43:f3:3b:3e:04:7f:51",
       "KeyName": "default",
       "KeyPairId": "s.key-85edb5d820c92a6f8"
   }
   ```

### Snowball Edge에서 Amazon EKS Anywhere 관리자 인스턴스를 실행하고 자격 증명 및 인증서 파일을 해당 인스턴스로 전송
<a name="start-config-eksa-admin-instance"></a>

#### Snowball Edge에서 Amazon EKS Anywhere 관리자 인스턴스 실행
<a name="start-admin-instance"></a>

이 절차에 따라 Amazon EKS Anywhere 관리자 인스턴스를 수동으로 실행하고, 관리자 인스턴스의 가상 네트워크 인터페이스(VNI)를 구성하고, 인스턴스 상태를 확인하고, SSH 키를 생성하고, 이 키를 사용하여 관리자 인스턴스에 연결합니다. 샘플 스크립트 도구를 사용하여 Amazon EKS Anywhere 관리자 인스턴스를 생성하고 이 인스턴스로 자격 증명 및 인증서 파일을 전송하는 작업을 자동화할 수 있습니다. [Amazon EKS Anywhere 관리자 인스턴스 생성](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/setup-tools#Create-EKS-Anywhere-admin-instance)을 참조하세요. 스크립트 도구가 완료되면 [Snowball Edge 디바이스에서 클러스터 생성 및 유지 관리](maintain-eks-a-clusters-snow.md)를 참조하여 인스턴스에 ssh로 연결하고 클러스터를 생성할 수 있습니다. Amazon EKS Anywhere 인스턴스를 수동으로 설정하려면 다음 단계를 사용하세요.

**참고**  
클러스터를 프로비저닝하는 데 두 개 이상의 Snowball Edge 디바이스를 사용하는 경우, 모든 Snowball Edge 디바이스에서 Amazon EKS Anywhere 관리자 인스턴스를 시작할 수 있습니다.

**Amazon EKS Anywhere 관리자 인스턴스를 실행하려면**

1. `create-key-pair` 명령을 사용하여 Amazon EKS Anywhere 관리자 인스턴스용 SSH 키를 생성합니다. 이 명령은 키를 `$PWD/key-file-name`에 저장합니다.

   ```
   aws ec2 create-key-pair --key-name key-name --query 'KeyMaterial' --output text --endpoint http://snowball ip:8008 > key-file-name --profile profile-name
   ```

1. `describe-images` 명령을 사용하여 출력에서 `eks-anywhere-admin`로 시작하는 이미지 이름을 찾을 수 있습니다.

   ```
   aws ec2 describe-images --endpoint http://snowball-ip:8008 --profile profile-name
   ```

1. `run-instance` 명령을 사용하여 Amazon EKS Anywhere 관리 이미지로 eks-a 관리자 인스턴스를 시작합니다.

   ```
   aws ec2 run-instances --image-id eks-a-admin-image-id --key-name key-name --instance-type sbe-c.xlarge --endpoint http://snowball-ip:8008 --profile profile-name
   ```

1. `describe-instances` 명령을 사용하여 Amazon EKS Anywhere 인스턴스의 상태를 확인합니다. 명령에서 인스턴스 상태가 `running`으로 표시될 때까지 기다린 다음 계속하세요.

   ```
   aws ec2 describe-instances --instance-id instance-id --endpoint http://snowball-ip:8008 --profile profile-name
   ```

1. `describe-device` 명령 출력에서 네트워크에 연결된 물리적 네트워크 인터페이스의 `PhysicalNetworkInterfaceId` 값을 기록해 둡니다. 이를 사용하여 VNI를 생성합니다.

   ```
    
   PATH_TO_Snowball_Edge_CLIENT/bin/snowballEdge describe-device --endpoint https://snowball-ip --manifest-file path-to-manifest-file --unlock-code unlock-code
   ```

1. Amazon EKS Anywhere 관리자 인스턴스용 VNI를 생성합니다. `PhysicalNetworkInterfaceId`의 값을 `physical-network-interface-id` 파라미터의 값으로 사용합니다.

   ```
   PATH_TO_Snowball_Edge_CLIENT/bin/snowballEdge create-virtual-network-interface --ip-address-assignment dhcp --physical-network-interface-id PNI --endpoint https://snowball-ip --manifest-file path-to-manifest-file --unlock-code unlock-code
   ```

1. `IpAddress`의 값을 `associate-address` 명령의 `public-ip` 파라미터 값으로 사용하여 퍼블릭 주소를 Amazon EKS Anywhere 관리자 인스턴스에 연결합니다.

   ```
   aws ec2 associate-address --instance-id instance-id --public-ip VNI-IP --endpoint http://snowball-ip:8008 --profile profile-name 
   ```

1. SSH를 통해 Amazon EKS Anywhere 관리자 인스턴스에 연결합니다.

   ```
   ssh -i path-to-key ec2-user@VNI-IP      
   ```

#### 인증서 및 자격 증명 파일을 Snowball Edge의 관리자 인스턴스로 전송
<a name="transfer-cred-cert-files"></a>

Amazon EKS Anywhere 관리자 인스턴스가 실행된 후 Snowball Edge 디바이스의 자격 증명과 인증서를 관리자 인스턴스로 전송합니다. 자격 증명과 인증서 파일을 [Snowball Edge에서 액세스 키 및 자격 증명 파일 생성](#create-eksa-iam-user-access-key) 및 [Snowball Edge에서 관리자 인스턴스에 대한 인증서 파일 생성](#create-credentials-for-admin-instance)에 저장한 디렉터리에서 다음 명령을 실행합니다.

```
scp -i path-to-key path-to-credentials-file path-to-certificates-file ec2-user@eks-admin-instance-ip:~        
```

Amazon EKS Anywhere 관리자 인스턴스에서 파일의 내용을 확인합니다. 다음은 자격 증명 및 인증서 파일의 예입니다.

```
[192.168.1.1] 
aws_access_key_id = EMGEZDGNBVGY3TQOJQGEZB5ULEAAIWHWUJDXEXAMPLE 
aws_secret_access_key = AUHpqjO0GZQHEYXDbN0neLNlfR0gEXAMPLE 
region = snow 

[192.168.1.2] 
aws_access_key_id = EMGEZDGNBVGY3TQOJQGEZG5O7F3FJUCMYRMI4KPIEXAMPLE 
aws_secret_access_key = kY4Cl8+RJAwq/bu28Y8fUJepwqhDEXAMPLE 
region = snow
```

```
-----BEGIN CERTIFICATE-----                                      
ZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGUgZWtzYSBzbm93IHRlc3QgY2VydGlm  
aWNhdGVla3NhIHNub3cgdGVzdCBjZXJ0aWZpY2F0ZWVrc2Egc25vdyB0ZXN0IGNl  
cnRpZmljYXRlZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGVla3NhIHNub3cgdGVz  
dCBjZXJ0aWZpY2F0ZQMIIDXDCCAkSgAwIBAgIJAISM0nTVmbj+MA0GCSqGSIb3DQ  
...                                                               
-----END CERTIFICATE-----                                         

-----BEGIN CERTIFICATE-----                                       
KJ0FPl2PAYPEjxr81/PoCXfZeARBzN9WLUH5yz1ta+sYUJouzhzWuLJYA1xqcCPY  
mhVlkRsN4hVdlBNRnCCpRF766yjdJeibKVzXQxoXoZBjrOkuGwqRy3d3ndjK77h4  
OR5Fv9mjGf7CjcaSjk/4iwmZvRSaQacb0YG5GVeb4mfUAuVtuFoMeYfnAgMBAAGj  
azBpMAwGA1UdEwQFMAMBAf8wHQYDVR0OBBYEFL/bRcnBRuSM5+FcYFa8HfIBomdF  
...                                                              
-----END CERTIFICATE-----
```

# 연결 해제된 작업을 위해 AWS Snow에서 Amazon EKS Anywhere 구성
<a name="configure-disconnected"></a>

네트워크에 연결된 상태에서 Snowball Edge 디바이스에서 Amazon EKS Anywhere의 추가 구성을 완료하면 외부 네트워크 연결이 없는 환경에서 Amazon EKS Anywhere를 실행할 준비를 할 수 있습니다.

로컬 프라이빗 Kubernetes 레지스트리와의 연결이 끊긴 상태에서 사용하도록 Amazon EKS Anywhere를 구성하려면 EKS Anywhere 설명서의 [레지스트리 미러 구성](https://anywhere.eks.amazonaws.com/docs/reference/clusterspec/optional/registrymirror/)을 참조하세요.

Harbor 프라이빗 레지스트리 AMI를 생성한 경우 이 섹션의 절차를 따르세요.

**Topics**
+ [

## Snowball Edge 디바이스에서 Harbor 레지스트리를 구성합니다.
](#configure-harbor-snow)
+ [

## Snowball Edge의 Amazon EKS Anywhere 관리자 인스턴스에서 Harbor 레지스트리 사용
](#use-local-registry-eksa-instance)

## Snowball Edge 디바이스에서 Harbor 레지스트리를 구성합니다.
<a name="configure-harbor-snow"></a>

[Snowball Edge 디바이스에서 Harbor 구성](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/container-registry-ami-builder#configure-harbor-on-a-snowball-edge-device)을 참조하세요.

## Snowball Edge의 Amazon EKS Anywhere 관리자 인스턴스에서 Harbor 레지스트리 사용
<a name="use-local-registry-eksa-instance"></a>

[Snowball Edge 디바이스의 로컬 Harbor 레지스트리로 Amazon EKS Anywhere 컨테이너 이미지 가져오기](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/container-registry-ami-builder#import-eks-anywhere-container-images-to-the-local-harbor-registry-on-a-snowball-device)를 참조하세요.

# Snowball Edge 디바이스에서 클러스터 생성 및 유지 관리
<a name="maintain-eks-a-clusters-snow"></a>

## Snowball Edge에서 클러스터를 생성하는 모범 사례
<a name="eks-a-cluster-snow-bestpractices"></a>

Amazon EKS Anywhere 클러스터를 생성하려면 [Snow 클러스터 생성](https://anywhere.eks.amazonaws.com/docs/getting-started/production-environment/snow-getstarted/)을 참조하세요.

Snowball Edge 디바이스에서 Amazon EKS Anywhere 클러스터를 생성할 때는 다음 모범 사례를 염두에 두세요.
+ 정적 IP 주소 범위에서 클러스터를 생성하기 전에 Snowball Edge 디바이스에 동일한 IP 주소 범위를 사용하는 다른 클러스터가 없는지 확인합니다.
+ Snowball Edge 디바이스에서 DHCP 주소 지정을 사용하여 클러스터를 생성하려면 클러스터에 사용하는 모든 고정 IP 주소 범위가 DHCP 풀 서브넷에 있지 않은지 확인합니다.
+ 둘 이상의 클러스터를 생성할 때는 클러스터가 성공적으로 프로비저닝되고 실행될 때까지 기다린 후 다른 클러스터를 생성합니다.

## Snowball Edge에서 클러스터 업그레이드
<a name="updating-eks-a-clusters-snow"></a>

Amazon EKS Anywhere 관리자 AMI 또는 EKS Distro AMI를 업그레이드하려면 contact AWS Support. 지원 는 업그레이드된 AMI가 포함된 Snowball Edge 업데이트를 제공합니다. 그런 다음 Snowball Edge 업데이트를 다운로드하여 설치합니다. [Snowball Edge 디바이스에 업데이트 다운로드](download-updates.md) 및 [Snowball Edge 디바이스에 업데이트 설치](install-updates.md)를 참조하세요.

Amazon EKS Anywhere AMI를 업그레이드한 후에는 새 Amazon EKS Anywhere 관리자 인스턴스를 시작해야 합니다. [Snowball Edge에서 Amazon EKS Anywhere 관리자 인스턴스 실행](eksa-configuration.md#start-admin-instance) 섹션을 참조하세요. 그런 다음 이전 관리자 인스턴스의 키 파일, 클러스터 폴더, 자격 증명 및 인증서를 업그레이드된 인스턴스로 복사합니다. 이러한 항목은 클러스터의 이름이 지정된 폴더에 있습니다.

## Snowball Edge에서 클러스터 리소스 정리
<a name="clean-up-resources-eks-a-clusters-snow"></a>

Snowball Edge 디바이스에서 여러 클러스터를 생성한 후 올바르게 삭제하지 않거나 클러스터에 문제가 발생하여 클러스터가 재개 후 대체 노드를 생성하는 경우 리소스 누락이 발생합니다. 샘플 스크립트 도구를 수정하거나 사용하여 Amazon EKS Anywhere 관리자 인스턴스와 Snowball Edge 디바이스를 정리할 수 있습니다. [Amazon EKS Anywhere on AWS Snow 정리 도구를](https://github.com/aws-samples/aws-snow-tools-for-eks-anywhere/tree/main/cleanup-tools#eks-anywhere-on-snow-cleanup-tools) 참조하세요.