

# 데이터 소스 연결 생성
<a name="connect-to-a-data-source"></a>

Athena 데이터 소스 커넥터를 사용하려면 커넥터 및 데이터 소스에 대한 연결 정보를 저장하는 AWS Glue 연결을 생성합니다. 연결을 생성할 때 SQL 쿼리에서 데이터 소스를 참조하는 데 사용할 이름을 데이터 소스에 지정합니다.

[콘솔](connect-to-a-data-source-console-steps.md) 또는 [CreateDataCatalog API](https://docs.aws.amazon.com/athena/latest/APIReference/API_CreateDataCatalog.html) 작업을 사용하여 Athena에서 데이터 소스 연결을 생성하고 구성할 수 있습니다.

**Topics**
+ [Athena에서 데이터 소스를 생성하고 사용할 수 있는 권한](connect-to-a-data-source-permissions.md)
+ [Athena 콘솔을 사용하여 데이터 소스에 연결](connect-to-a-data-source-console-steps.md)
+ [AWS Serverless Application Repository을 사용하여 데이터 소스 커넥터 배포](connect-data-source-serverless-app-repo.md)
+ [데이터 소스 커넥터 또는 AWS Glue 연결용 VPC 생성](athena-connectors-vpc-creation.md)
+ [AWS 계정으로 ECR 이미지 가져오기](pull-ecr-customer-account.md)
+ [연결을 Glue 데이터 카탈로그로 등록](register-connection-as-gdc.md)
+ [교차 계정 페더레이션 쿼리 활성화](xacct-fed-query-enable.md)
+ [데이터 소스 커넥터 업데이트](connectors-updating.md)

# Athena에서 데이터 소스를 생성하고 사용할 수 있는 권한
<a name="connect-to-a-data-source-permissions"></a>

데이터 소스를 생성하고 사용하려면 다음 권한 집합이 필요합니다.
+ AmazonAthenaFullAccess는 Amazon Athena에 대한 전체 액세스 권한과 쿼리, 결과 작성, 데이터 관리를 활성화하는 데 필요한 종속 항목에 대한 범위 지정 액세스 권한을 제공합니다. 자세한 내용은 AWS 관리형 정책 참조 안내서의 [AmazonAthenaFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html)를 참조하세요.
+ CreateDataCatalog API를 호출할 수 있는 권한입니다. 이러한 권한은 Glue 연결과 통합되는 데이터 소스를 생성할 때만 필요합니다. 예제 정책에 대한 자세한 내용은 [커넥터 및 Athena 카탈로그를 생성하기 위해 필요한 권한](athena-catalog-access.md) 섹션을 참조하세요.
+ Lake Formation의 세분화된 액세스 제어를 사용하려면 위에 나열된 권한 외에 다음 권한도 필요합니다.

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

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Effect": "Allow",
        "Action": [
          "lakeformation:RegisterResource",
          "iam:ListRoles",
          "glue:CreateCatalog",
          "glue:GetCatalogs",
          "glue:GetCatalog"
        ],
        "Resource": "*"
      }
    ]
  }
  ```

------

# Athena 콘솔을 사용하여 데이터 소스에 연결
<a name="connect-to-a-data-source-console-steps"></a>

Athena 콘솔을 사용하여 데이터 소스 연결을 생성하고 구성할 수 있습니다.

**데이터 소스에 대한 연결을 생성하려면**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.  
![\[확장 메뉴를 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/nav-pane-expansion.png)

1. 탐색 창에서 **데이터 소스 및 카탈로그**를 선택합니다.

1. **데이터 소스 및 카탈로그** 페이지에서 **데이터 소스 생성**을 선택합니다.

1. **데이터 원본 선택(Choose data source)**에서 다음 지침을 고려하여 <shared id="ATE"/>에서 쿼리할 데이터 원본을 선택합니다.
   + 데이터 소스에 해당하는 연결 옵션을 선택합니다. Athena에는 MySQL, Amazon DocumentDB 및 PostgreSQL을 포함한 소스에 대해 구성할 수 있는 사전 구축된 데이터 원본 커넥터가 있습니다.
   + Amazon S3에서 데이터를 쿼리하려고 하고 이 페이지에서 Apache Hive 메타스토어 또는 다른 연동 쿼리 데이터 원본 옵션 중 하나를 사용하고 있지 않은 경우 **S3 - AWS Glue Data Catalog**를 선택합니다. Athena는 AWS Glue Data Catalog를 사용하여 Amazon S3의 데이터 원본에 대한 메타데이터 및 스키마 정보를 저장합니다. 이것은 기본(비연합) 옵션입니다. 자세한 내용은 [AWS Glue Data Catalog을 사용하여 데이터에 연결](data-sources-glue.md) 섹션을 참조하세요. 이 워크플로를 사용하는 단계는 [Athena에 데이터 카탈로그 등록 및 사용](gdc-register.md) 섹션을 참조하세요.
   + **S3 - Apache Hive 메타스토어(S3 - Apache Hive metastore)**를 선택하여 Apache Hive 메타스토어를 사용하는 Amazon S3의 데이터 집합을 쿼리합니다. 이 옵션에 대한 자세한 내용은 [Apache Hive 메타스토어에 Athena 연결](connect-to-data-source-hive-connecting-athena-to-an-apache-hive-metastore.md) 섹션을 참조하세요.
   + <shared id="ATE"/>에서 사용할 고유한 데이터 원본 커넥터를 생성하려면 **사용자 정의 또는 고유 데이터(Custom or shared data)**을 선택합니다. 데이터 원본 커넥터 작성에 대한 정보에 대한 자세한 내용은 [Athena Query Federation SDK를 사용하여 데이터 소스 커넥터 개발](connect-data-source-federation-sdk.md) 섹션을 참조하세요.

1. **다음**을 선택합니다.

1. **데이터 소스 세부 정보 입력** 페이지의 **데이터 소스 이름**에서 자동 생성된 이름을 사용하거나 Athena에서 데이터 소스를 쿼리할 때 SQL 문에 사용할 고유 이름을 입력합니다. 이름은 127자까지 입력할 수 있으며 계정 내에서 고유해야 합니다. 생성 후에는 변경할 수 없습니다. 유효한 문자는 a-z, A-Z, 0-9, \$1(밑줄), @(앰퍼샌드) 및 -(하이픈)입니다. `awsdatacatalog`, `hive`, `jmx`, `system` 이름은 Athena에 예약되어 있으므로 데이터 원본 이름에 사용할 수 없습니다.

1. 선택한 데이터 소스가 AWS Glue 연결과 통합되는 경우.

   1. **AWS Glue 연결 세부 정보**에 필요한 정보를 입력합니다. 특정 데이터 소스에 연결하는 데 필요한 속성을 포함하는 연결입니다. 필요한 속성은 연결 유형에 따라 다릅니다. 커넥터와 관련된 속성에 대한 자세한 내용은 [사용 가능한 데이터 소스 커넥터](connectors-available.md) 섹션을 참조하세요. 추가 연결 속성에 대한 자세한 내용은 *AWS Glue 사용 설명서*의 [AWS Glue 연결 속성](https://docs.aws.amazon.com/glue/latest/dg/connection-properties.html)을 참조하세요.
**참고**  
Glue 연결 속성을 업데이트할 때 업데이트된 속성을 가져오려면 Lambda 커넥터를 다시 시작해야 합니다. 이렇게 하려면 환경 속성을 편집한 다음 실제로 아무 것도 변경하지 않은 상태로 저장합니다.
Glue 연결을 업데이트하면 해당 Lambda 함수에서 다음 속성이 자동으로 업데이트되지 않습니다. 이러한 속성에 대해 Lambda 함수를 수동으로 업데이트해야 합니다.  
Lambda VPC 구성 – `security_group_ids`, `subnet_ids` 
Lambda 실행 역할 – `spill_bucket`, `secret_name`, `spill_kms_key_id` 

   1. **Lambda 실행 IAM 역할**의 경우 다음 중 하나를 선택합니다.
      + **새 실행 역할 생성 및 사용** - (기본값) Athena는 사용자를 대신하여 AWS Lambda의 리소스에 액세스하는 데 사용할 실행 역할을 생성합니다. Athena에서 페더레이션된 데이터 소스를 생성하려면 이 역할이 필요합니다.
      + **기존 실행 역할 사용** - 이 옵션을 사용하여 기존 실행 역할을 선택합니다. 이 옵션의 경우 **실행 역할** 드롭다운에서 사용하려는 실행 역할을 선택합니다.

1. 선택한 데이터 소스가 AWS Glue 연결과 통합되지 않는 경우.

   1. **Lambda 함수**에 대해 **Lambda 함수 생성**을 선택합니다. 선택한 커넥터의 함수 페이지가 AWS Lambda 콘솔에서 열립니다. 이 페이지에는 커넥터에 대한 자세한 정보가 포함되어 있습니다.

   1. **애플리케이션 설정(Application settings)**에서 각 애플리케이션 설정에 관한 설명을 신중히 읽은 다음 필요에 따라 값을 입력합니다.

      표시되는 애플리케이션 설정은 데이터 원본의 커넥터에 따라 다릅니다. 최소한의 필수 설정은 다음과 같습니다.
      + **AthenaCatalogName** – `cloudwatchlogs`와 같이 대상으로 하는 데이터 원본을 나타내는 소문자로 된 Lambda 함수의 이름입니다.
      + **SpillBucket** – Lambda 함수 응답 크기 제한을 초과하는 데이터를 저장하기 위한 계정의 Amazon S3 버킷입니다.
**참고**  
유출된 데이터는 후속 실행에서 재사용되지 않으며 안전하게 삭제할 수 있습니다. Athena는 이 데이터를 삭제하지 않습니다. Amazon S3 유출 버킷에서 이전 데이터를 삭제하는 객체 수명 주기 정책을 추가하여 이러한 객체를 관리하는 것이 좋습니다. 자세한 내용은 Amazon S3 사용 설명서의 [스토리지 수명 주기 관리](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html)를 참조하세요.

   1. **이 앱이 사용자 지정 IAM 역할 및 리소스 정책을 생성하는 것을 확인(I acknowledge that this app creates custom IAM roles and resource policies)**을 선택합니다. 자세한 내용을 보려면 **정보** 링크를 선택하세요.

   1. **배포(Deploy)**를 선택합니다. 배포가 완료되면 Lambda 콘솔의 **리소스** 섹션에 Lambda 함수가 나타납니다.

      계정에 데이터 원본 커넥터를 배포한 후 Athena를 연결할 수 있습니다.

   1. <shared id="ATE"/> 콘솔의 **데이터 원본 입력(Enter data sources)** 페이지로 돌아갑니다.

   1. **연결 세부 정보(Connection details)**섹션에서 **Lambda 함수 선택 또는 입력** 검색 상자 옆에 있는 새로 고침 아이콘을 선택합니다.

   1. Lambda 콘솔에서 방금 생성한 함수의 이름을 선택합니다. Lambda 함수의 ARN이 표시됩니다.

1. (선택 사항) **태그(Tags)**에 대해 이 데이터 원본과 연결할 키-값 페어를 추가합니다. 태그에 대한 자세한 내용은 [Athena 리소스 태깅](tags.md) 섹션을 참조하세요.

1. **다음**을 선택합니다.

1. **검토 및 생성** 페이지에서 데이터 소스의 세부 정보를 검토합니다. 변경하려면 **편집**을 선택합니다.

1. **Athena가 계정에 리소스 생성**의 정보를 읽어보세요. 동의하는 경우 **Athena가 본인을 대신하여 리소스를 생성할 것임을 확인합니다**를 선택합니다.

1. **데이터 소스 생성**을 선택합니다. **Athena**가 다음과 같은 리소스를 대신 생성합니다.
   + Lambda 실행 IAM 역할
   + AWS Glue 연결(데이터 소스가 AWS Glue 연결과 호환되는 경우에만 해당)
   + Lambda 함수

**데이터 원본 세부 정보(Data source details)** 페이지 섹션에는 새 커넥터에 대한 정보가 표시됩니다. 이제 <shared id="ATE"/> 쿼리에 커넥터를 사용할 수 있습니다.

쿼리에서 데이터 커넥터 사용에 대한 자세한 내용은 [페더레이션 쿼리 실행](running-federated-queries.md) 섹션을 참조하세요.

# AWS Serverless Application Repository을 사용하여 데이터 소스 커넥터 배포
<a name="connect-data-source-serverless-app-repo"></a>

데이터 소스 커넥터를 배포하려면 AWS Glue 연결 대신 [AWS Serverless Application Repository](https://aws.amazon.com/serverless/serverlessrepo/)을 사용할 수 있습니다.

**참고**  
사용자 지정 커넥터가 있거나 이전 커넥터를 사용해야 하는 경우에만 SAR을 사용하는 것이 좋습니다. 그렇지 않은 경우 Athena 콘솔 사용을 권장합니다.

AWS Serverless Application Repository로 사용할 커넥터를 찾고 커넥터에 필요한 파라미터를 제공한 다음 계정에 커넥터를 배포할 수 있습니다. 그런 다음 커넥터를 배포한 후 Athena 콘솔을 사용하여 Athena에서 데이터 원본을 사용할 수 있도록 합니다.

## 계정에 커넥터 배포
<a name="connect-data-source-serverless-app-repo-deploying"></a>

**AWS Serverless Application Repository을 사용하여 데이터 원본 커넥터를 계정에 배포하려면**

1. AWS Management Console에 로그인하고 **서버리스 앱 리포지토리**를 엽니다.

1. 탐색 창에서 **사용 가능한 애플리케이션**을 선택합니다.

1. **사용자 지정 IAM 역할 또는 리소스 정책을 만드는 앱 표시(Show apps that create custom IAM roles or resource policies)** 옵션을 선택합니다.

1. 검색 상자에 커넥터 이름을 입력합니다. 사전 구축된 Athena 데이터 커넥터의 목록은 [사용 가능한 데이터 소스 커넥터](connectors-available.md) 단원을 참조하세요.

1. 커넥터의 이름을 선택합니다. 커넥터를 선택하면 AWS Lambda 콘솔에서 Lambda 함수의 **애플리케이션 세부 정보(Application details)** 페이지가 열립니다.

1. 세부 정보 페이지 오른쪽의 **애플리케이션 설정(Application settings)**에서 필수 정보를 입력합니다. 최소 필수 설정은 다음과 같습니다. Athena에서 구축한 데이터 커넥터의 나머지 구성 가능한 옵션에 대한 자세한 내용은 GitHub의 [사용 가능한 커넥터](https://github.com/awslabs/aws-athena-query-federation/wiki/Available-Connectors) 주제를 참조하세요.
   + **AthenaCatalogName** – `cloudwatchlogs`와 같이 대상으로 하는 데이터 원본을 나타내는 소문자로 된 Lambda 함수의 이름입니다.
   + **SpillBucket** – Lambda 함수 응답 크기 제한을 초과하는 대규모 응답 페이로드에서 데이터를 수신하도록 계정에 Amazon S3 버킷을 지정합니다.

1. **이 앱이 사용자 지정 IAM 역할 및 리소스 정책을 생성하는 것을 확인(I acknowledge that this app creates custom IAM roles and resource policies)**을 선택합니다. 자세한 내용을 보려면 **정보** 링크를 선택하세요.

1. **애플리케이션 설정(Application settings)** 섹션의 오른쪽 하단에서 **배포(Deploy)**를 선택합니다. 배포가 완료되면 Lambda 콘솔의 **리소스** 섹션에 Lambda 함수가 나타납니다.

## Athena에서 커넥터 사용 설정
<a name="connect-data-source-serverless-app-repo-making-the-connector-available-in-athena"></a>

<shared id="ATE"/> 콘솔을 사용하여 <shared id="ATE"/>에서 데이터 원본을 사용할 수 있도록 합니다.

**<shared id="ATE"/> 콘솔을 사용하여 <shared id="ATE"/>에서 데이터 원본을 사용할 수 있도록 합니다.**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.  
![\[확장 메뉴를 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/nav-pane-expansion.png)

1. 탐색 창에서 **데이터 소스 및 카탈로그**를 선택합니다.

1. **데이터 소스 및 카탈로그** 페이지에서 **데이터 소스 생성**을 선택합니다.

1. **데이터 원본 선택**에서는 AWS Serverless Application Repository에서 커넥터를 생성한 데이터 원본을 선택합니다. 이 자습서에서는 **Amazon CloudWatch Logs**를 연합 데이터 원본으로 선택합니다.

1. **다음**을 선택합니다.

1. **데이터 원본 세부 정보 입력(Enter data source details)** 섹션의 **데이터 원본 이름(Data source name)**에 <shared id="ATE"/>에서 데이터 원본을 쿼리할 때 SQL 문에 사용할 이름을 입력합니다(예: `CloudWatchLogs`). 이름은 127자까지 입력할 수 있으며 계정 내에서 고유해야 합니다. 생성 후에는 변경할 수 없습니다. 유효한 문자는 a-z, A-Z, 0-9, \$1(밑줄), @(앰퍼샌드) 및 -(하이픈)입니다. `awsdatacatalog`, `hive`, `jmx`, `system` 이름은 Athena에 예약되어 있으므로 데이터 원본 이름에 사용할 수 없습니다.

1. **연결 세부 정보** 섹션에서, **Lambda 함수 선택 또는 입력** 상자를 사용해 방금 만든 함수의 이름을 선택합니다. Lambda 함수의 ARN이 표시됩니다.

1. (선택 사항) **태그(Tags)**에 대해 이 데이터 원본과 연결할 키-값 페어를 추가합니다. 태그에 대한 자세한 내용은 [Athena 리소스 태깅](tags.md) 섹션을 참조하세요.

1. **다음**을 선택합니다.

1. **검토 및 생성** 페이지에서 데이터 원본 세부 정보를 검토한 다음 **데이터 원본 생성**을 선택합니다.

1. **데이터 원본 세부 정보(Data source details)** 페이지 섹션에는 새 커넥터에 대한 정보가 표시됩니다. 이제 <shared id="ATE"/> 쿼리에 커넥터를 사용할 수 있습니다.

   쿼리에서 데이터 커넥터 사용에 대한 자세한 내용은 [페더레이션 쿼리 실행](running-federated-queries.md) 섹션을 참조하세요.

# 데이터 소스 커넥터 또는 AWS Glue 연결용 VPC 생성
<a name="athena-connectors-vpc-creation"></a>

일부 Athena 데이터 소스 커넥터 및 AWS Glue 연결은 VPC 및 보안 그룹이 필요합니다. 이 주제에서는 서브넷과 보안 그룹이 있는 VPC를 생성하는 방법을 보여줍니다. 이 과정의 일부로서 사용자가 생성하는 VPC, 서브넷, 보안 그룹에 대한 ID를 검색합니다. 이러한 ID는 Athena와 함께 사용하도록 AWS Glue 연결 또는 데이터 소스 커넥터를 구성할 때 필요합니다.

**Athena 데이터 원본 커넥터에 대한 VPC를 생성하려면**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)에서 Amazon VPC 콘솔을 엽니다.

1. **VPC 생성**을 선택합니다.

1. **VPC 생성** 페이지에서 **VPC 설정**의 **생성할 리소스**에서 **VPC 등**을 선택합니다.

1. **이름 태그 자동 생성**의 **자동 생성**에 VPC의 모든 리소스에 대한 이름 태그를 생성하는 데 사용할 값을 입력합니다.

1. **VPC 생성**을 선택합니다.

1. 프로세스가 완료되면 **VPC 보기**를 선택합니다.

1. **세부 정보(Details)** 섹션의 **VPC ID**에서 나중에 참조할 수 있도록 VPC ID를 복사합니다.

이제 방금 생성한 VPC의 서브넷 ID를 검색할 준비가 되었습니다.

**VPC 서브넷 ID를 검색하려면**

1. VPC 콘솔 탐색 창에서 **서브넷(Subnets)**을 선택합니다.

1. **VPC** 열에 기록해 둔 VPC ID가 있는 서브넷의 이름을 선택합니다.

1. **세부 정보(Details)** 섹션의 **서브넷 ID(Subnet ID)**에서 나중에 참조할 수 있도록 서브넷 ID를 복사합니다.

다음으로 VPC의 보안 그룹을 생성합니다.

**VPC의 보안 그룹을 생성하려면**

1. VPC 콘솔 탐색 창에서 **보안(Security)**, **보안 그룹(Security Groups)**을 선택합니다.

1. **보안 그룹 생성**을 선택합니다.

1. **보안 그룹 생성(Create security group)** 페이지에서 다음 정보를 입력합니다.
   + **보안 그룹 이름(Security group name)**에 보안 그룹의 이름을 입력합니다.
   + **설명(Description)**에 보안 그룹의 설명을 입력합니다. 설명이 필요합니다.
   + **VPC**에서 데이터 소스 커넥터에 대해 생성한 VPC의 VPC ID를 선택합니다.
   + **인바운드 규칙(Inbound rules)** 및 **아웃바운드 규칙(Outbound rules)**에 필요한 인바운드 및 아웃바운드 규칙을 추가합니다.

1. **보안 그룹 생성**을 선택합니다.

1. 보안 그룹의 **세부 정보(Details)** 페이지에서 나중에 참조할 수 있도록 **보안 그룹 ID(Security group ID)**를 복사합니다.

## VPC에서 Athena 커넥터를 사용하기 위한 중요 고려 사항
<a name="vpc-warning-instructions"></a>

모든 커넥터가 VPC를 사용할 수 있으므로 다음 지침은 모든 Athena 커넥터에 적용됩니다.

**참고**  
VPC에서 AWS Glue 연결을 사용하는 경우 다음 PrivateLink 엔드포인트를 설정해야 합니다.  
Amazon S3
AWS Glue
AWS Secrets Manager

또한 퍼블릭 인터넷 액세스를 사용할 수 있습니다. 하지만 보안상의 이유로 권장하지는 않습니다.

**주의**  
퍼블릭 인터넷 액세스를 사용하면 리소스가 추가 보안 위험에 노출될 수 있습니다. VPC 구성에서 보안 강화를 위해 PrivateLink 엔드포인트를 사용하는 것이 좋습니다.

# AWS 계정으로 ECR 이미지 가져오기
<a name="pull-ecr-customer-account"></a>

Athena 페더레이션 커넥터 Lambda 함수는 Athena 관리형 Amazon ECR 리포지토리에 저장된 컨테이너 이미지를 사용합니다. 이러한 컨테이너 이미지에서 보안 스캔을 수행하려면 먼저 해당 이미지를 계정의 Amazon ECR 리포지토리에 복사해야 합니다. 이 섹션에서는 이미지를 리포지토리에 복사하고 해당 이미지를 사용하도록 Lambda 함수를 구성하는 방법에 대한 단계별 지침을 제공합니다.

## 사전 조건
<a name="pull-ecr-customer-account-prereq"></a>
+ Athena 페더레이션 커넥터 - 컨테이너 이미지를 사용하는 경우 모든 소스를 통해 커넥터를 생성할 수 있습니다.
**참고**  
이미지 배포를 확인하려면 Athena 페더레이션 커넥터 Lambda의 이미지 탭을 확인하세요.
+ Docker 설치 및 실행 중
+ AWS CLI 설치
+ 적절한 풀 권한이 있는 계정 자격 증명

## 이미지를 전송하는 방법
<a name="image-transfer-procedure"></a>

1. Athena 페더레이션 커넥터 Lambda에서 이미지 URI 찾기  
**Example**  

   ```
   account_id_1.dkr.ecr.us-east-1.amazonaws.com/athena-federation-repository:2025.15.1
   ```

1. Athena 관리형 계정을 위한 Docker 인증 토큰을 생성합니다.

   ```
   aws ecr get-login-password --region regionID | docker login --username AWS --password-stdin athena-managed-registry
   ```

   위치:
   + *regionID*는 배포 리전입니다(예: us-east-1).
   + *athena-managed-registry*는 이미지 URI의 레지스트리 부분입니다(예: account\$1id\$11.dkr.ecr.us-east-1.amazonaws.com).

1. Athena 관리형 계정에서 이미지를 가져옵니다.

   ```
   docker pull athenaImageURI
   ```

1. 레지스트리에 Docker를 인증합니다.

   ```
   aws ecr get-login-password --region regionID | docker login --username AWS --password-stdin customer-registry
   ```

   여기서 *customer-registry*는 ECR 레지스트리(예: account\$1id\$12.dkr.ecr.us-east-1.amazonaws.com)입니다.

1. 가져온 이미지에 리포지토리 태그를 지정합니다.

   ```
   docker tag athenaImageURI yourImageURI
   ```

1. 리포지토리에 이미지를 푸시합니다.

   ```
   docker push yourImageURI
   ```

1. Athena 페더레이션 커넥터를 업데이트합니다.

   1. Lambda 함수로 이동합니다.

   1. **새 이미지 배포**를 선택합니다.

   1. 새 이미지 URI를 입력합니다.

   이제 Athena 페더레이션 커넥터 이미지가 계정에 있으므로 이미지에서 CVE 스캔을 수행할 수 있습니다.

# 연결을 Glue 데이터 카탈로그로 등록
<a name="register-connection-as-gdc"></a>

데이터 소스를 생성한 후 Athena 콘솔을 사용하여 연결을 Glue 데이터 카탈로그로 등록할 수 있습니다. 등록되면 Lake Formation을 사용하여 페더레이션된 데이터 카탈로그를 관리하고 세분화된 액세스 제어를 활성화할 수 있습니다. 자세한 내용은 [페더레이션된 카탈로그 생성](https://docs.aws.amazon.com/lake-formation/latest/dg/create-fed-catalog-data-source.html)을 참조하세요.

다음 커넥터를 등록하여 AWS Glue와 통합하고 세분화된 액세스 제어를 수행할 수 있습니다.
+ Redshift
+ BigQuery
+ DynamoDB(미리 보기)
+ Snowflake(미리 보기)
+ MySQL
+ PostgreSQL
+ AWS CMDB
+ Timestream
+ Azure Data Lake Storage
+ Azure Synapse
+ IBM DB2
+ IBM Db2 AS/400(Db2 iSeries)
+ DocumentDB
+ Google Cloud Storage
+ HBase
+ OpenSearch
+ Oracle
+ SAP HANA
+ SQL Server
+ TPC-DS
+ Cloudera Hive
+ Cloudwatch
+ CloudWatch 지표
+ Teradata
+ Vertica

## 사전 조건
<a name="register-connection-as-gdc-pre"></a>

시작하기 전에 다음과 같은 사전 조건을 완료해야 합니다.
+ 위치를 등록하는 데 필요한 역할과 권한이 있는지 확인합니다. 자세한 내용은 AWS Lake Formation 개발자 안내서의 [역할에 대한 요구 사항](https://docs.aws.amazon.com/lake-formation/latest/dg/registration-role.html)을 참조하세요.
+ 필요한 Lake Formation 역할이 있는지 확인합니다. 자세한 내용은 AWS Lake Formation 개발자 안내서의 [데이터 카탈로그를 외부 데이터 소스에 연결하기 위한 사전 조건](https://docs.aws.amazon.com/lake-formation/latest/dg/federated-catalog-data-connection.html)을 참조하세요.
+ Glue에 등록하는 역할에는 다음 예제에 나열된 권한이 있어야 합니다.

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket",
                  "s3:GetObject"
              ],
              "Resource": [
      "arn:aws:s3:::amzn-s3-demo-bucket/spill-prefix/*",
      "arn:aws:s3:::amzn-s3-demo-bucket/spill-prefix"
              ]
          },
          {
              "Sid": "lambdainvoke",
              "Effect": "Allow",
              "Action": "lambda:InvokeFunction",
              "Resource": "arn:aws:lambda:us-east-1:111122223333:function:lambda_function_name"
          },
          {
              "Sid": "gluepolicy",
              "Effect": "Allow",
              "Action": "glue:*",
              "Resource": [
              "arn:aws:glue:us-east-1:111122223333:connection/<connection_name>",
      "arn:aws:glue:us-east-1:111122223333:catalog"
              ]
          }
      ]
  }
  ```

