자습서: 연결 이벤트 시뮬레이션 - AWS Fault Injection 서비스

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

자습서: 연결 이벤트 시뮬레이션

AWS Fault Injection Service(AWS FIS)를 사용하여 다양한 연결 이벤트를 시뮬레이션할 수 있습니다. AWS FIS는 다음 방법 중 하나로 네트워크 연결을 차단하여 연결 이벤트를 시뮬레이션합니다.

  • all - 서브넷으로 들어오고 나가는 모든 트래픽을 거부합니다. 이 옵션은 서브넷의 네트워크 인터페이스로 들어오고 나가는 트래픽을 포함하여 서브넷 내 트래픽을 허용한다는 점에 유의하세요.

  • availability-zone - 다른 가용 영역에 있는 서브넷으로 들어오고 나가는 VPC 내부 트래픽을 거부합니다.

  • dynamodb - 현재 리전의 DynamoDB 리전 엔드포인트로 들어오고 나가는 트래픽을 거부합니다.

  • prefix-list - 지정된 접두사 목록으로 들어오고 나가는 트래픽을 거부합니다.

  • s3 - 현재 리전의 Amazon S3 리전 엔드포인트로 들어오고 나가는 트래픽을 거부합니다.

  • vpc - VPC로 들어오고 나가는 트래픽을 거부합니다.

이 자습서를 사용하여 AWS FIS aws:network:disrupt-connectivity 작업을 사용하여 대상 서브넷에서 Amazon S3와의 연결 손실을 도입하는 실험 템플릿을 생성합니다.

사전 조건

이 자습서를 시작하기 전에에 적절한 권한이 있는 역할과 테스트 Amazon EC2 인스턴스 AWS 계정가 필요합니다.

에 권한이 있는 역할 AWS 계정

역할을 생성하고 AWS FIS가 사용자를 대신하여 aws:network:disrupt-connectivity 작업을 수행할 수 있도록 하는 정책을 연결합니다.

IAM 역할에는 다음의 정책이 필요합니다.

  • AWSFaultInjectionSimulatorNetworkAccess - Amazon EC2 네트워킹 및 기타 필수 서비스에서 네트워크 인프라와 관련된 AWS FIS 작업을 수행하는 데 필요한 AWS FIS 서비스 권한을 부여합니다.

참고

간소화를 위해이 자습서에서는 AWS 관리형 정책을 사용합니다. 프로덕션 사용 용도의 경우 사용 사례에 필요한 최소한의 권한만 부여하는 것이 좋습니다.

IAM 역할을 생성하는 방법에 대한 자세한 내용은 IAM 사용 설명서의 AWS FIS 실험을 위한 IAM 역할(AWS CLI) 또는 IAM 역할 생성(콘솔)을 참조하세요.

테스트 Amazon EC2 인스턴스

테스트 Amazon EC2 인스턴스를 시작하고 연결합니다. 다음 자습서를 사용하여 Amazon EC2 인스턴스를 시작하고 연결할 수 있습니다. Amazon EC2 사용 설명서의 자습서: Amazon EC2 Linux 인스턴스 시작.

1단계: AWS FIS 실험 템플릿 생성

AWS FIS를 사용하여 실험 템플릿을 생성합니다 AWS Management Console. AWS FIS 템플릿은 작업, 대상, 중지 조건 및 실험 역할로 구성됩니다. 템플릿 작동 방식에 대한 자세한 내용은 AWS FIS용 실험 템플릿을 참조하세요.

시작하기 전에 다음 항목이 준비되었는지 확인합니다.

  • 올바른 권한을 가진 IAM 역할.

  • Amazon EC2 인스턴스.

  • Amazon EC2 인스턴스의 서브넷 ID.

실험 템플릿을 생성하는 방법
  1. https://console.aws.amazon.com/fis/ AWS FIS 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 실험 템플릿을 선택합니다.

  3. 실험 템플릿 생성을 선택합니다.

  4. 1단계, 템플릿 세부 정보 지정에서 다음을 수행합니다.

    1. 설명 및 이름에와 같은 템플릿에 대한 설명을 입력합니다Amazon S3 Network Disrupt Connectivity.

    2. 다음을 선택하고 2단계, 작업 및 대상 지정으로 이동합니다.

  5. 작업에서 작업 추가를 선택합니다.

    1. 이름disruptConnectivity를 입력합니다.

    2. 작업 유형에서 aws:network:disrupt-connectivity를 선택합니다.

    3. 작업 파라미터에서 기간2 minutes로 설정합니다.

    4. 범위에서 s3를 선택합니다.

    5. 상단에서 저장을 선택합니다.

  6. 대상 아래에서 자동으로 생성된 대상을 확인할 수 있습니다. 편집을 선택합니다.

    1. 리소스 유형aws:ec2:subnet인지 확인하세요.

    2. 대상 메서드에서 리소스 ID를 선택한 다음, 사전 조건 단계에서 Amazon EC2 인스턴스를 생성할 때 사용한 서브넷을 선택합니다.

    3. 선택 모드모두인지 확인하세요.

    4. 저장(Save)을 선택합니다.

  7. 다음을 선택하여 3단계, 서비스 액세스 구성으로 이동합니다.

  8. 서비스 액세스에서 이 자습서의 사전 조건에 설명된 대로 생성한 IAM 역할을 선택합니다. 역할이 표시되지 않는 경우 해당 역할에 필요한 신뢰 관계가 있는지 확인하세요. 자세한 내용은 AWS FIS 실험을 위한 IAM 역할 단원을 참조하십시오.

  9. 다음을 선택하여 4단계, 선택적 설정 구성으로 이동합니다.

  10. (선택 사항) 중지 조건 아래에서 조건이 발생할 경우 실험을 중단할 CloudWatch 경보를 선택할 수 있습니다. 자세한 내용은 AWS FIS의 중지 조건을 참조하세요.

  11. (선택 사항) 로그에서 Amazon S3 버킷을 선택하거나 CloudWatch로 실험에 사용할 로그를 보낼 수 있습니다.

  12. 다음을 선택하여 5단계, 검토 및 생성으로 이동합니다.

  13. 템플릿을 검토하고 실험 템플릿 생성을 선택합니다. 확인 메시지가 표시되면 create를 입력한 다음 실험 템플릿 생성을 선택합니다.

