Snowball Edge 디바이스에서 Amazon EKS Anywhere를 구성하고 실행 - AWS Snowball Edge 개발자 안내서

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

Snowball Edge 디바이스에서 Amazon EKS Anywhere를 구성하고 실행

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

Snowball Edge의 Amazon EKS Anywhere 초기 설정

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

초기 설정을 수행합니다.
  1. Snowball Edge 클라이언트를 다운로드 및 설치합니다. 자세한 내용은 Snowball Edge 클라이언트 다운로드 및 설치 섹션을 참조하세요.

  2. 디바이스를 로컬 네트워크에 연결 자세한 내용은 로컬 네트워크에 Snowball Edge 연결 섹션을 참조하세요.

  3. 자격 증명을 받아 디바이스 잠금을 해제하세요. 자세한 내용은 Snowball Edge에 액세스하기 위한 자격 증명 가져오기 섹션을 참조하세요.

  4. 디바이스의 잠금을 해제합니다. 자세한 내용은 Snowball Edge 잠금 해제 섹션을 참조하세요. 또한 디바이스를 수동으로 잠금 해제하는 대신 스크립트 도구를 사용할 수도 있습니다. 디바이스 잠금 해제를 참조하세요.

Snowball Edge 디바이스에서 Amazon EKS Anywhere를 자동으로 구성 및 실행

샘플 스크립트 도구를 사용하여 환경을 설정하고 Amazon EKS Anywhere 관리자 인스턴스를 실행하거나 수동으로 실행할 수 있습니다. 스크립트 도구를 사용하려면 Amazon EKS Anywhere의 디바이스 잠금 해제 및 환경 설정을 참조하세요. 환경을 설정하고 Amazon EKS Anywhere 관리자 인스턴스를 실행한 후, 네트워크 연결이 끊긴 상태에서도 Snowball Edge 디바이스에서 작동하도록 Amazon EKS Anywhere를 구성해야 하는 경우 연결 해제된 작업을 위해 Amazon EKS Anywhere on AWS Snow 구성을 참조하세요. 그렇지 않으면 Snowball Edge 디바이스에서 클러스터 생성 및 유지 관리 섹션을 참조하세요.

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

Snowball Edge 디바이스에서 Amazon EKS Anywhere를 수동으로 구성 및 실행

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

Amazon EKS Anywhere IAM 로컬 사용자 생성

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

참고

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

Snowball Edge에서 로컬 사용자 생성

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에서 로컬 사용자에 대한 정책 생성

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

정책 문서를 생성하여 Amazon EKS Anywhere 로컬 사용자에게 첨부하려면
  1. 정책 문서를 생성하여 컴퓨터에 저장합니다. 아래 정책을 문서에 복사하세요.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "snowballdevice:DescribeDevice", "snowballdevice:CreateDirectNetworkInterface", "snowballdevice:DeleteDirectNetworkInterface", "snowballdevice:DescribeDirectNetworkInterfaces", "snowballdevice:DescribeDeviceSoftware" ], "Resource": ["*"] }, { "Effect": "Allow", "Action": [ "ec2:RunInstances", "ec2:DescribeInstances", "ec2:TerminateInstances", "ec2:ImportKeyPair", "ec2:DescribeKeyPairs", "ec2:DescribeInstanceTypes", "ec2:DescribeImages", "ec2:DeleteTags" ], "Resource": ["*"] } ] }
  2. 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" } }
  3. 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에서 액세스 키 및 자격 증명 파일 생성

Amazon EKS Anywhere IAM 로컬 사용자를 위한 액세스 키를 생성합니다. 그런 다음 자격 증명 파일을 생성하고 로컬 사용자에 대해 생성된 AccessKeyIdSecretAccessKey 값을 이 파일에 포함하세요. 자격 증명 파일은 나중에 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" } }
  2. 자격 증명 파일을 생성합니다. 여기에 AccessKeyIdSecretAccessKey 값을 다음 형식으로 저장합니다.

    [snowball-ip] aws_access_key_id = ABCDEFGHIJKLMNOPQR2T aws_secret_access_key = AfSD7sYz/TBZtzkReBl6PuuISzJ2WtNkeePw+nNzJ region = snow
    참고

    여러 Snowball Edge 디바이스를 사용하는 경우 파일의 자격 증명 순서는 중요하지 않지만 모든 디바이스의 자격 증명이 하나의 파일에 있어야 합니다.

