인벤토리의 리소스 데이터 동기화 생성 - AWS Systems Manager

인벤토리의 리소스 데이터 동기화 생성

이 주제에서는 AWS Systems Manager 인벤토리에 대한 리소스 데이터 동기화를 설정하고 구성하는 방법에 대해 설명합니다. Systems Manager Explorer의 리소스 데이터 동기화에 대한 자세한 내용은 여러 계정 및 리전에서 데이터를 표시하도록 Systems Manager Explorer 설정 단원을 참조하세요.

리소스 데이터 동기화 정보

Systems Manager 리소스 데이터 동기화를 사용하여 모든 관리형 노드에서 수집된 인벤토리 데이터를 단일 Amazon Simple Storage Service(Amazon S3) 버킷으로 전송합니다. 이제 새로운 인벤토리 데이터가 수집될 때마다 리소스 데이터 동기화가 중앙 데이터를 자동으로 업데이트합니다. 모든 인벤토리 데이터가 대상 Amazon S3 버킷에 저장되면 Amazon Athena와 Amazon QuickSight 같은 서비스를 사용하여 수집한 데이터에 대한 쿼리를 실행하거나 분석할 수 있습니다.

예를 들어 150개 관리형 노드 플릿에서 실행 중인 운영 체제(OS) 및 애플리케이션에 대한 데이터를 수집할 수 있도록 인벤토리를 구성하였다고 가정하겠습니다. 이러한 노드 중 일부는 노드는 온프레미스 데이터 센터에 있고, 다른 노드는 여러 AWS 리전의 Amazon Elastic Compute Cloud(Amazon EC2)에서 실행되고 있습니다. 리소스 데이터 동기화를 구성하지 않았다면 각 노드마다 수집된 인벤토리 데이터를 수동으로 수집하거나, 혹은 스크립트를 생성하여 이 정보를 수집해야 합니다. 그런 다음 쿼리를 통해 데이터를 분석하려면 데이터를 애플리케이션으로 포팅해야 합니다.

리소스 데이터 동기화를 사용하면 작업 한 번으로 모든 관리형 노드에서 수집된 인벤토리 데이터를 모두 동기화할 수 있습니다. 동기화가 성공적으로 생성되면 Systems Manager가 모든 인벤토리 데이터의 기준을 만들어서 대상 Amazon S3 버킷에 저장합니다. 이후 새로운 인벤토리 데이터가 수집되면 Systems Manager가 Amazon S3 버킷의 데이터를 자동 업데이트합니다. 이후부터는 데이터를 빠르고 경제적으로 Amazon Athena 및 Amazon QuickSight에 포팅할 수 있습니다.

다이어그램 1에서는 리소스 데이터 동기화를 통해 하이브리드 및 멀티클라우드 환경의 Amazon EC2 및 기타 시스템 유형에서 대상 Amazon S3 버킷으로 인벤토리 데이터를 집계하는 방법을 보여줍니다. 또한 리소스 데이터 동기화가 여러 AWS 계정 및 AWS 리전에서 어떻게 작동하는지도 보여줍니다.

다이어그램 1: 여러 AWS 계정 및 AWS 리전에서 리소스 데이터 동기화

Systems Manager 리소스 데이터 동기화 아키텍처

관리형 노드가 삭제되더라도 리소스 데이터 동기화가 삭제된 노드의 인벤토리 파일을 보존합니다. 하지만 실행 노드의 경우에는 새로운 파일이 생성되어 Amazon S3 버킷에 작성되면 리소스 데이터 동기화가 이전 인벤토리 파일을 자동으로 덮어씁니다. 시간 경과에 따른 인벤토리 변경 사항을 추적하고 싶다면 AWS Config 서비스를 사용하여 SSM:ManagedInstanceInventory 리소스 유형을 추적할 수 있습니다. 자세한 내용은 AWS Config 시작하기 섹션을 참조하세요.

이 섹션의 절차에 따라 Amazon S3 및 AWS Systems Manager 콘솔을 사용하여 Inventory에 대한 리소스 데이터 동기화를 생성할 수 있습니다. AWS CloudFormation을 사용하여 리소스 데이터 동기화를 생성하거나 삭제할 수도 있습니다. AWS CloudFormation을 사용하려면 AWS CloudFormation 템플릿에 AWS::SSM::ResourceDataSync 리소스를 추가합니다. 자세한 내용은 다음 설명서 리소스 중 하나를 참조하십시오.