------
+ 적절한 데이터 액세스를 결정하고 관리할 책임은 사용자에게 있습니다. 페더레이션 쿼리에 대한 세분화된 액세스 제어를 통해 [AmazonAthenaFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html) 관리형 정책을 사용하는 것이 좋습니다. 자체 정책을 사용하려면 페더레이션 쿼리를 실행하는 사용자가 다음 리소스에 액세스할 수 없게 해야 합니다.
  + Glue 연결에 지정된 Lambda 커넥터의 `lambda:InvokeFunction`
  + IAM의 유출 버킷 위치 액세스
  + 페더레이션 카탈로그와 연결된 Glue 연결에 대한 액세스
  + IAM의 Lake Formation 역할

## 콘솔을 사용하여 연결 등록
<a name="register-connection-as-gdc-steps"></a>

**연결을 Glue 데이터 카탈로그로 등록하려면**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. 탐색 창에서 **데이터 소스 및 카탈로그**를 선택합니다.

1. **데이터 소스** 목록에서 생성한 데이터 소스를 선택하여 **데이터 소스 세부 정보** 페이지를 엽니다.

1. **Get started with AWS Lake Formation(SES 시작하기)**를 선택합니다.
**참고**  
이 옵션을 선택한 후에는 Lambda 함수를 직접 관리해야 합니다. Athena는 Lambda 함수를 삭제하지 않습니다.

