AWS CLI로 리소스 찾기

AWSBeginner
지금 연습하기

소개

보고서 팀은 프로덕션이나 다른 팀의 설정을 변경하지 않고 재무팀의 테스트 설정을 검토해야 합니다. 올바른 리소스를 찾고 목록을 읽기 쉽게 만든 뒤 내보내기 형식을 CSV로 업데이트합니다.

먼저 작업 공간과 리전 리소스 실습을 완료하세요. 새 환경에 CLI 연결과 리소스가 준비되어 있으므로 이전 파일이나 자격 증명이 필요하지 않습니다. 명령에는 Terminal을 사용하고 옆의 AWS View에서 변경 사항을 관찰하세요.

인증 시험 관련 주제

이 실습은 다음 시험 주제에 대한 실습 경험을 제공합니다.

재무팀의 테스트 설정 찾기

이 단계에서는 여러 리소스가 섞인 목록을 이번 검토에 배정된 재무팀 설정으로 좁힙니다.

이전 실습에서 리전으로 지역을 선택하는 방법을 배웠습니다. 여기서는 us-east-1이 기본값으로 준비되어 있으므로 --region이 없는 명령은 이 지역을 사용합니다. --region us-east-1을 명시적으로 지정해도 됩니다.

작업 공간으로 이동하세요.

cd /home/labex/project

리소스 인벤토리는 리소스 목록입니다. 준비된 파라미터 인벤토리를 확인하세요.

aws ssm describe-parameters

각 Name과 Description을 살펴보세요. **스테이징(Staging)**은 일상적인 업무가 실행되는 **프로덕션(production)**을 변경하기 전에 사용하는 테스트 환경입니다. 목록에는 재무팀 스테이징, 재무팀 프로덕션, HR 스테이징 설정이 있습니다. 자신의 리소스 세 개는 /labex/inventory/finance/staging/으로 시작합니다.

공식 Console은 파라미터 메타데이터를 리소스 표로 표시합니다. 표의 Name과 Type 열을 describe-parameters가 반환하는 필드와 비교하세요. 예시 이름은 다릅니다. 이 실습은 String 파라미터를 사용합니다.

리소스 이름과 유형을 보여 주는 공식 Parameter Store의 My parameters 표

출처: AWS Blog.

목록은 직접 훑어볼 만큼 작지만 필터를 사용하면 범위가 더 명확해집니다. --parameter-filters는 일치하는 레코드를 반환하도록 서비스에 요청합니다. Key=Name은 이름을 선택하고 Option=BeginsWith는 이름의 시작 부분을 비교하며 Values=...는 그 시작 부분을 제공합니다.

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/inventory/finance/staging/

report-format, report-owner, review-status라는 세 이름이 보여야 합니다. 순서는 달라질 수 있습니다.

접두사 필터는 재무팀 스테이징을 선택하고 다른 리소스를 결과에서 제외합니다

개념도: 필터는 반환되는 목록을 변경하며 리소스를 변경하지 않습니다. 다른 설정도 여전히 존재합니다.

기존 상태를 업데이트하여 설정 검토가 시작되었음을 기록하세요.

aws ssm put-parameter --name /labex/inventory/finance/staging/review-status --type String --value in-review --overwrite

첫 실습에서 put-parameter와 --overwrite를 배웠습니다. 이제 AWS View의 재무팀 스테이징에 in-review가 표시됩니다. 재무팀 프로덕션과 HR은 변경하지 마세요.

이름을 표시하고 내보내기 형식 업데이트하기

이 단계에서는 일치하는 이름만 표시한 다음 재무팀 스테이징의 내보내기 형식을 변경합니다.

응답에는 지금 필요한 것보다 많은 필드가 있습니다. --query는 응답의 일부를 선택하며 저장된 데이터를 변경하지 않습니다. 'Parameters[].Name'에서 Parameters[]는 반환된 레코드를 뜻하고 .Name은 그 이름을 선택합니다. 표현식을 작은따옴표로 감싸세요.

기존 필터에 이 선택을 추가하세요.

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/inventory/finance/staging/ --query 'Parameters[].Name'

응답은 이름 세 개가 담긴 JSON 목록입니다. 필터는 여전히 리소스를 선택하고 쿼리는 표시할 필드를 선택한다는 점에 주목하세요.

필드 선택은 전체 레코드를 그대로 두고 리소스 이름을 표시합니다

개념도: Name을 선택하면 이 응답에서 다른 필드가 숨겨질 뿐 삭제되지는 않습니다.

더 간결하게 표시하려면 --output table을 덧붙이세요.

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/inventory/finance/staging/ --query 'Parameters[].Name' --output table

같은 세 이름이 표에 나타납니다. 출력 형식은 표시 방식만 변경합니다.

이름으로 정확한 스테이징 형식 설정을 읽으세요.

aws ssm get-parameter --name /labex/inventory/finance/staging/report-format