참고

AWS Key Management Service(AWS KMS)를 사용하여 Amazon S3 버킷의 인벤토리 데이터를 암호화할 수 있습니다. AWS Command Line Interface(AWS CLI)를 사용하여 암호화된 동기화를 생성하는 방법과 Amazon Athena 및 Amazon QuickSight에서 중앙 데이터를 사용하는 방법에 대한 예는 리소스 데이터 동기화를 사용한 인벤토리 데이터 집계 섹션을 참조하세요.

시작하기 전 준비 사항

리소스 데이터 동기화를 생성하기 전에 다음 절차를 사용하여 집계된 인벤토리 데이터를 저장할 중앙 Amazon S3 버킷을 생성합니다. 이 절차에서는 Systems Manager가 여러 계정에서 버킷에 인벤토리 데이터를 쓸 수 있는 버킷 정책을 할당하는 방법을 설명합니다. 리소스 데이터 동기화를 위해 인벤토리 데이터를 집계하는 데 사용할 Amazon S3 버킷이 이미 있는 경우 다음 절차에서 정책을 사용하도록 버킷을 구성해야 합니다.

참고

지정된 Amazon S3 버킷이 객체 잠금을 사용하도록 구성된 경우 Systems Manager Inventory는 해당 버킷에 데이터를 추가할 수 없습니다. 리소스 데이터 동기화를 위해 생성하거나 선택한 Amazon S3 버킷이 Amazon S3 객체 잠금을 사용하도록 구성되지 않았는지 확인합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서Amazon S3 객체 잠금 작동 방식을 참조하세요.