2단계: Amazon S3 엔드포인트에 대해 핑 전송

Amazon EC2 인스턴스가 Amazon S3 엔드포인트에 도달할 수 있는지 확인하세요.

  1. 사전 조건 단계에 만든 Amazon EC2 인스턴스에 연결합니다.

    문제 해결을 위해 Amazon EC2 사용 설명서인스턴스 연결 문제 해결을 참조하세요.

  2. 인스턴스가 AWS 리전 있는를 확인합니다. 이렇게 하려면 Amazon EC2 콘솔에 있거나 다음 명령을 실행합니다.

    hostname

    예를 들어 us-west-2에서 Amazon EC2 인스턴스를 시작한 경우 다음과 같은 출력이 표시됩니다.

    [ec2-user@ip-172.16.0.0 ~]$ hostname ip-172.16.0.0.us-west-2.compute.internal
  3. 에서 Amazon S3 엔드포인트 핑 AWS 리전. AWS 리전을 해당 리전으로 바꿉니다.

    ping -c 1 s3.AWS 리전.amazonaws.com

    출력의 경우 다음 예제와 같이 핑에 성공하여 패킷 손실이 0% 인 것을 볼 수 있습니다.

    PING s3.us-west-2.amazonaws.com (x.x.x.x) 56(84) bytes of data. 64 bytes from s3-us-west-2.amazonaws.com (x.x.x.x: icmp_seq=1 ttl=249 time=1.30 ms --- s3.us-west-2.amazonaws.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 1.306/1.306/1.306/0.000 ms

3단계: AWS FIS 실험 시작

방금 만든 실험 템플릿으로 실험을 시작합니다.

  1. https://console.aws.amazon.com/fis/ AWS FIS 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 실험 템플릿을 선택합니다.

  3. 만든 실험 템플릿의 ID를 선택하여 세부 정보 페이지를 엽니다.

  4. 실험 시작을 선택합니다.

  5. (선택 사항) 확인 페이지에서 실험에 사용할 태그를 추가합니다.

  6. 확인 페이지에서 실험 시작을 선택합니다.

4단계: AWS FIS 실험 진행 상황 추적

실험이 완료, 중지 또는 실패할 때까지 진행 중인 실험의 진행 상황을 추적할 수 있습니다.

  1. 방금 시작한 실험의 세부정보 페이지로 이동해야 합니다. 그렇지 않은 경우 실험을 선택한 다음 실험의 ID를 선택하여 해당 세부정보 페이지를 여세요.

  2. 실험 상태를 보려면 세부 정보 창에서 상태를 확인하세요. 자세한 내용은 실험 상태를 참조하세요.

  3. 실험 상태가 실행 중이면 다음 단계로 이동합니다.

5단계: Amazon S3 네트워크 중단 확인

Amazon S3 엔드포인트에 핑을 보내 실험 진행 상황을 확인할 수 있습니다.

  • Amazon EC2 인스턴스에서 사용자 AWS 리전의 Amazon S3 엔드포인트에 핑을 보냅니다. AWS 리전을 해당 리전으로 바꿉니다.

    ping -c 1 s3.AWS 리전.amazonaws.com

    출력의 경우 다음 예제와 같이 핑에 실패하여 패킷 손실이 100% 인 것을 볼 수 있습니다.

    ping -c 1 s3.us-west-2.amazonaws.com PING s3.us-west-2.amazonaws.com (x.x.x.x) 56(84) bytes of data. --- s3.us-west-2.amazonaws.com ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms

5단계: 정리

이 실험을 위해 만든 Amazon EC2 인스턴스나 AWS FIS 템플릿이 더 이상 필요하지 않은 경우 이 인스턴스를 제거할 수 있습니다.

Amazon EC2 인스턴스를 제거하려면
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 Instances(인스턴스)를 선택합니다.

  3. 테스트 인스턴스를 선택하고 인스턴스 상태, 인스턴스 종료를 차례로 선택합니다.

  4. 확인 메시지가 나타나면 종료를 선택합니다.

AWS FIS 콘솔을 사용하여 실험 템플릿을 삭제하려면
  1. https://console.aws.amazon.com/fis/ AWS FIS 콘솔을 엽니다.

  2. 탐색 창에서 실험 템플릿을 선택합니다.

  3. 실험 템플릿을 선택한 다음 작업, 실험 템플릿 삭제를 선택합니다.

  4. 확인 메시지가 나타나면 delete를 입력한 다음 실험 템플릿 삭제를 선택합니다.