1. **데이터 카탈로그 이름**에 카탈로그의 고유한 이름을 입력합니다.

1. Lake Formation에 Lambda 함수를 호출할 권한을 부여하는 **Lake Formation IAM 역할**을 선택합니다. 역할에 [예시](#register-connection-as-gdc-pre)에 표시된 것과 같은 권한이 있는지 확인합니다.

1. 텍스트 상자에 **확인**을 입력하여 Athena 데이터 소스를 삭제하고 Glue 데이터 카탈로그 등록으로 바꿉니다.
**참고**  
이 작업을 수행하면 Athena 데이터 소스가 삭제되고 해당 위치에 새 Glue 데이터 카탈로그가 생성됩니다. 이 프로세스가 완료되면 데이터 소스에 액세스하는 쿼리를 업데이트하여 새로 생성된 Glue 데이터 카탈로그를 대신 참조해야 할 수 있습니다.

1. **카탈로그 생성을 선택하고 Lake Formation으로 이동**합니다. 그러면 카탈로그를 관리하고 카탈로그, 데이터베이스, 테이블의 사용자에게 권한을 부여할 수 있는 Lake Formation 콘솔이 열립니다.

# 교차 계정 페더레이션 쿼리 활성화
<a name="xacct-fed-query-enable"></a>

연합 쿼리를 사용하면 AWS Lambda에 배포된 데이터 원본 커넥터를 사용하여 Amazon S3 이외의 데이터 원본을 쿼리할 수 있습니다. 교차 계정 연합 쿼리 기능을 사용하면 Lambda 함수와 쿼리할 데이터 원본이 다른 계정에 위치하도록 할 수 있습니다.

**참고**  
AWS Glue Data Catalog에 페더레이션 데이터 소스를 등록하지 않은 경우에만 이 방법을 사용합니다. AWS Glue Data Catalog에 데이터 소스를 등록한 경우 AWS Glue Data Catalog 교차 계정 기능 및 권한 모델을 사용합니다. 자세한 내용은 *AWS Glue 사용 설명서*의 [교차 계정 액세스 권한 부여](https://docs.aws.amazon.com/glue/latest/dg/cross-account-access.html)를 참조하세요.

데이터 관리자는 데이터 커넥터를 데이터 분석가의 계정과 공유하거나 데이터 분석가로서 데이터 관리자의 공유 Lambda ARN을 사용하여 계정에 추가하여 교차 계정 연동 쿼리를 활성화할 수 있습니다. 원래 계정의 커넥터에 대한 구성이 변경되면 업데이트된 구성이 다른 사용자 계정에 있는 커넥터의 공유 인스턴스에 자동으로 적용됩니다.

## 고려 사항 및 제한 사항
<a name="xacct-fed-query-enable-considerations-and-limitations"></a>
+ 교차 계정 연동 쿼리 기능은 Lambda 기반 데이터 원본을 사용하는 비 Hive 메타스토어 데이터 커넥터에 사용할 수 있습니다.
+ AWS Glue Data Catalog 데이터 원본 유형에 대해 해당 기능을 사용할 수 없습니다. AWS Glue Data Catalog에 대한 교차 계정 액세스에 관한 자세한 내용은 [AWS Glue 데이터 카탈로그에 대한 크로스 계정 액세스 구성](security-iam-cross-account-glue-catalog-access.md) 섹션을 참조하세요.
+ 커넥터의 Lambda 함수에서 얻은 응답이 Lambda 응답 크기 제한(6MB)을 초과하는 경우 Athena는 자동으로 응답을 암호화하고 일괄 처리한 후 사용자가 구성한 Amazon S3 버킷으로 유출합니다. Athena 쿼리를 실행하는 엔터티가 유출 위치에 대한 액세스 권한을 보유해야 Athena에서 유출한 데이터를 읽을 수 있습니다. 쿼리를 완료한 후에는 데이터가 필요하지 않으므로 유출 위치에서 객체를 삭제하도록 Amazon S3 수명 주기 정책을 설정하는 것이 좋습니다.
+ AWS 리전에서 페더레이션된 쿼리 사용은 지원되지 않습니다.

## 필수 권한
<a name="xacct-fed-query-enable-required-permissions"></a>

필요한 권한을 설정하려면 계정 A(*444455556666*)와 계정 B(*111122223333*) 모두에서 작업을 수행해야 합니다.

### 계정 A에 대한 작업
<a name="xacct-fed-query-enable-required-permissions-account-a"></a>

데이터 관리자 계정 A가 데이터 분석가 계정 B와 Lambda 함수를 공유하려면 계정 B에서 Lambda가 함수 및 유출 버킷 액세스를 호출해야 합니다. 따라서 계정 A는 [리소스 기반 정책](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html)을 Lambda 함수에 추가하고 [보안 주체](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html) 액세스 권한을 Amazon S3 유출 버킷에 추가해야 합니다.

1. 다음 정책은 Lambda가 계정 A의 Lambda 함수에서 계정 B에 대한 함수 호출 권한을 부여합니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CrossAccountInvocationStatement",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:user/username"
                   ]
               },
               "Action": "lambda:InvokeFunction",
               "Resource": "arn:aws:lambda:us-east-1:444455556666:function:lambda-function-name"
           }
       ]
   }
   ```

------

1. 다음 정책은 계정 B의 보안 주체에 대한 유출 버킷 액세스를 허용합니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
               "AWS": ["arn:aws:iam::111122223333:user/username"]
               },
               "Action": [
                   "s3:GetObject",
                   "s3:ListBucket"
                ],
               "Resource": [
                   "arn:aws:s3:::spill-bucket",
                   "arn:aws:s3:::spill-bucket/*"
               ]
           }
        ]
    }
   ```