리소스 데이터 동기화를 위해 Amazon S3 버킷을 생성하고 구성하려면
  1. https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 수집한 인벤토리 데이터를 저장할 버킷을 생성합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서버킷 생성을 참조하세요. 버킷 이름과 버킷을 생성한 AWS 리전을 따로 적어둡니다.

  3. 권한 탭을 선택한 후 버킷 정책을 선택합니다.

  4. 다음 버킷 정책을 복사하여 정책 편집기에 붙여 넣습니다. amzn-s3-demo-bucket 및 account-id를 사용자가 생성한 S3 버킷 이름 및 유효한 AWS 계정 ID로 바꿉니다.

    여러 AWS 계정에서 중앙 Amazon S3 버킷으로 인벤토리 데이터를 보내도록 허용하려면 다음 Resource 샘플에 표시된 것처럼 정책에서 각 계정을 지정합니다.

    "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*/accountid=123456789012/*", "arn:aws:s3:::amzn-s3-demo-bucket2/*/accountid=444455556666/*", "arn:aws:s3:::amzn-s3-demo-bucket3/*/accountid=777788889999/*" ], "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": [ "123456789012", "444455556666", "777788889999" ] }, "ArnLike": { "aws:SourceArn": [ "arn:aws:ssm:*:123456789012:resource-data-sync/*", "arn:aws:ssm:*:444455556666:resource-data-sync/*", "arn:aws:ssm:*:777788889999:resource-data-sync/*" ] } }
    참고

    AWS 계정 ID 보기에 대한 자세한 내용은 IAM User GuideYour Amazon Web Services Account ID and Its Alias를 참조하세요.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SSMBucketPermissionsCheck", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket" }, { "Sid": " SSMBucketDelivery", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*/accountid=ID_number/*", "arn:aws:s3:::amzn-s3-demo-bucket/*/accountid=ID_number/*", "arn:aws:s3:::amzn-s3-demo-bucket/*/accountid=ID_number/*", "arn:aws:s3:::amzn-s3-demo-bucket/*/accountid=ID_number/*" ], "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": "ID_number" }, "ArnLike": { "aws:SourceArn": "arn:aws:ssm:*:ID_number:resource-data-sync/*" } } } ] }

Inventory의 리소스 데이터 동기화 생성

Systems Manager Inventory의 리소스 데이터 동기화는 Systems Manager 콘솔에서 다음 절차에 따라 생성합니다. AWS CLI를 사용하여 리소스 데이터 동기화를 만드는 방법에 대한 자세한 내용은 AWS CLI를 사용하여 인벤토리 데이터 수집 구성 섹션을 참조하세요.

리소스 데이터 동기화를 생성하려면
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Fleet Manager를 선택합니다.

  3. [계정 관리(Account management)] 메뉴에서 [리소스 데이터 동기화(Resource data sync)]를 선택합니다.

  4. Create resource data sync(리소스 데이터 동기화 생성)를 선택합니다.

  5. [동기화 이름(Sync name)] 필드에 동기화 구성 이름을 입력합니다.

  6. [버킷 이름(Bucket name)] 필드에 리소스 데이터 동기화를 위한 Amazon S3 버킷을 생성하고 구성하려면 절차를 사용하여 생성한 Amazon S3 버킷의 이름을 입력합니다.

  7. (옵션) [버킷 접두사(Bucket prefix)] 필드에 Amazon S3 버킷 접두사(하위 디렉터리)의 이름을 입력합니다.

  8. 생성한 Amazon S3 버킷이 현재 AWS 리전에 위치하면 [버킷 리전(Bucket region)] 필드에서 [이 리전(This region)]을 선택합니다. 버킷이 다른 AWS 리전에 위치하면 [다른 리전(Another region)]을 선택하고 리전 이름을 입력합니다.

    참고

    동기화와 대상 Amazon S3 버킷이 서로 다른 리전에 위치하는 경우에는 데이터 전송 요금이 부과될 수 있습니다. 자세한 내용은 Amazon S3 요금을 참조하세요.

  9. (옵션) [KMS Key ARN] 필드에 Amazon S3의 인벤토리 데이터를 암호화할 KMS 키 ARN을 입력하거나 붙여 넣습니다.

  10. 생성(Create)을 선택합니다.

여러 AWS 리전의 인벤토리 데이터를 동기화하려면 리전에서 리소스 데이터 동기화를 생성해야 합니다. 인벤토리 데이터를 수집해 중앙 Amazon S3 버킷으로 보내려는 각 AWS 리전에서 이 절차를 반복합니다. 각 리전에서 동기화를 생성할 때 [버킷 이름(Bucket name)] 필드에 중앙 Amazon S3 버킷을 지정합니다. 그런 다음 [버킷 리전(Bucket region)] 옵션을 사용하여 다음 스크린샷에 표시된 것처럼 중앙 Amazon S3 버킷을 생성한 리전을 선택합니다. 연결이 실행되어 인벤토리 데이터를 수집하고 나면 Systems Manager가 중앙 Amazon S3 버킷에 데이터를 저장합니다.

여러 AWS 리전에서 Systems Manager 리소스 데이터 동기화

AWS Organizations에 정의된 계정에 대한 인벤토리 리소스 데이터 동기화 생성

AWS Organizations에 정의된 AWS 계정의 인벤토리 데이터를 중앙 Amazon S3 버킷으로 동기화할 수 있습니다. 다음 절차를 완료하면 인벤토리 데이터가 중앙 버킷의 개별 Amazon S3 키 접두사와 동기화됩니다. 각 키 접두사는 서로 다른 AWS 계정 ID를 나타냅니다.

시작하기 전 준비 사항

시작하기 전에 AWS Organizations에서 AWS 계정를 설정하고 구성했는지 확인합니다. 자세한 내용은 AWS Organizations User Guide를 참조하세요.

또한 AWS Organizations에 정의된 AWS 리전과 AWS 계정 각각에 대해 조직 기반 자원 데이터 동기화를 생성해야 합니다.

중앙 Amazon S3 버킷 생성

다음 절차를 사용하여 집계된 인벤토리 데이터를 저장할 중앙 Amazon S3 버킷을 생성합니다. 이 절차에서는 Systems Manager가 AWS Organizations 계정 ID에서 버킷에 인벤토리 데이터를 쓸 수 있는 버킷 정책을 할당하는 방법을 설명합니다. 리소스 데이터 동기화를 위해 인벤토리 데이터를 집계하는 데 사용할 Amazon S3 버킷이 이미 있는 경우 다음 절차에서 정책을 사용하도록 버킷을 구성해야 합니다.

AWS Organizations에 정의된 여러 계정의 리소스 데이터 동기화를 위한 Amazon S3 버킷을 생성하고 구성하려면
  1. https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 집계된 인벤토리 데이터를 저장할 버킷을 생성합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서버킷 생성을 참조하세요. 버킷 이름과 버킷을 생성한 AWS 리전을 따로 적어둡니다.

  3. 권한 탭을 선택한 후 버킷 정책을 선택합니다.

  4. 다음 버킷 정책을 복사하여 정책 편집기에 붙여 넣습니다. amzn-s3-demo-bucket 및 organization-id를 사용자가 생성한 Amazon S3 버킷 이름 및 유효한 AWS Organizations 계정 ID로 바꿉니다.

    원할 경우 bucket-prefix를 Amazon S3 접두사(하위 디렉터리) 이름으로 바꿉니다. 접두사를 생성하지 않았을 경우에는 다음 정책의 ARN에서 bucket-prefix/를 제거하십시오.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "SSMBucketPermissionsCheck", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::S3_bucket_name" }, { "Sid": " SSMBucketDelivery", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "s3:PutObject", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/bucket-prefix/*/accountid=*/*" ], "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceOrgID": "organization-id" } } }, { "Sid": " SSMBucketDeliveryTagging", "Effect": "Allow", "Principal": { "Service": "ssm.amazonaws.com" }, "Action": "s3:PutObjectTagging", "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/bucket-prefix/*/accountid=*/*" ] } ] }

AWS Organizations에 정의된 계정에 대한 인벤토리 리소스 데이터 동기화 생성

다음 절차에서는 AWS CLI를 사용하여 AWS Organizations에 정의된 계정에 대한 리소스 데이터 동기화를 만드는 방법을 설명합니다. 이 작업을 수행하려면 AWS CLI를 사용해야 합니다. AWS Organizations에 정의된 AWS 리전과 AWS 계정에 대해서도 각각 이 절차를 수행해야 합니다.

AWS Organizations(AWS CLI)에 정의된 계정에 대한 리소스 데이터 동기화를 생성하려면
  1. 아직 하지 않은 경우 AWS Command Line Interface(AWS CLI)를 설치하고 구성합니다.

    자세한 내용은 최신 버전의 AWS CLI 설치 또는 업데이트를 참조하세요.

  2. 다음 명령을 실행하여 다른 AWS Organizations 기반 리소스 데이터 동기화가 없는지 확인합니다. 여러 표준 동기화 및 Organizations 기반 동기화를 비롯한 다양한 동기화를 사용할 수 있습니다. 그러나 Organizations 기반 리소스 데이터 동기화는 하나만 가질 수 있습니다.

    aws ssm list-resource-data-sync

    명령이 다른 Organizations 기반 리소스 데이터 동기화를 반환하는 경우 이를 삭제하거나 새 동기화를 생성하지 않도록 선택해야 합니다.

  3. 다음 명령을 실행하여 AWS Organizations에 정의된 계정에 대한 리소스 데이터 동기화를 생성합니다. amzn-s3-demo-bucket에 이 주제의 앞부분에서 생성한 Amazon S3 버킷의 이름을 지정합니다. 버킷의 접두사(하위 디렉터리)를 생성한 경우 prefix-name에 이 정보를 지정합니다.

    aws ssm create-resource-data-sync --sync-name name --s3-destination "BucketName=amzn-s3-demo-bucket,Prefix=prefix-name,SyncFormat=JsonSerDe,Region=AWS 리전, for example us-east-2,DestinationDataSharing={DestinationDataSharingType=Organization}"
  4. 중앙 Amazon S3 버킷에 데이터를 동기화하려는 모든 AWS 리전 및 AWS 계정에 대해 2단계와 3단계를 반복합니다.

리소스 데이터 동기화 관리

각 AWS 계정에서는 AWS 리전당 리소스 데이터 동기화가 5회씩 발생할 수 있습니다. AWS Systems Manager Fleet Manager콘솔을 사용하여 리소스 데이터 동기화를 관리할 수 있습니다.

리소스 데이터 동기화를 보는 방법
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Fleet Manager를 선택합니다.

  3. 계정 관리 드롭다운에서 리소스 데이터 동기화를 선택합니다.

  4. 테이블에서 리소스 데이터 동기화를 선택한 다음에 세부 정보 보기를 선택하여 리소스 데이터 동기화에 대한 정보를 봅니다.

리소스 데이터 동기화를 삭제하려면
  1. AWS Systems Manager 콘솔(https://console.aws.amazon.com/systems-manager/)을 엽니다.

  2. 탐색 창에서 Fleet Manager를 선택합니다.

  3. 계정 관리 드롭다운에서 리소스 데이터 동기화를 선택합니다.

  4. 테이블에서 리소스 데이터 동기화를 선택한 다음에 삭제를 선택합니다.