Amazon Web Services 한국 블로그

Amazon VPC에서 네트워크 연결성에 대한 디버깅 도구 활용하기

AWS내의 리소스들은 최적의 성능으로 서비스를 제공하기 위해 기반 네트워크에 크게 의존합니다. 예를 들어, 데이터베이스를 최적화하고 프런트엔드 애플리케이션 서버를 고비용의 하이엔드 Amazon EC2 인스턴스에서 실행하더라도 기반 네트워크에 문제가 발생하면 이러한 모든 유익한 요소가 단번에 무효화될 수도 있습니다.

이러한 이유로 지속적으로 네트워크 연결의 상태와 안정성을 모니터링하는 것이 절대적으로 중요합니다. 성능에 영향을 미치는 요소에는 대기 시간과 네트워크 경로를 통한 패킷 손실률 등이 있습니다. 이러한 요인들은 다양한 애플리케이션의 동작에 영향을 줄 수 있습니다.

다행히 AWS에는 AWSSupport-SetupIPMonitoringFromVPC라는 내재된 도구가 있어 관련 지표들을 모니터링할 수 있으며, 이를 Amazon CloudWatch 경보와 함께 사용하여 비정상적인 패턴을 감지하는 특정 작업을 수행할 수도 있습니다. 다음 스크린샷은 CloudWatch 대시보드의 출력을 보여줍니다.

출력결과 이해하기

일반적으로 네트워크 통계를 측정하는 데 사용되는 도구인 ping에서 통계가 파생됩니다. ping은 A지점에서 Z지점간 일반 경로의 상태에 대한 정보를 수집하는 데 유용하지만, 특정 네트워크 내의 모든 경로에 대한 상태를 평가하기에는 부족한 면이 있습니다.

그러한 이유로 문제에 대한 판별에 Ping만을 절대적인 증거로 삼아서는 안 되고, 다른 네트워크 도구, 데이터 및 관련 요소를 함께 사용하여 도구의 판독 값이 오탐지인지 아니면 실제 네트워크 문제를 나타내는지를 판단해야 합니다.

위의 도구는 ping뿐만 아니라 MTR, TCP traceroute 및 tracepath를 통해 지표를 수집합니다. 이 도구의 판독 값을 해석하는 방법에 대한 일반적인 정보는 AWS 지식 센터의 문서를 참조하십시오.

AWSSupport-SetupIPMonitoringFromVPC 도구는 Amazon EC2 인스턴스를 생성하는 AWS Systems Manager 문서(SSM 문서)입니다. 이 인스턴스는 지정된 서브넷의 모니터 인스턴스라고 하며, 선택한 대상 IP 주소에 대해 ping, MTR, TCP traceroute 및 tracepath 네트워크 진단 테스트를 계속 실행하여 모니터링하고 결과는 Amazon CloudWatch Logs를 사용하여 저장합니다. 사용자 지정 지표 필터가 적용되어 패킷 손실률 및 대기 시간(밀리초) 통계를 빠르게 CloudWatch 대시보드를 통해 시각화합니다. 부가적으로, CloudWatch 임계값 경보를 구성 및 Amazon Simple Notification Service(SNS) 알림 트리거를 통해 패킷 손실 또는 대기 시간 문제와 관련하여 경고조치 할 수 있습니다.

사전 조건

설정을 시작하기 전에 다음 사전 조건이 준비 되었는지 확인이 필요합니다.

  • 퍼블릭 또는 프라이빗 서브넷에서 모니터 인스턴스를 시작하기 위한 서브넷 ID를 지정합니다. 프라이빗 서브넷의 경우 모니터 인스턴스가 자체적으로 부트스트랩할 수 있도록 인터넷에 액세스 할 수 있는지 확인합니다. 인스턴스는 Amazon CloudWatch Logs 에이전트를 설치하고 AWS Systems Manager와 상호 작용하며 Amazon CloudWatch를 설치합니다.
  • 프라이빗 서브넷에는 IPv4 퍼블릭 액세스가 필요하며, 발신 전용 인터넷 게이트웨이를 통해 인터넷에 액세스할 수 없습니다.
  • 공백 없이 쉼표로 구분된 유효하고 고유한 IP 주소를 지정합니다. “TargetIPs”문자열의 최대 크기는 쉼표를 포함하여 255자입니다. 다음 예제에서는 총 문자 수 = 15입니다.

참고: 유효하지 않거나 중복된 IP 주소를 제공하지 마십시오. 유효하지 않거나 중복된 IP 주소를 입력하면 실행이 실패하고 Systems Manager Automation이 롤백됩니다.

  • 모니터 인스턴스가 상태 검사에 실패한 경우 인스턴스를 중지 후 다시 시작하고 설명서에 따라 자세한 정보를 확인하십시오