Snowball Edge에서 관리자 인스턴스에 대한 인증서 파일 생성

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" ] } ] }
  2. 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
  3. 디바이스 인증서 파일을 생성하는 방법 get-certificate의 출력을 인증서 파일에 넣습니다. 다음은 출력을 저장하는 방법의 예시입니다.

    참고

    여러 Snowball Edge 디바이스를 사용하는 경우 파일의 자격 증명 순서는 중요하지 않지만 모든 디바이스의 자격 증명이 하나의 파일에 있어야 합니다.

    -----BEGIN CERTIFICATE----- ZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGUgZWtzYSBzbm93IHRlc3QgY2VydGlm aWNhdGVla3NhIHNub3cgdGVzdCBjZXJ0aWZpY2F0ZWVrc2Egc25vdyB0ZXN0IGNl cnRpZmljYXRlZWtzYSBzbm93IHRlc3QgY2VydGlmaWNhdGVla3NhIHNub3cgdGVz dCBjZXJ0aWZpY2F0ZQMIIDXDCCAkSgAwIBAgIJAISM0nTVmbj+MA0GCSqGSIb3DQ ... -----END CERTIFICATE-----
  4. 모든 Snowball Edge 디바이스에서 Amazon EKS Anywhere용 IAM 로컬 사용자를 생성하려면 Amazon EKS Anywhere IAM 로컬 사용자 생성 단계를 반복합니다.

(선택 사항) Snowball Edge에서 Secure Shell 키 생성 및 가져오기

이 선택적 절차를 사용하여 모든 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
  2. 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 관리자 인스턴스를 실행하고 자격 증명 및 인증서 파일을 해당 인스턴스로 전송

Snowball Edge에서 Amazon EKS Anywhere 관리자 인스턴스 실행

이 절차에 따라 Amazon EKS Anywhere 관리자 인스턴스를 수동으로 실행하고, 관리자 인스턴스의 가상 네트워크 인터페이스(VNI)를 구성하고, 인스턴스 상태를 확인하고, SSH 키를 생성하고, 이 키를 사용하여 관리자 인스턴스에 연결합니다. 샘플 스크립트 도구를 사용하여 Amazon EKS Anywhere 관리자 인스턴스를 생성하고 이 인스턴스로 자격 증명 및 인증서 파일을 전송하는 작업을 자동화할 수 있습니다. Amazon EKS Anywhere 관리자 인스턴스 생성을 참조하세요. 스크립트 도구가 완료되면 Snowball Edge 디바이스에서 클러스터 생성 및 유지 관리를 참조하여 인스턴스에 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
  2. describe-images 명령을 사용하여 출력에서 eks-anywhere-admin로 시작하는 이미지 이름을 찾을 수 있습니다.

    aws ec2 describe-images --endpoint http://snowball-ip:8008 --profile profile-name
  3. 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
  4. describe-instances 명령을 사용하여 Amazon EKS Anywhere 인스턴스의 상태를 확인합니다. 명령에서 인스턴스 상태가 running으로 표시될 때까지 기다린 다음 계속하세요.

    aws ec2 describe-instances --instance-id instance-id --endpoint http://snowball-ip:8008 --profile profile-name
  5. 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
  6. 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
  7. 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
  8. SSH를 통해 Amazon EKS Anywhere 관리자 인스턴스에 연결합니다.

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

인증서 및 자격 증명 파일을 Snowball Edge의 관리자 인스턴스로 전송

Amazon EKS Anywhere 관리자 인스턴스가 실행된 후 Snowball Edge 디바이스의 자격 증명과 인증서를 관리자 인스턴스로 전송합니다. 자격 증명과 인증서 파일을 Snowball Edge에서 액세스 키 및 자격 증명 파일 생성Snowball Edge에서 관리자 인스턴스에 대한 인증서 파일 생성에 저장한 디렉터리에서 다음 명령을 실행합니다.

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-----