EC2 Fleet 사전 요건
EC2 Fleet 사전 요건
EC2 Fleet을 만들려면 다음 사전 요건이 갖춰져 있어야 해요.
- 시작 템플릿(Launch template)
- EC2 Fleet용 서비스 연결 역할(Service-linked role)
- 암호화된 AMI 및 EBS 스냅샷과 함께 사용할 고객 관리형 키에 대한 접근 부여
- EC2 Fleet 사용자 권한
출처: 문서
본문
시작 템플릿
시작 템플릿은 인스턴스 유형과 가용 영역 같은, 시작할 인스턴스에 대한 구성 정보를 지정해요. 시작 템플릿에 대한 자세한 내용은 "Amazon EC2 시작 템플릿에 인스턴스 시작 파라미터 저장"을 참고하세요.
EC2 Fleet용 서비스 연결 역할
AWSServiceRoleForEC2Fleet 역할은 사용자를 대신해 인스턴스를 요청·시작·종료·태그할 권한을 EC2 Fleet에 부여해요. Amazon EC2는 이 서비스 연결 역할로 다음 작업을 완료합니다.
ec2:RunInstances– 인스턴스 시작ec2:RequestSpotInstances– Spot Instances 요청ec2:TerminateInstances– 인스턴스 종료ec2:DescribeImages– 인스턴스용 Amazon Machine Images(AMI) 설명ec2:DescribeInstanceStatus– 인스턴스 상태 설명ec2:DescribeSubnets– 인스턴스용 서브넷 설명ec2:CreateTags– EC2 Fleet, 인스턴스, 볼륨에 태그 추가
AWS CLI나 API로 EC2 Fleet을 만들기 전에 이 역할이 존재하는지 확인하세요.
참고 — instant EC2 Fleet은 이 역할이 필요하지 않아요.
IAM 콘솔로 AWSServiceRoleForEC2Fleet 역할 생성
- IAM 콘솔(https://console.aws.amazon.com/iam/)을 엽니다.
- 탐색 창에서 Roles를 선택합니다.
- Create role을 선택합니다.
- Select trusted entity 페이지에서 다음을 수행합니다.
- Trusted entity type에서 AWS service를 선택합니다.
- Use case의 Service or use case에서 EC2 - Fleet을 선택합니다.
팁 — 반드시 EC2 - Fleet을 선택하세요. EC2를 선택하면 Use case 목록에 EC2-Fleet 사용 사례가 나타나지 않습니다. EC2-Fleet 사용 사례는 필요한 IAM 권한이 있는 정책을 자동으로 만들고
AWSServiceRoleForEC2Fleet을 역할 이름으로 제안해요. - Next를 선택합니다.
- Add permissions 페이지에서 Next를 선택합니다.
- Name, review, and create 페이지에서 Create role을 선택합니다.
EC2 Fleet을 더 이상 사용하지 않는다면 AWSServiceRoleForEC2Fleet 역할을 삭제할 것을 권장합니다. 계정에서 이 역할을 삭제한 뒤 다른 플릿을 만들면 역할을 다시 만들 수 있어요. 자세한 내용은 IAM 사용 설명서의 "서비스 연결 역할"을 참고하세요.
암호화된 AMI 및 EBS 스냅샷과 함께 사용할 고객 관리형 키에 대한 접근 부여
EC2 Fleet에서 암호화된 AMI나 암호화된 Amazon EBS 스냅샷을 지정하고 암호화에 AWS KMS 키를 사용한다면, Amazon EC2가 사용자를 대신해 인스턴스를 시작할 수 있도록 AWSServiceRoleForEC2Fleet 역할이 고객 관리형 키를 사용할 권한을 부여해야 해요. 이를 위해 다음 절차처럼 고객 관리형 키에 grant를 추가해야 합니다.
권한을 제공할 때 grant는 키 정책의 대안입니다. 자세한 내용은 AWS Key Management Service 개발자 안내서의 "Grants 사용"과 "AWS KMS의 키 정책 사용"을 참고하세요.
AWSServiceRoleForEC2Fleet 역할에 고객 관리형 키 사용 권한을 부여하려면:
create-grant 명령으로 고객 관리형 키에 grant를 추가하고, grant가 허용하는 작업을 수행할 권한을 받는 프린시펄(즉 AWSServiceRoleForEC2Fleet 서비스 연결 역할)을 지정합니다. 고객 관리형 키는 key-id 파라미터와 고객 관리형 키의 ARN으로 지정하고, 프린시펄은 grantee-principal 파라미터와 AWSServiceRoleForEC2Fleet 서비스 연결 역할의 ARN으로 지정합니다.
aws kms create-grant \
--region us-east-1 \
--key-id arn:aws:kms:us-east-1:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab \
--grantee-principal arn:aws:iam::111122223333:role/AWSServiceRoleForEC2Fleet \
--operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
EC2 Fleet 사용자 권한
사용자가 EC2 Fleet을 생성·관리한다면 필요한 권한을 부여하세요.
EC2 Fleet용 정책 생성
- IAM 콘솔(https://console.aws.amazon.com/iam/)을 엽니다.
- 탐색 창에서 Policies를 선택합니다.
- Create policy를 선택합니다.
- Create policy 페이지에서 JSON 탭을 선택하고 텍스트를 다음으로 바꾼 뒤 Review policy를 선택합니다.
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:*"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iam:ListRoles",
"iam:PassRole",
"iam:ListInstanceProfiles"
],
"Resource":"arn:aws:iam::123456789012:role/DevTeam*"
}
]
}
ec2:*는 사용자에게 모든 Amazon EC2 API 작업 호출 권한을 부여해요. 특정 Amazon EC2 API 작업으로 제한하려면 그 작업들만 지정하세요.
사용자는 기존 IAM 역할을 열거하기 위한 iam:ListRoles 호출 권한, EC2 Fleet 역할을 지정하기 위한 iam:PassRole 권한, 기존 인스턴스 프로필을 열거하기 위한 iam:ListInstanceProfiles 권한이 필요해요.
(선택) IAM 콘솔에서 사용자가 역할이나 인스턴스 프로필을 만들 수 있게 하려면 정책에 다음 작업도 추가해야 해요: iam:AddRoleToInstanceProfile, iam:AttachRolePolicy, iam:CreateInstanceProfile, iam:CreateRole, iam:GetRole, iam:ListPolicies.
- Review policy 페이지에서 정책 이름과 설명을 입력하고 Create policy를 선택합니다.
접근을 제공하려면 사용자, 그룹, 역할에 권한을 추가하세요.
- AWS IAM Identity Center의 사용자·그룹: 권한 세트(permission set)를 만듭니다. AWS IAM Identity Center 사용 설명서의 "권한 세트 생성" 지침을 따르세요.
- ID 공급자를 통해 IAM에서 관리하는 사용자: ID 페더레이션용 역할을 만듭니다. IAM 사용 설명서의 "타사 ID 공급자에 대한 역할 생성(페더레이션)" 지침을 따르세요.
- IAM 사용자: 사용자가 수임할 수 있는 역할을 만듭니다. IAM 사용 설명서의 "IAM 사용자용 역할 생성" 지침을 따르세요.
- (권장하지 않음) 정책을 사용자에게 직접 연결하거나 사용자 그룹에 사용자를 추가합니다. IAM 사용 설명서의 "사용자에 권한 추가(콘솔)" 지침을 따르세요.
더 알아보기 (Learn more)
- EC2 Fleet 요청 상태와 EC2 Fleet 생성 문서를 확인하세요.