AWS Support 이용 방법 – VPC에서 IP 모니터링 설정

  1. https://console.thinkwithwp.com/systems-manager에서 AWS Systems Manager 콘솔을 엽니다.
  2. [Automation]을 선택합니다.
  3. [Execute Automation]을 선택합니다.
  4. [AWSSupport-SetupIPMonitoringFromVPC]를 선택합니다(소유자: Amazon).
  5. 대상을 선택합니다.
  6. [Input Parameters]에 다음 파리미터를 채웁니다.
    • [SubnetId](필수)를 찾아 모니터 인스턴스의 서브넷 ID를 입력합니다.
    • 모니터링할 IPv4 및/또는 IPv6를 쉼표로 구분된 목록형태로 [TargetIPs](필수)를 입력합니다. 공백은 허용되지 않습니다.
    • 최대 크기는 255자입니다. 참고 : 유효하지 않거나 중복된 IP 주소를 입력하면 자동화가 실패하고 테스트 설정이 롤백됩니다.
    • (선택 사항) [CloudWatchLogGroupNamePrefix] 및 로그 그룹 접두사를 지정합니다. 기본값은 /AWSSupport-SetupIPMonitoringFromVPC입니다.
    • (선택 사항) [CloudWatchLogGroupRetentionInDays]를 찾아 CloudWatch 로그 그룹 보존 기간(일)을 지정합니다. 기본값은 7일입니다.
    • (선택 사항) [InstanceType]을 찾아 테스트를 실행할 인스턴스에 사용하려는 인스턴스 유형을 지정합니다. 기본값은 t2.micro입니다.
    • (선택 사항) [AutomationAssumeRole]을 찾아 사용하려는 자동화 역할의 Amazon Resource Name(ARN)을 입력합니다. 역할이 제공되지 않으면 문서는 현재 사용자 권한을 사용합니다.
  7. [Execute automation]을 선택합니다.
  8. 실행 진행 상황을 모니터링합니다.

Outputs : 자동화가 성공적으로 수행된 후 Automation의 [Outputs] 섹션에서 다음을 확인할 수 있습니다.

  • createCloudWatchDashboard.Output = CloudWatch 대시보드 URL
  • createManagedInstance.InstanceId = 테스트를 실행할 인스턴스의 ID

내부 작동 원리

자동화과정을 통해 지정된 서브넷에 매분마다 테스트 결과를 CloudWatch Logs로 푸시할 모니터 인스턴스를 생성합니다. 결과는 Amazon CloudWatch Logs를 사용하여 저장되며, 사용자 정의 지표 필터가 적용되어 패킷 손실률(%) 및 평균 대기 시간(ms) 통계를 CloudWatch 대시보드를 통해 신속하게 시각화합니다.

CloudWatch 대시 보드 출력은 다음과 같습니다.

CloudWatch 대시보드에는 기존 자동화 테스트를 일시 중지, 재개종료하는 버튼이 있습니다.

[Pause] 버튼을 선택하면 모니터 인스턴스Stopped 상태로 바뀌어 테스트 결과를 CloudWatch Logs로 푸시하지 않습니다.

[Resume ] 버튼을 선택하면 다음 다이어그램과 같이 모니터 인스턴스가 [Running] 상태로 전환되고 테스트 결과를 CloudWatch Logs로 다시 보내기 시작합니다.

모니터 인스턴스를 중지하거나 시작하여 테스트를 일시 중지하거나 다시 시작할 수 있습니다.

[Terminate] 버튼을 선택하면 AWSSupport-TerminateIPMonitoringFromVPC SSM 문서가 호출되어 모니터 인스턴스가 종료되고 IAM 역할 및 인스턴스 프로필이 삭제되며 CloudWatch 대시보드가 삭제됩니다.

참고: CloudWatch Logs는 SSM Automation 실행 중 지정된 최대 기간 동안 계정에서 유지되며 CloudWatch 사용자 지정 지표는 15개월까지 사용할 수 있습니다.

CloudWatch 및 Amazon SNS를 통한 경보 및 알림

CloudWatch 콘솔을 열고 [Alarms], [Create Alarms]를 차례로 선택한 다음 패킷 손실 또는 지연에 대한 적절한 사용자 정의 지표를 선택하여 임계값을 정의합니다. Amazon SNS를 사용하여 CloudWatch 경보 및 이메일 알림 목록을 작성하거나 편집하는 방법에 대한 자세한 내용은 설명서를 참조하십시오.

이 예제는 1분 간격으로 5개 데이터 포인트 중 5개에 대해 패킷 손실율이 30% 이상이 되면 ALARM이 트리거되고, 그 결과 사용자가 제공한 주소로 SNS 이메일 알림이 전송되는 과정을 보여 줍니다.

통합하기

다음은 고객이 구성한 경보 및 알림 기능이 있는 자동화된 모니터링 솔루션의 개요입니다.

결론

AWSSupport-SetupIPMonitoringFromVPC는 지정된 서브넷에서 모니터 인스턴스를 시작하는 새로운 SSM Automation 문서입니다. 모니터 인스턴스는 네트워크 원격 측정 데이터를 CloudWatch Logs로 푸시하며, 사용자는 CloudWatch 대시보드를 통해 패킷 손실 및 대기 시간 통계와 함께 적용된 사용자 정의 지표 필터를 확인할 수 있습니다. 또한, 알림을 받기 위해 CloudWatch 경보 및 SNS 알림을 구성할 수 있습니다. 이 기능은 지금 바로 사용할 수 있습니다. 질문이나 제안 사항이 있으면 의견을 남겨주십시오. 즐거운 네트워크 모니터링되시길 바랍니다.

Bhavin Desai는 AWS의 수석 솔루션스 아키텍트로, AWS에서 고객에게 기술 지침을 제공하고 새로운 가능성을 열어줄 솔루션을 설계하고 구축하도록 돕습니다.

이 글은 AWS Network & Content Delivery 블로그 Debugging tool for network connectivity from Amazon VPC의 한국어 번역입니다.