Value를 찾으세요. 값은 json입니다. 이것은 애플리케이션의 내보내기 형식으로, CLI의 JSON 응답 형식과는 별개입니다. 후속 보고서 가져오기 도구는 CSV가 필요하므로 이 설정을 업데이트하세요.

aws ssm put-parameter --name /labex/inventory/finance/staging/report-format --type String --value csv --overwrite

다시 읽으세요.

aws ssm get-parameter --name /labex/inventory/finance/staging/report-format

값은 이제 csv입니다. AWS View에서 재무팀 스테이징을 프로덕션 및 HR과 비교하세요.

재무팀 스테이징의 내보내기 형식만 csv로 변경됩니다

결과 예시: 재무팀 스테이징은 csv를 사용하고 프로덕션은 json, HR은 xlsx로 유지됩니다. 검토 상태는 아직 in-review입니다.

설정을 확인하고 검토 마치기

이 단계에서는 검토한 두 값을 읽고 재무팀 스테이징 설정을 준비 완료로 표시합니다.

단일 리소스에서도 필드 하나를 선택할 수 있습니다. 'Parameter.Value'는 Parameter 안의 값을 읽고 --output text는 JSON 따옴표 없이 표시합니다.

aws ssm get-parameter --name /labex/inventory/finance/staging/report-format --query 'Parameter.Value' --output text

응답은 csv입니다. 이 보고서 설정의 소유자를 확인하세요.

aws ssm get-parameter --name /labex/inventory/finance/staging/report-owner --query 'Parameter.Value' --output text

응답은 finance입니다. 이들은 저장된 값입니다. 앞서 확인한 메타데이터 목록에는 값 대신 이름과 설명이 표시되었습니다.

이제 완료된 검토를 준비 완료로 표시하세요.

aws ssm put-parameter --name /labex/inventory/finance/staging/review-status --type String --value ready --overwrite

결과를 다시 읽으세요.

aws ssm get-parameter --name /labex/inventory/finance/staging/review-status --query 'Parameter.Value' --output text

응답은 ready입니다. AWS View에서 재무팀 스테이징의 형식은 csv, 소유자는 finance, 상태는 ready로 표시됩니다. 보고서 애플리케이션을 배포한 것이 아니라 설정을 검토한 것입니다.

선택한 네임스페이스 정리하기

이 단계에서는 검토 검사가 통과한 뒤 재무팀 스테이징 리소스만 삭제합니다.

CLI 쿼리는 응답의 형태만 바꿉니다. 이후 삭제 작업을 지속적으로 보호해 주지는 않습니다. 정리 범위를 명시적으로 유지하세요. delete-parameters는 --names로 정확한 이름 목록을 받습니다. 다음은 이 연습에 속한 리소스 세 개입니다.

aws ssm delete-parameters --names /labex/inventory/finance/staging/report-format /labex/inventory/finance/staging/report-owner /labex/inventory/finance/staging/review-status

응답의 DeletedParameters에는 삭제된 이름이 나열되고 InvalidParameters는 비어 있어야 합니다. 서비스 요청을 성공적으로 실행하여 스테이징 접두사를 확인하세요.

aws ssm describe-parameters --parameter-filters Key=Name,Option=BeginsWith,Values=/labex/inventory/finance/staging/ --query 'Parameters[].Name' --output json

결과는 []입니다. 연결 오류나 인증 오류는 관찰 실패이며 삭제의 증거가 아닙니다.

남은 인벤토리의 이름을 읽으세요.

aws ssm describe-parameters --query 'Parameters[].Name' --output table

재무팀 프로덕션의 형식과 검토 상태, HR 스테이징의 형식이라는 리소스 세 개가 남아 있습니다. 변경하지 않고 값을 확인하세요.

aws ssm get-parameter --name /labex/inventory/finance/production/report-format --query 'Parameter.Value' --output text
aws ssm get-parameter --name /labex/inventory/finance/production/review-status --query 'Parameter.Value' --output text
aws ssm get-parameter --name /labex/inventory/hr/staging/report-format --query 'Parameter.Value' --output text

값은 json, ready, xlsx로 유지됩니다. AWS View에서 재무팀 스테이징은 No parameters로 표시되고 다른 그룹에는 여전히 파라미터가 있습니다. 독립적인 정리 검사는 이들의 원래 버전과 설명도 보존되었는지 확인합니다.

요약

이름 접두사 필터로 재무팀 스테이징을 찾고 --query로 이름이나 단일 값을 선택했습니다. 표나 텍스트 출력으로 읽기 쉽게 만들었습니다. 배정된 설정만 업데이트하고 다른 팀의 리소스를 보존하면서 정리했습니다.

다음 실습인 태그로 리소스 정리하기에서는 팀과 환경 레이블을 추가합니다. 이름이 서로 다른 패턴을 따르더라도 리소스를 그룹으로 묶을 수 있습니다.