AWS CloudFormation을 사용하여 새 인스턴스에 CloudWatch 에이전트 설치 - Amazon CloudWatch

AWS CloudFormation을 사용하여 새 인스턴스에 CloudWatch 에이전트 설치

Amazon은 새 Amazon EC2 인스턴스에서의 CloudWatch 에이전트 설치 및 업데이트를 지원하기 위해 GitHub에 여러 AWS CloudFormation 템플릿을 업로드했습니다. AWS CloudFormation 사용에 대한 자세한 내용은 AWS CloudFormation란 무엇입니까?를 참조하세요.

템플릿 위치는 AWS CloudFormation을 사용하여 EC2 인스턴스에 Amazon CloudWatch 에이전트 배포입니다. 이 위치에는 inline 디렉터리와 ssm 디렉터리가 모두 포함되어 있습니다. 각 디렉터리에는 Linux 및 Windows 인스턴스 둘 다에 대한 템플릿이 포함되어 있습니다.

  • inline 디렉터리의 템플릿에는 AWS CloudFormation 템플릿에 포함된 CloudWatch 에이전트 구성이 있습니다. 기본적으로 Linux 템플릿은 지표 mem_used_percentswap_used_percent를 수집하고, Windows 템플릿은 Memory % Committed Bytes In UsePaging File % Usage를 수집합니다.

    다른 지표를 수집하도록 이러한 템플릿을 수정하려면 템플릿의 다음 섹션을 수정하세요. 다음 예제는 Linux 서버용 템플릿에서 가져옵니다. 에이전트 구성 파일의 형식 및 구문에 따라 다음과 같이 변경합니다. 자세한 내용은 수동으로 CloudWatch 에이전트 구성 파일 생성 또는 편집 단원을 참조하십시오.

    { "metrics":{ "append_dimensions":{ "AutoScalingGroupName":"${!aws:AutoScalingGroupName}", "ImageId":"${!aws:ImageId}", "InstanceId":"${!aws:InstanceId}", "InstanceType":"${!aws:InstanceType}" }, "metrics_collected":{ "mem":{ "measurement":[ "mem_used_percent" ] }, "swap":{ "measurement":[ "swap_used_percent" ] } } } }
    참고

    인라인 템플릿에서 모든 자리 표시자 변수에는 이스케이프 문자로 앞에 느낌표(!)가 있어야 합니다. 이러한 내용은 예제 템플릿에서 확인할 수 있습니다. 다른 자리 표시자 변수를 추가한 경우 해당 변수의 이름 앞에 느낌표를 추가해야 합니다.

  • ssm 디렉터리의 템플릿은 파라미터 스토어에서 에이전트 구성 파일을 로드합니다. 이러한 템플릿을 사용하려면 먼저, 구성 파일을 생성하여 파라미터 스토어에 업로드해야 합니다. 그런 다음, 템플릿에서 파일의 파라미터 스토어 이름을 지정합니다. 구성 파일은 수동으로 생성하거나 마법사를 사용해 생성할 수 있습니다. 자세한 내용은 CloudWatch 에이전트 구성 파일 생성 단원을 참조하십시오.

CloudWatch 에이전트를 설치하고 에이전트 구성을 업데이트하는 데 두 가지 템플릿 유형을 모두 사용할 수 있습니다.

튜토리얼: AWS CloudFormation 인라인 템플릿을 사용하여 CloudWatch 에이전트 설치 및 구성

이 튜토리얼에서는 AWS CloudFormation을 사용하여 새 Amazon EC2 인스턴스에 CloudWatch 에이전트를 설치하는 과정을 안내합니다. 이 튜토리얼에서는 JSON 구성 파일 또는 파라미터 스토어를 사용할 필요가 없는 인라인 템플릿을 사용하여 Amazon Linux 2를 실행하는 새 인스턴스에 설치합니다. 인라인 템플릿에는 에이전트 구성이 포함되어 있습니다. 이 자습서에서는 템플릿에 포함된 기본 에이전트 구성을 사용합니다.

