

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

# AWS Glue
<a name="automation-ref-glu"></a>

 AWS Systems Manager 자동화는에 대한 사전 정의된 실행서를 제공합니다 AWS Glue. 실행서에 대한 자세한 내용은 [실행서 작업](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html)을 참조하세요. 실행서 콘텐츠를 보는 방법에 대한 자세한 내용은 [실행서 콘텐츠 보기](automation-runbook-reference.md#view-automation-json)(을)를 참조하세요.

**Topics**
+ [`AWSSupport-TroubleshootGlueConnection`](automation-awssupport-troubleshootglueconnection.md)

# `AWSSupport-TroubleshootGlueConnection`
<a name="automation-awssupport-troubleshootglueconnection"></a>

 **설명** 

 **AWSSupport-TroubleshootGlueConnections** 실행서는 AWS Glue 연결 문제를 해결하는 데 도움이 됩니다. 테스트된 연결의 대상은 JDBC 연결을 통해 도달해야 하며 Amazon Relational Database Service(RDS) 클러스터/인스턴스, Amazon Redshift 클러스터 또는 JDBC를 통해 액세스할 수 있는 기타 대상일 수 있습니다. 처음 두 경우에서 Reachability Analyzer 도구를 사용하여 소스(AWS Glue)와 대상(Amazon RDS 또는 Amazon Redshift) 간의 연결이 부여되는지 확인합니다.

 연결 대상이 Amazon RDS 또는 Amazon Redshift가 아닌 경우에도 연결과 동일한 서브넷(네트워크 존재 지점)에 AWS Lambda 함수를 생성하고 대상 이름을 확인할 수 있는지, 대상 포트에서 연결할 수 있는지 확인하여 AWS Glue 연결을 테스트합니다.

**중요**  
 [Reachability Analyzer](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 검사를 실행하기 위해 각 연결의 데이터 소스 서브넷에 [ 탄력적 네트워크 인터페이스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)가 생성됩니다. 이 자동화를 실행하기 전에 해당 서브넷에 충분한 무료 IPs가 있고 한 IP의 소비가 워크로드에 영향을 미치지 않는지 확인하세요.

**중요**  
 이 자동화로 생성된 모든 리소스에는 태그를 지정하여 쉽게 찾을 수 있습니다. 사용되는 태그는 다음과 같습니다.  
 `AWSSupport-TroubleshootGlueConnection`: true 
 `AutomationExecutionId`: *Amazon EC2 Systems Manager 실행 ID* 

 **어떻게 작동하나요?**

 실행서는 다음 단계를 수행합니다.
+  AWS Glue 연결 확인을 위한 소스 정보(서브넷 및 보안 그룹)를 가져오는 연결을 설명합니다.
+ JDBC URL에서 참조되는 데이터 소스 또는 존재하는 경우 `DatasourceSecurityGroups` 및 `DatasourceSubnets` 파라미터에서 대상 정보(서브넷 및 보안 그룹)를 가져옵니다.
+ JDBC URL에 있는 데이터 소스가 Amazon RDS 인스턴스 또는 클러스터이거나 Amazon Redshift 클러스터인 경우이 자동화는 이전 단계에서 수집된 소스 및 대상 정보를 모두 사용하여 ENIs를 생성하고 Reachability Analyzer를 사용하여 이들 간의 연결 확인을 수행합니다.
+ Lambda 함수(이 자동화의 맥락에서 네트워크 존재 지점)는 L4 연결 및 이름 확인 검사를 수행하는 데 사용됩니다.
+ 동일한 Lambda 함수를 사용하여 Amazon S3 엔드포인트에 대한 검사를 수행합니다.
+ 정책 시뮬레이터는 연결에 사용되는 IAM 역할에 필요한 권한이 있는지 확인하는 데 사용됩니다.
+ 자동화는 연결에 사용되는 보안 그룹에 예상 구성이 있는지 확인합니다.
+ 테스트 연결 작업 실패의 가능한 원인 및/또는 수행된 성공한 테스트가 포함된 보고서가 생성됩니다.

 [이 자동화 실행(콘솔)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootGlueConnection) 

**문서 유형**

자동화

**소유자**

Amazon

**플랫폼**

/

**필수 IAM 권한**

실행서를 성공적으로 사용하려면 `AutomationAssumeRole` 파라미터에 다음 작업이 필요합니다.
+  `cloudformation:CreateStack` 
+  `cloudformation:DeleteStack` 
+  `ec2:CreateNetworkInsightsPath` 
+  `ec2:CreateNetworkInterface` 
+  `ec2:CreateTags` 
+  `ec2:DeleteNetworkInsightsAnalysis` 
+  `ec2:DeleteNetworkInsightsPath` 
+  `ec2:DeleteNetworkInterface` 
+  `ec2:StartNetworkInsightsAnalysis` 
+  `iam:AttachRolePolicy` 
+  `iam:CreateRole` 
+  `iam:DeleteRole` 
+  `iam:DeleteRolePolicy` 
+  `iam:DetachRolePolicy` 
+  `iam:PutRolePolicy` 
+  `iam:TagRole` 
+  `lambda:CreateFunction` 
+  `lambda:DeleteFunction` 
+  `lambda:TagResource` 
+  `logs:CreateLogGroup` 
+  `logs:DeleteLogGroup` 
+  `logs:PutRetentionPolicy` 
+  `logs:TagResource` 
+  `glue:GetConnection` 
+  `glue:GetDataCatalogEncryptionSettings` 
+  `cloudformation:DescribeStacks` 
+  `cloudformation:DescribeStackEvents` 
+  `ec2:DescribeDhcpOptions` 
+  `ec2:DescribeNetworkInsightsPaths` 
+  `ec2:DescribeNetworkInsightsAnalyses` 
+  `ec2:DescribeSecurityGroupRules` 
+  `ec2:DescribeSecurityGroups` 
+  `ec2:DescribeSubnets` 
+  `ec2:DescribeVpcs` 
+  `ec2:DescribeVpcAttribute` 
+  `iam:GetRole` 
+  `iam:ListAttachedRolePolicies` 
+  `iam:SimulatePrincipalPolicy` 
+  `kms:DescribeKey` 
+  `lambda:InvokeFunction` 
+  `lambda:GetFunction` 
+  `s3:GetEncryptionConfiguration` 
+  `iam:PassRole` 

**중요**  
 위에서 언급한 작업 외에도 [Reachability Analyzer](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 테스트가 성공적으로 수행되도록 에는 [ AmazonVPCReachabilityAnalyzerFullAccessPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonVPCReachabilityAnalyzerFullAccessPolicy.html)가 [ 연결된 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)으로 `AutomationAssumeRole` 있어야 합니다.

다음은에 부여할 수 있는 정책의 예입니다`AutomationAssumeRole`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "TaggedAWSResourcesPermissions",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true"
                }
            },
            "Action": [
                "iam:AttachRolePolicy",
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DetachRolePolicy",
                "iam:TagRole",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:TagResource",
                "logs:DeleteLogGroup",
                "logs:CreateLogGroup",
                "logs:PutRetentionPolicy",
                "logs:TagResource",
                "cloudformation:CreateStack",
                "cloudformation:DeleteStack"
            ],
            "Resource": "*"
        },
        {
            "Sid": "TaggedEC2ResourcesPermissions",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true"
                }
            },
            "Action": [
                "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
        },
        {
            "Sid": "PutRolePolicy",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "iam:ResourceTag/AWSSupport-TroubleshootGlueConnection": "true"
                }
            },
            "Action": [
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "InvokeFunction",
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": "arn:*:lambda:*:*:function:point-of-presence-*"
        },
        {
            "Sid": "UnTaggedActions",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInsightsPath",
                "ec2:DeleteNetworkInsightsAnalysis",
                "ec2:DeleteNetworkInsightsPath",
                "ec2:CreateNetworkInterface",
                "ec2:CreateTags",
                "ec2:StartNetworkInsightsAnalysis",
                "glue:GetConnection",
                "glue:GetDataCatalogEncryptionSettings",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackEvents",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeNetworkInsightsPaths",
                "ec2:DescribeNetworkInsightsAnalyses",
                "ec2:DescribeSecurityGroupRules",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeVpcs",
                "ec2:DescribeVpcAttribute",
                "iam:GetRole",
                "iam:ListAttachedRolePolicies",
                "iam:SimulatePrincipalPolicy",
                "kms:DescribeKey",
                "lambda:GetFunction",
                "s3:GetEncryptionConfiguration"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": "arn:*:iam::*:role/point-of-presence-*",
            "Condition": {
                "StringLikeIfExists": {
                    "iam:PassedToService": "lambda.amazonaws.com"
                }
            }
        }
    ]
}
```

------

 **지침** 

다음 단계에 따라 자동화를 구성합니다.

1. Systems Manager[https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootGlueConnection/description](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootGlueConnection/description)의 문서로 이동합니다.

1. Execute automation(자동화 실행)을 선택합니다.

1. 입력 파라미터에 다음을 입력합니다.
   +  **AutomationAssumeRole(선택 사항):** 

      Systems Manager Automation이 사용자를 대신하여 작업을 수행하도록 허용하는 (IAM) 역할의 Amazon 리소스 이름 AWS AWS Identity and Access Management (ARN)입니다. 역할이 지정되지 않은 경우 Systems Manager Automation은이 실행서를 시작하는 사용자의 권한을 사용합니다.
   +  **TestConnectionRole(필수)** 

      연결 테스트 중에 사용되는 IAM 역할의 Amazon 리소스 이름(ARN)입니다.
   +  **ConnectionName(필수)** 

      AWS Glue 문제를 해결하려는 테스트 연결 이름이 실패했습니다.
   +  **PersistReachabilityAnalyzerResults(선택 사항)** 

      Reachability Analyzer 실행 결과를 유지해야 하는지 여부를 알리는 플래그입니다. 기본값: `false.` 
   +  **PointOfPresenceLogRetentionPeriod(선택 사항)** 

      현재 위치 Lambda에 대한 로그가 저장되는 일수입니다. 기본값: `7`.
   +  **DatasourceSubnets(선택 사항)** 

      원래 데이터 소스를 사용할 수 없는 경우이 파라미터를 사용하여 연결 테스트가 계속 수행되도록 사용한 서브넷을 제공합니다. 와 함께 사용해야 **합니다**`DatasourceSecurityGroups`. 예시: `subnet-1,subnet-2`.
   +  **DatasourceSecurityGroups(선택 사항)** 

      원래 데이터 소스를 사용할 수 없는 경우이 파라미터를 사용하여 연결 테스트가 계속 수행되도록 사용한 보안 그룹을 제공합니다. 와 함께 사용해야 **합니다**`DatasourceSubnets`. 예시: `sg-1,sg-2`.  
![\[Input parameters form for AWS Glue connection troubleshooting with various configuration options.\]](http://docs.aws.amazon.com/ko_kr/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshootglueconnection_input_parameters.png)

1. 실행을 선택합니다.

1. 자동화가 시작됩니다.

1. 자동화 실행서는 다음 단계를 수행합니다.
   +  **ParseInputs:** 

      이 단계에서는 입력 조합을 검증합니다. `DatasourceSecurityGroups` 및 `DatasourceSubnets`가 모두 제공되면 유효하며 그대로 반환됩니다. 아무 것도 제공되지 않으면 두 개의 빈 목록이 반환됩니다. 이 중 하나만 제공되면 단계에서가 발생합니다`ValueException`.
   +  **GetConnectionDetails:** 

     이 단계에서는 제공된 AWS Glue 연결의 세부 정보를 반환합니다.
   +  **ParseSecurityGroupList:** 

      이 단계는이 자동화`SecurityGroupIdList`에서 나중에 사용할 `String` 수 있도록의를 연결하는 데 사용됩니다.
   +  **GetConnectionData:** 

      JDBC URL을 기반으로 , `RedShift` `RdsInstance` `RdsCluster` 및 간의 연결 유형을 결정합니다`Other`. 또한는 JDBC 연결에 사용되는 도메인 및 포트, 연결의 Amazon VPC 및 해당 도메인 이름 서버를 반환합니다.
   +  **GetNetworkDetails:** 

      Amazon RDS 또는 Amazon Redshift 대상에서 서브넷 및 보안 그룹 정보를 가져옵니다.
   +  **CreateENITemplate:** 

      연결을 테스트하는 데 사용되는 네트워크 인터페이스를 생성하는 데 사용되는 AWS CloudFormation 템플릿을 생성합니다. Reachability Analyzer 도구를 실행하는 데 필요합니다.
   +  **CreateENIStack:** 

      이전 단계에서 생성한 템플릿에서 CloudFormation 스택을 생성합니다.
   +  **GetStackDetails:** 

      이전 CloudFormation 스택에서 생성된 스택을 설명하고 `SourceNetworkInterface` `TargetNetworkInterfaces` 정보를 검색합니다.
   +  **RunSourceToTargetCheck:** 

      Reachability Analyzer 도구를 사용하여 이전 단계에서 생성된 소스 및 대상 ENIs 간에 검사를 실행합니다.
   +  **DeleteENIStack:** 

     네트워크 인터페이스를 생성하는 CloudFormation 스택을 삭제합니다.
   +  **CreateNetworkPointOfPresence:** 

      CloudFormation 는 네트워크 존재 지점으로 사용되는 Lambda 함수를 생성합니다.
   +  **GetFunctionName:** 

      CloudFormation 설명 스택 API 호출을 수행하여 이전 단계에서 생성된 Lambda 함수의 이름을 검색합니다.
   +  **RunEndpointChecks:** 

      네트워크 존재 지점을 사용하여 JDBC 연결에 있는 엔드포인트가 선언된 포트에서 확인 가능하고 연결할 수 있는지 확인합니다.
   +  **CheckS3Connectivity:** 

      Amazon S3 서비스에 대한 AWS Glue 연결에서 네트워크 연결을 확인합니다.
   +  **DeletePointOfPresence:** 

      네트워크 존재 지점 Lambda를 생성하는 CloudFormation 스택을 삭제합니다.
   +  **TestIAMRolePermissions:** 

      테스트에 사용되는 IAM 역할에 이를 실행하는 데 필요한 권한이 있는지 확인합니다.
   +  **CheckConnectionSecurityGroupReferencingRule:** 

      AWS Glue 연결에 사용되는 보안 그룹이 자체로부터의 모든 수신 트래픽을 허용하는지 확인합니다. 이 규칙이 없는 경우 보안 그룹 목록이 반환됩니다.
   +  **GenerateReport:** 

      결과 목록(연결 테스트 실패의 가능한 이유)과 다음 단계(연결 테스트 실패 해결 시도)가 포함된 보고서를 생성합니다.

1. 완료되면 출력 섹션에서 실행의 자세한 결과를 검토합니다.
   +  **자동화 결과** 

      이 단원에서는 테스트 연결 작업이 실패할 수 있는 원인(조사 결과)과 이를 해결하는 방법(다음 단계)을 설명하는 시나리오를 살펴봅니다. 자동화가 테스트 실패의 원인을 찾을 수 없는 경우이 단원에서도 이를 알립니다.
   +  **성공적인 테스트** 

      이 섹션에서는이 자동화에서 성공적으로 테스트한 내용을 알려주는 시나리오를 확인할 수 있습니다. 성공한 테스트는 테스트 연결 실패의 원인을 식별할 수 없는 경우 문제의 원인을 알려 조사 범위를 줄일 수 있으므로 유용합니다.
   +  **자동화 오류** 

      이 섹션에서는 자동화가 수행할 수 있는 테스트 수를 제한했을 수 있는 자동화 중에 발생한 문제를 설명하는 시나리오를 살펴봅니다. 시나리오에 대한 설명은 실패한 단계를 알려줍니다.  
![\[Troubleshooting results for AWS Glue connection issues with DNS resolution and IAM role problems.\]](http://docs.aws.amazon.com/ko_kr/systems-manager-automation-runbooks/latest/userguide/images/awssupport-troubleshootglueconnection_outputs.png)

 **참조** 

Systems Manager Automation
+  [이 자동화 실행(콘솔)](https://console.aws.amazon.com/systems-manager/documents/AWSSupport-TroubleshootGlueConnection/description) 
+  [자동화 실행](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-working-executing.html) 
+  [Automation 설정](https://docs.aws.amazon.com//systems-manager/latest/userguide/automation-setup.html) 
+  [Support Automation Workflows 랜딩 페이지](https://aws.amazon.com/premiumsupport/technology/saw/) 