------

1. Lambda 함수가 퍼더레이션 SDK가 제공하는 기본 암호화 대신에 AWS KMS 키를 통해 유출 버킷을 암호화하려면 다음 예와 같이 계정 A의 AWS KMS 키 정책은 계정 B의 사용자에게 액세스 권한을 부여해야 합니다.

   ```
   { 
       "Sid": "Allow use of the key", 
       "Effect": "Allow", 
       "Principal": 
       { 
          "AWS": ["arn:aws:iam::account-B-id:user/username"] 
       }, 
       "Action": [ "kms:Decrypt" ], 
       "Resource": "*" // Resource policy that gets placed on the KMS key. 
    }
   ```

### 계정 B에 대한 작업
<a name="xacct-fed-query-enable-required-permissions-account-b"></a>

계정 A가 해당 커넥터를 계정 B와 공유하려면 계정 B는 계정 A가 AWS Security Token Service [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API 작업을 호출함으로써 권한을 맡는 `AthenaCrossAccountCreate-account-A-id`라는 역할을 생성해야 합니다.

1. IAM 콘솔 또는 AWS CLI를 사용하여 `AthenaCrossAccountCreate-account-A-id` 역할을 사용자 지정 신뢰 정책 역할로 생성합니다. 사용자 지정 신뢰 정책은 액세스를 위임하고 다른 사람이 AWS 계정에서 작업을 수행하도록 허용합니다. 자세한 단계는 *IAM 사용 설명서*에서 [사용자 지정 신뢰 정책을 사용한 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)을 참조하세요.

   신뢰 관계에는 다음 예와 같이 키가 `AWS`이고 값이 계정 A의 ARN인 위탁자 객체가 있어야 합니다.

   ```
   ...
   "Principal": 
   { 
      "AWS": ["arn:aws:iam::account-A-id:user/username"]
   }, 
   ...
   ```

1. 또한 계정 B에서 `CreateDataCatalog` 작업을 허용하는 다음 정책을 생성합니다.

   ```
   {
    "Effect": "Allow",
    "Action": "athena:CreateDataCatalog",
    "Resource": "arn:aws:athena:*:account-B-id:datacatalog/*"
   }
   ```

1. 계정 B를 사용하여 생성한 `AthenaCrossAccountCreate-account-A-id` 역할에 `CreateDataCatalog` 작업을 허용하는 정책을 추가합니다.

## 계정 A의 데이터 원본을 계정 B와 공유
<a name="xacct-fed-query-enable-sharing-a-lambda-data-source-in-account-a-with-account-b"></a>

사용 권한이 설정된 후에는 Athena 콘솔의 **데이터 소스 및 카탈로그** 페이지를 사용하여 사용자 계정(계정 A)의 데이터 커넥터를 다른 계정(계정 B)과 연결할 수 있습니다. 계정 A는 커넥터의 모든 제어 및 소유권을 유지합니다. 계정 A가 커넥터에 대한 구성을 변경하면 업데이트된 구성이 계정 B의 공유 커넥터에 적용됩니다.

**참고**  
Lambda 유형 데이터 소스만 공유할 수 있으며 AWS Glue 연결을 사용하는 데이터 소스는 공유할 수 없습니다. 자세한 내용은 [사용 가능한 데이터 소스 커넥터](connectors-available.md) 섹션을 참조하세요.

**계정 B와 계정 A의 Lambda 데이터 원본 공유**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.  
![\[확장 메뉴를 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/nav-pane-expansion.png)

1. **데이터 소스 및 카탈로그**를 선택합니다.

1. **데이터 소스 및 카탈로그** 페이지에서 공유할 커넥터의 링크를 선택합니다.

1. Lambda 데이터 원본에 대한 세부 정보 페이지에서 오른쪽 상단 모서리에 있는 **작업(Actions)** 메뉴에서 **공유(Share)**를 선택합니다.

1. **다른 계정과 *Lambda-name*을 공유하시겠습니까?(Share Lambda-name with another account?)** 대화 상자에 필수 정보를 입력합니다.
   + **데이터 원본 이름(Data source name)**에서 복사된 데이터 원본의 이름을 다른 계정에 표시하려는 대로 입력합니다.
   + **계정 ID(Account ID)**에서 데이터 원본을 공유할 계정의 ID(이 경우 계정 B)를 입력합니다.

1. **공유**를 선택합니다. 지정한 공유 데이터 커넥터가 계정 B에 생성됩니다. 계정 A의 커넥터에 대한 구성 변경 사항은 계정 B의 커넥터에 적용됩니다.

## 계정 A에서 계정 B로 공유 데이터 원본 추가
<a name="xacct-fed-query-enable-add-a-shared-lambda-function-arn-to-your-account"></a>

데이터 분석가는 데이터 관리자로부터 계정에 추가할 커넥터의 ARN을 제공받을 수 있습니다. 관리자가 제공한 Lambda ARN을 계정에 추가하려면 Athena 콘솔의 **데이터 소스 및 카탈로그** 페이지를 사용합니다.

**계정에 공유 데이터 커넥터의 Lambda ARN 추가**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.

1. **데이터 소스 및 카탈로그**를 선택합니다.

1. **데이터 소스 및 카탈로그** 페이지에서 **데이터 소스 생성**을 선택합니다.

1. **데이터 소스 선택** 페이지에서 **사용자 지정 또는 공유 커넥터**를 선택합니다.

1. **다음**을 선택합니다.

1. **데이터 소스 세부 정보 입력** 페이지의 **연결 세부 정보** 섹션에서 **Lambda 함수 선택 또는 입력**에 계정 A의 Lambda ARN을 입력합니다.

1. **다음**을 선택합니다.

1. **검토 및 생성** 페이지에서 **데이터 소스 생성**을 선택합니다.

## 문제 해결
<a name="xacct-fed-query-enable-troubleshooting"></a>

계정 A에 계정 B에서 역할을 부여할 권한이 없다는 오류 메시지가 나타나면 계정 B에서 생성한 역할 이름의 철자가 올바른지, 올바른 정책이 연결되어 있는지 확인합니다.

# 데이터 소스 커넥터 업데이트
<a name="connectors-updating"></a>

Athena는 사용하는 데이터 소스 커넥터를 최신 버전으로 주기적으로 업데이트하여 새로운 기능과 향상된 기능을 활용하도록 권장합니다. 데이터 소스 커넥터 업데이트에는 다음 단계가 포함됩니다.

# Glue 연결(권장)
<a name="connectors-updating-gc"></a>

## 최신 Athena Query Federation 버전 찾기
<a name="connectors-updating-finding-the-latest-version"></a>

Athena 데이터 소스 커넥터의 최신 버전 번호는 최신 Athena Query Federation 버전에 해당됩니다. 경우에 따라 GitHub 릴리스가 AWS Serverless Application Repository(SAR)에서 제공되는 것보다 조금 더 최신일 수 있습니다.

**최신 Athena Query Federation 버전 번호를 찾으려면**

1. GitHub URL [https://github.com/awslabs/aws-athena-query-federation/releases/latest](https://github.com/awslabs/aws-athena-query-federation/releases/latest)를 방문하세요.

1. 기본 페이지 제목의 릴리스 번호를 다음 형식으로 기록합니다.

   **Athena Query Federation의** **릴리스 v***year*.*week\$1of\$1year*.*iteration\$1of\$1week*

   예를 들어 **Athena Query Federation의 릴리스 v2023.8.3**의 릴리스 번호는 2023.8.3입니다.

## 커넥터 버전 찾기
<a name="connectors-find-version"></a>

다음 단계에 따라 현재 사용 중인 커넥터의 버전을 확인합니다.

**커넥터 버전을 찾으려면**

1. Lambda 애플리케이션의 Lambda 콘솔 페이지에서 **이미지** 탭을 선택합니다.

1. 이미지 탭에서 이미지 URI를 찾습니다. URI는 다음 형식을 따릅니다.

   ```
   Image_location_account.dkr.ecr.us-west-2.amazonaws.com/athena-federation-repository:Version
   ```

1. 이미지 URI의 버전 번호는 `year.week_of_year.iteration_of_week` 형식(예: `2021.42.1`)을 따릅니다. 이 숫자는 커넥터 버전을 나타냅니다.

## 새 커넥터 버전 배포
<a name="connectors-deploy-new-version"></a>

다음 단계에 따라 커넥터의 새 버전을 배포합니다.

**새 커넥터 버전을 배포하려면**

1. 최신 Athena Query Federation 버전 찾기 절차에 따라 원하는 버전을 찾습니다.

1. 페더레이션 커넥터 Lambda 함수에서 ImageURI를 찾고 태그를 원하는 버전으로 업데이트합니다. 예제:

   시작:

   ```
   509399631660.dkr.ecr.us-east-1.amazonaws.com/athena-federation-repository:2025.15.1
   ```

   끝:

   ```
   509399631660.dkr.ecr.us-east-1.amazonaws.com/athena-federation-repository:2025.26.1
   ```

**참고**  
현재 버전이 2025.15.1 이전 버전인 경우 다음과 같은 중요한 변경 사항에 유의하세요.  
리포지토리 이름이 `athena-federation-repository`로 업데이트되었습니다.
이 업데이트 이전의 버전에서는 명령 재정의가 설정되지 않을 수 있습니다. 복합 핸들러로 설정해야 합니다.

# 레거시 연결
<a name="connectors-updating-legacy"></a>

## 최신 Athena Query Federation 버전 찾기
<a name="connectors-updating-finding-the-latest-version"></a>

Athena 데이터 소스 커넥터의 최신 버전 번호는 최신 Athena Query Federation 버전에 해당됩니다. 경우에 따라 GitHub 릴리스가 AWS Serverless Application Repository(SAR)에서 제공되는 것보다 조금 더 최신일 수 있습니다.

**최신 Athena Query Federation 버전 번호를 찾으려면**

1. GitHub URL [https://github.com/awslabs/aws-athena-query-federation/releases/latest](https://github.com/awslabs/aws-athena-query-federation/releases/latest)를 방문하세요.

1. 기본 페이지 제목의 릴리스 번호를 다음 형식으로 기록합니다.

   **Athena Query Federation의** **릴리스 v***year*.*week\$1of\$1year*.*iteration\$1of\$1week*

   예를 들어 **Athena Query Federation의 릴리스 v2023.8.3**의 릴리스 번호는 2023.8.3입니다.

## 리소스 이름 찾기
<a name="connectors-updating-finding-and-noting-resource-names"></a>

업그레이드를 준비하려면 다음 정보를 찾아 기록해야 합니다.

1. 커넥터의 Lambda 함수 이름.

1. Lambda 함수 환경 변수.

1. 커넥터의 Lambda 함수를 관리하는 Lambda 애플리케이션 이름.

**Athena 콘솔에서 리소스 이름을 찾으려면**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.  
![\[확장 메뉴를 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/nav-pane-expansion.png)

1. 탐색 창에서 **데이터 소스 및 카탈로그**를 선택합니다.

1. **데이터 소스 이름** 열에서 커넥터의 데이터 소스에 대한 링크를 선택합니다.

1. **데이터 소스 세부 정보** 섹션의 **Lambda 함수**에서 Lambda 함수에 대한 링크를 선택합니다.  
![\[Lambda 함수에 대한 링크를 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/connectors-updating-1.png)

1. **함수** 페이지의 **함수 이름** 열에서 커넥터의 함수 이름을 기록합니다.  
![\[함수 이름을 기록합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/connectors-updating-2.png)

1. 함수 이름 링크를 선택합니다.

1. **함수 개요** 섹션에서 **구성** 탭을 선택합니다.

1. 왼쪽의 창에서 **환경 변수**를 선택합니다.

1. **환경 변수** 섹션에서 키와 해당 값을 기록합니다.

1. 페이지 맨 위로 스크롤합니다.

1. **이 함수는 애플리케이션에 속해 있습니다. 관리하려면 여기를 클릭합니다.** 메시지에서 **여기를 클릭** 링크를 선택합니다.

1. **serverlessrepo-*your\$1application\$1name*** 페이지에서 **serverlessrepo**를 제외한 애플리케이션 이름을 기록합니다. 예를 들어 애플리케이션 이름이 **serverlessrepo-DynamoDbTestApp**인 경우 사용자 애플리케이션 이름은 **DynamoDbTestApp**입니다.

1. 애플리케이션의 Lambda 콘솔 페이지에서 **사용 중인 커넥터 버전 찾기** 단계를 계속 진행합니다.

## 사용 중인 커넥터의 버전 찾기
<a name="connectors-updating-finding-the-version-that-you-are-using"></a>

다음 단계에 따라 사용 중인 커넥터 버전을 찾습니다.

**사용 중인 커넥터 버전을 찾으려면**

1. Lambda 애플리케이션의 Lambda 콘솔 페이지에서 **배포** 탭을 선택합니다.

1. **배포** 탭에서 **SAM 템플릿**을 확장합니다.

1. **CodeUri**를 검색합니다.

1. **키** 필드의 **CodeUri**에서 다음 문자열을 찾습니다.

   ```
   applications-connector_name-versions-year.week_of_year.iteration_of_week/hash_number
   ```

   다음 예제는 CloudWatch 커넥터의 문자열을 보여줍니다.

   ```
   applications-AthenaCloudwatchConnector-versions-2021.42.1/15151159...
   ```

1. *year*.*week\$1of\$1year*.*iteration\$1of\$1week*에 대한 값(예: **2021.42.1**)을 기록합니다. 이 버전은 커넥터의 버전입니다.

## 커넥터의 새 버전 배포
<a name="connectors-updating-deploying-the-new-version"></a>

다음 단계에 따라 커넥터의 새 버전을 배포합니다.

**커넥터의 새 버전을 배포하려면**

1. [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/home)에서 Athena 콘솔을 엽니다.

1. 콘솔 탐색 창이 표시되지 않으면 왼쪽의 확장 메뉴를 선택합니다.  
![\[확장 메뉴를 선택합니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/nav-pane-expansion.png)

1. 탐색 창에서 **데이터 소스 및 카탈로그**를 선택합니다.

1. **데이터 소스 및 카탈로그** 페이지에서 **데이터 소스 생성**을 선택합니다.

1. 업그레이드할 데이터 소스를 선택하고 **다음**을 선택합니다.

1. **연결 세부 정보** 섹션에서 **Lambda 함수 생성**을 선택합니다. 그러면 업데이트된 애플리케이션을 배포할 수 있는 Lambda 콘솔이 열립니다.  
![\[AWS Lambda 콘솔의 커넥터 페이지.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/connectors-updating-3.png)

1. 실제로 새 데이터 소스를 생성하지는 않으므로 Athena 콘솔 탭을 닫아도 됩니다.

1. 커넥터의 Lambda 콘솔 페이지에서 다음 단계를 수행합니다.

   1. 애플리케이션 이름에서 **serverlessrepo-** 접두사를 제거했는지 확인하고 애플리케이션 이름을 **애플리케이션 이름** 필드에 복사합니다.

   1. Lambda 함수 이름을 **AthenaCatalogName** 필드에 복사합니다. 일부 커넥터에서 이 필드는 **LambdaFunctionName**으로 표시됩니다.

   1. 기록했던 환경 변수를 해당 필드에 복사합니다.

1. **I acknowledge that this app creates custom IAM roles and resource policies** 옵션을 선택하고 **배포**를 선택합니다.

1. 애플리케이션이 업데이트되었는지 확인하려면 **배포** 탭을 선택합니다.

   **배포 기록** 섹션에서 업데이트가 완료되었음을 표시합니다.  
![\[커넥터 업데이트가 완료되었습니다.\]](http://docs.aws.amazon.com/ko_kr/athena/latest/ug/images/connectors-updating-4.png)

1. 새 버전 번호를 확인하려면 전과 같이 **SAM 템플릿**을 확장하고 **CodeUri**를 찾은 후에 **키** 필드에서 커넥터 버전 번호를 확인할 수 있습니다.

이제 업데이트된 커넥터를 사용하여 Athena의 페더레이션된 쿼리를 생성할 수 있습니다.