에이전트를 설치하는 절차를 수행한 다음 자습서에서는 계속해서 에이전트를 업데이트하는 방법을 설명합니다.

AWS CloudFormation을 사용하여 새 인스턴스에 CloudWatch 에이전트를 설치하려면
  1. GitHub에서 템플릿을 다운로드합니다. 이 튜토리얼에서는 다음과 같이 Amazon Linux 2용 인라인 템플릿을 다운로드합니다.

    curl -O https://raw.githubusercontent.com/awslabs/aws-cloudformation-templates/master/aws/solutions/AmazonCloudWatchAgent/inline/amazon_linux.template
  2. AWS CloudFormation 콘솔(https://console.aws.amazon.com/cloudformation)을 엽니다.

  3. 스택 생성을 선택합니다.

  4. 템플릿 선택에서 Amazon S3에 템플릿 업로드를 선택하고, 다운로드한 템플릿을 선택한 후 다음을 선택합니다.

  5. 세부 정보 지정 페이지에 다음 파라미터를 입력하고 다음을 선택합니다.

    • 스택 이름: AWS CloudFormation 스택에 대한 스택 이름을 선택합니다.

    • IAMRole: CloudWatch 지표, 로그, 추적을 작성할 수 있는 권한이 있는 IAM 역할을 선택합니다. 자세한 내용은 Amazon EC2 인스턴스에서 CloudWatch 에이전트와 함께 사용할 IAM 역할 생성 단원을 참조하십시오.

    • InstanceAMI: 스택을 시작하려는 리전에서 유효한 AMI를 선택합니다.

    • InstanceType: 유효한 인스턴스 유형을 선택합니다.

    • KeyName: 새 인스턴스에 대한 SSH 액세스를 사용 설정하려면 기존 Amazon EC2 키 페어를 선택합니다. Amazon EC2 키 페어가 아직 없는 경우 AWS Management Console에서 새로 생성할 수 있습니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서Amazon EC2 키 페어 단원을 참조하세요.

    • SSHLocation: SSH를 사용하여 인스턴스에 연결하는 데 사용할 수 있는 IP 주소 범위를 지정합니다. 기본값은 모든 IP 주소에서의 액세스를 허용합니다.

  6. 옵션 페이지에서 스택 리소스에 태그를 지정할 수 있습니다. 다음을 선택합니다.

  7. [검토(Review)] 페이지에서 정보를 검토하고 스택이 IAM 리소스를 생성할 수 있음을 확인한 다음, [생성(Create)]을 선택합니다.

    콘솔을 새로 고치면 새 스택에 CREATE_IN_PROGRESS 상태가 있음을 알 수 있습니다.

  8. 인스턴스가 생성되면 Amazon EC2 콘솔에서 해당 인스턴스를 볼 수 있습니다. 필요한 경우 호스트에 연결해 진행 상황을 확인할 수 있습니다.

    다음 명령을 사용하여 에이전트가 설치되었는지 확인합니다.

    rpm -qa amazon-cloudwatch-agent

    다음 명령을 사용하여 에이전트가 실행 중인지 확인합니다.

    ps aux | grep amazon-cloudwatch-agent

다음 절차에서는 AWS CloudFormation에서 인라인 템플릿을 사용하여 CloudWatch 에이전트를 업데이트하는 방법을 보여 줍니다. 기본 인라인 템플릿은 mem_used_percent 지표를 수집합니다. 이 자습서에서는 이 지표 수집을 중지하도록 에이전트 구성을 변경합니다.

AWS CloudFormation을 사용하여 CloudWatch 에이전트를 업데이트하려면
  1. 이전 절차에서 다운로드한 템플릿에서 다음 줄을 제거하고 템플릿을 저장합니다.

    "mem": { "measurement": [ "mem_used_percent" ] },
  2. AWS CloudFormation 콘솔(https://console.aws.amazon.com/cloudformation)을 엽니다.

  3. AWS CloudFormation 대시보드에서 생성된 스택을 선택하고 스택 업데이트를 선택합니다.

  4. 템플릿 선택에서 Amazon S3에 템플릿 업로드를 선택하고, 수정한 템플릿을 선택한 후 다음을 선택합니다.

  5. 옵션 페이지에서 다음을 선택한 후 다음을 선택합니다.

  6. 검토 페이지에서 정보를 검토하고 업데이트를 선택합니다.

    잠시 후 UPDATE_COMPLETE가 표시됩니다.

튜토리얼: AWS CloudFormation 및 파라미터 스토어를 사용하여 CloudWatch 에이전트 설치

이 튜토리얼에서는 AWS CloudFormation을 사용하여 새 Amazon EC2 인스턴스에 CloudWatch 에이전트를 설치하는 과정을 안내합니다. 이 튜토리얼에서는 생성하여 파라미터 스토어에 저장한 에이전트 구성 파일을 사용해 Amazon Linux 2를 실행하는 새 인스턴스에 설치합니다.

에이전트를 설치하는 절차를 수행한 다음 자습서에서는 계속해서 에이전트를 업데이트하는 방법을 설명합니다.

AWS CloudFormation에서 파라미터 스토어의 구성을 사용해 새 인스턴스에 CloudWatch 에이전트를 설치하려면
  1. 아직 설치하지 않은 경우 에이전트 구성 파일을 생성할 수 있도록 컴퓨터 중 한 대에 CloudWatch 에이전트 패키지를 다운로드합니다. 파라미터 스토어를 사용하여 에이전트를 다운로드하는 방법에 대한 자세한 내용은 CloudWatch 에이전트 다운로드 및 구성 단원을 참조하세요. 명령줄을 사용하여 패키지를 다운로드하는 방법에 대한 자세한 내용은 명령줄을 사용하여 CloudWatch 에이전트 다운로드 및 구성 단원을 참조하세요.

  2. 에이전트 구성 파일을 생성하여 파라미터 스토어에 저장합니다. 자세한 내용은 CloudWatch 에이전트 구성 파일 생성 단원을 참조하십시오.

  3. 다음과 같이 GitHub에서 템플릿을 다운로드합니다.

    curl -O https://raw.githubusercontent.com/awslabs/aws-cloudformation-templates/master/aws/solutions/AmazonCloudWatchAgent/ssm/amazon_linux.template
  4. AWS CloudFormation 콘솔(https://console.aws.amazon.com/cloudformation)을 엽니다.

  5. 스택 생성을 선택합니다.

  6. 템플릿 선택에서 Amazon S3에 템플릿 업로드를 선택하고, 다운로드한 템플릿을 선택한 후 다음을 선택합니다.

  7. 세부 정보 지정 페이지에 다음 파라미터를 입력하고 다음을 선택합니다.

    • 스택 이름: AWS CloudFormation 스택에 대한 스택 이름을 선택합니다.

    • IAMRole: CloudWatch 지표, 로그, 추적을 작성할 수 있는 권한이 있는 IAM 역할을 선택합니다. 자세한 내용은 Amazon EC2 인스턴스에서 CloudWatch 에이전트와 함께 사용할 IAM 역할 생성 단원을 참조하십시오.

    • InstanceAMI: 스택을 시작하려는 리전에서 유효한 AMI를 선택합니다.

    • InstanceType: 유효한 인스턴스 유형을 선택합니다.

    • KeyName: 새 인스턴스에 대한 SSH 액세스를 사용 설정하려면 기존 Amazon EC2 키 페어를 선택합니다. Amazon EC2 키 페어가 아직 없는 경우 AWS Management Console에서 새로 생성할 수 있습니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서Amazon EC2 키 페어 단원을 참조하세요.

    • SSHLocation: SSH를 사용하여 인스턴스에 연결하는 데 사용할 수 있는 IP 주소 범위를 지정합니다. 기본값은 모든 IP 주소에서의 액세스를 허용합니다.

    • SSMKey: 생성하여 파라미터 스토어에 저장한 에이전트 구성 파일을 지정합니다.

  8. 옵션 페이지에서 스택 리소스에 태그를 지정할 수 있습니다. 다음을 선택합니다.

  9. [검토(Review)] 페이지에서 정보를 검토하고 스택이 IAM 리소스를 생성할 수 있음을 확인한 다음, [생성(Create)]을 선택합니다.

    콘솔을 새로 고치면 새 스택에 CREATE_IN_PROGRESS 상태가 있음을 알 수 있습니다.

  10. 인스턴스가 생성되면 Amazon EC2 콘솔에서 해당 인스턴스를 볼 수 있습니다. 필요한 경우 호스트에 연결해 진행 상황을 확인할 수 있습니다.

    다음 명령을 사용하여 에이전트가 설치되었는지 확인합니다.

    rpm -qa amazon-cloudwatch-agent

    다음 명령을 사용하여 에이전트가 실행 중인지 확인합니다.

    ps aux | grep amazon-cloudwatch-agent

다음 절차에서는 AWS CloudFormation에서 파라미터 스토어에 저장한 에이전트 구성을 사용해 CloudWatch 에이전트를 업데이트하는 방법을 보여 줍니다.

AWS CloudFormation에서 파라미터 스토어의 구성을 사용해 CloudWatch 에이전트를 업데이트하려면
  1. 파라미터 스토어에 저장된 에이전트 구성 파일을 원하는 새 구성으로 변경합니다.

  2. 튜토리얼: AWS CloudFormation 및 파라미터 스토어를 사용하여 CloudWatch 에이전트 설치 주제에서 다운로드한 AWS CloudFormation 템플릿에서 버전 번호를 변경합니다. 예를 들어, VERSION=1.0VERSION=2.0으로 변경할 수 있습니다.

  3. AWS CloudFormation 콘솔(https://console.aws.amazon.com/cloudformation)을 엽니다.

  4. AWS CloudFormation 대시보드에서 생성된 스택을 선택하고 스택 업데이트를 선택합니다.

  5. 템플릿 선택에서 Amazon S3에 템플릿 업로드를 선택하고, 방금 수정한 템플릿을 선택한 후 다음을 선택합니다.

  6. 옵션 페이지에서 다음을 선택한 후 다음을 선택합니다.

  7. 검토 페이지에서 정보를 검토하고 업데이트를 선택합니다.

    잠시 후 UPDATE_COMPLETE가 표시됩니다.

AWS CloudFormation을 사용한 CloudWatch 에이전트 설치 문제 해결

이 단원에서는 AWS CloudFormation을 사용한 CloudWatch 에이전트 설치 및 업데이트와 관련된 문제를 해결할 수 있도록 지원합니다.

업데이트 실패 시 감지

AWS CloudFormation을 사용하여 CloudWatch 에이전트 구성을 업데이트하는데 잘못된 구성을 사용하는 경우 에이전트는 CloudWatch로의 지표 전송을 중지합니다. cfn-init-cmd.log 파일을 살펴보면 에이전트 구성 업데이트에 성공했는지 여부를 빠르게 확인할 수 있습니다. Linux 서버에서 이 파일은 /var/log/cfn-init-cmd.log에 있습니다. Windows 인스턴스에서 이 파일은 C:\cfn\log\cfn-init-cmd.log에 있습니다.

지표가 누락됨

에이전트를 설치 또는 업데이트한 후 원하는 지표가 표시되지 않는 경우 에이전트가 해당 지표를 수집하도록 구성되어 있는지 확인하세요. 이렇게 하려면 amazon-cloudwatch-agent.json 파일을 점검하여 해당 지표가 나열되어 있는지 확인하고 지금 살펴보고 있는 지표 네임스페이스가 올바른 네임스페이스인지를 확인하세요. 자세한 내용은 CloudWatch 에이전트 파일 및 위치 단원을 참조하십시오.