AWS CLI를 사용한 Resource Groups 예시 - AWS Command Line Interface

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-query file://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-query file://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

다음 코드 예시에서는 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" } ] }

다음 코드 예시에서는 put-group-configuration의 사용 방법을 보여줍니다.

AWS CLI

리소스 그룹에 서비스 구성 연결

예시 1: 다음 put-group-configuration 예시에서는 리소스 그룹이 C5 또는 M5 패밀리의 인스턴스에 대한 Amazon EC2 용량 예약만 포함하도록 지정합니다.

aws resource-groups put-group-configuration \ --group MyTestGroup \ --configuration file://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 참조 안내서리소스 그룹의 서비스 구성을 참조하세요.

다음 코드 예시에서는 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 \ --arn arn: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 \ --keys QueryType

출력:

{ "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을 참조하세요.