AWS CLI를 사용한 Resource Groups 예시
다음 코드 예시에서는 Resource Groups와 함께 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 관련 시나리오의 컨텍스트에 따라 표시되며, 개별 서비스 함수를 직접적으로 호출하는 방법을 보여줍니다.
각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.
주제
작업
다음 코드 예시에서는 create-group
의 사용 방법을 보여줍니다.
- AWS CLI
-
예시 1: 태그 기반 리소스 그룹 생성
다음
create-group
예시에서는 현재 리전에 Amazon EC2 인스턴스의 태그 기반 리소스 그룹을 생성합니다. 키Name
및 값WebServers
로 태그가 지정된 리소스에 대한 쿼리를 기반으로 합니다. 그룹 이름은tbq-WebServer
입니다. 쿼리는 명령에 전달되는 별도의 JSON 파일에 있습니다.aws resource-groups create-group \ --name
tbq-WebServer
\ --resource-queryfile://query.json
query.json
의 콘텐츠:{ "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" }
출력:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" }, "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } }
예시 2: CloudFormation 스택 기반 리소스 그룹 생성
다음
create-group
예시에서는sampleCFNstackgroup
이라는 AWS CloudFormation 스택 기반 리소스 그룹을 생성합니다. 쿼리에는 AWS Resource Groups에서 지원하는 지정된 CloudFormation 스택의 모든 리소스가 포함됩니다.aws resource-groups create-group \ --name
cbq-CFNstackgroup
\ --resource-queryfile://query.json
query.json
의 콘텐츠:{ "Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}" }
출력:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNstackgroup", "Name": "cbq-CFNstackgroup" }, "ResourceQuery": { "Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-east-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}"}' } }
자세한 내용은 AWS Resource Groups 사용자 안내서의 그룹 생성을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateGroup
을 참조하세요.
-
다음 코드 예시에서는 delete-group
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스 그룹의 설명 업데이트
다음
delete-group
예시에서는 지정된 리소스 그룹을 업데이트합니다.aws resource-groups delete-group \ --group-name
tbq-WebServer
출력:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:1234567890:group/tbq-WebServer", "Name": "tbq-WebServer" } }
자세한 내용은 AWS Resource Groups 사용자 안내서의 그룹 삭제를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteGroup
을 참조하세요.
-
다음 코드 예시에서는 get-group-query
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스 그룹에 연결된 쿼리 가져오기
다음
get-group-query
예시에서는 지정된 리소스 그룹에 연결된 쿼리를 표시합니다.aws resource-groups get-group-query \ --group-name
tbq-WebServer
출력:
{ "GroupQuery": { "GroupName": "tbq-WebServer", "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } } }
-
API 세부 정보는 AWS CLI 명령 참조의 GetGroupQuery
를 참조하세요.
-
다음 코드 예시에서는 get-group
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스 그룹의 정보 가져오기
다음
get-group
예시에서는 지정된 리소스 그룹의 세부 정보를 표시합니다. 그룹에 연결된 쿼리를 가져오려면get-group-query
를 사용합니다.aws resource-groups get-group \ --group-name
tbq-WebServer
출력:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer", "Description": "A tag-based query resource group of WebServers." } }
-
API 세부 정보는 AWS CLI 명령 참조의 GetGroup
을 참조하세요.
-
다음 코드 예시에서는 get-tags
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스 그룹에 연결된 태그 가져오기
다음
get-tags
예시에서는 지정된 리소스 그룹(멤버가 아닌 그룹 자체)에 연결된 태그 키와 값 페어를 표시합니다.aws resource-groups get-tags \ --arn
arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer
출력:
{ "Arn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Tags": { "QueryType": "tags", "QueryResources": "ec2-instances" } }
-
API 세부 정보는 AWS CLI 명령 참조의 GetTags
를 참조하세요.
-
다음 코드 예시에서는 list-group-resources
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스 그룹의 모든 리소스 나열
예시 1: 다음
list-resource-groups
예시에서는 지정된 리소스 그룹에 포함된 모든 리소스를 나열합니다.aws resource-groups list-group-resources \ --group-name
tbq-WebServer
출력:
{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-09f77fa38c12345ab", "ResourceType": "AWS::EC2::Instance" } ] }
예시 2: 다음 예시에서는 ':AWS:EC2::Instance'의 'resource-type'도 있는 그룹의 모든 리소스를 나열합니다.
aws resource-groups list-group-resources --group-name tbq-WebServer --filters Name=resource-type,Values=AWS::EC2::Instance
-
API 세부 정보는 AWS CLI 명령 참조의 ListGroupResources
를 참조하세요.
-
다음 코드 예시에서는 list-groups
의 사용 방법을 보여줍니다.
- AWS CLI
-
사용 가능한 리소스 그룹 나열
다음
list-groups
예시에서는 모든 리소스 그룹의 목록을 표시합니다.aws resource-groups list-groups
출력:
{ "GroupIdentifiers": [ { "GroupName": "tbq-WebServer", "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer3" }, { "GroupName": "cbq-CFNStackQuery", "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNStackQuery" } ], "Groups": [ { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" }, { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNStackQuery", "Name": "cbq-CFNStackQuery" } ] }
-
API 세부 정보는 AWS CLI 명령 참조의 ListGroups
를 참조하세요.
-
다음 코드 예시에서는 list-resource-groups
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스 그룹의 모든 리소스 나열
다음
list-resource-groups
예시에서는 지정된 리소스 그룹에 포함된 모든 리소스를 나열합니다.aws resource-groups list-group-resources \ --group-name
tbq-WebServer
출력:
{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-09f77fa38c12345ab", "ResourceType": "AWS::EC2::Instance" } ] }
-
API 세부 정보는 AWS CLI 명령 참조의 ListResourceGroups
를 참조하세요.
-
다음 코드 예시에서는 put-group-configuration
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스 그룹에 서비스 구성 연결
예시 1: 다음
put-group-configuration
예시에서는 리소스 그룹이C5
또는M5
패밀리의 인스턴스에 대한 Amazon EC2 용량 예약만 포함하도록 지정합니다.aws resource-groups put-group-configuration \ --group
MyTestGroup
\ --configurationfile://config.json
config.json
의 콘텐츠:[ { "Type": "AWS::EC2::HostManagement", "Parameters": [ { "Name": "allowed-host-families", "Values": [ "c5", "m5" ] }, { "Name": "any-host-based-license-configuration", "Values": [ "true" ] } ] }, { "Type": "AWS::ResourceGroups::Generic", "Parameters": [ { "Name": "allowed-resource-types", "Values": [ "AWS::EC2::Host" ] }, { "Name": "deletion-protection", "Values": [ "UNLESS_EMPTY" ] } ] } ]
이 명령은 성공 시 출력을 생성하지 않습니다.
자세한 내용은 Resource Groups API 참조 안내서의 리소스 그룹의 서비스 구성을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 PutGroupConfiguration
을 참조하세요.
-
다음 코드 예시에서는 search-resources
의 사용 방법을 보여줍니다.
- AWS CLI
-
쿼리와 일치하는 리소스 찾기
다음
search-resources
예시에서는 지정된 쿼리와 일치하는 모든 AWS 리소스 목록을 가져옵니다.aws resource-groups search-resources \ --resource-query
file://query.json
query.json
의 콘텐츠:{ "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Patch Group\", \"Values\":[\"Dev\"]}]}" }
출력:
{ "ResourceIdentifiers": [ { "ResourceArn": "arn:aws:ec2:us-west-2:123456789012:instance/i-01a23bc45d67890ef", "ResourceType": "AWS::EC2::Instance" } ] }
-
API 세부 정보는 AWS CLI 명령 참조의 SearchResources
를 참조하세요.
-
다음 코드 예시에서는 tag
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스 그룹에 태그 연결
다음
tag
예시에서는 지정된 태그 키와 값 페어를 지정된 리소스 그룹(멤버가 아닌 그룹 자체)에 연결합니다.aws resource-groups tag \ --tags
QueryType=tags,QueryResources=ec2-instances
\ --arnarn:aws:resource-groups:us-west-2:128716708097:group/tbq-WebServer
출력:
{ "Arn": "arn:aws:resource-groups:us-west-2:128716708097:group/tbq-WebServer", "Tags": { "QueryType": "tags", "QueryResources": "ec2-instances" } }
자세한 내용은 AWS Resource Groups 사용자 안내서의 태그 관리를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 Tag
를 참조하세요.
-
다음 코드 예시에서는 untag
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스에서 태그 제거
다음
untags
예시에서는 멤버가 아닌 리소스 그룹 자체에서 지정된 키가 있는 태그를 제거합니다.aws resource-groups untag \ --arn
arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer
\ --keysQueryType
출력:
{ "Arn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Keys": [ "QueryType" ] }
자세한 내용은 AWS Resource Groups 사용자 안내서의 태그 관리를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 Untag
를 참조하세요.
-
다음 코드 예시에서는 update-group-query
의 사용 방법을 보여줍니다.
- AWS CLI
-
예시 1: 태그 기반 리소스 그룹에 대한 쿼리 업데이트
다음
update-group-query
예시에서는 지정된 태그 기반 리소스 그룹에 연결된 쿼리를 업데이트합니다.aws resource-groups update-group-query \ --group-name
tbq-WebServer
\ --resource-query '{"Type":"TAG_FILTERS_1_0", "Query":"{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}"}
'출력:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-east-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" }, "ResourceQuery": { "Type": "TAG_FILTERS_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::EC2::Instance\"],\"TagFilters\":[{\"Key\":\"Name\", \"Values\":[\"WebServers\"]}]}" } }
자세한 내용은 AWS Resource Groups 사용자 안내서의 그룹 업데이트를 참조하세요.
예시 2: CloudFormation 스택 기반 리소스 그룹에 대한 쿼리 업데이트
다음
update-group-query
예시에서는 지정된 AWS CloudFormation 스택 기반 리소스 그룹에 연결된 쿼리를 업데이트합니다.aws resource-groups update-group-query \ --group-name
cbq-CFNstackgroup
\ --resource-query '{"Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}"}
'출력:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/cbq-CFNstackgroup", "Name": "cbq-CFNstackgroup" }, "ResourceQuery": { "Type": "CLOUDFORMATION_STACK_1_0", "Query": "{\"ResourceTypeFilters\":[\"AWS::AllSupported\"],\"StackIdentifier\":\"arn:aws:cloudformation:us-west-2:123456789012:stack/MyCFNStack/1415z9z0-z39z-11z8-97z5-500z212zz6fz\"}" } }
자세한 내용은 AWS Resource Groups 사용자 안내서의 그룹 업데이트를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateGroupQuery
를 참조하세요.
-
다음 코드 예시에서는 update-group
의 사용 방법을 보여줍니다.
- AWS CLI
-
리소스 그룹의 설명 업데이트
다음
update-group
예시에서는 지정된 리소스 그룹의 설명을 업데이트합니다.aws resource-groups update-group \ --group-name
tbq-WebServer
\ --description"Resource group for all web server resources."
출력:
{ "Group": { "GroupArn": "arn:aws:resource-groups:us-west-2:123456789012:group/tbq-WebServer", "Name": "tbq-WebServer" "Description": "Resource group for all web server resources." } }
자세한 내용은 AWS Resource Groups 사용자 안내서의 그룹 업데이트를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UpdateGroup
을 참조하세요.
-