

# Amazon Aurora PostgreSQL 작업
<a name="Aurora.AuroraPostgreSQL"></a><a name="pgsql"></a>

Amazon Aurora PostgreSQL은 Amazon Aurora의 속도, 안정성 및 관리 용이성과 오픈 소스 데이터베이스의 단순성 및 비용 효율성을 결합한 완전관리형 PostgreSQL 호환 및 ACID 호환 관계형 데이터베이스 엔진입니다. Aurora PostgreSQL은 PostgreSQL을 대신하는 제품으로, 새 PostgreSQL 및 기존 PostgreSQL 배포를 간편하고 비용 효율적으로 설정, 운영 및 확장할 수 있으므로 비즈니스 및 애플리케이션에 집중할 수 있습니다. 일반적인 Aurora에 대해 자세히 알아보려면 [Amazon Aurora이란 무엇인가요?](CHAP_AuroraOverview.md) 단원을 참조하세요.

Aurora PostgreSQL은 Aurora의 이점 외에도 기존 RDS for PostgreSQL 애플리케이션을 Aurora PostgreSQL로 변환하는 푸시 버튼 마이그레이션 도구를 통해 Amazon RDS에서 Aurora로의 편리한 마이그레이션 경로를 제공합니다. 프로비저닝, 패치 적용, 백업, 복구, 장애 감지 및 복구와 같은 일상적인 데이터베이스 작업도 Aurora PostgreSQL로 쉽게 관리할 수 있습니다.

Aurora PostgreSQL는 다수의 산업 표준에서 작동할 수 있습니다. 예를 들어 Aurora PostgreSQL 데이터베이스를 사용하여 HIPAA 준수 애플리케이션을 구축하고 AWS와 체결한 비즈니스 제휴 계약(BAA)에 따라 보호 대상 건강 정보(PHI)를 비롯한 의료 관련 정보를 저장할 수 있습니다.

Aurora PostgreSQL은 FedRAMP HIGH 사용 자격이 있습니다. AWS 및 규정 준수 활동에 대한 자세한 내용은 [규정 준수 프로그램 제공 AWS 범위 내 서비스](https://aws.amazon.com/compliance/services-in-scope/) 섹션을 참조하세요.

**중요**  
Aurora PostgreSQL DB 클러스터에 문제가 발생하면 AWS Support 에이전트가 데이터베이스 상태에 대한 추가 정보가 필요할 수 있습니다. AWS Support는 가능한 한 가장 빠른 시간 내에 필요한 정보를 최대한 많이 확보하는 것이 목표입니다.  
PG 컬렉터를 사용하여 통합 HTML 파일에서 중요한 데이터베이스 정보를 수집할 수 있습니다. PG 컬렉터, 실행 방법 및 HTML 보고서 다운로드 방법에 대한 자세한 내용은 [PG 컬렉터](https://github.com/awslabs/pg-collector)를 참조하세요.  
스크립트가 성공적으로 완료되고 달리 명시되지 않는 한, 스크립트는 읽기 가능한 HTML 형식으로 출력을 반환합니다. 스크립트는 업무에 영향을 미칠 수 있는 모든 데이터 또는 보안 세부 정보를 HTML에서 제외하도록 설계되었습니다. 또한 스크립트는 데이터베이스나 해당 환경을 수정하지 않습니다. 하지만 HTML에서 공유하기에 부적합한 정보를 발견한 경우, HTML을 업로드하기 전에 문제가 있는 정보를 얼마든지 제거해도 됩니다. HTML이 허용되는 경우, 지원 사례의 사례 세부 정보에 있는 첨부 파일 섹션을 사용하여 업로드합니다.

**Topics**
+ [데이터베이스 미리 보기 환경 작업](working-with-the-apg-database-preview-environment.md)
+ [Amazon Aurora PostgreSQL를 사용한 보안](AuroraPostgreSQL.Security.md)
+ [새 SSL/TLS 인증서를 사용해 Aurora PostgreSQL DB 클러스터에 연결할 애플리케이션 업데이트](ssl-certificate-rotation-aurora-postgresql.md)
+ [Aurora PostgreSQL과 함께 Kerberos 인증 사용](postgresql-kerberos.md)
+ [데이터를 PostgreSQL과 호환되는 Amazon Aurora로 마이그레이션](AuroraPostgreSQL.Migrating.md)
+ [Aurora PostgreSQL에서 쿼리 성능 최적화](AuroraPostgreSQL.optimizing.queries.md)
+ [Aurora PostgreSQL에서 로깅되지 않은 테이블 작업](aurora-postgresql-unlogged-tables.md)
+ [Amazon Aurora PostgreSQL에서 PostgreSQL 자동 정리 사용](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.md)
+ [Amazon Aurora PostgreSQL에서 TOAST OID 경합 관리](Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.md)
+ [Babelfish for Aurora PostgreSQL 사용](babelfish.md)
+ [Amazon Aurora PostgreSQL의 성능 및 규모 조정](AuroraPostgreSQL.Managing.md)
+ [Aurora PostgreSQL의 대기 이벤트를 사용한 튜닝](AuroraPostgreSQL.Tuning.md)
+ [Amazon DevOps Guru의 사전 예방 인사이트를 활용하여 Aurora PostgreSQL 튜닝](PostgreSQL.Tuning_proactive_insights.md)
+ [Amazon Aurora PostgreSQL 모범 사례](AuroraPostgreSQL.BestPractices.md)
+ [Amazon Aurora PostgreSQL를 사용한 복제](AuroraPostgreSQL.Replication.md)
+ [Aurora PostgreSQL의 로컬 쓰기 전달](aurora-postgresql-write-forwarding.md)
+ [Aurora PostgreSQL을 Amazon Bedrock의 지식 기반으로 사용](AuroraPostgreSQL.VectorDB.md)
+ [Amazon Aurora PostgreSQL를 다른 AWS 서비스와 통합](AuroraPostgreSQL.Integrating.md)
+ [Aurora PostgreSQL용 쿼리 실행 계획 및 피크 메모리 모니터링](AuroraPostgreSQL.Monitoring.Query.Plans.md)
+ [Aurora PostgreSQL용 쿼리 실행 계획 관리](AuroraPostgreSQL.Optimize.md)
+ [확장 및 외부 데이터 래퍼 작업](Appendix.PostgreSQL.CommonDBATasks.md)
+ [PostgreSQL용 신뢰할 수 있는 언어 확장 작업](PostgreSQL_trusted_language_extension.md)
+ [Amazon Aurora PostgreSQL 참조](AuroraPostgreSQL.Reference.md)
+ [Amazon Aurora PostgreSQL에 대한 데이터베이스 엔진 업데이트](AuroraPostgreSQL.Updates.md)

# 데이터베이스 미리 보기 환경 작업
<a name="working-with-the-apg-database-preview-environment"></a>

 PostgreSQL 커뮤니티는 매년 새로운 메이저 PostgreSQL 버전을 릴리스합니다. 마찬가지로 Amazon Aurora는 PostgreSQL 메이저 버전을 미리 보기 릴리스로 제공합니다. 이를 통해 사용자는 미리 보기 버전을 사용하여 DB 클러스터를 만들고 데이터베이스 미리 보기 환경에서 관련 기능을 테스트할 수 있습니다.

데이터베이스 미리 보기 환경의 Aurora PostgreSQL DB 클러스터는 다른 Aurora PostgreSQL DB 클러스터와 기능적으로 유사합니다. 그러나 프로덕션에는 미리 보기 버전을 사용할 수 없습니다.

이 방식을 사용하는 경우 다음과 같은 중요 제한 사항에 유의하십시오.
+ 모든 DB 인스턴스 및 DB 클러스터는 생성 60일 후 백업 및 스냅샷과 함께 삭제됩니다.
+ Amazon VPC 서비스 기반의 Virtual Private Cloud(VPC)에서만 DB 인스턴스를 생성할 수 있습니다.
+ DB 인스턴스의 스냅샷을 프로덕션 환경으로 복제할 수 없습니다.

미리 보기에서 지원되는 옵션은 다음과 같습니다.
+ DB 인스턴스는 r5, r6g, r6i, r7g, r7i, r8g, x2g, t3, t4g 인스턴스 유형으로만 만들 수 있습니다. 인스턴스 클래스에 대한 자세한 내용은 [Amazon AuroraDB 인스턴스 클래스](Concepts.DBInstanceClass.md) 단원을 참조하세요.
+ 단일 AZ 배포와 다중 AZ 배포를 모두 사용할 수 있습니다.
+ 표준 PostgreSQL 덤프 및 로드 함수를 사용하여 데이터베이스 미리 보기 환경에서 데이터베이스를 내보내거나 데이터베이스 미리 보기 환경으로 데이터베이스를 가져올 수 있습니다.

## 지원되는 DB 인스턴스 클래스 유형
<a name="apg-preview-environment-supported"></a>

Amazon Aurora PostgreSQL은 미리 보기 영역에서 다음 DB 인스턴스 클래스를 지원합니다.

**메모리 최적화 클래스**
+ db.r5 – 메모리 최적화 인스턴스 클래스
+ db.r6g – AWS Graviton2 프로세서로 구동되는 메모리 최적화 인스턴스 클래스
+ db.r6i – 메모리 최적화 인스턴스 클래스
+ db.r7g – AWS Graviton3 프로세서로 구동되는 메모리 최적화 인스턴스 클래스
+ db.r7i – 메모리 최적화 인스턴스 클래스
+ db.r8g – AWS Graviton4 프로세서로 구동되는 메모리 최적화 인스턴스 클래스
+ db.x2g - AWS Graviton2 프로세서로 구동되는 메모리 최적화 인스턴스 클래스

**참고**  
인스턴스 클래스 목록에 대한 자세한 내용은 [DB 인스턴스 클래스 유형](Concepts.DBInstanceClass.Types.md) 섹션을 참조하세요.

**버스트 가능 클래스**
+ db.t3.medium
+ db.t3.large
+ db.t4g.medium
+ db.t4g.large

## 미리 보기 환경에서 지원하지 않는 기능
<a name="apg-preview-environment-exclusions"></a>

다음 기능은 미리 보기 환경에서 사용할 수 없습니다.
+ Aurora Serverless v1 및 v2
+ 메이저 버전 업그레이드(MVU)
+ 미리 보기 영역에서는 새로운 마이너 버전이 릴리스되지 않음
+ RDS for PostgreSQL에서 Aurora PostgreSQL으로의 인바운드 복제
+ Amazon RDS 블루/그린 배포
+ 리전 간 스냅샷 복제 
+ Aurora Global Database
+ 데이터베이스 활동 스트림(DAS), RDS 프록시 및 AWS DMS
+ Auto Scaling 읽기 전용 복제본
+ AWS Bedrock
+ RDS 내보내기
+ 성능 개선 도우미
+ 사용자 지정 엔드포인트
+ 스냅샷 복사
+ 제로 ETL
+ Babelfish
+ 모든 확장

## 미리 보기 환경에서 새 DB 클러스터 생성
<a name="apg-create-db-instance-in-preview-environment"></a>

다음 절차를 이용하여 미리 보기 환경에서 DB 클러스터를 새로 만듭니다.

**미리 보기 환경에서 DB 클러스터를 생성하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **대시보드**를 선택합니다.

1. 다음 그림과 같이 Dashboard(대시보드) 페이지에서 **Database Preview Environment**(데이터베이스 미리 보기 환경) 섹션을 찾습니다.  
![\[RDS 콘솔, 대시보드에 링크가 표시된 미리 보기 환경 섹션\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/preview-environment-dashboard.png)

   [Database preview environment](https://us-east-2.console.aws.amazon.com/rds-preview/home?region=us-east-2#)(데이터베이스 미리 보기 환경)으로 바로 이동할 수도 있습니다. 계속하려면 먼저 제한 사항을 확인하고 수락해야 합니다.  
![\[미리 보기 환경 제한 사항 대화 상자\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/preview-environment-console.png)

1. Aurora PostgreSQL DB 클러스터를 생성하려면 Aurora DB 클러스터를 생성할 때와 동일한 프로세스를 따르면 됩니다. 자세한 내용은 [Amazon Aurora DB 클러스터 생성](Aurora.CreateInstance.md) 섹션을 참조하세요.

Aurora API 또는 AWS CLI를 사용하여 데이터베이스 미리 보기 환경에 인스턴스를 생성하려면 다음 엔드포인트를 사용합니다.

```
rds-preview.us-east-2.amazonaws.com
```

## 데이터베이스 미리 보기 환경의 PostgreSQL 버전 17
<a name="PostgreSQL.Concepts.General.version17"></a>

****  
***이 문서는 Aurora PostgreSQL 버전 17의 미리 보기 설명서입니다. 내용은 변경될 수 있습니다.***

이제 PostgreSQL 버전 17.0을 Amazon RDS Database Preview Environment에서 사용할 수 있습니다. PostgreSQL 버전 17에는 여러 개선 사항이 포함되어 있으며, 이에 관한 설명은 다음 PostgreSQL 설명서에 나와 있습니다.
+ [PostgreSQL 17 릴리스됨](https://www.postgresql.org/about/news/postgresql-17-released-2936/)

데이터베이스 미리 보기 환경에 대한 자세한 내용은 [데이터베이스 미리 보기 환경 작업](#working-with-the-apg-database-preview-environment) 섹션을 참조하세요. 콘솔에서 미리 보기 환경에 액세스하려면 [https://console.aws.amazon.com/rds-preview/](https://console.aws.amazon.com/rds-preview/)를 선택합니다.

# Amazon Aurora PostgreSQL를 사용한 보안
<a name="AuroraPostgreSQL.Security"></a>

Aurora 보안에 대한 일반적인 개요는 [ Amazon Aurora의 보안](UsingWithRDS.md) 섹션을 참조하세요. 다음과 같은 몇 가지 수준에서 Amazon Aurora PostgreSQL의 보안을 관리할 수 있습니다.
+ Aurora PostgreSQL DB 클러스터 및 DB 인스턴스에서 Amazon RDS 관리 작업을 수행할 수 있는 사용자를 제어하려면 AWS Identity and Access Management(IAM)를 사용합니다. IAM은 사용자가 서비스에 액세스하기 전에 사용자 자격 증명 인증을 처리합니다. 또한 권한 부여, 즉 사용자가 원하는 작업을 수행할 수 있는지도 처리합니다. IAM 데이터베이스 인증은 Aurora PostgreSQL DB 클러스터를 생성할 때 선택할 수 있는 추가 인증 방법입니다. 자세한 내용은 [Amazon Aurora의 자격 증명 및 액세스 관리](UsingWithRDS.IAM.md) 섹션을 참조하세요.

  Aurora PostgreSQL DB 클러스터에서 IAM을 사용하는 경우 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 열기 전에 먼저 IAM 보안 인증 정보를 사용하여 AWS Management Console에 로그인합니다.
+ Aurora DB 클러스터는 Amazon VPC 서비스를 기반으로 Virtual Private Cloud(VPC)에 생성해야 합니다. Aurora DB 클러스터에서 DB 인스턴스의 엔드포인트 및 포트에 연결할 수 있는 디바이스 또는 Amazon EC2 인스턴스를 제어하려면 VPC 보안 그룹을 사용합니다. 이 엔드포인트와 포트는 보안 소켓 계층(SSL) 방식으로 연결할 수 있습니다. 그 밖에도 기업의 방화벽 규칙을 통해 기업에서 이용하는 디바이스의 DB 인스턴스 연결 여부를 제어하는 것도 가능합니다. VPC에 대한 자세한 내용은 [Amazon VPC 및 Amazon Aurora](USER_VPC.md) 단원을 참조하세요.

  지원되는 VPC 테넌시는 Aurora PostgreSQL DB 클러스터에서 사용하는 DB 인스턴스 클래스에 따라 다릅니다. `default` VPC 테넌시일 경우 DB 클러스터가 공유 하드웨어에서 실행됩니다. `dedicated` VPC 테넌시일 때는 DB 클러스터가 전용 하드웨어 인스턴스에서 실행됩니다. 확장 가능 성능 DB 인스턴스 클래스는 기본 VPC 테넌시만 지원합니다. 확장 성능 DB 인스턴스 클래스에는 db.t3 및 db.t4g DB 인스턴스 클래스가 포함됩니다. 다른 모든 Aurora PostgreSQL DB 인스턴스 클래스는 기본 및 전용 VPC 테넌시를 모두 지원합니다.

  인스턴스 클래스에 대한 자세한 내용은 [Amazon AuroraDB 인스턴스 클래스](Concepts.DBInstanceClass.md) 단원을 참조하세요. `default` 및 `dedicated` VPC 테넌시에 대한 자세한 정보는 *Amazon Elastic Compute Cloud 사용 설명서*의 [전용 인스턴스](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html)를 참조하세요.
+ Amazon Aurora DB 클러스터에서 실행 중인 PostgreSQL 데이터베이스에 사용 권한을 부여하려면 PostgreSQL의 독립 실행형 인스턴스와 동일한 일반적인 방법을 사용할 수 있습니다. `CREATE ROLE`, `ALTER ROLE`, `GRANT`, `REVOKE` 등의 명령은 온프레미스 데이터베이스에서 작동하는 것과 마찬가지로 작동하며, 데이터베이스와 스키마, 테이블을 직접 수정할 때도 동일합니다.

  PostgreSQL은 *역할*을 사용하여 권한을 관리합니다. `rds_superuser` 역할은 Aurora PostgreSQL DB 클러스터에서 가장 많은 권한을 가진 역할입니다. 이 역할은 자동으로 생성되며 DB 클러스터를 생성하는 사용자(마스터 사용자 계정, 기본적으로 `postgres`)에게 부여됩니다. 자세한 내용은 [PostgreSQL 역할 및 권한 이해](Appendix.PostgreSQL.CommonDBATasks.Roles.md)를 참조하세요.

버전 10, 11, 12, 13, 14 이상의 릴리스를 비롯하여 사용 가능한 모든 Aurora PostgreSQL 버전은 메시지 다이제스트(MD5)의 대안으로 암호에 대한 Salted Challenge Response Authentication Mechanism(SCRAM)을 지원합니다. SCRAM은 MD5보다 안전하기 때문에 SCRAM을 사용하는 것이 좋습니다. MD5에서 SCRAM으로 데이터베이스 사용자 암호를 마이그레이션하는 방법을 비롯한 자세한 내용은 [SCRAM for PostgreSQL 암호 암호화 사용](PostgreSQL_Password_Encryption_configuration.md) 섹션을 참조하세요.

# PostgreSQL 역할 및 권한 이해
<a name="Appendix.PostgreSQL.CommonDBATasks.Roles"></a>

AWS Management Console을 사용하여 Aurora PostgreSQL DB 클러스터 를 만들면 관리자 계정이 동시에 생성됩니다. 기본적으로 해당 이름은 다음 스크린샷에 나와 있는 것처럼 `postgres`입니다.

![\[데이터베이스 생성(Create database) 페이지의 보안 인증에 대한 기본 로그인 ID는 postgres입니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/default-login-identity-apg-rpg.png)


기본값(`postgres`)을 그대로 사용하지 않고 다른 이름을 선택할 수 있습니다. 이 경우 선택한 이름은 문자로 시작해야 하며 영숫자 1\$116자 사이어야 합니다. 단순하게 하기 위해 이 안내서 전체에서 기본 사용자 계정을 기본값(`postgres`)으로 참조합니다.

 AWS Management Console 대신 `create-db-cluster` AWS CLI를 사용하는 경우 명령에서 `master-username` 파라미터로 사용자 이름을 전달하여 사용자 이름을 생성합니다. 자세한 내용은 [2단계: Aurora PostgreSQL DB 클러스터 생성](CHAP_GettingStartedAurora.AuroraPostgreSQL.FullConfig.md#CHAP_GettingStarted.AuroraPostgreSQL.CreateDBCluster) 단원을 참조하세요.

AWS Management Console, AWS CLI 또는 Amazon RDS API를 사용하든, 기본 `postgres` 이름을 사용하든, 다른 이름을 선택하든 관계없이 첫 번째 데이터베이스 사용자 계정은 `rds_superuser` 그룹의 멤버이며 `rds_superuser` 권한을 가집니다.

**Topics**
+ [rds\$1superuser 역할 이해](Appendix.PostgreSQL.CommonDBATasks.Roles.rds_superuser.md)
+ [PostgreSQL 데이터베이스에 대한 사용자 액세스 제어](Appendix.PostgreSQL.CommonDBATasks.Access.md)
+ [사용자 암호 관리 위임 및 제어](Appendix.PostgreSQL.CommonDBATasks.RestrictPasswordMgmt.md)
+ [SCRAM for PostgreSQL 암호 암호화 사용](PostgreSQL_Password_Encryption_configuration.md)

# rds\$1superuser 역할 이해
<a name="Appendix.PostgreSQL.CommonDBATasks.Roles.rds_superuser"></a>

PostgreSQL에서는 *역할*로 데이터베이스의 다양한 객체에 대해 그룹 또는 사용자에게 부여된 사용자, 그룹 또는 특정 권한 집합을 정의할 수 있습니다. `CREATE USER` 및 `CREATE GROUP`에 대한 PostgreSQL 명령은 데이터베이스 사용자를 구분하기 위한 특정 속성을 가진 보다 일반적인 `CREATE ROLE`로 대체되었습니다. 데이터베이스 사용자는 LOGIN 권한을 가진 역할로 간주할 수 있습니다.

**참고**  
`CREATE USER` 및 `CREATE GROUP` 명령을 계속 사용할 수 있습니다. 자세한 내용은 PostgreSQL 설명서에서 [데이터베이스 역할](https://www.postgresql.org/docs/current/user-manag.html)을 참조하세요.

`postgres` 사용자는 Aurora PostgreSQL DB 클러스터에서 가장 높은 권한을 지닌 데이터베이스 사용자입니다. 이는 다음 `CREATE ROLE` 문으로 정의되는 특성을 가지고 있습니다.

```
CREATE ROLE postgres WITH LOGIN NOSUPERUSER INHERIT CREATEDB CREATEROLE NOREPLICATION VALID UNTIL 'infinity'
```

속성 `NOSUPERUSER`, `NOREPLICATION`, `INHERIT` 및 `VALID UNTIL 'infinity'`는 별도로 지정하지 않는 한 CREATE ROLE의 기본 옵션입니다.

기본적으로 `postgres`에는 `rds_superuser` 역할에 부여된 권한과 역할 및 데이터베이스를 생성할 수 있는 권한이 있습니다. `rds_superuser` 역할이 있으면 `postgres` 사용자는 다음과 같은 작업을 할 수 있습니다.
+  Aurora PostgreSQL을 참조하세요. 자세한 내용은 [확장 및 외부 데이터 래퍼 작업](Appendix.PostgreSQL.CommonDBATasks.md) 단원을 참조하세요.
+ 사용자에 대한 역할을 생성하고 사용자에게 권한을 부여합니다. 자세한 내용은 PostgreSQL 설명서에서 [CREATE ROLE](https://www.postgresql.org/docs/current/sql-createrole.html) 및 [GRANT](https://www.postgresql.org/docs/14/sql-grant.html)를 참조하세요.
+ 데이터베이스를 생성합니다. 자세한 내용은 PostgreSQL 설명서에서 [CREATE DATABASE](https://www.postgresql.org/docs/14/sql-createdatabase.html)를 참조하세요.
+ 이러한 권한이 없는 사용자 역할에 `rds_superuser` 권한을 부여하고 필요에 따라 권한을 회수합니다. 이 역할은 수퍼유저 태스크를 수행하는 사용자에게만 부여하는 것이 좋습니다. 즉, 데이터베이스 관리자(DBA) 또는 시스템 관리자에게 이 역할을 부여할 수 있습니다.
+ `rds_superuser` 역할이 없는 데이터베이스 사용자에게 `rds_replication` 역할을 부여(회수)합니다.
+ `rds_superuser` 역할이 없는 데이터베이스 사용자에게 `rds_password` 역할을 부여(회수)합니다.
+ `pg_stat_activity` 보기를 사용하여 모든 데이터베이스 연결에 대한 상태 정보를 가져옵니다. 필요한 경우 `rds_superuser`는 `pg_terminate_backend` 또는 `pg_cancel_backend`를 사용하여 연결을 중지할 수 있습니다.

`CREATE ROLE postgres...` 문에서 `postgres` 사용자 역할이 특히 PostgreSQL `superuser` 권한을 허용하지 않음을 알 수 있습니다. Aurora PostgreSQL은 관리형 서비스이므로 호스트 OS에 액세스할 수 없으며, PostgreSQL `superuser` 계정을 사용하여 연결할 수 없습니다. 독립 실행형 PostgreSQL에 대한 `superuser` 액세스 권한이 필요한 대부분의 태스크는 Aurora에서 자동으로 관리됩니다.

권한 부여에 대한 자세한 내용은 PostgreSQL 설명서에서 [GRANT](http://www.postgresql.org/docs/current/sql-grant.html)를 참조하세요.

`rds_superuser` 역할은 Aurora PostgreSQL DB 클러스터에서 *미리 정의된* 여러 역할 중 하나입니다. 

**참고**  
PostgreSQL 13 및 이전 릴리스에서는 *미리 정의된* 역할을 *기본* 역할이라고 합니다.

다음 목록에서 새로운 Aurora PostgreSQL DB 클러스터에 대해 자동으로 생성되는 미리 정의된 다른 역할 중 일부를 확인할 수 있습니다. 미리 정의된 역할 및 권한은 변경할 수 없습니다. 미리 정의된 역할에 대한 권한은 삭제하거나 이름을 바꾸거나 수정할 수 없습니다. 이를 시도할 시에는 오류가 발생합니다.
+ **rds\$1password** - 데이터베이스 사용자를 대상으로 암호를 변경하고 암호 제약 조건을 설정할 수 있는 역할입니다. `rds_superuser` 역할에는 기본적으로 이 역할이 부여되며, 이 역할을 통해 데이터베이스 사용자에게 역할을 부여할 수 있습니다. 자세한 내용은 [PostgreSQL 데이터베이스에 대한 사용자 액세스 제어PostgreSQL에 대한 사용자 액세스 제어](Appendix.PostgreSQL.CommonDBATasks.Access.md) 섹션을 참조하세요.
  + 14 이전의 RDS for PostgreSQL 버전에서 `rds_password` 역할은 암호를 변경하고 데이터베이스 사용자와 `rds_superuser` 역할이 있는 사용자에 대해 암호 제한을 설정할 수 있습니다. 14 이후의 RDS for PostgreSQL 버전에서 `rds_password` 역할은 데이터베이스 사용자에 대해서만 암호를 변경하고 암호 제약 조건을 설정할 수 있습니다. `rds_superuser` 역할이 있는 사용자만 `rds_superuser` 역할을 가진 다른 사용자에게 이러한 작업을 수행할 수 있습니다.
+ **rdsadmin** - `superuser` 권한이 있는 관리자가 독립 실행형 PostgreSQL 데이터베이스에서 수행할 수 있는 많은 관리 태스크를 처리하기 위해 생성된 역할입니다. 이 역할은 Aurora PostgreSQL에서 다양한 관리 태스크에 내부적으로 사용됩니다.

# 역할 및 해당 권한 보기
<a name="Appendix.PostgreSQL.CommonDBATasks.Roles.View"></a>

PostgreSQL 버전에 따라 서로 다른 명령을 사용하여 RDS for PostgreSQL DB 인스턴스에서 사전 정의된 역할과 해당 권한을 볼 수 있습니다. 사전 정의된 모든 역할을 보려면 RDS for PostgreSQL DB 인스턴스에 연결하고 `psql`을 사용하여 다음 명령을 실행할 수 있습니다.

**`psql` 15 이하 버전의 경우**

RDS for PostgreSQL DB 인스턴스에 연결하고 psql에서 `\du` 명령을 사용합니다.

```
postgres=> \du
                                                               List of roles
    Role name    |                         Attributes                         |                          Member of
-----------------+------------------------------------------------------------+------------------------------------------------------
 postgres        | Create role, Create DB                                    +| {rds_superuser}
                 | Password valid until infinity                              |
 rds_ad          | Cannot login                                               | {}
 rds_iam         | Cannot login                                               | {}
 rds_password    | Cannot login                                               | {}
 rds_replication | Cannot login                                               | {}
 rds_superuser   | Cannot login                                               | {pg_monitor,pg_signal_backend,rds_password,rds_replication}
 rdsadmin        | Superuser, Create role, Create DB, Replication, Bypass RLS+| {}
                 | Password valid until infinity                              |
```

**`psql` 16 이상 버전의 경우**

```
postgres=> \drg+
                             List of role grants
   Role name   |          Member of          |       Options       | Grantor
---------------+-----------------------------+---------------------+----------
 postgres      | rds_superuser               | INHERIT, SET        | rdsadmin
 rds_superuser | pg_checkpoint               | ADMIN, INHERIT, SET | rdsadmin
 rds_superuser | pg_monitor                  | ADMIN, INHERIT, SET | rdsadmin
 rds_superuser | pg_signal_backend           | ADMIN, INHERIT, SET | rdsadmin
 rds_superuser | pg_use_reserved_connections | ADMIN, INHERIT, SET | rdsadmin
 rds_superuser | rds_password                | ADMIN, INHERIT, SET | rdsadmin
 rds_superuser | rds_replication             | ADMIN, INHERIT, SET | rdsadmin
```

버전 종속성 없이 역할 멤버십을 확인하려면 다음 SQL 쿼리를 사용할 수 있습니다.

```
SELECT m.rolname AS "Role name", r.rolname AS "Member of"
FROM pg_catalog.pg_roles m
JOIN pg_catalog.pg_auth_members pam ON (pam.member = m.oid)
LEFT JOIN pg_catalog.pg_roles r ON (pam.roleid = r.oid)
LEFT JOIN pg_catalog.pg_roles g ON (pam.grantor = g.oid)
WHERE m.rolname !~ '^pg_'
ORDER BY 1, 2;
```

출력에서 `rds_superuser`는 데이터베이스 사용자 역할은 아니지만(로그인할 수 없음), 다른 많은 역할의 권한을 가집니다. 데이터베이스 사용자 `postgres`가 `rds_superuser` 역할의 멤버임을 알 수도 있습니다. 앞서 언급한 바와 같이 `postgres`는 Amazon RDS 콘솔 **데이터베이스 생성(Create database)** 페이지의 기본값입니다. 다른 이름을 선택한 경우 해당 이름이 대신 역할 목록에 표시됩니다.

**참고**  
 Aurora PostgreSQL 버전 15.2 및 14.7에는 `rds_superuser` 역할의 제한적인 동작이 도입되었습니다. 사용자에게 `rds_superuser` 역할이 부여된 경우에도 연결하려면 Aurora PostgreSQL 사용자에게는 해당 데이터베이스에 대한 `CONNECT` 권한이 부여되어야 합니다. Aurora PostgreSQL 버전 14.7 및 15.2 이전에는 사용자에게 `rds_superuser` 역할이 부여되어 있어야 모든 데이터베이스 및 시스템 테이블에 연결할 수 있었습니다. 이러한 제한적인 동작을 통해 AWS 및 Amazon Aurora는 지속적으로 보안을 강화하고자 최선을 다하고 있습니다.  
위의 개선 사항으로 영향을 받는 경우 애플리케이션에서 관련 로직을 업데이트하세요.

# PostgreSQL 데이터베이스에 대한 사용자 액세스 제어
<a name="Appendix.PostgreSQL.CommonDBATasks.Access"></a>

PostgreSQL의 새 데이터베이스는 항상 모든 데이터베이스 사용자와 역할이 객체를 만들 수 있도록 허용하는 데이터베이스 `public` 스키마의 기본 권한 집합으로 생성됩니다. 이러한 권한을 통해 데이터베이스 사용자는 데이터베이스에 연결하고, 가령 연결된 동안 임시 테이블을 만들 수 있습니다.

 Aurora PostgreSQL DB 클러스터 프라이머리 노드에 생성한 데이터베이스 인스턴스에 액세스할 수 있는 사용자 권한을 보다 효과적으로 제어하려면 이러한 기본 `public` 권한을 회수하는 것이 좋습니다. 이렇게 하고 나서 다음 절차에 표시된 것처럼 데이터베이스 사용자에게 보다 세분화된 구체적인 권한을 부여하면 됩니다.

**새 데이터베이스 인스턴스에 대한 역할 및 권한을 설정하는 방법**

새로 생성한 Aurora PostgreSQL DB 클러스터에 데이터베이스를 설정하여 여러 연구자가 사용할 수 있도록 하고, 이들 모두 데이터베이스에 대한 읽기-쓰기 액세스 권한이 필요하다고 가정합니다.

1. 다음과 같이 `psql` 또는 pgAdmin을 사용하여 Aurora PostgreSQL DB 클러스터의 프라이머리 DB 인스턴스 에 연결합니다.

   ```
   psql --host=your-cluster-instance-1.666666666666.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
   ```

   메시지가 표시되면 암호를 입력합니다. `psql` 클라이언트는 기본 관리 연결 데이터베이스인 `postgres=>`를 연결하고 프롬프트로 표시합니다.

1. 데이터베이스 사용자가 `public` 스키마에서 객체를 생성하지 못하도록 하려면 다음을 수행합니다.

   ```
   postgres=> REVOKE CREATE ON SCHEMA public FROM PUBLIC;
   REVOKE
   ```

1. 다음으로 새 데이터베이스 인스턴스를 생성합니다.

   ```
   postgres=> CREATE DATABASE lab_db;
   CREATE DATABASE
   ```

1. 새 데이터베이스의 `PUBLIC` 스키마에서 모든 권한을 회수합니다.

   ```
   postgres=> REVOKE ALL ON DATABASE lab_db FROM public;
   REVOKE
   ```

1. 데이터베이스 사용자를 위한 역할을 생성합니다.

   ```
   postgres=> CREATE ROLE lab_tech;
   CREATE ROLE
   ```

1. 이 역할이 있는 데이터베이스 사용자에게 데이터베이스 연결 기능을 제공합니다.

   ```
   postgres=> GRANT CONNECT ON DATABASE lab_db TO lab_tech;
   GRANT
   ```

1. `lab_tech` 역할이 있는 모든 사용자에게 이 데이터베이스에 대한 모든 권한을 부여합니다.

   ```
   postgres=> GRANT ALL PRIVILEGES ON DATABASE lab_db TO lab_tech;
   GRANT
   ```

1. 다음과 같이 데이터베이스 사용자를 생성합니다.

   ```
   postgres=> CREATE ROLE lab_user1 LOGIN PASSWORD 'change_me';
   CREATE ROLE
   postgres=> CREATE ROLE lab_user2 LOGIN PASSWORD 'change_me';
   CREATE ROLE
   ```

1. 다음과 같이 두 사용자에게 lab\$1tech 역할과 관련된 권한을 부여합니다.

   ```
   postgres=> GRANT lab_tech TO lab_user1;
   GRANT ROLE
   postgres=> GRANT lab_tech TO lab_user2;
   GRANT ROLE
   ```

이 시점에서 `lab_user1`과 `lab_user2`는 `lab_db` 데이터베이스에 연결할 수 있습니다. 이 예제에서는 여러 데이터베이스 인스턴스와 다양한 스키마 생성, 제한된 권한 부여를 포함할 수 있는 엔터프라이즈 사용에 대한 모범 사례를 따르지 않습니다. 전체 정보 및 추가 시나리오를 알아보려면 [PostgreSQL 사용자 및 역할 관리](https://aws.amazon.com/blogs//database/managing-postgresql-users-and-roles/)를 참조하세요.

PostgreSQL 데이터베이스의 권한에 대한 자세한 내용은 PostgreSQL 설명서에서 [GRANT](https://www.postgresql.org/docs/current/static/sql-grant.html) 명령을 참조하세요.

# 사용자 암호 관리 위임 및 제어
<a name="Appendix.PostgreSQL.CommonDBATasks.RestrictPasswordMgmt"></a>

DBA로서 사용자 암호 관리를 위임할 수 있습니다. 또는 데이터베이스 사용자가 암호를 변경하거나 암호 사용 주기와 같은 암호 제약 조건을 재구성하지 못하도록 할 수 있습니다. 선택한 데이터베이스 사용자만 암호 설정을 변경할 수 있도록 하려면 제한된 암호 관리 기능을 켜면 됩니다. 이 기능을 활성화하면 `rds_password` 역할이 부여된 데이터베이스 사용자만 암호를 관리할 수 있습니다.

**참고**  
제한된 암호 관리를 사용하려면 Aurora PostgreSQL DB 클러스터가 Amazon Aurora PostgreSQL 10.6 이상을 실행해야 합니다.

기본적으로 이 기능은 다음과 같이 `off`입니다.

```
postgres=> SHOW rds.restrict_password_commands;
  rds.restrict_password_commands
--------------------------------
 off
(1 row)
```

이 기능을 켜려면 사용자 정의 파라미터 그룹을 사용하고 `rds.restrict_password_commands`에 대한 설정을 1로 변경합니다. Aurora PostgreSQL의 프라이머리 DB 인스턴스 를 재부팅해야 설정이 적용됩니다.

이 기능을 활성화하면 다음 SQL 명령에 대한 `rds_password` 권한이 필요합니다.

```
CREATE ROLE myrole WITH PASSWORD 'mypassword';
CREATE ROLE myrole WITH PASSWORD 'mypassword' VALID UNTIL '2023-01-01';
ALTER ROLE myrole WITH PASSWORD 'mypassword' VALID UNTIL '2023-01-01';
ALTER ROLE myrole WITH PASSWORD 'mypassword';
ALTER ROLE myrole VALID UNTIL '2023-01-01';
ALTER ROLE myrole RENAME TO myrole2;
```

암호에서 MD5 해시 알고리즘을 사용하는 경우에도 역할 이름 변경(`ALTER ROLE myrole RENAME TO newname`)이 제한됩니다.

이 기능이 활성화된 상태에서 `rds_password` 역할 권한 없이 이러한 SQL 명령을 시도하면 다음 오류가 발생합니다.

```
ERROR: must be a member of rds_password to alter passwords
```

암호 관리에만 사용하는 몇 가지 역할에만 `rds_password` 권한을 부여하는 것이 좋습니다. `rds_superuser` 권한이 없는 데이터베이스 사용자에게 `rds_password` 권한을 부여할 경우 `CREATEROLE` 속성도 부여해야 합니다.

만료 및 클라이언트 측에 필요한 복잡성 등의 암호 요구 사항을 확인해야 합니다. 암호 관련 변경 사항에 대해 자체 클라이언트 측 유틸리티를 사용하는 경우 유틸리티가 `rds_password`의 멤버여야 하며 `CREATE ROLE` 권한을 가져야 합니다.

# SCRAM for PostgreSQL 암호 암호화 사용
<a name="PostgreSQL_Password_Encryption_configuration"></a>

*Salted Challenge Response Authentication Mechanism(SCRAM)*은 암호를 암호화하는 데 사용하는 PostgreSQL의 기본 메시지 다이제스트(MD5) 알고리즘을 대체합니다. SCRAM 인증 메커니즘은 MD5보다 더 안전한 것으로 간주됩니다. 이러한 2가지 암호 보호 방법에 대한 자세한 내용은 PostgreSQL 설명서의 [암호 인증](https://www.postgresql.org/docs/14/auth-password.html)을 참조하세요.

MD5가 아닌 SCRAM을 Aurora PostgreSQL DB 클러스터의 암호 암호화 체계로 사용하는 것이 좋습니다. SCRAM은 Aurora PostgreSQL 버전 10 이상의 모든 메이저 및 마이너 버전에서 지원됩니다. 이는 암호 인증 및 암호화에 scram-sha-256 알고리즘을 사용하는 암호화 챌린지-응답 메커니즘입니다.

SCRAM을 지원하려면 클라이언트 애플리케이션의 라이브러리를 업데이트해야 할 수 있습니다. 예를 들어, 42.2.0 이전의 JDBC 버전은 SCRAM을 지원하지 않습니다. 자세한 내용은 PostgreSQL JDBC 드라이버 설명서의 [PostgreSQL JDBC 드라이버](https://jdbc.postgresql.org/changelogs/2018-01-17-42.2.0-release/)를 참조하세요. 기타 PostgreSQL 드라이버 및 SCRAM 지원 목록은 PostgreSQL 설명서의 [드라이버 목록](https://wiki.postgresql.org/wiki/List_of_drivers)을 참조하세요.

Aurora PostgreSQL 버전 14 이상에서는 기본적으로 새 DB 클러스터에 대한 암호 암호화를 위해 scram-sha-256을 지원합니다. 이 버전에서 기본 DB 클러스터 파라미터 그룹(`default.aurora-postgresql14`)의 `password_encryption` 값은 scram-sha-256으로 설정됩니다. SCRAM은 Aurora Serverless v1에서 지원되지 않습니다.

## SCRAM이 필요하도록 Aurora PostgreSQL DB 클러스터 설정
<a name="PostgreSQL_Password_Encryption_configuration.preliminary"></a>

Aurora PostgreSQL 14.3 이상 버전의 경우 Aurora PostgreSQL DB 클러스터가 scram-sha-256 알고리즘을 사용하는 암호만 수락하도록 요구할 수 있습니다.

**중요**  
PostgreSQL 데이터베이스를 사용하는 기존 RDS 프록시의 경우, `SCRAM`만 사용하도록 데이터베이스 인증을 수정하면 최대 60초 동안 프록시를 사용할 수 없게 됩니다. 문제를 방지하려면 다음 중 하나를 수행합니다.  
데이터베이스에서 `SCRAM` 및 `MD5` 인증이 모두 허용되는지 확인합니다.
`SCRAM` 인증만 사용하려면 새 프록시를 생성하고, 애플리케이션 트래픽을 새 프록시로 마이그레이션한 다음 이전에 데이터베이스와 연결된 프록시를 삭제합니다.

시스템을 변경하기 전에 다음과 같이 전체 프로세스를 이해해야 합니다.
+ 모든 데이터베이스 사용자에 대한 전체 역할 및 암호 암호화에 대한 정보를 가져옵니다.
+ 암호 암호화를 제어하는 파라미터에 대해 Aurora PostgreSQL DB 클러스터 의 파라미터 설정을 다시 확인합니다.
+ Aurora PostgreSQL DB 클러스터 에서 기본 파라미터 그룹을 사용한다면 필요한 경우 파라미터를 수정할 수 있도록 사용자 지정 DB 클러스터 파라미터 그룹 을 생성하고, 이를 Aurora PostgreSQL DB 클러스터 에 적용해야 합니다. Aurora PostgreSQL DB 클러스터 에서 사용자 지정 파라미터 그룹을 사용하는 경우 필요에 따라 과정 후반부에서 필요한 파라미터를 수정할 수 있습니다.
+ `password_encryption` 파라미터를 `scram-sha-256`으로 변경합니다.
+ 모든 데이터베이스 사용자에게 암호를 업데이트해야 함을 알립니다. `postgres` 계정에도 동일한 작업을 수행합니다. 새 암호는 scram-sha-256 알고리즘을 통해 암호화되어 저장됩니다.
+ 모든 암호가 암호화 유형으로 암호화되었는지 확인합니다.
+ 모든 암호가 scram-sha-256을 사용하는 경우 `rds.accepted_password_auth_method` 파라미터를 `md5+scram`에서 `scram-sha-256`으로 변경할 수 있습니다.

**주의**  
`rds.accepted_password_auth_method`를 scram-sha-256으로만 변경하면 `md5`로 암호화된 암호가 있는 사용자(역할)는 연결할 수 없습니다.

### Aurora PostgreSQL DB 클러스터 에서 SCRAM을 사용하도록 준비
<a name="PostgreSQL_Password_Encryption_configuration.getting-ready"></a>

Aurora PostgreSQL DB 클러스터 를 변경하기에 모든 기존 데이터베이스 사용자 계정을 확인해야 합니다. 또한 암호에 사용되는 암호화 유형도 확인하세요. `rds_tools` 확장을 사용하여 이러한 작업을 수행할 수 있습니다. `rds_tools`를 지원하는 PostgreSQL 버전을 확인하려면 [Amazon RDS for PostgreSQL의 확장 버전](https://docs.aws.amazon.com/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-extensions.html)을 참조하세요.

**데이터베이스 사용자(역할) 및 암호 암호화 방법 목록을 가져오려면**

1. 다음과 같이 `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 프라이머리 인스턴스 에 연결합니다.

   ```
   psql --host=cluster-name-instance-1.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
   ```

1. `rds_tools` 확장을 설치합니다.

   ```
   postgres=> CREATE EXTENSION rds_tools;
   CREATE EXTENSION
   ```

1. 역할 및 암호화 목록을 가져옵니다.

   ```
   postgres=> SELECT * FROM 
         rds_tools.role_password_encryption_type();
   ```

   출력은 다음과 비슷합니다.

   ```
          rolname        | encryption_type
   ----------------------+-----------------
    pg_monitor           |
    pg_read_all_settings |
    pg_read_all_stats    |
    pg_stat_scan_tables  |
    pg_signal_backend    |
    lab_tester           | md5
    user_465             | md5
    postgres             | md5
   (8 rows)
   ```

### 사용자 지정 DB 클러스터 파라미터 그룹 생성
<a name="PostgreSQL_Password_Encryption_configuration.custom-parameter-group"></a>

**참고**  
Aurora PostgreSQL DB 클러스터 에서 이미 사용자 지정 파라미터 그룹을 사용하는 경우 새로 만들 필요가 없습니다.

Aurora 파라미터 그룹에 대한 개요는 [Amazon Aurora에서 DB 클러스터 파라미터 그룹 생성](USER_WorkingWithParamGroups.CreatingCluster.md) 섹션을 참조하세요.

암호에 사용되는 암호 암호화 유형은 하나의 파라미터 `password_encryption`으로 설정됩니다. Aurora PostgreSQL DB 클러스터 에서 허용하는 암호화는 다른 파라미터인 `rds.accepted_password_auth_method`로 설정됩니다. 이러한 값 중 하나를 기본값에서 변경하려면 사용자 지정 DB 클러스터 파라미터 그룹 을 생성하여 클러스터 에 적용해야 합니다.

AWS Management Console 또는 RDS API를 사용하여 사용자 지정 DB 클러스터 파라미터 그룹 을 생성할 수도 있습니다. 자세한 내용은 [Amazon Aurora에서 DB 클러스터 파라미터 그룹 생성](USER_WorkingWithParamGroups.CreatingCluster.md) 단원을 참조하세요.

DB 파라미터 그룹을 DB 인스턴스에 연결합니다.

**사용자 지정 DB 클러스터 파라미터 그룹 을 생성하려면**

1. `[create-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster-parameter-group.html)` CLI 명령을 사용하여 클러스터에 대한 사용자 지정 파라미터 그룹을 생성합니다. 이 예에서는 `aurora-postgresql13`을 사용자 지정 파라미터 그룹의 소스로 사용할 수 있습니다.

   대상 LinuxmacOS, 또는Unix:

   ```
   aws rds create-db-cluster-parameter-group --db-cluster-parameter-group-name 'docs-lab-scram-passwords' \
     --db-parameter-group-family aurora-postgresql13  --description 'Custom DB cluster parameter group for SCRAM'
   ```

   Windows의 경우:

   ```
   aws rds create-db-cluster-parameter-group --db-cluster-parameter-group-name "docs-lab-scram-passwords" ^
     --db-parameter-group-family aurora-postgresql13  --description "Custom DB cluster parameter group for SCRAM"
   ```

   다음으로 사용자 지정 파라미터 그룹을 클러스터와 연결합니다.

1. `[modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html)` CLI 명령을 사용하여 다음과 같이 사용자 지정 파라미터 그룹을 Aurora PostgreSQL DB 클러스터에 적용합니다.

   대상 LinuxmacOS, 또는Unix:

   ```
   aws rds modify-db-cluster --db-cluster-identifier 'your-instance-name' \
           --db-cluster-parameter-group-name "docs-lab-scram-passwords
   ```

   Windows의 경우:

   ```
   aws rds modify-db-cluster --db-cluster-identifier "your-instance-name" ^
           --db-cluster-parameter-group-name "docs-lab-scram-passwords
   ```

   사용자 지정 DB 클러스터 파라미터 그룹이 포함된 Aurora PostgreSQL DB 클러스터 를 다시 동기화하려면 클러스터의 프라이머리 및 기타 모든 인스턴스를 재부팅합니다.

### SCRAM을 사용하도록 암호 암호화 구성
<a name="PostgreSQL_Password_Encryption_configuration.configure-password-encryption"></a>

Aurora PostgreSQL DB 클러스터 에서 사용하는 암호 암호화 메커니즘은 DB 클러스터 파라미터 그룹 에 `password_encryption` 파라미터로 설정되어 있습니다. 허용되는 값은 설정하지 않거나 `md5` 또는 `scram-sha-256`입니다. 기본값은 다음과 같이 Aurora PostgreSQL 버전에 따라 달라집니다.
+ Aurora PostgreSQL 14 – 기본값은 `scram-sha-256`입니다.
+ Aurora PostgreSQL 13 – 기본값은 `md5`입니다.

사용자 지정 DB 클러스터 파라미터 그룹 이 Aurora PostgreSQL DB 클러스터 에 연결되어 있으면 암호 암호화 파라미터 값을 변경할 수 있습니다.

![\[RDS 콘솔에 Aurora PostgreSQL의 password_encryption 파라미터에 대한 기본값이 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-pwd-encryption-md5-scram-1.png)


**암호의 암호화 설정을 scram-sha-256으로 변경하려면**
+ 다음과 같이 암호의 암호화 값을 scram-sha-256으로 변경합니다. 파라미터가 동적이기 때문에 변경 사항을 즉시 적용할 수 있으므로 변경 사항을 적용하려고 재시작하지 않아도 됩니다.

  대상 LinuxmacOS, 또는Unix:

  ```
  aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name \
    'docs-lab-scram-passwords' --parameters 'ParameterName=password_encryption,ParameterValue=scram-sha-256,ApplyMethod=immediate'
  ```

  Windows의 경우:

  ```
  aws rds modify-db-parameter-group --db-parameter-group-name ^
    "docs-lab-scram-passwords" --parameters "ParameterName=password_encryption,ParameterValue=scram-sha-256,ApplyMethod=immediate"
  ```

### 사용자 역할의 암호를 SCRAM으로 마이그레이션
<a name="PostgreSQL_Password_Encryption_configuration.migrating-users"></a>

다음에 설명된 대로 사용자 역할에 대한 암호를 SCRAM으로 마이그레이션할 수 있습니다.

**MD5에서 SCRAM으로 데이터베이스 사용자(역할) 암호를 마이그레이션하려면**

1. 다음과 같이 관리자 사용자로 로그인(기본 사용자 이름 `postgres`)합니다.

   ```
   psql --host=cluster-name-instance-1.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
   ```

1. 다음 명령을 사용하여 RDS for PostgreSQL DB 인스턴스의 `password_encryption` 파라미터 설정을 확인합니다.

   ```
   postgres=> SHOW password_encryption;
    password_encryption
   ---------------------
    md5
    (1 row)
   ```

1. 이 파라미터의 값을 scram-sha-256으로 변경합니다. 자세한 내용은 [SCRAM을 사용하도록 암호 암호화 구성](#PostgreSQL_Password_Encryption_configuration.configure-password-encryption) 섹션을 참조하세요.

1.  다음과 같이 `scram-sha-256`으로 설정되어 있는지 값을 다시 확인합니다.

   ```
   postgres=> SHOW password_encryption;
    password_encryption
   ---------------------
    scram-sha-256
    (1 row)
   ```

1. 모든 데이터베이스 사용자에게 암호 변경을 알립니다. 계정 `postgres`(`rds_superuser` 권한을 지닌 데이터베이스 사용자)의 자체 암호도 변경해야 합니다.

   ```
   labdb=> ALTER ROLE postgres WITH LOGIN PASSWORD 'change_me';
   ALTER ROLE
   ```

1. Aurora PostgreSQL DB 클러스터에 모든 데이터베이스에 대해 프로세스를 반복합니다. 

### SCRAM이 필요하도록 파라미터 변경
<a name="PostgreSQL_Password_Encryption_configuration.require-scram"></a>

과정의 마지막 단계입니다. 다음 절차에서 변경한 후에도 암호에 `md5` 암호화를 계속 사용하는 모든 사용자 계정(역할)은 Aurora PostgreSQL DB 클러스터에 로그인할 수 없습니다. 

`rds.accepted_password_auth_method`는 로그인하는 동안 Aurora PostgreSQL DB 클러스터가 사용자 암호에 대해 허용하는 암호화 방법을 지정합니다. 기본값은 `md5+scram`이므로, 두 방법 중 하나를 사용할 수 있습니다. 다음 이미지에서는 이 파라미터에 대한 기본 설정을 찾을 수 있습니다.

![\[RDS 콘솔에서 rds.accepted_password_auth_method 파라미터에 대한 기본 값과 허용된 값을 표시합니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/pwd-encryption-md5-scram-2.png)


이 파라미터에 허용되는 값은 `md5+scram` 또는 `scram`입니다. 이 파라미터 값을 `scram`으로 변경하여 필수로 설정합니다.

**암호에 SCRAM 인증을 요구하도록 파라미터 값을 변경하려면**

1. Aurora PostgreSQL DB 클러스터 의 모든 데이터베이스에 대한 전체 데이터베이스 사용자 암호가 암호 암호화에 `scram-sha-256`을 사용하는지 확인합니다. 이렇게 하려면 다음과 같이 역할(사용자) 및 암호화 유형에 대해 `rds_tools`를 쿼리합니다.

   ```
   postgres=> SELECT * FROM rds_tools.role_password_encryption_type();
     rolname        | encryption_type
     ----------------------+-----------------
     pg_monitor           |
     pg_read_all_settings |
     pg_read_all_stats    |
     pg_stat_scan_tables  |
     pg_signal_backend    |
     lab_tester           | scram-sha-256
     user_465             | scram-sha-256
     postgres             | scram-sha-256
     ( rows)
   ```

1. Aurora PostgreSQL DB 클러스터의 모든 DB 인스턴스에서 쿼리를 반복합니다. 

   모든 암호가 scram-sha-256을 사용하는 경우 그대로 진행하면 됩니다.

1. 다음과 같이 허용된 암호 인증의 값을 scram-sha-256으로 변경합니다.

   대상 LinuxmacOS, 또는Unix:

   ```
   aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name 'docs-lab-scram-passwords' \
     --parameters 'ParameterName=rds.accepted_password_auth_method,ParameterValue=scram,ApplyMethod=immediate'
   ```

   Windows의 경우:

   ```
   aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name "docs-lab-scram-passwords" ^
     --parameters "ParameterName=rds.accepted_password_auth_method,ParameterValue=scram,ApplyMethod=immediate"
   ```

## SSL/TLS를 이용한 Aurora PostgreSQL 데이터 보안
<a name="AuroraPostgreSQL.Security.SSL"></a>

Amazon RDS는 Aurora PostgreSQL DB 클러스터를 위한 보안 소켓 계층(SSL) 및 전송 계층 보안(TLS) 암호화를 지원합니다. SSL/TLS를 사용하여 애플리케이션과 Aurora PostgreSQL DB 클러스터 사이의 연결을 암호화할 수 있습니다. 또한 Aurora PostgreSQL DB 클러스터에 대한 모든 연결에서 SSL/TLS를 사용하도록 지정할 수도 있습니다. Amazon Aurora PostgreSQL은 전송 계층 보안(TLS) 버전 1.1 및 1.2를 지원합니다. TLS 1.2를 암호화 연결에 사용하는 것이 좋습니다. 다음 Aurora PostgreSQL 버전에서 TLSv1.3에 대한 지원을 추가했습니다.
+ 15.3 이상의 모든 버전
+ 14.8 이상의 14 버전
+ 13.11 이상의 13 버전
+ 12.15 이상의 12 버전
+ 11.20 이상의 11 버전

SSL/TLS 지원 및 PostgreSQL 데이터베이스에 대한 일반적인 정보는 PostgreSQL 설명서의 [SSL 지원](https://www.postgresql.org/docs/current/libpq-ssl.html)을 참조하세요. JDBC를 통한 SSL/TLS 연결 사용에 대한 자세한 내용은 PostgreSQL 설명서의 [클라이언트 구성](https://jdbc.postgresql.org/documentation/head/ssl-client.html)을 참조하세요.

**Topics**
+ [Aurora PostgreSQL DB 클러스터에 대한 SSL/TLS 연결 요구](#AuroraPostgreSQL.Security.SSL.Requiring)
+ [SSL/TLS 연결 상태 확인](#AuroraPostgreSQL.Security.SSL.Status)
+ [Aurora PostgreSQL DB 클러스터 연결을 위한 암호 그룹 구성](#AuroraPostgreSQL.Security.SSL.ConfiguringCipherSuites)

Aurora PostgreSQL의 모든 AWS 리전에서 SSL/TLS 지원 기능을 사용할 수 있습니다. Amazon RDS는 DB 클러스터가 생성될 때 Aurora PostgreSQL DB 클러스터의 SSL/TLS 인증서를 생성합니다. SSL/TLS 인증서 확인을 활성화하는 경우에는 SSL/TLS 인증서에 스푸핑 공격으로부터 보호해주는 SSL/TLS 인증서를 위한 일반 이름(CN)으로 DB 클러스터 엔드포인트가 포함됩니다.

**SSL/TLS를 통해 Aurora PostgreSQL DB 클러스터에 연결하기**

1. 인증서를 다운로드합니다.

   인증서 다운로드에 대한 자세한 내용은 [SSL/TLS를 사용하여 DB 클러스터에 대한 연결 암호화](UsingWithRDS.SSL.md) 단원을 참조하세요.

1. 다음과 같이 사용 중인 운영 체제로 인증서를 가져옵니다.

1. SSL/TLS를 통해 Aurora PostgreSQL DB 클러스터에 연결합니다.

   SSL/TLS를 사용하여 연결하면 클라이언트가 인증서 체인을 확인할지 여부를 선택할 수 있습니다. 연결 파라미터가 `sslmode=verify-ca` 또는 `sslmode=verify-full`을 지정하면, 클라이언트는 RDS CA 인증서를 트러스트 스토어에 있거나 연결 URL에서 참조되게 할 것을 요구합니다. 이 요구 사항은 데이터베이스 인증서에 서명하는 인증서 체인을 확인하는 것입니다.

   psql 또는 JDBC와 같은 클라이언트가 SSL/TLS를 지원하도록 구성되어 있는 경우 클라이언트는 먼저 SSL/TLS를 이용해 데이터베이스에 연결을 시도하도록 기본 설정되어 있습니다. SSL/TLS를 이용해 연결할 수 없는 경우 클라이언트는 SSL/TLS 없이 연결하는 방식으로 전환됩니다. 기본적으로 JDBC 및 libpq 기반 클라이언트의 `sslmode` 옵션은 `prefer`로 설정됩니다.

   `sslrootcert` 파라미터를 사용하여 인증서를 참조합니다(예: `sslrootcert=rds-ssl-ca-cert.pem`).

다음은 psql을 사용해 Aurora PostgreSQL DB 클러스터에 연결하는 것의 예시입니다.

```
$ psql -h testpg.cdhmuqifdpib.us-east-1.rds.amazonaws.com -p 5432 \
    "dbname=testpg user=testuser sslrootcert=rds-ca-2015-root.pem sslmode=verify-full"
```

### Aurora PostgreSQL DB 클러스터에 대한 SSL/TLS 연결 요구
<a name="AuroraPostgreSQL.Security.SSL.Requiring"></a>

`rds.force_ssl` 파라미터를 사용하여 Aurora PostgreSQL DB 클러스터에 대한 연결 시 SSL/TLS를 사용하도록 요구할 수 있습니다.
+ SSL/TLS 연결을 요구하려면 `rds.force_ssl` 파라미터 값을 1(켜짐)로 설정합니다.
+ SSL/TLS 연결 요구를 끄려면 `rds.force_ssl` 파라미터 값을 0(꺼짐)으로 설정합니다.

이 파라미터의 기본값은 Aurora PostgreSQL 버전에 따라 다릅니다.
+ Aurora PostgreSQL 버전 17 이상: 기본값은 1(켜짐)입니다.
+ Aurora PostgreSQL 버전 16 이상: 기본값은 0(꺼짐)입니다.

**참고**  
Aurora PostgreSQL 버전 16 이하에서 버전 17 이상으로 메이저 버전 업그레이드를 수행하면 파라미터의 기본값이 0(꺼짐)에서 1(켜짐)로 변경됩니다. 이 변경으로 인해 SSL용으로 구성되지 않은 애플리케이션에 대한 연결이 실패할 수 있습니다. 이 파라미터를 0(꺼짐)으로 설정하여 이전 기본 동작으로 되돌릴 수 있습니다.

파라미터 처리에 대한 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.

`rds.force_ssl` 파라미터를 업데이트해도 PostgreSQL `ssl` 파라미터가 1(설정)로 설정되고, DB 클러스터의 `pg_hba.conf` 파일이 새로운 SSL/TLS 구성을 지원하도록 수정됩니다.

DB 클러스터에 대해 `rds.force_ssl` 파라미터를 1로 설정하면 연결 시 다음과 같이 SSL/TLS가 요구된다는 출력이 표시됩니다.

```
$ psql postgres -h SOMEHOST.amazonaws.com -p 8192 -U someuser
psql (9.3.12, server 9.4.4)
WARNING: psql major version 9.3, server major version 9.4.
Some psql features might not work.
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

postgres=>
```

### SSL/TLS 연결 상태 확인
<a name="AuroraPostgreSQL.Security.SSL.Status"></a>

DB 클러스터에 연결할 때 로그온 배너에 연결의 암호화된 상태가 표시됩니다.

```
Password for user master: 
psql (9.3.12) 
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) 
Type "help" for help.   

postgres=>
```

또한, `sslinfo` 확장을 로드한 다음 `ssl_is_used()` 함수를 호출하여 SSL/TLS가 사용 중인지 확인할 수 있습니다. 이 함수는 연결이 SSL/TLS를 사용할 경우 `t`를 반환하고, 그렇지 않으면 `f`를 반환합니다.

```
postgres=> create extension sslinfo;
CREATE EXTENSION

postgres=> select ssl_is_used();
 ssl_is_used
---------
t
(1 row)
```

`select ssl_cipher()` 명령을 사용하여 SSL/TLS 암호를 확인할 수 있습니다.

```
postgres=> select ssl_cipher();
ssl_cipher
--------------------
DHE-RSA-AES256-SHA
(1 row)
```

 `set rds.force_ssl`을 활성화하고 DB 클러스터를 다시 시작하면 SSL이 아닌 연결은 다음 메시지와 함께 거부됩니다.

```
$ export PGSSLMODE=disable
$ psql postgres -h SOMEHOST.amazonaws.com -p 8192 -U someuser
psql: FATAL: no pg_hba.conf entry for host "host.ip", user "someuser", database "postgres", SSL off
$
```

`sslmode` 옵션에 대한 자세한 내용은 PostgreSQL 설명서의 [데이터베이스 연결 제어 기능](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLMODE)을 참조하세요.

### Aurora PostgreSQL DB 클러스터 연결을 위한 암호 그룹 구성
<a name="AuroraPostgreSQL.Security.SSL.ConfiguringCipherSuites"></a>

구성 가능한 암호 그룹을 사용하면 데이터베이스 연결의 보안을 더 잘 제어할 수 있습니다. 데이터베이스에 대한 클라이언트 SSL/TLS 연결을 보호하도록 허용할 암호 그룹 목록을 지정할 수 있습니다. 구성 가능한 암호 그룹을 사용하여 데이터베이스 서버가 허용하는 연결 암호화를 제어할 수 있습니다. 이렇게 하면 안전하지 않거나 사용되지 않는 암호의 사용을 방지하는 데 도움이 됩니다.

구성 가능한 암호 그룹은 Aurora PostgreSQL 버전 11.8 이상에서 지원됩니다.

연결을 암호화하는 데 허용되는 암호 목록을 지정하려면 `ssl_ciphers` 클러스터 파라미터를 수정합니다. AWS Management Console, AWS CLI, 또는 RDS API를 사용하여 클러스터 파라미터 그룹의 쉼표로 구분된 암호 값 문자열에 `ssl_ciphers` 파라미터를 설정합니다. 클러스터 파라미터를 설정하려면 [Amazon Aurora에서 DB 클러스터 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.ModifyingCluster.md) 섹션을 참조하세요.

다음 표에는 유효한 Aurora PostgreSQL 엔진 버전에 지원되는 암호가 나와 있습니다.


| Aurora PostgreSQL 엔진 버전 | 지원되는 암호 | TLS 1.1 | TLS 1.2 | TLS 1.3 | 
| --- | --- | --- | --- | --- | 
| 9.6, 10.20 이하, 11.15 이하, 12.10 이하, 13.6 이하 | DHE-RSA-AES128-SHA DHE-RSA-AES128-SHA256 DHE-RSA-AES128-GCM-SHA256 DHE-RSA-AES256-SHA DHE-RSA-AES256-SHA256 DHE-RSA-AES256-GCM-SHA384 ECDHE-ECDSA-AES256-SHA ECDHE-ECDSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES128-SHA ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES256-GCM-SHA384 | 예 아니요 아니요 아니요 아니요 아니요 예 아니요 아니요 예 아니요 아니요 예 아니요 | 아니요 예 예 예 예 예 예 예 예 예 예 예 예 예 |  아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요  | 
| 10.21, 11.16, 12.11, 13.7, 14.3, 14.4 |  ECDHE-RSA-AES128-SHATLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1CHACHA20\$1POLY1305\$1SHA256 | 예 아니요 예 아니요 예 아니요 예 아니요 아니요 예 아니요 예 아니요 | 예 예 예 예 예 예 예 예 예 예 예 예 예 | 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 | 
| 10.22, 11.17, 12.12, 13.8, 14.5 및 15.2 |  TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1CHACHA20\$1POLY1305\$1SHA256 |  예 아니요 아니요 예 아니요 예 아니요 아니요 예 아니요 아니요 예 아니요 예 예 아니요  | 예 예 예 예 예 예 예 예 예 예 예 예 예 예 예 예 | 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 | 
| 11.20, 12.15, 13.11, 14.8, 15.3, 16.1 이상 | TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1CHACHA20\$1POLY1305\$1SHA256 TLS\$1AES\$1128\$1GCM\$1SHA256 TLS\$1AES\$1256\$1GCM\$1SHA384  | 예 아니요 아니요 예 아니요 예 아니요 아니요 예 아니요 아니요 예 아니요 예 예 아니요 아니요 아니요 | 예 예 예 예 예 예 예 예 예 예 예 예 예 예 예 예 아니요 아니요 |  아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 예 예  | 

[describe-engine-default-cluster-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-engine-default-cluster-parameters.html) CLI 명령을 사용하여 특정 파라미터 그룹 제품군에 대해 현재 지원되는 암호 그룹을 결정할 수도 있습니다. 다음 예에서는 Aurora PostgreSQL 11에 대한 `ssl_cipher` 클러스터 파라미터에 대해 허용되는 값을 가져오는 방법을 보여줍니다.

```
aws rds describe-engine-default-cluster-parameters --db-parameter-group-family aurora-postgresql11
                
    ...some output truncated...
	{
		"ParameterName": "ssl_ciphers",
		"Description": "Sets the list of allowed TLS ciphers to be used on secure connections.",
		"Source": "engine-default",
		"ApplyType": "dynamic",
		"DataType": "list",
		"AllowedValues": "DHE-RSA-AES128-SHA,DHE-RSA-AES128-SHA256,DHE-RSA-AES128-GCM-SHA256,DHE-RSA-AES256-SHA,DHE-RSA-AES256-SHA256,DHE-RSA-AES256-GCM-SHA384,
		ECDHE-RSA-AES128-SHA,ECDHE-RSA-AES128-SHA256,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-AES256-SHA,ECDHE-RSA-AES256-SHA384,ECDHE-RSA-AES256-GCM-SHA384,TLS_RSA_WITH_AES_256_GCM_SHA384,
		TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
		TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
		"IsModifiable": true,
		"MinimumEngineVersion": "11.8",
		"SupportedEngineModes": [
			"provisioned"
		]
	},
    ...some output truncated...
```

`ssl_ciphers` 파라미터는 허용되는 모든 암호 그룹으로 기본 설정됩니다. 암호에 대한 자세한 내용은 PostgreSQL 문서의 가변 [ssl\$1cipher](https://www.postgresql.org/docs/current/runtime-config-connection.html#GUC-SSL-CIPHERS)를 참조하세요.

# Aurora PostgreSQL에서 동적 마스킹 사용
<a name="AuroraPostgreSQL.Security.DynamicMasking"></a>

동적 데이터 마스킹은 쿼리 시 사용자에게 데이터가 표시되는 방식을 제어하여 Aurora PostgreSQL 데이터베이스의 민감한 데이터를 보호하는 보안 기능입니다. Aurora는 `pg_columnmask` 확장을 통해 이를 구현합니다. `pg_columnmask`는 PostgreSQL의 기본 행 수준 보안 및 세분화된 액세스 제어 메커니즘을 보완하는 열 수준 데이터 보호를 제공합니다.

`pg_columnmask`를 사용하면 사용자 역할을 기반으로 데이터 가시성을 결정하는 마스킹 정책을 생성할 수 있습니다. 사용자가 마스킹 정책을 사용하여 테이블을 쿼리하면 Aurora PostgreSQL은 사용자의 역할 및 정책 가중치에 따라 쿼리 시 적절한 마스킹 함수를 적용합니다. 기본 데이터는 스토리지에서 변경되지 않고 그대로 유지됩니다.

`pg_columnmask`는 다음 기능을 지원합니다.
+ **기본 제공 및 사용자 지정 마스킹 함수** - 이메일 및 텍스트 마스킹과 같은 일반적인 패턴에 대해 사전 구축된 함수를 사용하거나 SQL 기반 마스킹 정책을 통해 민감한 데이터(PII)를 보호하는 자체 사용자 지정 함수를 생성합니다.
+ **다중 마스킹 전략** - 정보를 완전히 숨기거나, 부분 값을 와일드카드로 바꾸거나, 사용자 지정 마스킹 접근 방식을 정의합니다.
+ **정책 우선 순위 지정** - 단일 열에 대해 여러 정책을 정의합니다. 가중치를 사용하여 여러 정책이 열에 적용될 때 사용할 마스킹 정책을 결정합니다. Aurora PostgreSQL은 가중치 및 사용자 역할 멤버십을 기반으로 정책을 적용합니다.

`pg_columnmask`는 Aurora PostgreSQL 버전 16.10 이상 및 버전 17.6 이상에서 사용할 수 있습니다. 추가 비용 없이 사용할 수 있습니다.

# 동적 마스킹 시작
<a name="AuroraPostgreSQL.Security.DynamicMasking.GetStarted"></a>

데이터를 동적으로 마스킹하려면 데이터베이스에 `pg_columnmask` 확장을 설치하고 테이블에 대한 마스킹 정책을 생성합니다. 설정 프로세스에는 사전 조건 확인, 확장 설치, 역할 구성, 정책 생성 및 검증 테스트가 포함됩니다.

## 확장 설치 및 구성
<a name="AuroraPostgreSQL.Security.DynamicMasking.GetStarted.Installation"></a>

RDS 콘솔 쿼리 편집기 또는 rds\$1superuser(마스터 사용자) 자격 증명이 있는 psql과 같은 PostgreSQL 클라이언트를 사용하여 Aurora PostgreSQL 클러스터에 연결합니다.

확장 생성 명령을 실행하여 `pg_columnmask` 기능을 활성화합니다.

```
CREATE EXTENSION pg_columnmask;
```

이 명령은 `pg_columnmask` 확장을 설치하고, 필요한 카탈로그 테이블을 생성하고, 내장 마스킹 함수를 등록합니다. 확장 설치는 데이터베이스별로 다르므로 기능이 필요한 각 데이터베이스에 별도로 설치해야 합니다.

**참고**  
이 확장을 설치하기 전에 수행된 연결에는 여전히 마스킹되지 않은 데이터가 표시됩니다. 이 문제를 해결하려면 닫고 다시 연결합니다.

사용 가능한 마스킹 함수를 확인하여 확장 설치를 확인합니다.

```
SELECT proname FROM pg_proc
    WHERE pronamespace = 'pgcolumnmask'::regnamespace AND proname LIKE 'mask_%';
    proname     
--------Output --------
 mask_email
 mask_text
 mask_timestamp
(3 rows)
```

# 데이터 마스킹 정책 관리 절차
<a name="AuroraPostgreSQL.Security.DynamicMasking.Procedures"></a>

`pg_columnmask` 확장에서 제공하는 절차를 사용하여 마스킹 정책을 관리할 수 있습니다. 마스킹 정책을 생성, 수정 또는 삭제하려면 다음 권한 중 하나가 있어야 합니다.
+ `pg_columnmask` 정책을 생성하려는 테이블의 소유자입니다.
+ `rds_superuser`의 구성원입니다.
+ `pgcolumnmask.policy_admin_rolname` 파라미터로 설정된 `pg_columnmask` 정책 관리자 역할의 구성원입니다.

다음 명령은 후속 섹션에서 사용되는 테이블을 생성합니다.

```
CREATE TABLE public.customers (
    id SERIAL PRIMARY KEY,
    name TEXT,
    phone TEXT,
    address TEXT,
    email TEXT
);
```

## CREATE\$1MASKING\$1POLICY
<a name="AuroraPostgreSQL.Security.DynamicMasking.Procedures.CreateMaskingPolicy"></a>

다음 절차에서는 사용자 테이블에 대한 새 마스킹 정책을 생성합니다.

**구문**:

```
create_masking_policy(
    policy_name,
    table_name,
    masking_expressions,
    roles,
    weight)
```

**인수**


| 파라미터 | 데이터 형식 | 설명 | 
| --- | --- | --- | 
| policy\$1name | NAME |  마스킹 정책의 이름입니다. 테이블마다 고유해야 합니다.  | 
| table\$1name | REGCLASS |  마스킹 정책을 적용할 테이블의 정규화된/비정규화된 이름 또는 oid입니다.  | 
| masking\$1expressions | JSONB |  열 이름과 마스킹 함수 페어가 포함된 JSON 객체입니다. 각 키는 열 이름이며 해당 값은 해당 열에 적용할 마스킹 표현식입니다.  | 
| roles | NAME[] |  이 마스킹 정책이 적용되는 역할입니다. 기본값은 PUBLIC입니다.  | 
| weight | INT |  마스킹 정책의 가중치입니다. 지정된 사용자의 쿼리에 여러 정책을 적용할 수 있는 경우 가중치가 가장 높은(높은 정수 수) 정책이 마스킹된 각 열에 적용됩니다. 기본값은 0. 테이블의 두 마스킹 정책이 동일한 가중치를 가질 수 없습니다.  | 

**반환 유형**:

없음

**Example `test_user` 역할의 이메일 열을 마스킹하는 마스킹 정책 생성:**  

```
CALL pgcolumnmask.create_masking_policy(
    'customer_mask',
    'public.customers',
    JSON_OBJECT('{
        "email", "pgcolumnmask.mask_email(email)"
    }')::JSONB,
    ARRAY['test_user'],
    100
);
```

## ALTER\$1MASKING\$1POLICY
<a name="AuroraPostgreSQL.Security.DynamicMasking.Procedures.AlterMaskingPolicy"></a>

이 절차는 기존 마스킹 정책을 수정합니다. `ALTER_MASKING_POLICY`는 정책 마스킹 표현식, 정책이 적용되는 역할 세트, 마스킹 정책의 가중치를 수정할 수 있습니다. 이러한 파라미터 중 하나를 생략하면 정책의 해당 부분이 변경되지 않습니다.

**구문**:

```
alter_masking_policy(
    policy_name,
    table_name,
    masking_expressions,
    roles,
    weight)
```

**인수**


| 파라미터 | 데이터 형식 | 설명 | 
| --- | --- | --- | 
| policy\$1name | NAME |  마스킹 정책의 기존 이름입니다.  | 
| table\$1name | REGCLASS |  마스킹 정책이 포함된 테이블의 정규화된/비정규화된 이름입니다.  | 
| masking\$1expressions | JSONB |  열 이름과 마스킹 함수 페어 또는 NULL이 포함된 새 JSON 객체입니다.  | 
| roles | NAME[] |  이 마스킹 정책이 적용되는 새 역할 목록 또는 그렇지 않으면 NULL입니다.  | 
| weight | INT |  마스킹 정책의 새 가중치 또는 그렇지 않으면 NULL입니다.  | 

**반환 유형**:

없음

**Example 다른 정책 속성을 변경하지 않고 기존 마스킹 정책에 분석가 역할을 추가합니다.**  

```
CALL pgcolumnmask.alter_masking_policy(
    'customer_mask',
    'public.customers',
    NULL,
    ARRAY['test_user', 'analyst'],
    NULL 
);

-- Alter the weight of the policy without altering other details
CALL pgcolumnmask.alter_masking_policy(
    'customer_mask',
    'customers',
    NULL,
    NULL,
    4
);
```

## DROP\$1MASKING\$1POLICY
<a name="AuroraPostgreSQL.Security.DynamicMasking.Procedures.DropMaskingPolicy"></a>

이 절차에서는 기존 마스킹 정책을 제거합니다.

**구문**:

```
drop_masking_policy(
        policy_name,
        table_name)
```

**인수**


| 파라미터 | 데이터 형식 | 설명 | 
| --- | --- | --- | 
| policy\$1name | NAME |  마스킹 정책의 기존 이름입니다.  | 
| table\$1name | REGCLASS |  마스킹 정책이 포함된 테이블의 정규화된/비정규화된 이름입니다.  | 

**반환 유형**:

없음

**Example 마스킹 정책 customer\$1mask 삭제**  

```
-- Drop a masking policy
    CALL pgcolumnmask.drop_masking_policy(
        'customer_mask',
        'public.customers',
    );
```

# 마스킹 정책 DDL 절차에서 식별자 이스케이프
<a name="AuroraPostgreSQL.Security.DynamicMasking.EscapeIdentifiers"></a>

따옴표로 묶인 식별자로 데이터 마스킹 정책을 생성할 때 올바른 객체 참조 및 정책 애플리케이션을 보장하려면 적절한 이스케이프 처리가 필요합니다. `pg_columnmask` 마스킹 정책 관리 절차 내에서 따옴표로 묶인 식별자 사용:
+ **정책 이름** - 큰따옴표로 묶어야 합니다.
+ **테이블 이름** - 스키마 이름과 테이블 이름 모두 필요한 경우 큰따옴표로 묶어야 합니다.
+ **마스킹 표현식** - 마스킹 표현식의 열 및 함수 이름은 큰따옴표로 묶어야 하며 따옴표 자체는 백슬래시를 사용하여 이스케이프 처리해야 합니다.
+ **역할** - 역할 이름 배열이 자동으로 인용됩니다. 역할 이름은 대/소문자 구분을 포함하여 `pg_roles`에 표시된 이름과 정확히 일치해야 합니다.

**Example 이스케이프 및 인용 구문**  
이 예제는 혼합 대소문자 이름을 사용하거나 Aurora PostgreSQL에서 따옴표로 묶인 식별자를 요구하는 테이블, 열, 함수 및 역할에 대한 마스킹 정책을 생성할 때 적절한 이스케이프 및 인용 구문을 보여 줍니다.  

```
-- Create a table and columns with mixed case name 
CREATE TABLE public."Employees" (
    "Name" TEXT,
    "Email" TEXT,
    ssn VARCHAR(20)
);

-- Create a role with mixed case name
CREATE ROLE "Masked_user";

-- Create a function with mixed case name
CREATE OR REPLACE FUNCTION public."MaskEmail"(text)
    RETURNS character varying
    LANGUAGE plpgsql
    IMMUTABLE PARALLEL SAFE
    AS $$ BEGIN
        RETURN 'XXXXXXXX'::text;
    END $$;

-- Now use these objects with mixed case names in
-- masking policy management procedures
CALL pgcolumnmask.create_masking_policy(
    '"Policy1"',  -- policy name should be surrounded with double quotes for quoting
    'public."Employees"', -- table and schema name should be individually 
                          -- surrounded with double quotes for quoting
    JSON_OBJECT('{
        "\"Email\"", "\"MaskEmail\"(\"Email\")"
    }')::JSONB, -- masking expression should have double quotes around function names
                -- and columns names etc when needed. Also the double quotes itself
                -- should be escaped using \ (backslash) since this is a JSON string
    ARRAY['Masked_user'], -- Rolename do not need quoting
                          -- (this behaviour may change in future release)
    100
);

SELECT * FROM pgcolumnmask.pg_columnmask_policies
    WHERE tablename = 'Employees';
-[ RECORD 1 ]-----+-------------------------------------
schemaname        | public
tablename         | Employees
policyname        | Policy1
roles             | {Masked_user}
masked_columns    | {Email}
masking_functions | {"(\"MaskEmail\"(\"Email\"))::text"}
weight            | 100
```

## 관리 보기
<a name="AuroraPostgreSQL.Security.DynamicMasking.AdminViews"></a>

공개적으로 액세스할 수 있는 `pgcolumnmask.pg_columnmask_policies` 관리 보기를 사용하여 모든 `pg_columnmask` 정책을 검토할 수 있습니다. 이 보기를 사용하여 다음 정보를 사용할 수 있습니다. 뷰는 현재 사용자가 소유한 마스킹 정책만 반환합니다.


| 열 이름 | 데이터 유형 | 설명 | 
| --- | --- | --- | 
|  schemaname  | NAME |  정책이 연결된 관계의 스키마  | 
|  tablename  | NAME |  정책이 연결된 관계의 이름  | 
|  policyname  | NAME |  마스킹 정책의 이름, 모든 마스킹 정책에는 고유한 이름이 있음  | 
|  역할  | TEXT[] |  정책이 적용되는 역할입니다.  | 
|  masked\$1columns  | TEXT[] |  마스킹된 열  | 
|  masking\$1functions  | TEXT[] |  Masking functions  | 
| weight | INT |  연결된 정책의 가중치  | 

# 사전 정의된 데이터 마스킹 함수
<a name="AuroraPostgreSQL.Security.DynamicMasking.PredefinedMaskingFunctions"></a>

`pg_columnmask` 확장은 `pg_columnmask` 정책의 마스킹 표현식으로 사용할 수 있는 C 언어(더 빠른 실행을 위해)로 작성된 내장 유틸리티 함수를 제공합니다.

**mask\$1text**

구성 가능한 가시성 옵션으로 텍스트 데이터를 마스킹하는 함수입니다.

**인수**


| 파라미터 | 데이터 형식 | 설명 | 
| --- | --- | --- | 
| input | TEXT |  마스킹할 원래 텍스트 문자열  | 
| mask\$1char | CHAR(1) |  마스킹에 사용되는 문자(기본값: 'X')  | 
| visible\$1prefix | INT |  마스킹되지 않은 상태로 유지될 입력 텍스트의 시작 부분에 있는 문자 수(기본값: 0)  | 
| visible\$1suffix | INT |  마스킹되지 않은 상태로 유지될 입력 텍스트의 끝부분에 있는 문자 수(기본값: 0)  | 
| use\$1hash\$1mask | BOOLEAN |  TRUE인 경우 mask\$1char 대신 해시 기반 마스킹을 사용합니다(기본값: FALSE).  | 

**Example 다양한 마스킹 옵션 사용**  
기본 'X' 문자로 전체 입력 문자열 마스킹  

```
postgres=> SELECT pgcolumnmask.mask_text('Hello World');
  mask_text  
-------------
 XXXXXXXXXXX
```
`mask_char` 인수를 사용하여 다른 문자로 텍스트 입력을 마스킹합니다.  

```
postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*');
  mask_text  
-------------
 ***********
```
`visible_prefix` 및 `visible_suffix` 파라미터를 사용하여 텍스트의 시작과 끝에서 마스킹되지 않은 상태로 남아 있는 문자 수를 제어합니다.  

```
postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*', 5, 1);
  mask_text  
-------------
 Hello*****d
```
`use_hash_mask`가 True인 경우 입력 문자열이 임의 문자를 사용하여 마스킹되고 `mask_char` 인수는 무시되지만 `visible_prefix` 및 `visible_suffix`는 여전히 준수됩니다.  

```
postgres=> SELECT pgcolumnmask.mask_text('Hello World', '*', 2, 2, true);
  mask_text  
-------------
 Hex36dOHild
```

**mask\$1timestamp**


| 파라미터 | 데이터 형식 | 설명 | 
| --- | --- | --- | 
| ts\$1to\$1mask | TIMESTAMP |  마스킹할 원래 타임스탬프  | 
| mask\$1part | TEXT |  타임스탬프에서 마스킹할 부분을 지정합니다(기본값: 'all'). 유효한 값은 'year', 'month', 'day', 'hour', 'minute', 'second', 'all'입니다.  | 
| mask\$1value | TIMESTAMP |  마스킹에 사용할 타임스탬프 값(기본값: '1900-01-01 00:00:00')  | 

**Example `mask_timestamps` 사용**  
이 예제에서는 기본값으로의 전체 타임스탬프 마스킹, 특정 타임스탬프 구성 요소의 부분 마스킹(연도만 해당), 사용자 지정 대체 값으로의 마스킹을 보여 줍니다.  
입력값을 기본 타임스탬프로 완전히 마스킹합니다.  

```
postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00');
   mask_timestamp    
---------------------
 1900-01-01 00:00:00
```
예제에서 타임스탬프의 한 부분만 연도로 마스킹  

```
postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00', 'year');
   mask_timestamp    
---------------------
 1900-06-15 14:30:00
```
타임스탬프의 마스킹된 값을 변경하려면 `mask_value` 인수를 사용합니다.  

```
postgres=> SELECT pgcolumnmask.mask_timestamp('2023-06-15 14:30:00', 'all', '2012-12-12 12:12:12');
   mask_timestamp    
---------------------
 2012-12-12 12:12:12
```

**mask\$1timestamp**

이메일 구조를 유지하면서 이메일 주소를 마스킹하는 함수입니다.


| 파라미터 | 데이터 형식 | 설명 | 
| --- | --- | --- | 
| input | TEXT |  마스킹할 원래 이메일 주소  | 
| mask\$1char | CHAR(1) |  마스킹에 사용되는 문자(기본값: 'X')  | 
| mask\$1local | BOOLEAN |  TRUE인 경우 이메일의 로컬 부분(@ 이전)을 마스킹합니다(기본값: TRUE).  | 
| mask\$1domain | BOOLEAN |  TRUE인 경우는 이메일의 도메인 부분(@ 뒤)을 마스킹합니다(기본값: TRUE).  | 

**Example `mask_email` 사용**  
이 예제에서는 이메일 주소의 로컬 부분 또는 도메인 부분에 대한 완전한 이메일 마스킹, 사용자 지정 마스크 문자 및 선택적 마스킹을 보여 줍니다.  
마스킹 완료  

```
postgres=> SELECT pgcolumnmask.mask_email('user@example.com');
    mask_email    
------------------
 XXXX@XXXXXXX.com
```
마스킹에 사용되는 문자를 변경하는 데 `mask_char` 사용  

```
postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*');
    mask_email    
------------------
 ****@*******.com
```
`mask_local` 및 `mask_domain`을 사용하여 로컬 및 도메인에서 마스킹 제어  

```
postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*', true, false);
    mask_email    
------------------
 ****@example.com

postgres=> SELECT pgcolumnmask.mask_email('user@example.com', '*', false, true);
    mask_email    
------------------
 user@*******.com
```

# 종단 간 워크플로에서 pg\$1columnmask 구현
<a name="AuroraPostgreSQL.Security.DynamicMasking.WorkflowExample"></a>

이 섹션에서는 민감한 데이터가 있는 샘플 직원 테이블을 사용하는 `pg_columnmask`의 전체 구현을 보여 줍니다. 사용자 지정 마스킹 함수를 생성하고, 다양한 역할(인턴, 지원, 분석가)에 대해 서로 다른 가중치 수준으로 여러 마스킹 정책을 정의하고, 단일 또는 여러 역할 멤버십을 가진 사용자가 서로 다른 수준의 마스킹 데이터를 보는 방법을 알아봅니다. 또한 이 예제에서는 RETURNING 절을 사용한 DML 문에서의 마스킹 동작, 테이블과 뷰의 트리거, 이름 변경, 가중치 변경, 정리를 포함한 정책 관리 작업을 다룹니다.

1. 몇 가지 민감한 데이터가 포함된 샘플 테이블을 생성합니다.

   ```
   CREATE SCHEMA hr;
   
   CREATE TABLE hr.employees (
       id INT PRIMARY KEY,
       name TEXT NOT NULL,
       email TEXT,
       ssn TEXT,
       salary NUMERIC(10,2)
    );
   
   INSERT INTO hr.employees VALUES
       (1, 'John Doe', 'john.doe@example.com', '123-45-6789', 50000.00),
       (2, 'Jane Smith', 'jane.smith@example.com', '987-65-4321', 60000.00);
   ```

1. 사용자 지정 마스킹 함수 생성:

   ```
   CREATE OR REPLACE FUNCTION public.mask_ssn(ssn TEXT)
       RETURNS TEXT AS $$
       BEGIN
           RETURN 'XXX-XX-' || RIGHT(ssn, 4);
       END;
       $$ LANGUAGE plpgsql;
   
   CREATE OR REPLACE FUNCTION public.mask_salary(salary NUMERIC, multiplier NUMERIC DEFAULT 0.0)
       RETURNS NUMERIC AS $$
       BEGIN
           RETURN salary * multiplier;
       END;
       $$ LANGUAGE plpgsql;
   ```

1. 사용자 역할에 따라 마스킹 수준이 다른 여러 정책을 생성합니다.

   ```
   -- Create different roles
   CREATE ROLE analyst_role;
   CREATE ROLE support_role;
   CREATE ROLE intern_role;
   
   GRANT USAGE ON SCHEMA hr TO analyst_role, support_role, intern_role;
   GRANT SELECT ON hr.employees TO analyst_role, support_role, intern_role;
   ----------------------------------------------------------------------
   
   -- Low-Weight Policy (Intern)
   CALL pgcolumnmask.create_masking_policy(
       'employee_mask_strict',
       'hr.employees',
       JSON_BUILD_OBJECT('name', 'pgcolumnmask.mask_text(name, ''*'')',
                         'email', 'pgcolumnmask.mask_email(email)',
                         'ssn', 'pgcolumnmask.mask_text(ssn, ''*'')',
                         'salary', 'public.mask_salary(salary)')::JSONB,
       ARRAY['intern_role'],
       10  -- Lowest weight
   );
   
   ----------------------------------------------------------------------
   -- Medium-Weight Policy (Support)
   CALL pgcolumnmask.create_masking_policy(
       'employee_mask_moderate',
       'hr.employees',
       JSON_BUILD_OBJECT('email', 'pgcolumnmask.mask_email(email, ''#'')',
                         'ssn', 'public.mask_ssn(ssn)',
                         'salary', 'public.mask_salary(salary)')::JSONB,
       ARRAY['support_role'],
       50   -- Medium weight
   );
   
   ----------------------------------------------------------------------
   -- High-Weight Policy (Analyst)
   CALL pgcolumnmask.create_masking_policy(
       'employee_mask_light',
       'hr.employees',
       JSON_BUILD_OBJECT('ssn', 'public.mask_ssn(ssn)',
                         'salary', 'public.mask_salary(salary, 0.9)')::JSONB,
       ARRAY['analyst_role'],
       100   -- Highest weight
   );
   ```

1. 다음 예제는 다양한 사용자가 역할 멤버십 및 정책 가중치를 기반으로 데이터를 보는 방법을 보여 줍니다.

   ```
   -- Create users
   CREATE USER sarah_intern;
   GRANT intern_role TO sarah_intern;
   
   CREATE USER lisa_support;
   GRANT support_role TO lisa_support;
   
   CREATE USER mike_analyst;
   GRANT analyst_role TO mike_analyst;
   
   CREATE USER ethan_support_intern;
   GRANT support_role, intern_role TO ethan_support_intern;
   
   CREATE USER john_analyst_intern;
   GRANT analyst_role, intern_role TO john_analyst_intern;
   ```

   인턴으로서(가장 엄격한 마스킹):

   ```
   SET ROLE sarah_intern;
   
   SELECT * FROM hr.employees;
    id |    name    |         email          |     ssn     | salary 
   ----+------------+------------------------+-------------+--------
     1 | ********   | XXXXXXXX@XXXXXXX.com   | *********** |   0.00
     2 | ********** | XXXXXXXXXX@XXXXXXX.com | *********** |   0.00
   ```

   지원 사용자로서(중간 수준 마스킹):

   ```
   SET ROLE lisa_support;
   
   SELECT * FROM hr.employees;
    id |    name    |         email          |     ssn     | salary 
   ----+------------+------------------------+-------------+--------
     1 | John Doe   | ########@#######.com   | XXX-XX-6789 |   0.00
     2 | Jane Smith | ##########@#######.com | XXX-XX-4321 |   0.00
   ```

   분석가로서(가장 가벼운 마스킹):

   ```
   SET ROLE mike_analyst;
   
   SELECT * FROM hr.employees;
    id |    name    |         email          |     ssn     |  salary  
   ----+------------+------------------------+-------------+----------
     1 | John Doe   | john.doe@example.com   | XXX-XX-6789 | 45000.00
     2 | Jane Smith | jane.smith@example.com | XXX-XX-4321 | 54000.00
   ```

   인턴이고 사용자를 지원하는 ethan\$1support\$1intern 사용자로서:

   ```
   SET ROLE ethan_support_intern;
   
   -- masking policies appliable to this user: employee_mask_strict and employee_mask_moderate
   -- id : unmasked because no masking policy appliable on ethan_support_intern
   --            masks these columns
   -- name : masked because of employee_mask_strict policy
   -- email, ssn, salary : both employee_mask_strict and employee_mask_moderate mask these columns
   --                      but employee_mask_moderate will be use because of higher weight 
   
   SELECT * FROM hr.employees;
    id |    name    |         email          |     ssn     | salary 
   ----+------------+------------------------+-------------+--------
     1 | ********   | ########@#######.com   | XXX-XX-6789 |   0.00
     2 | ********** | ##########@#######.com | XXX-XX-4321 |   0.00
   ```

   인턴이자 분석가인 john\$1analyst\$1intern으로서:

   ```
   SET ROLE john_analyst_intern;
   
   -- masking policies appliable to this user: employee_mask_strict and employee_mask_light
   -- id : unmasked because no masking policy appliable on john_analyst_intern
   --            masks these columns
   -- name, email : masked because of employee_mask_strict
   -- ssn, salary : both employee_mask_strict and employee_mask_light mask these columns
   --               but employee_mask_light will be use because of higher weight 
   
   SELECT * FROM hr.employees;
    id |    name    |         email          |     ssn     |  salary  
   ----+------------+------------------------+-------------+----------
     1 | ********   | XXXXXXXX@XXXXXXX.com   | XXX-XX-6789 | 45000.00
     2 | ********** | XXXXXXXXXX@XXXXXXX.com | XXX-XX-4321 | 54000.00
   ```

# DML 작업의 마스킹 동작 이해
<a name="AuroraPostgreSQL.Security.DynamicMasking.DMLMasking"></a>

`pg_columnmask`는 INSERT, UPDATE, DELETE 및 MERGE 문을 포함한 모든 DML 작업에 일관되게 적용됩니다. 이러한 작업을 실행하면 Aurora PostgreSQL은 핵심 원칙에 따라 데이터를 마스킹합니다. 스토리지에서 읽은 모든 데이터는 현재 사용자의 해당 정책에 따라 마스킹됩니다.

마스킹은 다음과 같은 쿼리 구성 요소 중 일부에 영향을 미칩니다.
+ WHERE 절
+ JOIN 조건
+ 하위 쿼리
+ RETURNING 절

이러한 모든 구성 요소는 원본 데이터가 아닌 마스킹된 값에서 작동합니다. 데이터가 마스킹되지 않은 스토리지에 기록되는 동안 사용자는 데이터를 다시 읽을 때 마스킹된 보기만 볼 수 있습니다.

Aurora PostgreSQL은 마스킹 처리된 값이 아닌 실제 저장된 값에 모든 데이터베이스 제약 조건(NULL, UNIQUE, CHECK, FOREIGN KEY 아님)을 적용합니다. 마스킹 함수가 신중하게 설계되지 않은 경우 때때로 명백한 불일치가 발생할 수 있습니다.

마스킹은 열 수준 권한과 함께 작동합니다.
+ SELECT 권한이 없는 사용자는 열을 읽을 수 없습니다.
+ SELECT 권한이 있는 사용자는 해당 정책에 따라 마스킹된 값을 볼 수 있습니다.

# 트리거 함수의 마스킹 동작 이해
<a name="AuroraPostgreSQL.Security.DynamicMasking.TriggerFunctionMasking"></a>

`pg_columnmask` 정책을 테이블에 적용할 때는 마스킹이 트리거 함수와 상호 작용하는 방식을 이해하는 것이 중요합니다. 트리거는 INSERT, UPDATE 또는 DELETE 작업과 같은 테이블의 특정 이벤트에 대한 응답으로 자동으로 실행되는 데이터베이스 함수입니다.

기본적으로 DDM은 트리거 유형에 따라 다른 마스킹 규칙을 적용합니다.

테이블 트리거  
**전환 테이블의 마스킹 해제** - 테이블의 트리거 함수는 이전 및 새 행 버전 모두에 대해 전환 테이블의 마스킹 해제된 데이터에 액세스할 수 있습니다.  
테이블 소유자는 트리거를 생성하고 데이터를 소유하므로 테이블을 효과적으로 관리할 수 있는 전체 액세스 권한을 갖습니다.

트리거 보기(INSTEAD OF 트리거)  
**전환 테이블 마스킹됨** - 뷰의 트리거 함수는 현재 사용자의 권한에 따라 마스킹된 데이터를 확인합니다.  
뷰 소유자는 기본 테이블 소유자와 다를 수 있으며 기본 테이블의 마스킹 정책을 준수해야 합니다.

두 개의 서버 수준 구성 파라미터는 마스킹 처리된 테이블을 사용하여 트리거 동작을 제어합니다. 이는 `rds_superuser`에서만 설정할 수 있습니다.
+ **마스킹 테이블에 대한 트리거 제한** - 마스킹된 사용자가 적용 가능한 마스킹 정책이 있는 테이블에 대해 DML 작업을 수행할 때 트리거 실행을 방지합니다.
+ **마스킹 테이블이 있는 뷰에서 트리거 제한:** - 뷰 정의에 현재 사용자에게 적용되는 마스킹 정책이 있는 테이블이 포함된 경우 뷰에서 트리거 실행을 방지합니다.

**Example 함수 애플리케이션과 테이블 및 뷰 간의 차이점**  
다음 예제에서는 이전 행 값과 새 행 값을 인쇄하는 트리거 함수를 생성한 다음, 테이블과 뷰에 연결할 때 동일한 함수가 다르게 동작하는 방법을 보여 줍니다.  

```
-- Create trigger function
CREATE OR REPLACE FUNCTION print_changes()
    RETURNS TRIGGER AS
    $$
        BEGIN
        RAISE NOTICE 'Old row: name=%, email=%, ssn=%, salary=%',
            OLD.name, OLD.email, OLD.ssn, OLD.salary;
        
        RAISE NOTICE 'New row: name=%, email=%, ssn=%, salary=%',
            NEW.name, NEW.email, NEW.ssn, NEW.salary;
        
        RETURN NEW;
        END;
    $$ LANGUAGE plpgsql;

-- Create trigger
CREATE TRIGGER print_changes_trigger
    BEFORE UPDATE ON hr.employees
    FOR EACH ROW
    EXECUTE FUNCTION print_changes();

-- Grant update to analyst role
GRANT UPDATE ON hr.employees TO analyst_role;

-- Unmasked data must be seen inside trigger even for masked user for the OLD and NEW
-- row passed to trigger function
BEGIN;
SET ROLE mike_analyst;
UPDATE hr.employees SET id = id + 10 RETURNING *;
NOTICE:  Old row: name=John Doe, email=john.doe@example.com, ssn=123-45-6789, salary=50000.00
NOTICE:  New row: name=John Doe, email=john.doe@example.com, ssn=123-45-6789, salary=50000.00
NOTICE:  Old row: name=Jane Smith, email=jane.smith@example.com, ssn=987-65-4321, salary=60000.00
NOTICE:  New row: name=Jane Smith, email=jane.smith@example.com, ssn=987-65-4321, salary=60000.00
 id |    name    |         email          |     ssn     |  salary  
----+------------+------------------------+-------------+----------
 11 | John Doe   | john.doe@example.com   | XXX-XX-6789 | 45000.00
 12 | Jane Smith | jane.smith@example.com | XXX-XX-4321 | 54000.00
(2 rows)

ROLLBACK;


-- Triggers on views (which are supposed to see masked data for new/old row)
CREATE VIEW hr.view_over_employees AS SELECT * FROM hr.employees;
GRANT UPDATE, SELECT ON hr.view_over_employees TO analyst_role;

-- Create trigger for this view
CREATE TRIGGER print_changes_trigger
    INSTEAD OF UPDATE ON hr.view_over_employees
    FOR EACH ROW
    EXECUTE FUNCTION print_changes();

-- Masked new and old rows should be passed to trigger if trigger is on view
BEGIN;
SET ROLE mike_analyst;
UPDATE hr.view_over_employees SET id = id + 10 RETURNING *;
NOTICE:  Old row: name=John Doe, email=john.doe@example.com, ssn=XXX-XX-6789, salary=45000.00
NOTICE:  New row: name=John Doe, email=john.doe@example.com, ssn=XXX-XX-6789, salary=45000.00
NOTICE:  Old row: name=Jane Smith, email=jane.smith@example.com, ssn=XXX-XX-4321, salary=54000.00
NOTICE:  New row: name=Jane Smith, email=jane.smith@example.com, ssn=XXX-XX-4321, salary=54000.00
 id |    name    |         email          |     ssn     |  salary  
----+------------+------------------------+-------------+----------
 11 | John Doe   | john.doe@example.com   | XXX-XX-6789 | 45000.00
 12 | Jane Smith | jane.smith@example.com | XXX-XX-4321 | 54000.00
(2 rows)
ROLLBACK;
```
마스킹 처리된 테이블에 트리거를 구현하기 전에 트리거 동작을 검토하는 것이 좋습니다. 테이블 트리거는 전환 테이블의 마스킹되지 않은 데이터에 액세스할 수 있는 반면, 뷰 트리거는 마스킹된 데이터를 볼 수 있습니다.

**Example 마스킹 정책 이름 변경**  
다음 예제에서는 `rename_masking_policy` 프로시저를 사용하여 기존 정책의 이름을 바꾸는 방법을 보여 줍니다.  

```
-- Rename the strict policy
CALL pgcolumnmask.rename_masking_policy(
    'employee_mask_strict',
    'hr.employees',
    'intern_protection_policy'
);

-- Verify the rename
SELECT policyname, roles, weight
    FROM pgcolumnmask.pg_columnmask_policies
    WHERE tablename = 'employees'
    ORDER BY weight DESC;

        policyname        |     roles      | weight 
--------------------------+----------------+--------
 employee_mask_light      | {analyst_role} |    100
 employee_mask_moderate   | {support_role} |     50
 intern_protection_policy | {intern_role}  |     10
```

**Example 정책 가중치 변경**  
다음 예제에서는 정책 가중치를 변경하여 가중치를 변경하는 방법을 보여 줍니다.  

```
-- Change weight of moderate policy
CALL pgcolumnmask.alter_masking_policy(
    'employee_mask_moderate'::NAME,
    'hr.employees'::REGCLASS,
    NULL,    -- Keep existing masking expressions
    NULL,    -- Keep existing roles
    75       -- New weight
);

-- Verify the changes
SELECT policyname, roles, weight
    FROM pgcolumnmask.pg_columnmask_policies
    WHERE tablename = 'employees'
    ORDER BY weight DESC;
        policyname        |     roles      | weight 
--------------------------+----------------+--------
 employee_mask_light      | {analyst_role} |    100
 employee_mask_moderate   | {support_role} |     75
 intern_protection_policy | {intern_role}  |     10
```

**Example 정리**  
다음 예제에서는 모든 정책, 테이블 및 사용자를 삭제하는 방법을 보여 줍니다.  

```
-- Drop policies
CALL pgcolumnmask.drop_masking_policy(
    'intern_protection_policy',
    'hr.employees'
);

CALL pgcolumnmask.drop_masking_policy(
    'employee_mask_moderate',
    'hr.employees'
);

CALL pgcolumnmask.drop_masking_policy(
    'employee_mask_light',
    'hr.employees'
);

-- Drop table and functions
DROP VIEW IF EXISTS hr.view_over_employees;
DROP TABLE IF EXISTS hr.employees;
DROP SCHEMA IF EXISTS hr;
DROP FUNCTION IF EXISTS public.mask_ssn(text);
DROP FUNCTION IF EXISTS public.mask_salary(numeric, numeric);

-- Drop users
DROP USER sarah_intern, lisa_support, mike_analyst,
    ethan_support_intern, john_analyst_intern;
DROP ROLE intern_role, support_role, analyst_role;
```

# 마스킹 정책 관리 역할 구성
<a name="AuroraPostgreSQL.Security.DynamicMasking.PolicyManagementRole"></a>

PostgreSQL 열 마스킹 확장인 `pg_columnmask`를 사용하면 `rds_superuser` 또는 테이블 소유자 권한이 필요하지 않고 특정 역할에 마스킹 정책 관리를 위임할 수 있습니다. 이를 통해 마스킹 정책을 생성, 변경 및 삭제할 수 있는 사용자를 보다 세밀하게 제어할 수 있습니다.

마스킹 정책 관리 권한이 있는 역할을 구성하려면 다음 단계를 따릅니다.

1. 정책 관리자 역할 생성 - `rds_superuser`는 마스킹 정책 관리를 담당하는 새 역할을 생성합니다.

   ```
   CREATE ROLE mask_admin NOLOGIN;
   ```

1. PostgreSQL 파라미터 구성 - 사용자 지정 DB 클러스터 파라미터 그룹에서 `pgcolumnmask.policy_admin_rolname` 엔진 구성 파라미터를 생성한 역할의 이름으로 설정합니다.

   ```
   pgcolumnmask.policy_admin_rolname = mask_admin
   ```

   이 엔진 구성 파라미터는 DB 클러스터 파라미터 그룹에서 설정할 수 있으며 인스턴스 재부팅이 필요하지 않습니다. 파라미터 업데이트에 대한 자세한 내용은 [Amazon Aurora에서 DB 클러스터 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.ModifyingCluster.md) 섹션을 참조하세요.

1. 사용자에게 역할 부여 - `rds_superuser`로서 마스킹 정책을 관리할 수 있어야 하는 사용자에게 `mask_admin` 역할을 부여합니다.

   ```
   CREATE USER alice LOGIN;
   CREATE USER bob LOGIN;
   GRANT mask_admin TO alice, bob;
   ```

   또한 사용자에게 마스킹 정책을 관리할 스키마에 대한 USAGE 권한이 있는지 확인합니다.

   ```
   GRANT USAGE ON SCHEMA hr TO alice, bob;
   ```

이제 `alice` 및 `bob` 사용자가 데이터베이스에 연결하면 표준 `pg_columnmask` 확장 함수를 사용하여 스키마에 대한 `USAGE` 권한이 있는 모든 스키마의 모든 테이블에 마스킹 정책을 생성, 변경 및 삭제할 수 있습니다.

# 보안 pg\$1columnmask 구현 모범 사례
<a name="AuroraPostgreSQL.Security.DynamicMasking.BestPractices"></a>

다음 섹션에서는 Aurora PostgreSQL 환경에서 `pg_columnmask`를 구현하기 위한 보안 모범 사례를 제공합니다. 다음 권장 사항을 따릅니다.
+ 보안 역할 기반 액세스 제어 아키텍처 설정
+ 보안 취약성을 방지하는 마스킹 함수 개발
+ 마스킹 처리된 데이터를 사용하여 트리거 동작 이해 및 제어

## 역할 기반 보안 아키텍처
<a name="AuroraPostgreSQL.Security.DynamicMasking.BestPractices.architecture"></a>

역할 계층 구조를 정의하여 데이터베이스에서 액세스 제어를 구현합니다. Aurora PostgreSQL `pg_columnmask`는 이러한 역할 내에서 세분화된 데이터 마스킹을 위한 추가 계층을 제공하여 이러한 제어를 강화합니다.

개별 사용자에게 권한을 부여하는 대신 조직 기능에 맞는 전용 역할을 생성합니다. 이 접근 방식은 조직 구조가 발전함에 따라 감사 가능성을 높이고 권한 관리를 간소화합니다.

**Example 조직적 역할 계층 구조 생성**  
다음 예제에서는 다양한 함수에 대한 전용 역할이 있는 조직 역할 계층 구조를 생성한 다음 개별 사용자를 적절한 역할에 할당합니다. 이 예제에서는 조직 역할(analyst\$1role, support\$1role)이 먼저 생성된 다음 개별 사용자에게 이러한 역할에 대한 멤버십이 부여됩니다. 이 구조를 사용하면 각 개별 사용자 대신 역할 수준에서 권한을 관리할 수 있습니다.  

```
-- Create organizational role hierarchy
CREATE ROLE data_admin_role;
CREATE ROLE security_admin_role;
CREATE ROLE analyst_role;
CREATE ROLE support_role;
CREATE ROLE developer_role;

-- Specify security_admin_role as masking policy manager in the DB cluster parameter
-- group pgcolumnmask.policy_admin_rolname = 'security_admin_role'

-- Create specific users and assign to appropriate roles
CREATE USER security_manager;
CREATE USER data_analyst1, data_analyst2;
CREATE USER support_agent1, support_agent2;

GRANT security_admin_role TO security_manager;
GRANT analyst_role TO data_analyst1, data_analyst2;
GRANT support_role TO support_agent1, support_agent2;
```
각 역할에 필요한 최소 권한만 부여하여 최소 권한 원칙을 구현합니다. 자격 증명이 손상된 경우 악용될 수 있는 광범위한 권한을 부여하지 마세요.  

```
-- Grant specific table permissions rather than schema-wide access
GRANT SELECT ON sensitive_data.customers TO analyst_role;
GRANT SELECT ON sensitive_data.transactions TO analyst_role;
-- Do not grant: GRANT ALL ON SCHEMA sensitive_data TO analyst_role;
```
정책 관리자는 마스킹 정책을 관리하는 스키마에 대한 `USAGE` 권한이 필요합니다. 최소 권한 원칙에 따라 이러한 권한을 선택적으로 부여합니다. 스키마 액세스 권한을 정기적으로 검토하여 권한이 있는 직원만 정책 관리 기능을 유지할 수 있도록 합니다.  
정책 관리자 역할 파라미터 구성은 데이터베이스 관리자로만 제한됩니다. 이 파라미터는 데이터베이스 또는 세션 수준에서 수정할 수 없으므로 권한이 없는 사용자가 정책 관리자 할당을 재정의할 수 없습니다. 이 제한을 통해 마스킹 정책 제어가 중앙 집중화되고 안전하게 유지됩니다.  
그룹이 아닌 특정 개인에게 정책 관리자 역할을 할당합니다. 정책 관리자는 데이터베이스 내의 모든 테이블을 마스킹할 수 있으므로이 대상 접근 방식은 마스킹 정책 관리에 대한 선택적 액세스를 보장합니다.

## 보안 마스킹 함수 개발
<a name="AuroraPostgreSQL.Security.DynamicMasking.BestPractices.MaskingDevelopment"></a>

초기 바인딩 의미 체계를 사용하여 마스킹 함수를 개발함으로써 적절한 종속성 추적을 보장하고 런타임 중 검색 경로 수정과 같은 지연 바인딩 취약성을 방지합니다. SQL 함수에 구문을 사용하여 `BEGIN ATOMIC` 컴파일 시간 검증(예: 초기 바인딩) 및 종속성 관리를 활성화하는 것이 좋습니다.

```
-- Example - Secure masking function with early binding
CREATE OR REPLACE FUNCTION secure_mask_ssn(input_ssn TEXT)
    RETURNS TEXT
    LANGUAGE SQL
    IMMUTABLE PARALLEL SAFE STRICT
    BEGIN ATOMIC
        SELECT CASE
            WHEN input_ssn IS NULL THEN NULL
            WHEN length(input_ssn) < 4 THEN repeat('X', length(input_ssn))
            ELSE repeat('X', length(input_ssn) - 4) || right(input_ssn, 4)
        END;
    END;
```

또는 모든 객체 참조를 명시적으로 스키마로 검증하여 검색 경로 변경에 영향을 받지 않는 함수를 생성하여 다양한 사용자 세션에서 일관된 동작을 보장합니다.

```
-- Function immune to search path changes
CREATE OR REPLACE FUNCTION data_masking.secure_phone_mask(phone_number TEXT)
    RETURNS TEXT
    LANGUAGE SQL
    IMMUTABLE PARALLEL SAFE STRICT
    AS $$
    SELECT CASE
        WHEN phone_number IS NULL THEN NULL
        WHEN public.length(public.regexp_replace(phone_number, '[^0-9]', '', 'g')) < 10 THEN 'XXX-XXX-XXXX'
        ELSE public.regexp_replace(
            phone_number,
            '([0-9]{3})[0-9]{3}([0-9]{4})',
            public.concat('\1-XXX-\2')
        )
    END;
    $$;
```

마스킹 함수 내에서 입력 검증을 구현하여 엣지 케이스를 처리하고 예상치 못한 동작을 방지합니다. 항상 Null 처리를 포함하고 입력 형식을 검증하여 일관된 마스킹 동작을 보장합니다.

```
-- Robust masking function with comprehensive input validation
CREATE OR REPLACE FUNCTION secure_mask_phone(phone_number TEXT)
    RETURNS TEXT
    LANGUAGE SQL
    IMMUTABLE PARALLEL SAFE STRICT
    BEGIN ATOMIC
        SELECT CASE
            WHEN phone_number IS NULL THEN NULL
            WHEN length(trim(phone_number)) = 0 THEN phone_number
            WHEN length(regexp_replace(phone_number, '[^0-9]', '', 'g')) < 10 THEN 'XXX-XXX-XXXX'
            ELSE regexp_replace(phone_number, '([0-9]{3})[0-9]{3}([0-9]{4})', '\1-XXX-\2')
        END;
    END;
```

## pg\$1columnmask를 사용하여 DML 트리거 동작
<a name="AuroraPostgreSQL.Security.DynamicMasking.BestPractices.DMLTriggerBehavior"></a>

테이블 트리거의 경우 전환 테이블의 마스크가 완전히 해제됩니다. 뷰 트리거(IOT)의 경우 현재 사용자의 뷰 권한에 따라 전환 테이블이 마스킹됩니다.

pg\$1columnmask를 사용한 테이블 트리거  
트리거는 실행 중인 DML 쿼리에 의해 수정된 행의 이전 버전과 새 버전이 포함된 전환 테이블을 전달합니다. 트리거가 실행되는 시점에 따라 Aurora PostgreSQL은 이전 행과 새 행을 채웁니다. 예를 들어 참조할 이전 버전이 없기 때문에 `BEFORE INSERT` 트리거에는 새 버전의 행과 빈 이전 버전만 있습니다.  
`pg_columnmask`는 테이블의 트리거 내에서 전환 테이블을 마스킹하지 않습니다. 트리거는 본문 내에서 마스킹된 열을 사용할 수 있으며 마스킹되지 않은 데이터를 볼 수 있습니다. 트리거 생성자는 사용자에 대해 트리거가 어떻게 실행되는지 확인해야 합니다. 이 경우 다음 예제가 올바르게 작동합니다.  

```
-- Example for table trigger uses masked column in its definition
-- Create a table and insert some rows
CREATE TABLE public.credit_card_table (
    name TEXT,
    credit_card_no VARCHAR(16),
    is_fraud BOOL
);

INSERT INTO public.credit_card_table (name, credit_card_no, is_fraud)
    VALUES
    ('John Doe', '4532015112830366', false),
    ('Jane Smith', '5410000000000000', true),
    ('Brad Smith', '1234567891234567', true);

-- Create a role which will see masked data and grant it privileges
CREATE ROLE intern_user;
GRANT SELECT, DELETE ON public.credit_card_table TO intern_user;

-- Trigger which will silenty skip delete of non fraudelent credit cards
CREATE OR REPLACE FUNCTION prevent_non_fraud_delete()
    RETURNS TRIGGER AS
    $$
    BEGIN
        IF OLD.is_fraud = false THEN
            RETURN NULL;
        END IF;
        RETURN OLD;
    END;
    $$ LANGUAGE plpgsql;

CREATE TRIGGER prevent_non_fraud_delete
    BEFORE DELETE ON credit_card_table
    FOR EACH ROW
    EXECUTE FUNCTION prevent_non_fraud_delete();

CREATE OR REPLACE FUNCTION public.return_false()
    RETURNS BOOLEAN
    LANGUAGE SQL
    IMMUTABLE PARALLEL SAFE STRICT
    BEGIN ATOMIC
      SELECT false;
    END;

-- A masking policy that masks both credit card number and is_fraud column.
-- If we apply masking inside trigger then prevent_non_fraud_delete trigger will
-- allow deleting more rows to masked user (even non fraud ones).
CALL pgcolumnmask.create_masking_policy(
    'mask_credit_card_no_&_is_fraud'::NAME,
    'public.credit_card_table'::REGCLASS,
    JSON_BUILD_OBJECT('credit_card_no', 'pgcolumnmask.mask_text(credit_card_no)',
                      'is_fraud', 'public.return_false()')::JSONB,
    ARRAY['intern_user']::NAME[],
    10::INT
);

-- Test trigger behaviour using intern_user
BEGIN;
SET ROLE intern_user;
-- credit card number & is_fraud is completely masked from intern_user
SELECT * FROM public.credit_card_table;
    name    |  credit_card_no  | is_fraud 
------------+------------------+----------
 John Doe   | XXXXXXXXXXXXXXXX | f
 Jane Smith | XXXXXXXXXXXXXXXX | f
 Brad Smith | XXXXXXXXXXXXXXXX | f
(3 rows)

-- The delete trigger lets the intern user delete rows for Jane and Brad even though
-- intern_user sees their is_fraud = false, but the table trigger works with original
-- unmasked value
DELETE FROM public.credit_card_table RETURNING *;
    name    |  credit_card_no  | is_fraud 
------------+------------------+----------
 Jane Smith | XXXXXXXXXXXXXXXX | f
 Brad Smith | XXXXXXXXXXXXXXXX | f
(2 rows)

COMMIT;
```
트리거 생성자는 트리거 본문에서 사용하는 문에 대해 주의하지 않으면 사용자에게 마스킹되지 않은 데이터를 유출합니다. 예를 들어 `RAISE NOTICE ‘%’, masked_column;`를 사용하면 현재 사용자에게 열이 출력됩니다.  

```
-- Example showing table trigger leaking column value to current user
CREATE OR REPLACE FUNCTION leaky_trigger_func()
    RETURNS TRIGGER AS
    $$
    BEGIN
        RAISE NOTICE 'Old credit card number was: %', OLD.credit_card_no;
        RAISE NOTICE 'New credit card number is %', NEW.credit_card_no;
        RETURN NEW;
    END;
    $$ LANGUAGE plpgsql;

CREATE TRIGGER leaky_trigger
    AFTER UPDATE ON public.credit_card_table
    FOR EACH ROW
    EXECUTE FUNCTION leaky_trigger_func();

-- Grant update on column is_fraud to auditor role
-- auditor will NOT HAVE PERMISSION TO READ DATA
CREATE ROLE auditor;
GRANT UPDATE (is_fraud) ON public.credit_card_table TO auditor;

-- Also add auditor role to existing masking policy on credit card table
CALL pgcolumnmask.alter_masking_policy(
    'mask_credit_card_no_&_is_fraud'::NAME,
    'public.credit_card_table'::REGCLASS,
    NULL::JSONB,
    ARRAY['intern_user', 'auditor']::NAME[],
    NULL::INT
);

-- Log in as auditor
-- [auditor]
-- Update will fail if trying to read data from the table
UPDATE public.credit_card_table
    SET is_fraud = true
    WHERE credit_card_no = '4532015112830366';
ERROR:  permission denied for table cc_table

-- [auditor]
-- But leaky update trigger will still print the entire row even though
-- current user does not have permission to select from public.credit_card_table
UPDATE public.credit_card_table SET is_fraud = true;
NOTICE:  Old credit_card_no was: 4532015112830366
NOTICE:  New credit_card_no is 4532015112830366
```

pg\$1columnmask가 있는 뷰의 트리거(Instead of 트리거)  
트리거는 PostgreSQL의 뷰에서만 생성할 수 있습니다. 업데이트가 불가능한 뷰에서 DML 문을 실행하는 데 사용됩니다. 뷰 쿼리 내에서 사용되는 뷰 및 기본 테이블의 소유자가 다를 수 있으므로 전송 테이블은 항상 트리거(IOT) 대신 내부에서 마스킹됩니다. 이 경우 기본 테이블에는 뷰 소유자에게 적용되는 일부 마스킹 정책이 있을 수 있으며, 뷰 소유자는 항상 트리거 내의 기본 테이블에서 마스킹된 데이터를 확인해야 합니다. 이는 테이블의 트리거와 다릅니다. 이 경우 트리거 생성자와 테이블 내부의 데이터는 동일한 사용자가 소유하며 여기서는 그렇지 않기 때문입니다.  

```
-- Create a view over credit card table
CREATE OR REPLACE VIEW public.credit_card_view
    AS
    SELECT * FROM public.credit_card_table;

-- Truncate credit card table and insert fresh data
TRUNCATE TABLE public.credit_card_table;
INSERT INTO public.credit_card_table (name, credit_card_no, is_fraud)
    VALUES
    ('John Doe', '4532015112830366', false),
    ('Jane Smith', '5410000000000000', true),
    ('Brad Smith', '1234567891234567', true);

CREATE OR REPLACE FUNCTION public.print_changes()
    RETURNS TRIGGER AS
    $$
    BEGIN
        RAISE NOTICE 'Old row: name=%, credit card number=%, is fraud=%',
            OLD.name, OLD.credit_card_no, OLD.is_fraud;
    
        RAISE NOTICE 'New row: name=%, credit card number=%, is fraud=%',
            NEW.name, NEW.credit_card_no, NEW.is_fraud;
    
    RETURN NEW;
   END;
   $$ LANGUAGE plpgsql;

CREATE TRIGGER print_changes_trigger
    INSTEAD OF UPDATE ON public.credit_card_view
    FOR EACH ROW
    EXECUTE FUNCTION public.print_changes();

GRANT SELECT, UPDATE ON public.credit_card_view TO auditor;

-- [auditor]
-- Login as auditor role
BEGIN;

-- Any data coming out from the table will be masked in instead of triggers
-- according to masking policies applicable to current user
UPDATE public.credit_card_view
    SET name = CONCAT(name, '_new_name')
    RETURNING *;
NOTICE:  Old row: name=John Doe, credit card number=XXXXXXXXXXXXXXXX, is fraud=f
NOTICE:  New row: name=John Doe_new_name, credit card number=XXXXXXXXXXXXXXXX, is fraud=f
NOTICE:  Old row: name=Jane Smith, credit card number=XXXXXXXXXXXXXXXX, is fraud=f
NOTICE:  New row: name=Jane Smith_new_name, credit card number=XXXXXXXXXXXXXXXX, is fraud=f
NOTICE:  Old row: name=Brad Smith, credit card number=XXXXXXXXXXXXXXXX, is fraud=f
NOTICE:  New row: name=Brad Smith_new_name, credit card number=XXXXXXXXXXXXXXXX, is fraud=f
        name         |  credit_card_no  | is_fraud 
---------------------+------------------+----------
 John Doe_new_name   | XXXXXXXXXXXXXXXX | f
 Jane Smith_new_name | XXXXXXXXXXXXXXXX | f
 Brad Smith_new_name | XXXXXXXXXXXXXXXX | f
 
 -- Any new data going into the table using INSERT or UPDATE command will be unmasked
 UPDATE public.credit_card_view
    SET credit_card_no = '9876987698769876'
    RETURNING *;
NOTICE:  Old row: name=John Doe, credit card number=XXXXXXXXXXXXXXXX, is fraud=f
NOTICE:  New row: name=John Doe, credit card number=9876987698769876, is fraud=f
NOTICE:  Old row: name=Jane Smith, credit card number=XXXXXXXXXXXXXXXX, is fraud=f
NOTICE:  New row: name=Jane Smith, credit card number=9876987698769876, is fraud=f
NOTICE:  Old row: name=Brad Smith, credit card number=XXXXXXXXXXXXXXXX, is fraud=f
NOTICE:  New row: name=Brad Smith, credit card number=9876987698769876, is fraud=f
    name    |  credit_card_no  | is_fraud 
------------+------------------+----------
 John Doe   | 9876987698769876 | f
 Jane Smith | 9876987698769876 | f
 Brad Smith | 9876987698769876 | f
 
 COMMIT;
```

트리거 동작을 제어하는 데이터베이스/사용자 수준 GuC  
두 구성 파라미터는 적용 가능한 마스킹 정책이 있는 사용자의 실행 동작을 제어합니다. 이러한 파라미터를 사용하여 추가 보안 제한이 필요한 경우 마스킹 처리된 테이블 또는 뷰에서 트리거가 실행되지 않도록 할 수 있습니다. 두 파라미터 모두 기본적으로 비활성화되어 있어 트리거가 정상적으로 실행될 수 있습니다.  
**첫 번째 GUC: 마스킹 처리된 테이블에 대한 트리거 실행 제한**  
사양:  
+ 이름: `pgcolumnmask.restrict_dml_triggers_for_masked_users`
+ 유형: `boolean`
+ 기본값: `false`(트리거 실행 허용)
TRUE로 설정하면 마스킹된 사용자의 마스킹된 테이블에서 트리거 실행을 방지합니다. `pg_columnmask`는 오류가 발생함에도 불구하고 실행됩니다.  
**두 번째 GUC: 마스킹 처리된 테이블이 있는 뷰에 대한 실행 제한 트리거**  
사양:  
+ 이름: `pgcolumnmask.restrict_iot_triggers_for_masked_users`
+ 유형: `boolean`
+ 기본값: `false`(트리거 실행 허용)
TRUE로 설정된 경우 마스킹된 사용자에 대한 정의에 마스킹된 테이블이 포함된 뷰에서 트리거 실행을 방지합니다.

이러한 파라미터는 독립적으로 작동하며 표준 데이터베이스 구성 파라미터처럼 구성할 수 있습니다.

# Aurora PostgreSQL pg\$1columnmask 데이터 이동 시나리오
<a name="AuroraPostgreSQL.Security.DynamicMasking.DataMovement"></a>

`pg_columnmask` 동작은 스토리지, 논리적 또는 애플리케이션 계층에서 작업이 수행되는지 여부에 따라 데이터 이동 작업마다 다릅니다. 스토리지 수준 작업(예: 복제)은 논리적 작업(예: `pg_dump`) 및 애플리케이션 수준 작업(예: FDW 쿼리)과 다르게 작동합니다. 이 섹션에서는 복제, 백업, 내보내기 및 마이그레이션을 비롯한 일반적인 시나리오에 대한 마스킹 동작과 각 시나리오의 보안 영향에 대해 설명합니다.

**Topics**
+ [Aurora Global Database 및 읽기 전용 복제본](#AuroraPostgreSQL.Security.DynamicMasking.DataMovement.RR)
+ [데이터베이스 복제 및 스냅샷 복원](#AuroraPostgreSQL.Security.DynamicMasking.DataMovement.Clones)
+ [논리적 복제](#AuroraPostgreSQL.Security.DynamicMasking.DataMovement.LogRep)
+ [블루/그린 배포](#AuroraPostgreSQL.Security.DynamicMasking.DataMovement.BlueGreen)
+ [제로 ETL 및 CDC 스트림](#AuroraPostgreSQL.Security.DynamicMasking.DataMovement.ZETL)
+ [AWS Database Migration Service](#AuroraPostgreSQL.Security.DynamicMasking.DataMovement.DMS)
+ [데이터 내보내기](#AuroraPostgreSQL.Security.DynamicMasking.DataMovement.DataExport)
+ [뷰 및 구체화된 뷰](#AuroraPostgreSQL.Security.DynamicMasking.DataMovement.Views)
+ [데이터 덤프 및 복원](#AuroraPostgreSQL.Security.DynamicMasking.DataMovement.DDR)
+ [외부 데이터 래퍼](#AuroraPostgreSQL.Security.DynamicMasking.DataMovement.FDQ)

## Aurora Global Database 및 읽기 전용 복제본
<a name="AuroraPostgreSQL.Security.DynamicMasking.DataMovement.RR"></a>

Aurora `pg_columnmask` 정책은 클러스터 볼륨 내의 데이터베이스 시스템 테이블에 저장됩니다. 모든 복제본은 동일한 정책에 액세스하고 일관되게 마스킹된 결과를 반환합니다. Aurora Global Database 배포의 경우 `pg_columnmask` 정책은 다른 데이터베이스 시스템 테이블과 함께 보조 AWS 리전에 복제되어 리전 간에 일관된 데이터 보호를 보장합니다. 장애 조치 시나리오 중에는 모든 `pg_columnmask` 정책이 그대로 유지되고 작동합니다.

## 데이터베이스 복제 및 스냅샷 복원
<a name="AuroraPostgreSQL.Security.DynamicMasking.DataMovement.Clones"></a>

Aurora Fast Clone 및 스냅샷 복원 작업은 데이터베이스 시스템 테이블의 일부로 모든 `pg_columnmask` 정책, 역할 및 구성을 보존합니다. 복제되거나 복원된 데이터베이스는 소스 클러스터에서 모든 기존 정책을 상속합니다. 복제 또는 복원 후 각 데이터베이스 클러스터는 독립적인 `pg_columnmask` 정책을 유지합니다.

## 논리적 복제
<a name="AuroraPostgreSQL.Security.DynamicMasking.DataMovement.LogRep"></a>

초기 동기화 중에 논리적 복제는 표준 SQL COPY 작업을 사용하며 `pg_columnmask` 정책은 복제 사용자의 권한에 따라 적용됩니다. 진행 중인 CDC(변경 데이터 캡처) 중에는 마스킹 정책이 적용되지 않고 마스킹되지 않은 데이터가 WAL 레코드를 통해 복제됩니다. `pg_create_subscription` 권한이 있는 사용자는 제어하는 시스템에 대한 복제를 설정하여 잠재적으로 마스킹되지 않은 데이터를 유출할 수 있습니다.

## 블루/그린 배포
<a name="AuroraPostgreSQL.Security.DynamicMasking.DataMovement.BlueGreen"></a>

스냅샷 복원 중에 `pg_columnmask` 정책이 자동으로 포함됩니다. 그린 환경은 블루 환경에서 모든 정책의 동일한 사본으로 시작합니다. 블루에서 그린으로 복제하는 동안에는 데이터가 마스킹되지 않습니다. 블루 클러스터의 후속 마스킹 정책 변경(DDL 명령)은 그린 클러스터에 복제되지 않으며 RDS 블루/그린 배포를 무효화합니다.

## 제로 ETL 및 CDC 스트림
<a name="AuroraPostgreSQL.Security.DynamicMasking.DataMovement.ZETL"></a>

데이터 복제는 `pg_columnmask` 정책의 영향을 받지 않습니다. 제로 ETL은 DDL 복제를 지원하지만 `pg_columnmask` 또는 RLS 정책은 복제하지 않습니다. 제로 ETL에서 복제된 데이터에는 마스킹 정책이 적용되지 않습니다.

## AWS Database Migration Service
<a name="AuroraPostgreSQL.Security.DynamicMasking.DataMovement.DMS"></a>

초기 데이터 동기화는 DMS 작업에 대해 선택한 사용자를 기반으로 마스킹되거나 마스킹 해제됩니다. CDC 데이터는 항상 마스킹이 해제됩니다. `pg_columnmask` 관련 내부 RLS 정책은 마이그레이션할 수 있지만 pg\$1columnmask가 활성화되지 않은 대상에서는 작동하지 않습니다.

## 데이터 내보내기
<a name="AuroraPostgreSQL.Security.DynamicMasking.DataMovement.DataExport"></a>

`pg_columnmask`는 내보내기를 다른 쿼리 작업처럼 처리합니다. 마스킹은 실행 중인 사용자의 권한에 따라 적용됩니다. 이는 COPY, SELECT INTO, CREATE TABLE AS, Aurora PostgreSQL의 S3 내보내기 기능과 같은 SQL 명령에 적용됩니다.

**참고**  
마스킹된 사용자가 데이터를 내보낼 때 결과 파일에는 복원 시 데이터베이스 제약 조건을 위반할 수 있는 마스킹된 값이 포함됩니다.

## 뷰 및 구체화된 뷰
<a name="AuroraPostgreSQL.Security.DynamicMasking.DataMovement.Views"></a>

보기를 사용할 때 다음 고려 사항을 염두에 둡니다.
+ **일반 보기** - 항상 `INVOKER` 의미 체계를 사용합니다. 뷰를 생성한 사용자에 관계없이 뷰를 쿼리할 때 현재 사용자의 마스킹 정책이 적용됩니다.
+ **구체화된 뷰** - 새로 고치면 새로 고침을 수행하는 사용자의 정책이 아니라 구체화된 뷰 소유자의 마스킹 정책이 적용됩니다. 소유자에게 마스킹 정책이 있는 경우 구체화된 뷰에는 항상 마스킹된 데이터가 포함됩니다.

## 데이터 덤프 및 복원
<a name="AuroraPostgreSQL.Security.DynamicMasking.DataMovement.DDR"></a>

`pg_dump`는 일반 데이터베이스 사용자로 작동하며 연결 사용자의 권한에 따라 마스킹 정책을 적용합니다. 마스킹된 사용자가 덤프를 수행하는 경우 백업 파일에 마스킹된 데이터가 포함됩니다. `pg_columnmask` 정책은 데이터베이스 스키마의 일부로 덤프에 포함됩니다. 복원에 성공하려면 참조된 모든 역할이 대상 데이터베이스에 존재하고 대상에 `pg_columnmask` 확장이 설치되어 있어야 합니다.

**참고**  
PostgreSQL 18부터 `pg_dump`는 데이터베이스 덤프에서 행 수준 보안(RLS) 및 `pg_columnmask` 마스킹 정책을 모두 제외하는 `—no-policies` 옵션을 지원합니다. 자세한 내용은 [pd\$1dump](https://www.postgresql.org/docs/current/app-pgdump.html)를 참조하세요.

## 외부 데이터 래퍼
<a name="AuroraPostgreSQL.Security.DynamicMasking.DataMovement.FDQ"></a>

외부 데이터 래퍼를 사용하는 경우 원격 테이블의 마스킹 정책은 로컬 쿼리 사용자의 권한이 아닌 소스 서버에 대한 매핑된 사용자의 권한을 기반으로 적용되며, FDW를 통해 마스킹된 원격 데이터에 액세스할 수 있지만 로컬 데이터베이스의 외부 테이블에 직접 DDM 또는 RLS 정책을 생성할 수 없습니다.

# 새 SSL/TLS 인증서를 사용해 Aurora PostgreSQL DB 클러스터에 연결할 애플리케이션 업데이트
<a name="ssl-certificate-rotation-aurora-postgresql"></a>

2023년 1월 13일부터 Amazon RDS는 보안 소켓 계층(SSL) 또는 전송 계층 보안(TLS)을 사용해 Aurora DB 클러스터에 연결하기 위한 용도의 새 인증 기관(CA) 인증서를 게시하였습니다. 아래에서 새 인증서를 사용하기 위해 애플리케이션을 업데이트하는 방법에 관한 정보를 찾으실 수 있습니다.

이 주제는 클라이언트 애플리케이션에서 SSL/TLS를 사용해 DB 클러스터에 연결하는지 여부를 판단하는 데 도움이 됩니다. SSL/TLS를 사용해 연결한다면 이 애플리케이션에서 연결 시 인증서 확인이 필요한지 여부를 추가로 확인할 수 있습니다.

**참고**  
어떤 애플리케이션은 서버에서 인증서를 성공적으로 확인할 수 있는 경우에만 Aurora PostgreSQL DB 클러스터에 연결하도록 구성되어 있습니다.  
이러한 애플리케이션의 경우 클라이언트 애플리케이션 트러스트 스토어를 업데이트하여 새 CA 인증서를 포함해야 합니다.

클라이언트 애플리케이션 트러스트 스토어에서 CA 인증서를 업데이트한 후에는 DB 클러스터에서 인증서를 교환할 수 있습니다. 이 절차를 프로덕션 환경에서 구현하기 전에 개발 또는 스테이징 환경에서 테스트해볼 것을 적극 권장합니다.

인증서 교환에 대한 자세한 내용은 [SSL/TLS 인증서 교체](UsingWithRDS.SSL-certificate-rotation.md) 단원을 참조하십시오. 인증서 다운로드에 대한 자세한 내용은 [SSL/TLS를 사용하여 DB 클러스터에 대한 연결 암호화](UsingWithRDS.SSL.md) 단원을 참조하십시오. PostgreSQL DB 클러스터에서 SSL/TLS를 사용하는 방법에 관한 자세한 내용은 [SSL/TLS를 이용한 Aurora PostgreSQL 데이터 보안](AuroraPostgreSQL.Security.md#AuroraPostgreSQL.Security.SSL) 단원을 참조하십시오.

**Topics**
+ [애플리케이션에서 SSL을 사용해 Aurora PostgreSQL DB 클러스터에 연결하는지 여부 확인](#ssl-certificate-rotation-aurora-postgresql.determining-server)
+ [클라이언트에서 연결을 위해 인증서 확인이 필요한지 여부 확인](#ssl-certificate-rotation-aurora-postgresql.determining-client)
+ [애플리케이션 트러스트 스토어 업데이트](#ssl-certificate-rotation-aurora-postgresql.updating-trust-store)
+ [다양한 유형의 애플리케이션에 대해 SSL/TLS 연결 사용](#ssl-certificate-rotation-aurora-postgresql.applications)

## 애플리케이션에서 SSL을 사용해 Aurora PostgreSQL DB 클러스터에 연결하는지 여부 확인
<a name="ssl-certificate-rotation-aurora-postgresql.determining-server"></a>

`rds.force_ssl` 파라미터의 값에 대한 DB 클러스터 구성을 확인하십시오. 기본적으로 `rds.force_ssl` 파라미터는 `0`(해제)으로 설정됩니다. `rds.force_ssl` 파라미터가 `1`(켜짐)로 설정된 경우 클라이언트는 연결 시 SSL/TLS를 사용해야 합니다. 파라미터 그룹에 대한 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 단원을 참조하십시오.

`rds.force_ssl`이 `1`(켜짐)로 설정되지 않은 경우 `pg_stat_ssl` 보기를 쿼리하여 SSL을 사용해 연결하는지 확인하십시오. 예를 들어 다음 쿼리에서는 SSL 연결과 SSL을 사용하는 클라이언트에 관한 정보만 반환합니다.

```
select datname, usename, ssl, client_addr from pg_stat_ssl inner join pg_stat_activity on pg_stat_ssl.pid = pg_stat_activity.pid where ssl is true and usename<>'rdsadmin';
```

SSL/TLS 연결을 사용하는 행만 연결에 관한 정보와 함께 표시됩니다. 다음은 출력 샘플입니다.

```
 datname  | usename | ssl | client_addr
----------+---------+-----+-------------
 benchdb  | pgadmin | t   | 53.95.6.13
 postgres | pgadmin | t   | 53.95.6.13
(2 rows)
```

앞의 쿼리에서는 쿼리 시점의 현재 연결만 표시합니다. 결과가 표시되지 않는다 해도 SSL 연결을 사용하는 애플리케이션이 없는 것은 아닙니다. 다른 SSL 연결이 다른 시점에 설정될 수 있습니다.

## 클라이언트에서 연결을 위해 인증서 확인이 필요한지 여부 확인
<a name="ssl-certificate-rotation-aurora-postgresql.determining-client"></a>

psql 또는 JDBC와 같은 클라이언트가 SSL을 지원하도록 구성되어 있는 경우 클라이언트는 먼저 SSL을 이용해 데이터베이스에 연결을 시도하도록 기본 설정되어 있습니다. SSL을 이용해 연결할 수 없는 경우 클라이언트는 SSL 없이 연결하는 방식으로 전환됩니다. libpq 기반 클라이언트(예: psql)와 JDBC 모두에 사용되는 기본 `sslmode` 모드는 `prefer`로 설정됩니다. 서버의 인증서는 `sslrootcert`에서 `sslmode`가 `verify-ca` 또는 `verify-full`로 설정된 경우에만 확인됩니다. 인증서가 잘못된 경우 오류가 발생합니다.

`PGSSLROOTCERT`를 사용하여 `PGSSLMODE`가 `verify-ca` 또는 `verify-full`로 설정된 `PGSSLMODE` 환경 변수로 인증서를 확인하세요.

```
PGSSLMODE=verify-full PGSSLROOTCERT=/fullpath/ssl-cert.pem psql -h pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com -U primaryuser -d postgres
```

`sslrootcert` 인수를 사용하여 `sslmode`가 `verify-ca` 또는 `verify-full`로 설정된 연결 문자열 형식의 `sslmode`로 인증서를 확인하세요.

```
psql "host=pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com sslmode=verify-full sslrootcert=/full/path/ssl-cert.pem user=primaryuser dbname=postgres"
```

예를 들어 앞의 사례에서 잘못된 루트 인증서를 사용하는 경우 클라이언트에서 다음과 비슷한 오류가 발생합니다.

```
psql: SSL error: certificate verify failed
```

## 애플리케이션 트러스트 스토어 업데이트
<a name="ssl-certificate-rotation-aurora-postgresql.updating-trust-store"></a>

PostgreSQL 애플리케이션에 대한 트러스트 스토어 업데이트에 대한 자세한 내용은 PostgreSQL 문서의 [SSL을 이용한 TCP/IP 연결의 보안](https://www.postgresql.org/docs/current/ssl-tcp.html) 단원을 참조하십시오.

**참고**  
트러스트 스토어를 업데이트할 때 새 인증서를 추가할 뿐 아니라 이전 인증서를 유지할 수도 있습니다.

### JDBC를 위한 애플리케이션 트러스트 스토어 업데이트
<a name="ssl-certificate-rotation-aurora-postgresql.updating-trust-store.jdbc"></a>

SSL/TLS 연결을 위해 JDBC를 사용하는 애플리케이션에 대해 트러스트 스토어를 업데이트할 수 있습니다.

루트 인증서 다운로드에 대한 자세한 내용은 [SSL/TLS를 사용하여 DB 클러스터에 대한 연결 암호화](UsingWithRDS.SSL.md) 단원을 참조하십시오.

인증서를 가져오는 샘플 스크립트는 [트러스트 스토어로 인증서를 가져오기 위한 샘플 스크립트](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-sample-script) 섹션을 참조하세요.

## 다양한 유형의 애플리케이션에 대해 SSL/TLS 연결 사용
<a name="ssl-certificate-rotation-aurora-postgresql.applications"></a>

아래에서는 다양한 유형의 애플리케이션에 대해 SSL/TLS 연결을 사용하는 방법에 대한 정보를 제공합니다.
+ **psql**

  클라이언트는 명령줄에서 옵션을 연결 문자열 또는 환경 변수로 지정하여 호출합니다. SSL/TLS 연결의 경우 관련 옵션은 `sslmode`(환경 변수 `PGSSLMODE`), `sslrootcert`(환경 변수 `PGSSLROOTCERT`)입니다.

  옵션 전체 목록은 PostgreSQL 문서의 [파라미터 키 단어](https://www.postgresql.org/docs/11/libpq-connect.html#LIBPQ-PARAMKEYWORDS) 단원을 참조하십시오. 환경 변수 전체 목록은 PostgreSQL 문서의 [환경 변수](https://www.postgresql.org/docs/current/libpq-envars.html) 단원을 참조하십시오.
+ **pgAdmin**

  이 브라우저 기반 클라이언트는 PostgreSQL 데이터베이스 연결 시 사용할 수 있는 더 사용자 친화적인 인터페이스입니다.

  연결 구성에 대한 자세한 내용은 [pgAdmin 설명서](https://www.pgadmin.org/docs/pgadmin4/latest/server_dialog.html)를 참조하십시오.
+ **JDBC**

  JDBC를 통해 Java 애플리케이션의 데이터베이스 연결을 활성화할 수 있습니다.

  JDBC를 이용한 PostgreSQL 데이터베이스 연결에 대한 자세한 내용은 PostgreSQL 문서의 [데이터베이스에 연결](https://jdbc.postgresql.org/documentation/use/) 단원을 참조하십시오. SSL/TLS을 이용한 PostgreSQL 문서의 [클라이언트 구성](https://jdbc.postgresql.org/documentation/ssl/) 단원을 참조하십시오.
+ **Python**

  PostgreSQL 데이터베이스에 연결하기 위해 많이 사용되는 인기 있는 Python 라이브러리는 `psycopg2`입니다.

  `psycopg2` 사용에 대한 자세한 내용은 [psycopg2 설명서](https://pypi.org/project/psycopg2/)를 참조하십시오. PostgreSQL 데이터베이스에 연결하는 방법에 대한 짧은 자습서는 [Psycopg2 자습서](https://wiki.postgresql.org/wiki/Psycopg2_Tutorial)를 참조하십시오. [psycopg2 모듈 콘텐츠](https://www.psycopg.org/docs/module.html)에서 연결 명령이 수락하는 옵션에 대한 정보를 얻을 수 있습니다.

**중요**  
데이터베이스 연결에서 SSL/TLS를 사용함을 확인하고 애플리케이션 트러스트 스토어를 업데이트한 후에는 데이터베이스에서 rds-ca-rsa2048-g1 인증서를 사용하도록 업데이트할 수 있습니다. 지침은 [DB 인스턴스를 수정하여 CA 인증서 업데이트](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-updating)의 3단계를 참조하십시오.

# Aurora PostgreSQL과 함께 Kerberos 인증 사용
<a name="postgresql-kerberos"></a>

사용자가 PostgreSQL이 실행되는 DB 클러스터 에 연결할 때 Kerberos를 사용하여 사용자를 인증할 수 있습니다. 이를 위해서는 Kerberos 인증을 위한 AWS Directory Service for Microsoft Active Directory를 사용하도록 클러스터를 구성해야 합니다. AWS Directory Service for Microsoft Active Directory는 AWS Managed Microsoft AD라고도 불립니다. Directory Service에서 사용할 수 있는 기능입니다. 자세한 내용은 *AWS Directory Service 관리 가이드*의 [Directory Service란 무엇입니까?](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html)를 참조하세요.

시작하려면 사용자 자격 증명을 저장할 AWS Managed Microsoft AD 디렉터리를 만듭니다. 그런 다음 PostgreSQL DB 클러스터에 Active Directory의 도메인 및 기타 정보를 제공합니다. PostgreSQL DB 클러스터에 대해 사용자가 인증될 때 AWS Managed Microsoft AD 디렉터리에 인증 요청이 전달됩니다.

모든 자격 증명을 동일한 디렉터리에 보관하면 시간과 노력을 절약할 수 있습니다. 여러 DB 클러스터에 대한 자격 증명을 보관하고 관리할 수 있는 중앙 집중식 공간이 있습니다. 디렉터리를 사용하면 전체 보안 프로필을 향상할 수도 있습니다.

자체 온프레미스 Microsoft Active Directory에서 자격 증명에 액세스할 수도 있습니다. 이렇게 하려면 AWS Managed Microsoft AD 디렉터리가 온프레미스 Microsoft Active Directory를 신뢰하도록 신뢰 도메인 관계를 만듭니다. 그러면 사용자가 온프레미스 네트워크에서 워크로드에 액세스할 때와 동일한 Windows SSO(Single Sign-On) 환경을 사용하여 PostgreSQL 클러스터에 액세스할 수 있습니다.

데이터베이스는 Kerberos 또는 AWS Identity and Access Management(IAM) 인증을 사용하거나, Kerberos 인증과 IAM 인증을 모두 사용할 수 있습니다. 하지만 Kerberos 및 IAM 인증은 서로 다른 인증 방법을 제공하므로, 특정 데이터베이스 사용자는 두 가지 인증 방법 중 하나만 사용하여 데이터베이스에 로그인해야 하며 둘 다 사용할 수는 없습니다. IAM 인증에 관한 자세한 내용은 [ IAM 데이터베이스 인증](UsingWithRDS.IAMDBAuth.md) 섹션을 참조하십시오.

**참고**  
RDS for PostgreSQL은 Active Directory 그룹에 대한 Kerberos 인증을 지원하지 않습니다.

**Topics**
+ [리전 및 버전 사용 가능 여부](#postgresql-kerberos.RegionVersionAvailability)
+ [PostgreSQL DB 클러스터에 대한 Kerberos 인증 개요](#postgresql-kerberos-overview)
+ [PostgreSQL DB 클러스터에 대해 Kerberos 인증 설정](postgresql-kerberos-setting-up.md)
+ [Active Directory 도메인에서 Aurora PostgreSQL DB 클러스터 관리](postgresql-kerberos-managing.md)
+ [Kerberos 인증을 사용하여 PostgreSQL 연결](postgresql-kerberos-connecting.md)
+ [Aurora PostgreSQL 액세스 제어를 위한 AD 보안 그룹 사용](AD.Security.Groups.md)

## 리전 및 버전 사용 가능 여부
<a name="postgresql-kerberos.RegionVersionAvailability"></a>

기능 가용성 및 해당 지원은 각 데이터베이스 엔진의 특정 버전 및 AWS 리전 리전에 따라 다릅니다. Kerberos 인증을 사용하는 Aurora PostgreSQL의 버전 및 리전 가용성에 대한 자세한 내용은 [Aurora PostgreSQL을 사용하는 Kerberos 인증](Concepts.Aurora_Fea_Regions_DB-eng.Feature.KerberosAuthentication.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.KerberosAuthentication.apg) 섹션을 참조하세요.

## PostgreSQL DB 클러스터에 대한 Kerberos 인증 개요
<a name="postgresql-kerberos-overview"></a>

PostgreSQL DB 클러스터에 대해 Kerberos 인증을 설정하려면 다음 단계(나중에 자세히 설명함)를 수행하십시오.

1. AWS Managed Microsoft AD를 사용하여 AWS Managed Microsoft AD 디렉터리를 생성합니다. AWS Management Console, AWS CLI 또는 Directory Service API를 사용하여 디렉터리를 생성할 수 있습니다. 디렉터리가 클러스터와 통신할 수 있도록 디렉터리 보안 그룹에서 관련 아웃바운드 포트를 열어야 합니다.

1. AWS Managed Microsoft AD 디렉터리에 호출할 수 있는 Amazon Aurora 액세스를 제공하는 역할을 생성합니다. 이를 위해 관리형 IAM 정책 `AmazonRDSDirectoryServiceAccess`를 사용하는 AWS Identity and Access Management(IAM) 역할을 생성합니다.

   IAM 역할이 액세스를 허용하게 하려면 올바른 AWS Security Token Service 리전에서 AWS STS 계정의 AWS(AWS) 엔드포인트를 활성화해야 합니다. AWS STS 엔드포인트는 기본적으로 모든 AWS 리전에서 활성화되어 있으므로 추가 작업 없이 사용할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [AWS STS 리전에서 AWS 활성화 및 비활성화](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#sts-regions-activate-deactivate)를 참조하세요.

1. Microsoft Active Directory 도구를 사용하여 AWS Managed Microsoft AD 디렉터리에서 사용자를 만들고 구성합니다. Active Directory에서 사용자를 생성하는 방법에 대한 자세한 내용은 *AWS 관리 안내서*의 [Directory Service 관리형 Microsoft AD에서 사용자 및 그룹 관리](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups.html)를 참조하세요.

1. 디렉터리와 DB 인스턴스를 다른 AWS 계정 또는 Virtual Private Cloud(VPC)에 배치하려면 VPC 피어링을 구성합니다. 자세한 내용은 *Amazon VPC Peering Guide*의 [VPC 피어링이란?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html)을 참조하십시오.

1. 콘솔, CLI 또는 RDS API에서 다음 메서드 중 하나를 사용하여 PostgreSQL DB 클러스터를 생성하거나 수정합니다.
   + [Aurora PostgreSQL DB 클러스터 생성 및 연결](CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.md) 
   + [Amazon Aurora DB 클러스터 수정](Aurora.Modifying.md)
   + [DB 클러스터 스냅샷에서 복원](aurora-restore-snapshot.md)
   + [지정된 시간으로 DB 클러스터 복원](aurora-pitr.md)

   디렉터리와 동일한 Amazon Virtual Private Cloud(VPC) 또는 다른 AWS 계정이나 VPC에 클러스터를 배치할 수 있습니다. PostgreSQL DB 클러스터를 생성하거나 수정할 때는 다음을 수행합니다.
   + 디렉터리를 만들 때 생성된 도메인 식별자(`d-*` 식별자)를 제공합니다.
   + 생성한 IAM 역할의 이름을 제공합니다.
   + DB 인스턴스의 보안 그룹이 디렉터리의 보안 그룹에서 인바운드 트래픽을 수신할 수 있는지 확인합니다.

1. RDS 마스터 사용자 자격 증명을 사용하여 PostgreSQL DB 클러스터에 연결합니다. 외부에서 식별할 사용자를 PostgreSQL에서 생성합니다. 외부에서 식별되는 사용자는 Kerberos 인증을 사용하여 PostgreSQL DB 클러스터에 로그인할 수 있습니다.

# PostgreSQL DB 클러스터에 대해 Kerberos 인증 설정
<a name="postgresql-kerberos-setting-up"></a>

AWS Directory Service for Microsoft Active Directory(AWS Managed Microsoft AD)를 사용하여 PostgreSQL DB 클러스터에 대해 Kerberos 인증을 설정합니다. Kerberos 인증을 설정하려면 다음 단계를 수행하십시오.

**Topics**
+ [1단계: AWS Managed Microsoft AD를 사용하여 디렉터리 생성](#postgresql-kerberos-setting-up.create-directory)
+ [2단계: (선택 사항) 온프레미스 Active Directory와 Directory Service 간에 신뢰 관계 생성](#postgresql-kerberos-setting-up.create-trust)
+ [3단계: Amazon Aurora가 Directory Service에 액세스할 수 있는 IAM 역할 생성](#postgresql-kerberos-setting-up.CreateIAMRole)
+ [4단계: 사용자 생성 및 구성](#postgresql-kerberos-setting-up.create-users)
+ [5단계: 디렉터리와 DB 인스턴스 사이에 VPC 간 트래픽 활성화](#postgresql-kerberos-setting-up.vpc-peering)
+ [6단계: PostgreSQL DB 클러스터 생성 또는 수정](#postgresql-kerberos-setting-up.create-modify)
+ [7단계: Kerberos 보안 주체를 위한 PostgreSQL 사용자 생성](#postgresql-kerberos-setting-up.create-logins)
+ [8단계: PostgreSQL 클라이언트 구성](#postgresql-kerberos-setting-up.configure-client)

## 1단계: AWS Managed Microsoft AD를 사용하여 디렉터리 생성
<a name="postgresql-kerberos-setting-up.create-directory"></a>

Directory Service는 AWS 클라우드에서 완전 관리형 Microsoft Active Directory를 생성합니다. AWS Managed Microsoft AD 디렉터리를 생성할 때 Directory Service에서 두 개의 도메인 컨트롤러와 DNS 서버가 자동으로 생성됩니다. 디렉터리 서버는 VPC 내 다른 서브넷에서 생성됩니다. 이러한 중복으로 인해 장애가 발생해도 디렉터리에 액세스할 수 있습니다.

 AWS Managed Microsoft AD 디렉터리를 생성할 때 AWS Directory Service에서 다음 작업을 자동으로 수행합니다.
+ VPC 내에서 Active Directory를 설정합니다.
+ 사용자 이름 `Admin` 과 지정된 암호를 사용하여 디렉터리 관리자 계정을 생성합니다. 이 계정을 사용하여 디렉터리를 관리할 수 있습니다.
**중요**  
반드시 이 암호를 저장해야 합니다. Directory Service에서는 이 암호를 저장하지 않으므로 암호를 검색하거나 다시 설정할 수 없습니다.
+ 디렉터리 컨트롤러에 대한 보안 그룹을 만듭니다. 보안 그룹이 PostgreSQL DB 클러스터와의 통신을 허용해야 합니다.

AWS Directory Service for Microsoft Active Directory를 시작하면 AWS가 모든 디렉터리의 객체를 포함하는 OU(조직 단위)를 생성합니다. 디렉터리를 만들 때 입력한 NetBIOS 이름이 있는 이 OU는 도메인 루트에 있습니다. 도메인 루트는 AWS에서 소유하고 관리합니다.

 `Admin` 디렉터리를 사용하여 생성한 AWS Managed Microsoft AD 계정은 OU의 가장 일반적인 관리 활동에 대한 권한이 있습니다.
+ 사용자 생성, 업데이트 또는 삭제
+ 도메인(예: 파일 또는 인쇄 서버)에 리소스를 추가한 다음 OU 내의 사용자에 해당 리소스에 대한 권한 할당 
+ 추가 OU 및 컨테이너 생성 
+ 권한 위임 
+ Active Directory 휴지통에서 삭제된 객체 복원 
+ Active Directory 웹 서비스에서 Active Directory 및 Windows PowerShell에 대한 DNS(Domain Name Service) 모듈 실행 

또한 `Admin` 계정은 다음 도메인 차원 활동을 수행할 권한이 있습니다.
+ DNS 구성 관리(레코드, 영역 및 전달자 추가, 제거 또는 업데이트) 
+ DNS 이벤트 로그 보기 
+ 보안 이벤트 로그 보기 

**AWS Managed Microsoft AD으로 디렉터리를 생성하려면**

1.  [Directory Service 콘솔](https://console.aws.amazon.com/directoryservicev2/) 탐색 창에서 **디렉터리**를 선택한 후 **디렉터리 설정**을 선택합니다.

1. **AWS Managed Microsoft AD**를 선택합니다. AWS Managed Microsoft AD는 현재 Amazon Aurora에서 사용하도록 지원되는 유일한 옵션입니다.

1. [**Next**]를 선택합니다.

1. **디렉터리 정보 입력** 페이지에서 다음 정보를 제공합니다.  
**Edition**  
 요구 사항에 맞는 에디션을 선택합니다.  
**디렉터리 DNS 이름**  
 디렉터리를 위한 정규화된 이름(예: **corp.example.com**)입니다.  
**디렉터리 NetBIOS 이름**  
 디렉터리의 선택적 짧은 이름(예: `CORP`)입니다.  
**디렉터리 설명**  
 디렉터리에 대한 선택적 설명을 입력합니다.  
**관리자 암호**  
 디렉터리 관리자의 암호입니다. 디렉터리 생성 프로세스에서는 사용자 이름 `Admin`와 이 암호를 사용하여 관리자 계정을 생성합니다.  
 디렉터리 관리자 암호는 "admin"이라는 단어를 포함할 수 없습니다. 암호는 대소문자를 구분하며 길이가 8\$164자 사이여야 합니다. 또한 다음 네 범주 중 세 개에 해당하는 문자를 1자 이상 포함해야 합니다.  
   +  소문자(a–z) 
   +  대문자(A–Z) 
   +  숫자(0–9) 
   +  영숫자 외의 특수 문자(\$1\$1@\$1\$1%^&\$1\$1-\$1=`\$1\$1()\$1\$1[]:;"'<>,.?/)   
**[Confirm Password]**  
 관리자 암호를 다시 입력합니다.  
반드시 이 암호를 저장해야 합니다. Directory Service에서는 이 암호를 저장하지 않으며 암호를 검색하거나 재설정할 수 없습니다.

1. **Next**(다음)를 선택합니다.

1. **Choose VPC and subnets(VPC 및 서브넷 선택)** 페이지에 다음 정보를 입력합니다.  
**VPC**  
디렉터리에 대한 VPC를 선택합니다. PostgreSQL DB 클러스터는 이와 동일한 VPC 또는 다른 VPC에서 생성할 수 있습니다.  
**서브넷**  
 디렉터리 서버에 대한 서브넷을 선택합니다. 두 서브넷이 서로 다른 가용 영역에 있어야 합니다.

1. **Next**(다음)를 선택합니다.

1.  디렉터리 정보를 검토합니다. 변경이 필요하면 **이전**을 선택하여 변경합니다. 정보가 올바르면 **Create directory(디렉터리 생성)**을 선택합니다.  
![\[디렉터리 세부 정보 페이지\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/WinAuth2.png)

 디렉터리를 생성하는 데 몇 분 정도 걸립니다. 디렉터리가 성공적으로 생성되면 **상태** 값이 **활성**으로 변경됩니다.

 디렉터리에 대한 정보를 보려면 디렉터리 목록에서 해당 디렉터리 ID를 선택합니다. **디렉터리 ID** 값을 적어 두십시오. PostgreSQL DB 인스턴스를 생성하거나 수정할 때 이 값이 필요합니다.

![\[세부 정보 페이지 이미지\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/WinAuth3.png)


## 2단계: (선택 사항) 온프레미스 Active Directory와 Directory Service 간에 신뢰 관계 생성
<a name="postgresql-kerberos-setting-up.create-trust"></a>

자체 온프레미스 Microsoft Active Directory를 사용하지 않으려는 경우 [3단계: Amazon Aurora가 Directory Service에 액세스할 수 있는 IAM 역할 생성](#postgresql-kerberos-setting-up.CreateIAMRole)로 건너뜁니다.

온프레미스 Active Directory를 사용하여 Kerberos 인증을 받으려면 온프레미스 Microsoft Active Directory와 AWS Managed Microsoft AD에서 만든 [1단계: AWS Managed Microsoft AD를 사용하여 디렉터리 생성](#postgresql-kerberos-setting-up.create-directory) 디렉터리 간에 forest trust를 사용하여 신뢰 도메인 관계를 생성해야 합니다. 신뢰는 AWS Managed Microsoft AD 디렉터리가 온프레미스 Microsoft Active Directory를 신뢰하는 단방향일 수도 있고, 두 Active Directory가 서로를 신뢰하는 양방향일 수도 있습니다. Directory Service를 사용하여 신뢰를 설정하는 방법에 대한 자세한 내용은 *AWS Directory Service 관리 안내서*의 [신뢰 관계를 생성해야 하는 경우](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_setup_trust.html)를 참조하세요.

**참고**  
온프레미스 Microsoft Active Directory를 사용하는 경우:  
Windows 클라이언트는 rds.amazonaws.com이 아닌 엔드포인트에 있는 Directory Service의 도메인 이름을 사용하여 연결해야 합니다. 자세한 내용은 [Kerberos 인증을 사용하여 PostgreSQL 연결](postgresql-kerberos-connecting.md) 섹션을 참조하세요.
Windows 클라이언트가 Aurora 사용자 지정 엔드포인트를 사용하여 연결할 수 없습니다. 자세한 내용은 [Amazon Aurora 엔드포인트 연결](Aurora.Overview.Endpoints.md)를 참조하세요.
[글로벌 데이터베이스](aurora-global-database.md)의 경우:  
Windows 클라이언트가 글로벌 데이터베이스의 기본 AWS 리전에 있는 인스턴스 엔드포인트 또는 클러스터 엔드포인트만 사용하여 연결할 수 있습니다.
Windows 클라이언트가 보조 AWS 리전의 클러스터 엔드포인트를 사용하여 연결할 수 없습니다.

온프레미스 Microsoft Active Directory 도메인 이름에 새로 만든 신뢰 관계에 해당하는 DNS 접미사 라우팅이 포함되어 있는지 확인합니다. 다음 스크린샷은 예를 보여줍니다.

![\[DNS 라우팅이 생성된 신뢰에 대응\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/kerberos-auth-trust.png)


## 3단계: Amazon Aurora가 Directory Service에 액세스할 수 있는 IAM 역할 생성
<a name="postgresql-kerberos-setting-up.CreateIAMRole"></a>

Directory Service를 호출하는 Amazon Aurora의 경우 AWS 계정에 관리형 IAM 정책 `AmazonRDSDirectoryServiceAccess`를 사용하는 IAM 역할이 필요합니다. 이 역할을 사용하여 Amazon Aurora에서 Directory Service를 호출할 수 있습니다. (Directory Service에 액세스하기 위한 이 IAM 역할은 [ IAM 데이터베이스 인증](UsingWithRDS.IAMDBAuth.md)에 사용되는 IAM 역할과 다름)

AWS Management Console을 사용하여 DB 인스턴스를 생성할 때 콘솔 사용자에게 `iam:CreateRole` 권한이 있으면 콘솔에서 필요한 IAM 역할을 자동으로 생성합니다. 이 경우 역할 이름은 `rds-directoryservice-kerberos-access-role`입니다. 그렇지 않으면 IAM 역할을 수동으로 생성해야 합니다. 이 IAM 역할을 생성할 때 `Directory Service`를 선택하고 여기에 AWS 관리형 정책인 `AmazonRDSDirectoryServiceAccess`를 연결합니다.

서비스에 대한 IAM 역할 생성에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS 서비스에 대한 권한을 위임할 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)을 참조하세요.

**참고**  
RDS for Microsoft SQL Server에 대한 Windows 인증에 사용되는 IAM 역할은 Amazon Aurora에 사용할 수 없습니다.

`AmazonRDSDirectoryServiceAccess` 관리형 정책인을 사용하는 대신 필요한 권한이 포함된 정책을 생성할 수 있습니다. 이 경우 IAM 역할에 다음과 같은 IAM 신뢰 정책이 있어야 합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "directoryservice.rds.amazonaws.com",
          "rds.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

또한 역할에는 다음과 같은 IAM 역할 정책도 있어야 합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Action": [
        "ds:DescribeDirectories",
        "ds:AuthorizeApplication",
        "ds:UnauthorizeApplication",
        "ds:GetAuthorizedApplicationDetails"
      ],
    "Effect": "Allow",
    "Resource": "*"
    }
  ]
}
```

------

옵트인 AWS 리전의 경우 IAM 역할 신뢰 정책에서 리전별 서비스 위탁자를 사용합니다. 이러한 리전의 서비스에 대한 신뢰 정책을 만들 때 서비스 위탁자에 리전 코드를 지정합니다.

다음 예는 리전별 서비스 위탁자가 포함된 신뢰 정책을 보여 줍니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "directoryservice.rds.REGION-CODE.amazonaws.com",
          "rds.REGION-CODE.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

REGION-CODE를 사용자의 특정 리전 코드로 바꾸세요. 예를 들어 아시아 태평양(멜버른) 리전에는 다음 서비스 위탁자를 사용합니다.

```
"Service": [
  "directoryservice.rds.ap-southeast-4.amazonaws.com",
  "rds.ap-southeast-4.amazonaws.com"
]
```

## 4단계: 사용자 생성 및 구성
<a name="postgresql-kerberos-setting-up.create-users"></a>

 Active Directory Users and Computers 도구를 사용하여 사용자를 생성할 수 있습니다. 이 도구는 Active Directory 도메인 서비스 및 Active Directory Lightweight Directory Services 도구 중 하나입니다. 자세한 내용은 Microsoft 설명서의 [Active Directory 도메인에 사용자 및 컴퓨터 추가](https://learn.microsoft.com/en-us/troubleshoot/windows-server/identity/create-an-active-directory-server#add-users-and-computers-to-the-active-directory-domain)를 참조하세요. 이 경우 사용자는 도메인에 속하며 디렉터리에서 ID가 유지되는 개인 또는 기타 엔터티(예: 사용자의 컴퓨터)입니다.

Directory Service 디렉터리에서 사용자를 생성하려면 Directory Service 디렉터리의 멤버인 Windows 기반 Amazon EC2 인스턴스에 연결되어 있어야 합니다. 이와 동시에 사용자를 생성할 권한이 있는 사용자로 로그인한 상태이어야 합니다. 자세한 내용은 *AWS Directory Service관리 안내서*의 [사용자 생성](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups_create_user.html)을 참조하십시오.

## 5단계: 디렉터리와 DB 인스턴스 사이에 VPC 간 트래픽 활성화
<a name="postgresql-kerberos-setting-up.vpc-peering"></a>

디렉터리와 DB 클러스터를 동일한 VPC에 배치하려면 이 단계를 건너뛰고 [6단계: PostgreSQL DB 클러스터 생성 또는 수정](#postgresql-kerberos-setting-up.create-modify) 단원으로 이동하십시오.

디렉터리와 DB 인스턴스를 서로 다른 VPC에 배치하려면 VPC 피어링 또는 [AWS Transit Gateway](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)를 사용하여 VPC 간 트래픽을 구성하세요.

다음 절차는 VPC 피어링을 사용하여 VPC 간 트래픽을 활성화합니다. *Amazon Virtual Private Cloud 피어링 안내서*의 [VPC 피어링이란?](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html) 지침을 따르십시오.

**VPC 피어링을 사용하여 VPC 간 트래픽을 활성화하려면**

1. 네트워크 트래픽이 양방향으로 흐를 수 있도록 적절한 VPC 라우팅 규칙을 설정합니다.

1. DB 인스턴스의 보안 그룹이 디렉터리의 보안 그룹에서 인바운드 트래픽을 수신할 수 있는지 확인합니다.

1. 트래픽을 차단하는 네트워크 ACL(액세스 제어 목록) 규칙이 없어야 합니다.

다른 AWS 계정이 디렉터리를 소유하는 경우 디렉터리를 공유해야 합니다.

**AWS 계정 간에 디렉터리를 공유하려면**

1. *AWS 관리 안내서*의 [자습서: 원활한 EC2 도메인 조인을 위해 AWS Managed Microsoft AD 디렉터리 공유](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_directory_sharing.html)에 있는 지침에 따라 DB 인스턴스가 생성될 Directory Service 계정과 디렉터리를 공유하는 작업을 시작합니다.

1. DB 인스턴스용 계정을 사용하여 Directory Service 콘솔에 로그인하고 계속하기 전에 도메인이 `SHARED` 상태가 되었는지 확인합니다.

1. DB 인스턴스용 계정을 사용하여 Directory Service 콘솔에 로그인하는 동안 **디렉터리 ID** 값을 기록해 둡니다. 이 디렉터리 ID를 사용하여 DB 인스턴스를 도메인에 조인합니다.

## 6단계: PostgreSQL DB 클러스터 생성 또는 수정
<a name="postgresql-kerberos-setting-up.create-modify"></a>

디렉터리에서 사용할 PostgreSQL DB 클러스터를 생성하거나 수정합니다. 콘솔, CLI 또는 RDS API를 사용하여 DB 클러스터를 디렉터리에 연결할 수 있습니다. 이 작업을 다음 중 한 가지 방법으로 수행할 수 있습니다.
+  콘솔, [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) CLI 명령 또는 [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) RDS API 작업을 사용하여 새 PostgreSQL DB 클러스터를 생성합니다. 지침은 [Aurora PostgreSQL DB 클러스터 생성 및 연결](CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.md) 섹션을 참조하세요.
+  콘솔, [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) CLI 명령 또는 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) RDS API 작업을 사용하여 기존 PostgreSQL DB 클러스터를 수정합니다. 지침은 [Amazon Aurora DB 클러스터 수정](Aurora.Modifying.md) 섹션을 참조하세요.
+  콘솔, [restore-db-cluster-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html) CLI 명령 또는 [RestoreDBClusterFromDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterFromSnapshot.html) RDS API 작업을 사용하여 DB 스냅샷에서 PostgreSQL DB 클러스터를 복원합니다. 지침은 [DB 클러스터 스냅샷에서 복원](aurora-restore-snapshot.md) 섹션을 참조하세요.
+  콘솔, [restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html) CLI 명령 또는 [RestoreDBClusterToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterToPointInTime.html) RDS API 작업을 사용하여 PostgreSQL DB 클러스터를 특정 시점으로 복원합니다. 지침은 [지정된 시간으로 DB 클러스터 복원](aurora-pitr.md) 섹션을 참조하세요.

Kerberos 인증은 VPC의 PostgreSQL DB 클러스터에 대해서만 지원됩니다. DB 클러스터는 디렉터리와 동일한 VPC 또는 다른 VPC에 있을 수 있습니다. DB 클러스터가 디렉터리와 통신할 수 있도록 DB 클러스터는 디렉터리의 VPC 내 수신 및 송신을 허용하는 보안 그룹을 사용해야 합니다.

**참고**  
RDS for PostgreSQL에서 마이그레이션하는 동안에는 Aurora PostgreSQL DB 클러스터에서 Kerberos 인증을 활성화하는 기능이 현재 지원되지 않습니다. Kerberos 인증은 독립 실행형 Aurora PostgreSQL DB 클러스터에서만 활성화할 수 있습니다.

### 콘솔
<a name="postgresql-kerberos-setting-up.create-modify.Console"></a>

콘솔을 사용하여 DB 클러스터를 생성, 수정 또는 복원하는 경우 [**데이터베이스 인증(Database authentication)**] 섹션에서 [**Kerberos 인증(Kerberos authentication)**]을 선택합니다. 그런 다음 [**디렉터리 찾아보기(Browse Directory)**]를 선택합니다. 디렉터리를 선택하거나 [**새 디렉토리 생성(Create a new directory)**]을 클릭하여 Directory Service를 사용합니다.

![\[인증을 위해 Kerberos 선택 및 사용할 디렉토리 식별.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/rpg-authentication-use-kerberos.png)


### AWS CLI
<a name="postgresql-kerberos-setting-up.create-modify.CLI"></a>

AWS CLI를 사용하는 경우 생성한 디렉터리를 DB 클러스터에서 사용하려면 다음과 같은 파라미터가 필요합니다.
+ `--domain` 파라미터의 경우 디렉터리를 만들 때 생성된 도메인 식별자("d-\$1" 식별자)를 사용하십시오.
+ `--domain-iam-role-name` 파라미터의 경우 귀하가 생성한, 관리형 IAM 정책 `AmazonRDSDirectoryServiceAccess`를 사용하는 역할을 사용하십시오.

예를 들어, 다음 CLI 명령은 디렉터리를 사용하도록 DB 클러스터를 수정합니다.

```
aws rds  modify-db-cluster --db-cluster-identifier mydbinstance --domain d-Directory-ID --domain-iam-role-name role-name 
```

**중요**  
DB 클러스터 를 수정하여 Kerberos 인증을 사용 설정하는 경우 변경 후 DB 클러스터 를 재부팅합니다.

## 7단계: Kerberos 보안 주체를 위한 PostgreSQL 사용자 생성
<a name="postgresql-kerberos-setting-up.create-logins"></a>

이때 Aurora PostgreSQL DB 클러스터 가 AWS Managed Microsoft AD 도메인에 조인됩니다. [4단계: 사용자 생성 및 구성](#postgresql-kerberos-setting-up.create-users)에서 디렉터리에서 생성한 사용자는 PostgreSQL 데이터베이스 사용자로 설정하고 데이터베이스에 로그인할 수 있는 권한을 부여해야 합니다. `rds_superuser` 권한이 있는 데이터베이스 사용자로 로그인하면 됩니다. 예를 들어 Aurora PostgreSQL DB 클러스터, 를 생성할 때 기본값을 수락한 경우 다음 단계에 표시된 대로 `postgres`를 사용합니다.

**Kerberos 보안 주체를 위한 PostgreSQL 데이터베이스 사용자를 생성하는 방법**

1. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 DB 인스턴스 엔드포인트에 연결합니다. 다음 예에서는 `rds_superuser` 역할에 기본 `postgres` 계정을 사용합니다.

   ```
   psql --host=cluster-instance-1.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
   ```

1. 데이터베이스에 액세스하도록 할 각 Kerberos 보안 주체(Active Directory 사용자 이름)에 대한 데이터베이스 사용자 이름을 생성합니다. Active Directory 인스턴스에 정의된 표준 사용자 이름(ID), 즉 해당 사용자 이름에 대한 Active Directory 도메인의 소문자 `alias`(Active Directory에서는 사용자 이름)와 대문자 이름을 사용합니다. Active Directory 사용자 이름은 외부에서 인증된 사용자이므로 다음과 같이 이름을 따옴표로 묶습니다.

   ```
   postgres=> CREATE USER "username@CORP.EXAMPLE.COM" WITH LOGIN;
   CREATE ROLE
   ```

1. 데이터베이스 사용자에게 `rds_ad` 역할을 부여합니다.

   ```
   postgres=> GRANT rds_ad TO "username@CORP.EXAMPLE.COM";
   GRANT ROLE
   ```

Active Directory 사용자 ID에 대한 모든 PostgreSQL 사용자 생성을 완료하면 사용자는 Kerberos 보안 인증 정보를 사용하여 Aurora PostgreSQL DB 클러스터에 액세스할 수 있습니다.

Kerberos를 사용하여 인증하는 데이터베이스 사용자는 Active Directory 도메인의 멤버인 클라이언트 컴퓨터에서 인증을 수행하도록 요구됩니다.

`rds_ad` 역할이 부여된 데이터베이스 사용자는 `rds_iam` 역할까지 가질 수는 없습니다. 이는 중첩된 멤버십에도 적용됩니다. 자세한 내용은 [ IAM 데이터베이스 인증](UsingWithRDS.IAMDBAuth.md) 섹션을 참조하세요.

### 대소문자를 구분하지 않는 사용자 이름을 위해 Aurora PostgreSQL DB 클러스터 구성
<a name="postgresql-kerberos-setting-up.create-logins.set-case-insentive"></a>

Aurora PostgreSQL 버전 14.5, 13.8, 12.12, 11.17은 `krb_caseins_users` PostgreSQL 파라미터를 지원합니다. 이 파라미터는 대소문자를 구분하지 않는 Active Directory 사용자 이름을 지원합니다. 기본적으로 이 파라미터는 false로 설정되므로 Aurora PostgreSQL은 사용자 이름을 대소문자를 구분하여 해석합니다. 이는 모든 이전 Aurora PostgreSQL 버전의 기본 동작입니다. 하지만 사용자 지정 DB 클러스터 파라미터 그룹에서 이 파라미터를 `true`로 설정하고 Aurora PostgreSQL DB 클러스터가 사용자 이름을 대소문자를 구분하지 않고 해석하도록 할 수 있습니다. 데이터베이스 사용자가 Active Directory를 사용하여 인증할 때 사용자 이름의 대소문자를 잘못 입력할 수 있으므로 사용자의 편의를 위해 이 방법을 고려해 보세요.

`krb_caseins_users` 파라미터를 변경하려면 Aurora PostgreSQL DB 클러스터가 사용자 지정 DB 클러스터 파라미터 그룹을 사용 중이어야 합니다. 사용자 지정 DB 클러스터 파라미터 그룹 작업에 대한 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.

AWS CLI 또는 AWS Management Console를 사용하여 설정을 변경할 수 있습니다. 자세한 내용은 [Amazon Aurora에서 DB 클러스터 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.ModifyingCluster.md) 섹션을 참조하세요.

## 8단계: PostgreSQL 클라이언트 구성
<a name="postgresql-kerberos-setting-up.configure-client"></a>

PostgreSQL 클라이언트를 구성하려면 다음 단계를 수행하십시오.
+ 도메인을 가리키도록 krb5.conf 파일(또는 동등한 파일)을 생성합니다.
+ 클라이언트 호스트와 Directory Service 간에 트래픽이 흐를 수 있는지 확인합니다. Netcat과 같은 네트워크 유틸리티를 사용하여 다음을 수행하십시오.
  + 포트 53의 DNS를 통한 트래픽을 확인합니다.
  + 포트 53 및 Directory Service용 포트 88 및 464를 포함하는 Kerberos의 TCP/UDP를 통한 트래픽을 확인합니다.
+ 데이터베이스 포트를 통해 클라이언트 호스트와 DB 인스턴스 간에 트래픽이 흐를 수 있는지 확인합니다. 예를 들어, psql을 사용하여 데이터베이스에 연결하고 액세스합니다.

다음은 AWS Managed Microsoft AD의 샘플 krb5.conf 콘텐츠입니다.

```
[libdefaults]
 default_realm = EXAMPLE.COM
[realms]
 EXAMPLE.COM = {
  kdc = example.com
  admin_server = example.com
 }
[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM
```

다음은 온프레미스 Microsoft Active Directory의 샘플 krb5.conf 콘텐츠입니다.

```
[libdefaults]
 default_realm = EXAMPLE.COM
[realms]
 EXAMPLE.COM = {
  kdc = example.com
  admin_server = example.com
 }
 ONPREM.COM = {
  kdc = onprem.com
  admin_server = onprem.com
 }
[domain_realm]
 .example.com = EXAMPLE.COM
 example.com = EXAMPLE.COM
 .onprem.com = ONPREM.COM
 onprem.com = ONPREM.COM  
 .rds.amazonaws.com = EXAMPLE.COM
 .amazonaws.com.rproxy.govskope.us.cn = EXAMPLE.COM
 .amazon.com = EXAMPLE.COM
```

# Active Directory 도메인에서 Aurora PostgreSQL DB 클러스터 관리
<a name="postgresql-kerberos-managing"></a>

콘솔, CLI 또는 RDS API를 사용하여 DB 클러스터 및 Microsoft Active Directory와의 관계를 관리할 수 있습니다. 예를 들어, Active Directory를 연결하여 Kerberos 인증을 활성화할 수 있습니다. 또한 Active Directory 연결을 제거하여 Kerberos 인증을 비활성화할 수 있습니다. 또한 DB 클러스터를 이동하여 한 Microsoft Active Directory에서 다른 Microsoft Active Directory로 외부적으로 인증해 줄 수 있습니다.

예를 들어 CLI를 사용하여 다음 작업을 수행할 수 있습니다.
+ 실패한 멤버십에 대한 Kerberos 인증 활성화를 다시 시도하려면 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) CLI 명령을 사용합니다. `--domain` 옵션에 대해 현재 멤버십의 디렉터리 ID를 지정합니다.
+ DB 인스턴스에서 Kerberos 인증을 비활성화하려면 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) CLI 명령을 사용합니다. `none` 옵션의 경우 `--domain`을 지정합니다.
+ 한 도메인에서 다른 도메인으로 DB 인스턴스를 이동하려면 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) CLI 명령을 사용합니다. `--domain` 옵션에 대해 새 도메인의 도메인 식별자를 지정합니다.

## 도메인 멤버십 이해
<a name="postgresql-kerberos-managing.understanding"></a>

DB 클러스터를 생성하거나 수정하면 DB 인스턴스가 도메인의 멤버가 됩니다. 콘솔에서 또는 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) CLI 명령을 실행하여 도메인 멤버십의 상태를 확인할 수 있습니다. DB 인스턴스의 상태는 다음 중 한 가지가 될 수 있습니다.
+ `kerberos-enabled` - DB 인스턴스에 Kerberos 인증이 활성화되어 있습니다.
+ `enabling-kerberos` - AWS에서 이 DB 인스턴스에 대한 Kerberos 인증 활성화를 진행 중입니다.
+ `pending-enable-kerberos` - 이 DB 인스턴스에 대한 Kerberos 인증 활성화가 보류 중입니다.
+ `pending-maintenance-enable-kerberos` - AWS에서 예약된 다음 유지 관리 기간에 DB 인스턴스에 대한 Kerberos 인증을 활성화하려 합니다.
+ `pending-disable-kerberos` - 이 DB 인스턴스에 대한 Kerberos 인증 비활성화가 보류 중입니다.
+ `pending-maintenance-disable-kerberos` - AWS에서 예약된 다음 유지 관리 기간에 DB 인스턴스에 대한 Kerberos 인증을 비활성화하려 합니다.
+ `enable-kerberos-failed` - 구성 문제로 인해 AWS가 DB 인스턴스에 대해 Kerberos 인증을 활성화하지 못했습니다. DB 인스턴스 수정 명령을 다시 실행하기 전에 구성 문제를 해결하십시오.
+ `disabling-kerberos` - AWS에서 이 DB 인스턴스에 대한 Kerberos 인증 비활성화를 진행 중입니다.

네트워크 연결 문제 또는 잘못된 IAM 역할로 인해 Kerberos 인증 활성화 요청이 실패할 수 있습니다. 경우에 따라 DB 클러스터를 생성하거나 수정할 때 Kerberos 인증을 사용하려고 하면 실패할 수 있습니다. 이런 경우 올바른 IAM 역할을 사용하고 있는지 확인한 다음 도메인에 조인하도록 DB 클러스터를 수정합니다.

# Kerberos 인증을 사용하여 PostgreSQL 연결
<a name="postgresql-kerberos-connecting"></a>

pgAdmin 인터페이스 또는 psql과 같은 명령줄 인터페이스를 사용하여 Kerberos 인증으로 PostgreSQL에 연결할 수 있습니다. 연결에 대한 자세한 내용은 [Amazon Aurora PostgreSQL DB 클러스터에 연결](Aurora.Connecting.md#Aurora.Connecting.AuroraPostgreSQL) 섹션을 참조하세요. 연결에 필요한 엔드포인트, 포트 번호 및 기타 세부 정보를 얻는 방법에 대한 자세한 내용은 [Aurora 클러스터의 엔드포인트 보기](Aurora.Overview.Endpoints.md#Aurora.Endpoints.Viewing) 단원을 참조하십시오. 

**참고**  
PostgreSQL의 GSSAPI 인증 및 암호화는 Kerberos 라이브러리 `libkrb5.so`에 의해 구현됩니다. `postgres_fdw` 및 `dblink`와 같은 기능은 Kerberos 인증 또는 암호화를 사용한 아웃바운드 연결에도 동일한 라이브러리를 사용합니다.

## pgAdmin
<a name="collapsible-section-pgAdmin"></a>

pgAdmin을 사용하여 Kerberos 인증으로 PostgreSQL에 연결하려면 다음 단계를 수행하십시오.

1. 클라이언트 컴퓨터에서 pgAdmin 애플리케이션을 실행합니다.

1. [**Dashboard**] 탭에서 [**Add New Server**]를 선택합니다.

1. **생성 - 서버** 대화 상자에서 pgAdmin의 서버를 식별하기 위해 **일반** 탭에 이름을 입력합니다.

1. **연결** 탭에서 Aurora PostgreSQL 데이터베이스에 있는 다음 정보를 입력합니다.
   + **호스트**의 경우 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 대한 엔드포인트를 입력합니다. 엔드포인트는 다음과 유사하게 표시됩니다.

     ```
     AUR-cluster-instance.111122223333.aws-region.rds.amazonaws.com
     ```

     Windows 클라이언트에서 온-프레미스 Microsoft Active Directory에 연결하려면 호스트 엔드포인트의 `rds.amazonaws.com` 대신 AWS Managed Active Directory의 도메인 이름을 사용합니다. 예를 들어 AWS Managed Active Directory의 도메인 이름이 `corp.example.com`일 경우 그런 다음**호스트**에서는 엔드포인트가 다음과 같이 지정됩니다.

     ```
     AUR-cluster-instance.111122223333.aws-region.corp.example.com
     ```
   + **포트**에 할당된 포트를 입력합니다.
   + **Maintenance database(유지 관리 데이터베이스)**에 클라이언트가 연결될 초기 데이터베이스의 이름을 입력합니다.
   + **Username(사용자 이름)**에 [7단계: Kerberos 보안 주체를 위한 PostgreSQL 사용자 생성](postgresql-kerberos-setting-up.md#postgresql-kerberos-setting-up.create-logins)의 Kerberos 인증을 위해 입력했던 사용자 이름을 입력합니다.

1. **저장**을 선택합니다.

## psql
<a name="collapsible-section-psql"></a>

psql을 사용하여 Kerberos 인증으로 PostgreSQL에 연결하려면 다음 단계를 수행하십시오.

1. 명령 프롬프트에서 다음 명령을 실행합니다.

   ```
   kinit username                
   ```

   *`username`*을 사용자 이름으로 대체합니다. 프롬프트에서 Microsoft Active Directory에 저장된 사용자 암호를 입력합니다.

1. PostgreSQL DB 클러스터 가 공개적으로 액세스 가능한 VPC를 사용하는 경우 DB 클러스터 엔드포인트의 IP 주소를 EC2 클라이언트의 `/etc/hosts` 파일에 넣습니다. 예를 들어 다음 명령은 IP 주소를 얻은 다음 `/etc/hosts` 파일에 넣습니다.

   ```
   % dig +short PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com  
   ;; Truncated, retrying in TCP mode.
   ec2-34-210-197-118.AWS-Region.compute.amazonaws.com.
   34.210.197.118 
   
   % echo " 34.210.197.118  PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com" >> /etc/hosts
   ```

   Windows 클라이언트에서 온프레미스 Microsoft Active Directory를 사용하는 경우 특수 엔드포인트를 사용하여 연결해야 합니다. 호스트 엔드포인트에서 Amazon 도메인 `rds.amazonaws.com`을 사용하는 대신 AWS Managed Active Directory의 도메인 이름을 사용합니다.

   예를 들어 AWS Managed Active Directory의 도메인 이름이 `corp.example.com`일 경우 엔드포인트에 `PostgreSQL-endpoint.AWS-Region.corp.example.com` 형식을 사용하고 `/etc/hosts` 파일에 넣습니다.

   ```
   % echo " 34.210.197.118  PostgreSQL-endpoint.AWS-Region.corp.example.com" >> /etc/hosts
   ```

1. 다음 psql 명령을 사용하여 Active Directory와 통합된 PostgreSQL DB 클러스터에 로그인합니다. 클러스터 또는 인스턴스 엔드포인트를 사용합니다.

   ```
   psql -U username@CORP.EXAMPLE.COM -p 5432 -h PostgreSQL-endpoint.AWS-Region.rds.amazonaws.com postgres
   ```

   온프레미스 Active Directory를 사용하여 Windows 클러스터에서 PostgreSQL DB 클러스터에 로그인하려면 이전 단계의 도메인 이름(`corp.example.com`)과 함께 다음 psql 명령을 사용합니다.

   ```
   psql -U username@CORP.EXAMPLE.COM -p 5432 -h PostgreSQL-endpoint.AWS-Region.corp.example.com postgres
   ```

# Aurora PostgreSQL 액세스 제어를 위한 AD 보안 그룹 사용
<a name="AD.Security.Groups"></a>

Aurora PostgreSQL 14.10 및 15.5 버전부터 Microsoft Active Directory(AD) 보안 그룹용 AWS Directory Service를 사용하여 Aurora PostgreSQL 액세스 제어를 관리할 수 있습니다. 이전 버전의 Aurora PostgreSQL은 개별 사용자에 대해서만 AD를 통한 Kerberos 기반 인증을 지원합니다. 액세스 권한을 얻으려면 각 AD 사용자를 DB 클러스터에 명시적으로 프로비저닝해야 했습니다.

비즈니스 요구 사항에 따라 각 AD 사용자를 DB 클러스터에 명시적으로 프로비저닝하는 대신, 아래 설명과 같이 AD 보안 그룹을 활용할 수 있습니다.
+ AD 사용자는 Active Directory에 있는 다양한 AD 보안 그룹의 구성원입니다. 이는 DB 클러스터 관리자가 지시하는 것이 아니라 비즈니스 요구 사항을 기반으로 하며, AD 관리자가 처리합니다.
+ DB 클러스터 관리자는 비즈니스 요구 사항에 따라 DB 인스턴스에 DB 역할을 생성합니다. 이러한 DB 역할은 서로 권한이 다를 수 있습니다.
+ DB 클러스터 관리자는 DB 클러스터별로 AD 보안 그룹에서 DB 역할로의 매핑을 구성합니다.
+ DB 사용자는 AD 보안 인증 정보를 사용하여 DB 클러스터에 액세스할 수 있습니다. 액세스는 AD 보안 그룹 구성원 자격을 기반으로 합니다. AD 사용자는 AD 그룹 구성원 자격에 따라 자동으로 액세스 권한을 얻거나 잃습니다.

## 사전 조건
<a name="AD.Security.Groups.Prereq"></a>

AD 보안 그룹의 확장을 설정하기 전에 다음 사항이 준비되었는지 확인하세요.
+ PostgreSQL DB 클러스터에 대한 Kerberos 인증을 설정합니다. 자세한 내용은 [PostgreSQL DB 클러스터에 대한 Kerberos 인증 설정](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-kerberos-setting-up.html)을 참조하세요.
**참고**  
AD 보안 그룹의 경우 이 설정 절차에서 ‘7단계: Kerberos 보안 주체를 위한 PostgreSQL 사용자 생성’ 단계를 건너뛰세요.
**중요**  
이미 Kerberos 인증이 활성화된 Aurora PostgreSQL 클러스터에서 AD 보안 그룹을 활성화하면 인증 문제가 발생할 수 있습니다. 이는 `shared_preload_libraries` 파라미터에 `pg_ad_mapping`을 추가하고 데이터베이스를 다시 시작할 때 발생합니다. 클러스터 엔드포인트를 사용하는 경우 `rds_ad` 역할이 있는 데이터베이스 사용자가 아닌 AD 사용자를 사용한 로그인 시도가 실패할 수 있습니다. 이로 인해 엔진 충돌이 발생할 수도 있습니다. 이 문제를 해결하려면 클러스터에서 Kerberos 인증을 비활성화했다가 다시 활성화합니다. 이 해결 방법은 기존 인스턴스에 필요하지만 2025년 4월 이후에 생성된 인스턴스에는 영향을 주지 않습니다.
+ 도메인에서 DB 클러스터 관리. 자세한 내용은 [도메인에서 DB 클러스터 관리](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-kerberos-managing.html)를 참조하세요.

## pg\$1ad\$1mapping 확장 설정
<a name="AD.Security.Groups.Setup"></a>

Aurora PostgreSQL은 이제 Aurora PostgreSQL 클러스터에서 AD 보안 그룹과 DB 역할 간의 매핑을 관리할 수 있는 `pg_ad_mapping` 확장을 제공합니다. `pg_ad_mapping`에서 제공하는 함수에 대한 자세한 내용은 [`pg_ad_mapping` 확장의 함수 사용](#AD.Security.Groups.functions) 섹션을 참조하세요.

Aurora PostgreSQL DB 클러스터에 `pg_ad_mapping` 확장을 설정하려면 먼저 Aurora PostgreSQL DB 클러스터용 사용자 지정 DB 클러스터 파라미터 그룹의 공유 라이브러리에 `pg_ad_mapping`을 추가해야 합니다. 사용자 지정 DB 클러스터 파라미터 그룹 생성에 대한 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요. 다음으로 `pg_ad_mapping` 확장을 설치합니다. 이 섹션에 절차가 설명되어 있습니다. AWS Management Console 또는 AWS CLI를 사용할 수 있습니다.

이 모든 작업을 수행하려면 `rds_superuser` 역할의 권한이 있어야 합니다.

다음 단계에서는 사용자의 Aurora PostgreSQL DB 클러스터가 사용자 지정 DB 클러스터 파라미터 그룹에 연결되어 있다고 가정합니다.

### 콘솔
<a name="AD.Security.Groups.basic-setup.CON"></a>

**`pg_ad_mapping` 확장 설정 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 선택합니다.

1. Aurora PostgreSQL DB 클러스터 라이터 인스턴스의 **구성** 탭을 엽니다. 인스턴스 세부 정보 중에서 **파라미터 그룹** 링크를 찾습니다.

1. 링크를 선택하여 Aurora PostgreSQL DB 클러스터와 연결된 사용자 지정 파라미터를 엽니다.

1. **파라미터** 검색 필드에 `shared_pre`를 입력하여 `shared_preload_libraries` 파라미터를 찾습니다.

1. **파라미터 편집**을 선택하여 속성 값에 액세스합니다.

1. **값** 필드의 목록에 `pg_ad_mapping`를 추가합니다. 쉼표를 사용하여 값 목록에서 항목을 구분합니다.  
![\[pgAudit가 추가된 shared_preload_libaries 파라미터 이미지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg_shared_preload_pgadmapping.png)

1. Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 `shared_preload_libraries` 파라미터 변경 사항이 적용되도록 합니다.

1. 인스턴스를 사용할 수 있게 되면 `pg_ad_mapping`가 초기화되었는지 확인합니다. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결하고 다음 명령을 실행합니다.

   ```
   SHOW shared_preload_libraries;
   shared_preload_libraries 
   --------------------------
   rdsutils,pg_ad_mapping
   (1 row)
   ```

1. `pg_ad_mapping`이 초기화되었으므로 이제 확장을 생성할 수 있습니다. 라이브러리를 초기화한 후에 확장을 생성해야 이 확장에서 제공되는 함수를 사용할 수 있습니다.

   ```
   CREATE EXTENSION pg_ad_mapping;
   ```

1. `psql` 세션을 닫습니다.

   ```
   labdb=> \q
   ```

### AWS CLI
<a name="Appendix.PostgreSQL.CommonDBATasks.pgaudit.basic-setup.CLI"></a>

**pg\$1ad\$1mapping 설정 방법**

AWS CLI를 사용하여 pg\$1ad\$1mapping을 설정하려면 다음 절차와 같이 [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) 작업을 호출하여 사용자 지정 파라미터 그룹에 이 파라미터를 추가합니다.

1. 다음 AWS CLI 명령을 사용하여 `shared_preload_libraries` 파라미터에 `pg_ad_mapping`를 추가합니다.

   ```
   aws rds modify-db-parameter-group \
      --db-parameter-group-name custom-param-group-name \
      --parameters "ParameterName=shared_preload_libraries,ParameterValue=pg_ad_mapping,ApplyMethod=pending-reboot" \
      --region aws-region
   ```

1. 다음 AWS CLI 명령으로 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 pg\$1ad\$1mapping이 초기화되도록 합니다.

   ```
   aws rds reboot-db-instance \
       --db-instance-identifier writer-instance \
       --region aws-region
   ```

1. 인스턴스를 사용할 수 있게 되면 `pg_ad_mapping`가 초기화되었는지 확인할 수 있습니다. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결하고 다음 명령을 실행합니다.

   ```
   SHOW shared_preload_libraries;
   shared_preload_libraries 
   --------------------------
   rdsutils,pg_ad_mapping
   (1 row)
   ```

   pg\$1ad\$1mapping이 초기화되었으므로 이제 확장을 생성할 수 있습니다.

   ```
   CREATE EXTENSION pg_ad_mapping;
   ```

1. AWS CLI를 사용할 수 있도록 `psql` 세션을 닫습니다.

   ```
   labdb=> \q
   ```

## PowerShell에서 Active Directory 그룹 SID 검색
<a name="AD.Security.Groups.retrieving"></a>

보안 식별자(SID)는 보안 주체 또는 보안 그룹을 고유하게 식별하는 데 사용됩니다. Active Directory에서 보안 그룹이나 계정을 만들 때마다 SID가 할당됩니다. Active Directory에서 AD 보안 그룹 SID를 가져오려면 해당 Active Directory 도메인과 연결된 Windows 클라이언트 컴퓨터에서 Get-ADGroup cmdlet을 사용할 수 있습니다. Identity 파라미터는 해당 SID를 가져올 Active Directory 그룹 이름을 지정합니다.

다음 예제에서는 AD 그룹 *adgroup1*의 SID를 반환합니다.

```
C:\Users\Admin> Get-ADGroup -Identity adgroup1 | select SID
            
             SID
-----------------------------------------------
S-1-5-21-3168537779-1985441202-1799118680-1612
```

## DB 역할을 AD 보안 그룹에 매핑
<a name="AD.Security.Groups.mapping"></a>

데이터베이스의 AD 보안 그룹을 PostgreSQL DB 역할로 명시적으로 프로비저닝해야 합니다. 하나 이상의 프로비저닝된 AD 보안 그룹에 속하는 AD 사용자는 데이터베이스에 액세스할 수 있습니다. AD 그룹 보안 기반 DB 역할에 `rds_ad role` 역할을 부여해서는 안 됩니다. 보안 그룹에 대한 Kerberos 인증은 도메인 이름 접미사(예: *user1@example.com*)를 사용하여 트리거됩니다. 이 DB 역할은 데이터베이스에 액세스하기 위해 암호 또는 IAM 인증을 사용할 수 없습니다.

**참고**  
데이터베이스에 해당 DB 역할과 `rds_ad` 역할이 부여된 AD 사용자는 AD 보안 그룹의 일원으로 로그인할 수 없습니다. 이들은 개별 사용자로서 DB 역할을 통해 액세스 권한을 얻게 됩니다.

예를 들어, accounts-group은 Aurora PostgreSQL에서 이 보안 그룹을 accounts-role로 프로비저닝하려는 AD의 보안 그룹입니다.


| AD 보안 그룹 | PostgreSQL DB 역할 | 
| --- | --- | 
| accounts-group | accounts-role  | 

DB 역할을 AD 보안 그룹에 매핑할 때는 DB 역할에 LOGIN 속성이 설정되어 있고 필수 로그인 데이터베이스에 대한 CONNECT 권한이 있는지 확인해야 합니다.

```
postgres => alter role accounts-role login;
        
ALTER ROLE
postgres => grant connect on database accounts-db to accounts-role;
```

이제 관리자는 AD 보안 그룹과 PostgreSQL DB 역할 간의 매핑을 생성할 수 있습니다.

```
admin=>select pgadmap_set_mapping('accounts-group', 'accounts-role', <SID>, <Weight>);
```

AD 보안 그룹의 SID 검색에 대한 자세한 내용은 [PowerShell에서 Active Directory 그룹 SID 검색](#AD.Security.Groups.retrieving) 섹션을 참조하세요.

AD 사용자가 여러 그룹에 속해 있는 경우가 있을 수 있으며, 이 경우 AD 사용자는 가장 높은 가중치로 프로비저닝된 DB 역할의 권한을 상속받게 됩니다. 두 역할의 가중치가 같으면 AD 사용자는 최근에 추가된 매핑에 해당하는 DB 역할의 권한을 상속받습니다. 개별 DB 역할의 상대적 권한을 반영하는 가중치를 지정하는 것이 좋습니다. DB 역할의 권한이 높을수록 매핑 항목과 관련된 가중치도 높아야 합니다. 이렇게 하면 가중치가 같은 두 매핑의 모호성을 피할 수 있습니다.

다음 표에는 AD 보안 그룹에서 Aurora PostgreSQL DB 역할로의 샘플 매핑이 나와 있습니다.


| AD 보안 그룹 | PostgreSQL DB 역할 | 가중치 | 
| --- | --- | --- | 
| accounts-group | accounts-role | 7 | 
| sales-group | sales-role | 10 | 
| dev-group | dev-role | 7 | 

다음 예제에서 `user1`은 가중치가 더 높기 때문에 sales-role의 권한을 상속하고, `user2`는 이 역할에 대한 매핑이 `accounts-role` 이후에 생성되었기 때문에 `accounts-role`과 동일한 가중치를 공유하는 `dev-role`의 권한을 상속합니다.


| 사용자 이름 | 보안 그룹 구성원 자격 | 
| --- | --- | 
| user1 | accounts-group sales-group | 
| user2 | accounts-group dev-group | 

매핑을 설정하고, 나열하고, 지우는 psql 명령은 아래와 같습니다. 현재는 단일 매핑 항목을 수정할 수 없습니다. 기존 항목을 삭제하고 매핑을 다시 만들어야 합니다.

```
admin=>select pgadmap_set_mapping('accounts-group', 'accounts-role', 'S-1-5-67-890', 7);
admin=>select pgadmap_set_mapping('sales-group', 'sales-role', 'S-1-2-34-560', 10);
admin=>select pgadmap_set_mapping('dev-group', 'dev-role', 'S-1-8-43-612', 7);
            
admin=>select * from pgadmap_read_mapping();
            
ad_sid       | pg_role        | weight | ad_grp 
-------------+----------------+--------+---------------
S-1-5-67-890 | accounts-role | 7      | accounts-group
S-1-2-34-560 | sales-role    | 10     | sales-group
S-1-8-43-612 | dev-role      | 7      | dev-group
(3 rows)
```

## AD 사용자 ID 로깅/감사
<a name="AD.Security.Groups.useridentity"></a>

다음 명령을 사용하여 기존 또는 세션 사용자가 상속하는 데이터베이스 역할을 확인합니다.

```
postgres=>select session_user, current_user;
            
session_user | current_user
-------------+--------------
dev-role     | dev-role

(1 row)
```

AD 보안 주체 ID를 확인하려면 아래 명령을 사용하세요.

```
postgres=>select principal from pg_stat_gssapi where pid = pg_backend_pid();
            
 principal        
-------------------------
 user1@example.com

(1 row)
```

현재로서는 AD 사용자 ID가 감사 로그에 표시되지 않습니다. `log_connections` 파라미터를 활성화하여 DB 세션 설정을 기록할 수 있습니다. 자세한 내용은 [log\$1connections](https://docs.aws.amazon.com/prescriptive-guidance/latest/tuning-postgresql-parameters/log-connections.html)를 참조하세요. 이에 대한 출력에는 아래와 같이 AD 사용자 ID가 포함됩니다. 이 출력과 관련된 백엔드 PID는 실제 AD 사용자에게 작업을 귀속시키는 데 도움이 됩니다.

```
pgrole1@postgres:[615]:LOG: connection authorized: user=pgrole1 database=postgres application_name=psql GSS (authenticated=yes, encrypted=yes, principal=Admin@EXAMPLE.COM)
```

## 제한 사항
<a name="AD.Security.Groups.limitations"></a>
+ Azure Active Directory로 알려진 Microsoft Entra ID는 지원되지 않습니다.

## `pg_ad_mapping` 확장의 함수 사용
<a name="AD.Security.Groups.functions"></a>

`pg_ad_mapping` 확장은 다음 함수에 대한 지원을 제공합니다.

### pgadmap\$1set\$1mapping
<a name="AD.Security.Groups.functions.setmapping"></a>

이 함수는 관련 가중치를 사용하여 AD 보안 그룹과 데이터베이스 역할 간의 매핑을 설정합니다.

#### 구문
<a name="pgadmap_set_mapping-syntax"></a>

 

```
pgadmap_set_mapping(
ad_group, 
db_role, 
ad_group_sid, 
weight)
```

#### 인수
<a name="pgadmap_set_mapping-arguments"></a>


| 파라미터 | 설명 | 
| --- | --- | 
| ad\$1group | AD 그룹의 이름입니다. 값이 null 또는 빈 문자열이 될 수 없습니다. | 
| db\$1role | 지정된 AD 그룹에 매핑할 데이터베이스 역할입니다. 값이 null 또는 빈 문자열이 될 수 없습니다. | 
| ad\$1group\$1sid | AD 그룹을 고유하게 식별하는 데 사용되는 보안 식별자입니다. 값은 'S-1-'로 시작하며 null 또는 빈 문자열이 될 수 없습니다. 자세한 내용은 [PowerShell에서 Active Directory 그룹 SID 검색](#AD.Security.Groups.retrieving) 섹션을 참조하세요. | 
| weight | 데이터베이스 역할과 관련된 가중치입니다. 사용자가 여러 그룹의 구성원으로 속해 있는 경우 가중치가 가장 높은 역할이 우선합니다. 가중치의 기본값은 1입니다. | 

#### 반환 타입
<a name="pgadmap_set_mapping-return-type"></a>

`None`

#### 사용 노트
<a name="pgadmap_set_mapping-usage-notes"></a>

이 함수는 AD 보안 그룹의 새 매핑을 데이터베이스 역할에 추가합니다. rds\$1superuser 권한을 가진 사용자만 DB 클러스터의 기본 DB 인스턴스에서 이 함수를 실행할 수 있습니다.

#### 예제
<a name="pgadmap_set_mapping-examples"></a>

```
postgres=> select pgadmap_set_mapping('accounts-group','accounts-role','S-1-2-33-12345-67890-12345-678',10);
            
pgadmap_set_mapping 

(1 row)
```

### pgadmap\$1read\$1mapping
<a name="AD.Security.Groups.functions.readmapping"></a>

이 함수는 `pgadmap_set_mapping` 함수를 사용하여 설정한 AD 보안 그룹과 DB 역할 간의 매핑을 나열합니다.

#### 구문
<a name="pgadmap_read_mapping-syntax"></a>

 

```
pgadmap_read_mapping()
```

#### 인수
<a name="pgadmap_read_mapping-arguments"></a>

`None`

#### 반환 타입
<a name="pgadmap_read_mapping-return-type"></a>


| 파라미터 | 설명 | 
| --- | --- | 
| ad\$1group\$1sid | AD 그룹을 고유하게 식별하는 데 사용되는 보안 식별자입니다. 값은 'S-1-'로 시작하며 null 또는 빈 문자열이 될 수 없습니다. 자세히 알아보려면 [PowerShell에서 Active Directory 그룹 SID 검색](#AD.Security.Groups.retrieving) 섹션을 참조하세요. | 
| db\$1role | 지정된 AD 그룹에 매핑할 데이터베이스 역할입니다. 값이 null 또는 빈 문자열이 될 수 없습니다. | 
| weight | 데이터베이스 역할과 관련된 가중치입니다. 사용자가 여러 그룹의 구성원으로 속해 있는 경우 가중치가 가장 높은 역할이 우선합니다. 가중치의 기본값은 1입니다. | 
| ad\$1group | AD 그룹의 이름입니다. 값이 null 또는 빈 문자열이 될 수 없습니다. | 

#### 사용 노트
<a name="pgadmap_read_mapping-usage-notes"></a>

이 함수를 호출하여 AD 보안 그룹과 DB 역할 간에 사용 가능한 모든 매핑을 나열합니다.

#### 예제
<a name="pgadmap_read_mapping-examples"></a>

```
postgres=> select * from pgadmap_read_mapping();
            
ad_sid                              | pg_role       | weight | ad_grp 
------------------------------------+---------------+--------+------------------
S-1-2-33-12345-67890-12345-678      | accounts-role | 10     | accounts-group
(1 row)

(1 row)
```

### pgadmap\$1reset\$1mapping
<a name="AD.Security.Groups.functions.resetmapping"></a>

이 함수는 `pgadmap_set_mapping` 함수를 사용하여 설정된 하나의 매핑 또는 모든 매핑을 재설정합니다.

#### 구문
<a name="pgadmap_reset_mapping-syntax"></a>

 

```
pgadmap_reset_mapping(
ad_group_sid, 
db_role, 
weight)
```

#### 인수
<a name="pgadmap_reset_mapping-arguments"></a>


| 파라미터 | 설명 | 
| --- | --- | 
| ad\$1group\$1sid | AD 그룹을 고유하게 식별하는 데 사용되는 보안 식별자입니다. | 
| db\$1role | 지정된 AD 그룹에 매핑할 데이터베이스 역할입니다. | 
| weight | 데이터베이스 역할과 관련된 가중치입니다. | 

인수가 제공되지 않으면 모든 AD 그룹과 DB 역할 매핑이 재설정됩니다. 모든 인수를 제공하거나 어떤 인수도 제공하지 않아야 합니다.

#### 반환 타입
<a name="pgadmap_reset_mapping-return-type"></a>

`None`

#### 사용 노트
<a name="pgadmap_reset_mapping-usage-notes"></a>

특정 AD 그룹과 DB 역할 매핑을 삭제하거나 모든 매핑을 재설정하려면 이 함수를 호출합니다. `rds_superuser` 권한을 가진 사용자만 DB 클러스터의 기본 DB 인스턴스에서 이 함수를 실행할 수 있습니다.

#### 예제
<a name="pgadmap_reset_mapping-examples"></a>

```
postgres=> select * from pgadmap_read_mapping();
            
   ad_sid                       | pg_role      | weight      | ad_grp 
--------------------------------+--------------+-------------+-------------------
 S-1-2-33-12345-67890-12345-678 | accounts-role| 10          | accounts-group
 S-1-2-33-12345-67890-12345-666 | sales-role   | 10          | sales-group
 
(2 rows)
postgres=> select pgadmap_reset_mapping('S-1-2-33-12345-67890-12345-678', 'accounts-role', 10);
                
pgadmap_reset_mapping   
(1 row)
                
postgres=> select * from pgadmap_read_mapping();
            
   ad_sid                       | pg_role      | weight      | ad_grp 
--------------------------------+--------------+-------------+---------------
 S-1-2-33-12345-67890-12345-666 | sales-role   | 10          | sales-group
 
(1 row)
postgres=> select pgadmap_reset_mapping();

pgadmap_reset_mapping   
(1 row)
                
postgres=> select * from pgadmap_read_mapping();
            
   ad_sid                       | pg_role      | weight      | ad_grp 
--------------------------------+--------------+-------------+--------------
 (0 rows)
```

# 데이터를 PostgreSQL과 호환되는 Amazon Aurora로 마이그레이션
<a name="AuroraPostgreSQL.Migrating"></a>

기존 데이터베이스의 데이터를 Amazon Aurora PostgreSQL 호환 버전 DB 클러스터로 마이그레이션하기 위한 몇 가지 옵션이 있습니다. 마이그레이션할 데이터베이스와 데이터 크기에 따라서도 마이그레이션 옵션이 달라집니다. 마이그레이션 옵션은 다음과 같습니다.

**[ 스냅샷을 사용하여 RDS for PostgreSQL DB 인스턴스 마이그레이션](AuroraPostgreSQL.Migrating.RDSPostgreSQL.Import.Console.md)**  
RDS for PostgreSQL DB 스냅샷의 데이터를 Aurora PostgreSQL DB 클러스터로 직접 마이그레이션할 수 있습니다.

**[ Aurora 읽기 전용 복제본을 사용하여 RDS for PostgreSQL DB 인스턴스 마이그레이션](AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.md)**  
또한 PostgreSQL DB 인스턴스의 Aurora PostgreSQL 읽기 전용 복제본을 생성하여 RDS for PostgreSQL DB 인스턴스에서 마이그레이션할 수도 있습니다. RDS for PostgreSQL DB 인스턴스와 Aurora PostgreSQL 읽기 전용 복제본 사이의 복제 지연 시간이 0이 되면 복제를 멈출 수 있습니다. 이때부터 읽기 및 쓰기 작업에서 Aurora 읽기 복제본을 독립 실행형 Aurora PostgreSQL DB 클러스터로 사용할 수 있습니다.

**[Aurora PostgreSQL로 Amazon S3 데이터 가져오기 ](USER_PostgreSQL.S3Import.md) **  
데이터를 Amazon S3에서 Aurora PostgreSQL DB 클러스터에 속한 테이블로 가져와 마이그레이션할 수 있습니다.

**PostgreSQL과 호환되지 않는 데이터베이스에서 마이그레이션**  
AWS Database Migration Service(AWS DMS)를 사용하여 PostgreSQL과 호환되지 않는 데이터베이스의 데이터를 마이그레이션할 수 있습니다. AWS DMS에 대한 자세한 내용은 *AWS Database Migration Service 사용 설명서*에서 [AWS Database Migration Service란 무엇입니까?](https://docs.aws.amazon.com/dms/latest/userguide/Welcome.html)를 참조하세요.

**참고**  
RDS for PostgreSQL에서 마이그레이션하는 동안에는 Aurora PostgreSQL DB 클러스터에서 Kerberos 인증을 활성화하는 기능이 현재 지원되지 않습니다. Kerberos 인증은 독립 실행형 Aurora PostgreSQL DB 클러스터에서만 활성화할 수 있습니다.

Aurora를 사용할 수 있는 AWS 리전 목록은 *AWS 일반 참조*에서 [Amazon Aurora](https://docs.aws.amazon.com/general/latest/gr/rande.html#aurora) 섹션을 참조하세요.

**중요**  
가까운 장래에 RDS for PostgreSQL DB 인스턴스를 Aurora PostgreSQL DB 클러스터로 마이그레이션하려는 경우 마이그레이션 계획 단계 초기에 DB 인스턴스의 자동 마이너 버전 업그레이드를 비활성화하는 것이 좋습니다. Aurora PostgreSQL에서 해당 RDS for PostgreSQL 버전이 아직 지원되지 않는 경우 Aurora PostgreSQL로의 마이그레이션이 지연될 수 있습니다.  
Aurora PostgreSQL 버전에 대한 자세한 내용은 [Amazon Aurora PostgreSQL의 엔진 버전](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.20180305.html)을 참조하세요.

# RDS for PostgreSQL DB 인스턴스의 스냅샷을 Aurora PostgreSQL DB 클러스터로 마이그레이션합니다.
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Import.Console"></a>

Aurora PostgreSQL DB 클러스터를 생성하려면 RDS for PostgreSQL DB 인스턴스의 DB 스냅샷을 마이그레이션할 수 있습니다. 새롭게 생성된 Aurora PostgreSQL DB 클러스터는 원본 RDS for PostgreSQL DB 인스턴스의 데이터로 채워집니다. DB 스냅샷 생성에 대한 자세한 내용은 [DB 스냅샷 생성](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateSnapshot.html)을 참조하세요.

경우에 따라 DB 스냅샷이 데이터를 저장할 AWS 리전에 속하지 않을 수도 있습니다. 이때는 Amazon RDS 콘솔을 사용하여 DB 스냅샷을 해당 AWS 리전으로 복사합니다. DB 스냅샷 복사에 대한 자세한 내용은 [DB 스냅샷 복사](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CopySnapshot.html)를 참조하세요.

지정된 AWS 리전에서 사용 가능한 Aurora PostgreSQL 버전과 호환되는 RDS for PostgreSQL 스냅샷을 마이그레이션할 수 있습니다. 예를 들어, RDS PostgreSQL 11.1 DB 인스턴스의 스냅샷은 미국 서부(캘리포니아 북부)에서 Aurora PostgreSQL 버전 11.4, 11.7, 11.8 또는 11.9로 마이그레이션할 수 있습니다. RDS PostreSQL 10.11 스냅샷은 Aurora PostgreSQL 10.11, 10.12, 10.13, 10.14로 마이그레이션할 수 있습니다. 즉, RDS PostgreSQL 스냅샷은 Aurora PostgreSQL과 같거나 낮은 마이너 버전을 사용해야 합니다.

또한 AWS KMS key를 사용하여 새 Aurora PostgreSQL DB 클러스터가 유휴 상태에서 암호화되도록 선택할 수도 있습니다. 이 옵션은 암호화되지 않은 DB 스냅샷에만 가능합니다.

RDS for PostgreSQL DB 스냅샷을 Aurora PostgreSQL DB 클러스터로 마이그레이션하려면 AWS Management Console, AWS CLI 또는 RDS API를 사용합니다. AWS Management Console을 사용할 경우 콘솔은 DB 클러스터와 프라이머리 인스턴스를 모두 생성하는 데 필요한 작업을 수행합니다.

## 콘솔
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Import.Console.console"></a>

**RDS 콘솔을 사용해 PostgreSQL DB 스냅샷을 마이그레이션하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. [**Snapshots**]를 선택합니다.

1. [**스냅샷(Snapshots)**] 페이지에서 Aurora PostgreSQL DB 클러스터로 마이그레이션하려는 RDS for PostgreSQL 스냅샷을 선택합니다.

1. **작업** 을 선택한 다음 **스냅샷 마이그레이션**을 선택합니다.

1. [**Migrate Database**] 페이지에서 다음과 같이 값을 설정합니다.
   + **DB 엔진 버전**: 마이그레이션된 새 인스턴스에 사용할 DB 엔진 버전을 선택합니다.
   + [**DB 인스턴스 식별자(DB instance identifier)**]: 선택한 AWS 리전의 계정에 대해 고유한 DB 클러스터의 이름을 입력합니다. 이 식별자는 DB 클러스터에 속한 인스턴스의 엔드포인트 주소로 사용됩니다. 선택한 AWS 리전 및 DB 엔진 포함(예: **aurora-cluster1**) 등의 몇 가지 지능적 요소를 이름에 추가할 수 있습니다.

     DB 인스턴스 식별자는 다음과 같은 제약 조건이 있습니다.
     + 1–63자의 영숫자 또는 하이픈으로 구성되어야 합니다.
     + 첫 번째 문자는 글자이어야 합니다.
     + 하이픈으로 끝나거나 하이픈이 2개 연속으로 이어져서는 안 됩니다.
     + 각 AWS 리전별로 AWS 계정마다 모든 DB 인스턴스가 고유해야 합니다.
   + **DB 인스턴스 클래스**: 데이터베이스에 필요한 스토리지와 용량을 지닌 DB 인스턴스 클래스를 선택합니다(예: `db.r6g.large`). 데이터베이스의 데이터 용량이 늘어날수록 Aurora 클러스터 볼륨도 자동 확장됩니다. 따라서 현재 스토리지 요구 사항에 맞는 DB 인스턴스 클래스를 선택해야 합니다. 자세한 내용은 [Amazon Aurora 스토리지 개요](Aurora.Overview.StorageReliability.md#Aurora.Overview.Storage) 섹션을 참조하세요.
   + **Virtual Private Cloud(VPC):** 기존 VPC가 있는 경우, VPC 식별자(예: `vpc-a464d1c1`)를 선택하여 해당 VPC를 Aurora PostgreSQL DB 클러스터에 사용할 수 있습니다. VPC 생성에 대한 내용은 [자습서: DB 클러스터에 사용할 Amazon VPC 생성(IPv4 전용)](CHAP_Tutorials.WebServerDB.CreateVPC.md) 섹션을 참조하세요.

     기존 VPC가 없다면 [**Create a new VPC**]를 선택하여 Amazon RDS에서 VPC를 새로 생성하도록 할 수 있습니다.
   + **DB 서브넷 그룹**: 기존 서브넷 그룹이 있으면 해당 서브넷 그룹 식별자(예: `gs-subnet-group1`)를 선택하여 Aurora PostgreSQL DB 클러스터에 기존 서브넷 그룹을 사용할 수 있습니다.
   + **퍼블릭 액세스 가능**: VPC에 있는 리소스만 DB 클러스터의 인스턴스에 액세스할 수 있도록 하려면 **아니요**를 선택합니다. 퍼블릭 네트워크에 있는 리소스가 DB 클러스터의 인스턴스에 액세스할 수 있도록 하려면 **예**를 선택합니다.
**참고**  
퍼블릭 서브넷에서는 프로덕션 DB 클러스터가 필요 없을 수도 있습니다. 애플리케이션 서버만 DB 클러스터에 액세스하기 때문입니다. DB 클러스터가 퍼블릭 서브넷에 필요 없는 경우에는 [**Publicly Accessible**]을 **아니오**로 설정합니다.
   + **VPC 보안 그룹**: VPC 보안 그룹을 선택하여 데이터베이스에 대한 액세스를 허용합니다.
   + **가용 영역**: Aurora PostgreSQL DB 클러스터의 기본 인스턴스를 호스팅할 가용 영역을 선택합니다. Amazon RDS가 가용 영역을 선택하도록 하려면 **기본 설정 없음**을 선택합니다.
   + **데이터베이스 포트**: Aurora PostgreSQL DB 클러스터의 인스턴스에 연결할 때 사용할 기본 포트를 입력합니다. 기본값은 `5432`입니다.
**참고**  
기업 방화벽 뒤에 있어서 PostgreSQL 기본 포트인 5432 같은 기본 포트에 액세스하지 못할 수도 있습니다. 이런 경우에는 기업 방화벽이 허용하는 포트 값을 입력합니다. 나중에 Aurora PostgreSQL DB 클러스터에 연결할 때도 필요하므로 이 포트 값을 기억해야 합니다.
   + **암호화 활성화**: 새 Aurora PostgreSQL DB 클러스터를 저장 상태에서 암호화하려면 **암호화 활성화**를 선택합니다. 또한 KMS 키를 **AWS KMS key** 값으로 선택합니다.
   + **마이너 버전 자동 업그레이드**: PostgreSQL DB 엔진의 마이너 버전 업그레이드가 있을 때 Aurora PostgreSQL DB 클러스터가 업그레이드를 자동으로 수신하도록 하려면 **마이너 버전 자동 업그레이드 사용**을 선택합니다.

     **마이너 버전 자동 업그레이드** 옵션은 Aurora PostgreSQL DB 클러스터에 대해 PostgreSQL 엔진 마이너 버전으로의 업그레이드에만 적용됩니다. 시스템 안정성 유지를 위한 정기 패치에는 적용되지 않습니다.

1. [**Migrate**]를 선택하여 DB 스냅샷을 마이그레이션합니다.

1. 새 DB 클러스터를 보려면 [ **데이터베이스** ] 를 선택합니다. 새 DB 클러스터를 선택하여 마이그레이션 진행률을 모니터링합니다. 마이그레이션이 완료되면 클러스터의 상태가 **사용 가능**으로 표시됩니다. **연결 및 보안** 탭에서 DB 클러스터의 기본 작성기 인스턴스에 연결하는 데 사용할 클러스터 엔드포인트를 찾을 수 있습니다. Aurora PostgreSQL DB 클러스터 연결에 대한 자세한 내용은 [Amazon Aurora DB 클러스터에 연결](Aurora.Connecting.md) 단원을 참조하세요.

## AWS CLI
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Import.Console.CLI"></a>

AWS CLI를 사용하여 RDS for PostgreSQL DB 스냅샷을 Aurora PostgreSQL로 마이그레이션하려면 2개의 개별 AWS CLI 명령이 필요합니다. 먼저 `restore-db-cluster-from-snapshot` AWS CLI 명령을 사용하여 새 Aurora PostgreSQL DB 클러스터를 생성합니다. 그런 다음 `create-db-instance` 명령을 사용하여 새 클러스터에 프라이머리 DB 인스턴스를 생성하여 마이그레이션을 완료합니다. 다음 절차에서는 스냅샷 생성에 사용된 DB 인스턴스와 구성이 동일한 프라이머리 DB 인스턴스로 Aurora PostgreSQL DB 클러스터를 생성합니다.

**Aurora PostgreSQL DB 클러스터로 RDS for PostgreSQL DB 스냅샷 마이그레이션**

1. [describe-db-snapshots](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshots.html) 명령을 사용하여 마이그레이션하려는 DB 스냅샷에 대한 정보를 가져옵니다. 명령에 `--db-instance-identifier` 파라미터 또는 `--db-snapshot-identifier`를 지정할 수 있습니다. 이러한 파라미터 중 하나를 지정하지 않으면 모든 스냅샷을 가져옵니다.

   ```
   aws rds describe-db-snapshots --db-instance-identifier <your-db-instance-name>
   ```

1. 이 명령은 지정된 DB 인스턴스에서 생성된 모든 스냅샷에 대한 모든 구성 세부 정보를 반환합니다. 출력에서 마이그레이션할 스냅샷을 찾고 Amazon 리소스 이름(ARN)을 찾습니다. Amazon RDS ARN에 대해 자세히 알아보려면 [Amazon Relational Database Service(Amazon RDS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds)를 참조하세요. ARN은 다음 출력과 유사합니다.

   ```
   “DBSnapshotArn": "arn:aws:rds:aws-region:111122223333:snapshot:<snapshot_name>"
   ```

   또한 출력에서 엔진 버전, 할당된 스토리지, DB 인스턴스 암호화 여부와 같은 RDS for PostgreSQL DB 인스턴스에 대한 구성 세부 정보를 찾을 수 있습니다.

1. [restore-db-cluster-from-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html) 명령을 사용하여 마이그레이션을 시작합니다. 다음 파라미터를 지정합니다.
   + `--db-cluster-identifier` - Aurora PostgreSQL DB 클러스터에 지정하려는 이름입니다. 이 Aurora DB 클러스터는 DB 스냅샷 마이그레이션의 대상입니다.
   + `--snapshot-identifier` - 마이그레이션할 DB 스냅샷의 Amazon 리소스 이름(ARN)입니다.
   + `--engine` - Aurora DB 클러스터 엔진에 대해 `aurora-postgresql`을 지정합니다.
   + `--kms-key-id` - Aurora PostgreSQL DB 클러스터를 생성할 수 있습니다. 이 선택적 파라미터를 사용하면 암호화되지 않은 DB 스냅샷에서 암호화된 Aurora PostgreSQL DB 클러스터를 생성할 수 있습니다. 또한 DB 스냅샷에 사용된 키와 DB 클러스터에 대해 다른 암호화 키를 선택할 수 있습니다.
**참고**  
암호화된 DB 스냅샷에서 암호화되지 않은 Aurora PostgreSQL DB 클러스터를 생성할 수 없습니다.

   다음과 같이 `--kms-key-id` 파라미터가 지정되지 않은 경우 [restore-db-cluster-from-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html) AWS CLI 명령은 DB 스냅샷과 동일한 키를 사용하여 암호화되거나 원본 DB 스냅샷이 암호화되지 않은 경우 암호화되지 않은 빈 Aurora PostgreSQL DB 클러스터를 생성합니다.

   대상 LinuxmacOS, 또는Unix:

   ```
   aws rds restore-db-cluster-from-snapshot \
       --db-cluster-identifier cluster-name \
       --snapshot-identifier arn:aws:rds:aws-region:111122223333:snapshot:your-snapshot-name \
       --engine aurora-postgresql
   ```

   Windows의 경우:

   ```
   aws rds restore-db-cluster-from-snapshot ^
       --db-cluster-identifier new_cluster ^
       --snapshot-identifier arn:aws:rds:aws-region:111122223333:snapshot:your-snapshot-name ^
       --engine aurora-postgresql
   ```

1. 이 명령은 마이그레이션을 위해 생성 중인 Aurora PostgreSQL DB 클러스터에 대한 세부 정보를 반환합니다. [describe-db-clusters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clussters.html) AWS CLI 명령을 사용하여 Aurora PostgreSQL DB 클러스터의 상태를 확인할 수 있습니다.

   ```
   aws rds describe-db-clusters --db-cluster-identifier cluster-name
   ```

1. DB 클러스터가 "사용 가능" 상태가 되면 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 명령을 사용하여 Amazon RDS DB 스냅샷을 기반으로 하는 DB 인스턴스로 Aurora PostgreSQL DB 클러스터를 채웁니다. 다음 파라미터를 지정합니다.
   + `--db-cluster-identifier` - 이전 단계에서 생성한 새 Aurora PostgreSQL DB 클러스터의 이름입니다.
   + `--db-instance-identifier` - DB 인스턴스에 부여할 이름입니다. 이 인스턴스는 Aurora PostgreSQL DB 클러스터의 프라이머리 노드가 됩니다.
   + `----db-instance-class ` - 사용할 DB 인스턴스 클래스를 지정합니다. 마이그레이션할 Aurora PostgreSQL 버전에서 지원하는 DB 인스턴스 클래스 중에서 선택합니다. 자세한 내용은 [DB 인스턴스 클래스 유형](Concepts.DBInstanceClass.Types.md) 및 [DB 인스턴스 클래스에 지원되는 DB 엔진](Concepts.DBInstanceClass.SupportAurora.md) 단원을 참조하세요.
   + `--engine` - DB 인스턴스에 대해 `aurora-postgresql`을 지정합니다.

   `create-db-instance` AWS CLI 명령에 적절한 옵션을 전달하여 원본 DB 스냅샷과 다른 구성으로 DB 인스턴스를 생성할 수도 있습니다. 자세한 내용은 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 명령을 참조하세요.

   대상 LinuxmacOS, 또는Unix:

   ```
   aws rds create-db-instance \
       --db-cluster-identifier cluster-name \
       --db-instance-identifier --db-instance-class db.instance.class \
       --engine aurora-postgresql
   ```

   Windows의 경우:

   ```
   aws rds create-db-instance ^
       --db-cluster-identifier cluster-name ^
       --db-instance-identifier --db-instance-class db.instance.class ^
       --engine aurora-postgresql
   ```

마이그레이션 프로세스가 완료되면 Aurora PostgreSQL 클러스터에 채워진 프라이머리 DB 인스턴스가 있습니다.

# Aurora 읽기 전용 복제본을 사용하여 RDS for PostgreSQL DB 인스턴스의 데이터를 Aurora PostgreSQL DB 클러스터로 마이그레이션
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica"></a>

마이그레이션 프로세스용 Aurora 읽기 전용 복제본을 사용하여 새로운 Aurora PostgreSQL DB 클러스터의 기반으로 RDS for PostgreSQL DB 인스턴스를 사용할 수 있습니다. Aurora 읽기 전용 복제본 옵션은 동일한 AWS 리전 및 계정 내에서 마이그레이션하는 데 만 사용할 수 있으며, 리전에서 RDS for PostgreSQL DB 인스턴스에 대해 호환되는 버전의 Aurora PostgreSQL DB 인스턴스를 제공하는 경우에만 사용할 수 있습니다. 여기에서 *호환*은 Aurora PostgreSQL 버전이 RDS for PostgreSQL 버전과 동일하거나 동일한 메이저 버전 제품군에서 더 높은 마이너 버전임을 의미합니다.

예를 들어 이 기술을 사용하여 RDS for PostgreSQL 11.14 DB 인스턴스를 마이그레이션하려면 리전에서 PostgreSQL 버전 11 제품군의 Aurora PostgreSQL 버전 11.14 이상의 마이너 버전을 제공해야 합니다.

**Topics**
+ [Aurora 읽기 전용 복제본을 사용한 데이터 마이그레이션 개요](#AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Intro)
+ [Aurora 읽기 전용 복제본을 사용한 데이터 마이그레이션 준비](#AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Prepare)
+ [Aurora 읽기 전용 복제본 생성](#AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Create)
+ [Aurora 읽기 전용 복제본 승격](#AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Promote)

## Aurora 읽기 전용 복제본을 사용한 데이터 마이그레이션 개요
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Intro"></a>

RDS for PostgreSQL DB 인스턴스에서 Aurora PostgreSQL DB 클러스터로의 마이그레이션은 절차가 여러 단계 있습니다. 먼저 소스 RDS for PostgreSQL DB 인스턴스의 Aurora 읽기 전용 복제본을 생성합니다. 그러면 RDS for PostgreSQL DB 인스턴스에서 **복제본* 클러스터*로 알려진 특수 용도 DB 클러스터로 복제 프로세스를 시작합니다. 복제본 클러스터는 Aurora 읽기 전용 복제본(리더 인스턴스)로만 구성됩니다.

**참고**  
마이그레이션이 완료되려면 데이터의 테라바이트당 몇 시간이 걸릴 수 있습니다.

**Aurora PostgreSQL 복제본 승격**

Aurora PostgreSQL DB 클러스터를 만든 후 다음 단계에 따라 Aurora 복제본을 승격합니다.

1. 소스 RDS for PostgreSQL DB 인스턴스에서 모든 데이터베이스 쓰기 워크로드를 중지합니다.

1. 소스 RDS for PostgreSQL DB 인스턴스에서 현재 `WAL LSN`을 가져옵니다.

   ```
   SELECT pg_current_wal_lsn();
   pg_current_wal_lsn
   --------------------
   0/F0000318
   (1 row)
   ```

1. Aurora PostgreSQL 복제본 클러스터에서 재생된 LSN이 2단계의 LSN보다 큰지 확인합니다.

   ```
   SELECT pg_last_wal_replay_lsn();
   pg_last_wal_replay_lsn
   ------------------------
   0/F0000400
   (1 row)
   ```

   또는 소스 RDS for PostgreSQL DB 인스턴스에서 다음 쿼리를 사용할 수 있습니다.

   ```
   SELECT restart_lsn FROM pg_replication_slots;
   ```

1. Aurora PostgreSQL 복제본 클러스터를 승격합니다.

   복제가 중지되면 복제본 클러스터가 독립 실행형 Aurora PostgreSQL DB 클러스터로 승격되고, 리더가 클러스터의 라이터 인스턴스로 승격됩니다. 이때 Aurora PostgreSQL DB 클러스터에 인스턴스를 추가하여 사용 사례에 따라 크기를 조정할 수 있습니다. 원래 RDS for PostgreSQL DB 인스턴스가 더 이상 필요하지 않은 경우 삭제할 수 있습니다.

RDS for PostgreSQL DB 인스턴스에 Aurora 읽기 전용 복제본이 이미 있거나 교차 리전 읽기 전용 복제본이 있는 경우 Aurora 읽기 전용 복제본을 생성할 수 없습니다.

## Aurora 읽기 전용 복제본을 사용한 데이터 마이그레이션 준비
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Prepare"></a>

**참고**  
Aurora PostgreSQL로 데이터를 마이그레이션할 준비를 할 때는 로깅되지 않은 테이블을 적절하게 식별하고 처리하는 것이 중요합니다. 자세한 내용은 [마이그레이션 중 로깅되지 않은 테이블 처리](aurora-postgresql-unlogged-tables.md#aurora-postgresql-unlogged-tables-migration) 섹션을 참조하세요.

Aurora 읽기 전용 복제본을 사용하는 마이그레이션 프로세스 중에 소스 RDS for PostgreSQL DB 인스턴스에 적용된 업데이트는 복제본 클러스터의 Aurora 읽기 전용 복제본에 비동기식으로 복제됩니다. 이 프로세스는 소스 인스턴스에 미리 쓰기 로그(WAL) 세그먼트를 저장하는 PostgreSQL의 기본 스트리밍 복제 기능을 사용합니다. 이 마이그레이션 프로세스를 시작하기 전에 테이블에 나열된 지표 값을 확인하여 인스턴스의 스토리지 용량이 충분한지 확인해야 합니다.


| 지표 | 설명 | 
| --- | --- | 
|  `FreeStorageSpace`  |  사용 가능한 스토리지 공간. 단위: 바이트  | 
|  `OldestReplicationSlotLag`  |  가장 지연된 복제본에 있는 WAL 데이터의 지연 크기. 단위: 메가바이트  | 
|  `RDSToAuroraPostgreSQLReplicaLag`  |  Aurora PostgreSQL DB 클러스터가 원본 RDS DB 인스턴스보다 늦어지는 시간(초).  | 
|  `TransactionLogsDiskUsage`  |  트랜잭션 로그에 사용된 디스크 공간. 단위: 메가바이트  | 

RDS 인스턴스 모니터링에 대한 자세한 내용은 *Amazon RDS 사용 설명서*에서 [모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Monitoring.html) 섹션을 참조하십시오.

## Aurora 읽기 전용 복제본 생성
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Create"></a>

RDS for PostgreSQL DB 인스턴스의 Aurora 읽기 전용 복제본은 AWS Management Console 또는 AWS CLI를 사용해 생성할 수 있습니다. AWS Management Console을 사용하여 Aurora 읽기 전용 복제본을 생성하는 옵션은 AWS 리전에서 호환되는 Aurora PostgreSQL 버전을 제공하는 경우에만 이용 가능합니다. 이 경우, Aurora PostgreSQL 버전이 RDS for PostgreSQL 버전과 동일하거나 동일한 주 버전 제품군에서 더 높은 마이너 버전일 경우에만 가능합니다.

### 콘솔
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Create.Console"></a>

**원본 PostgreSQL DB 인스턴스에서 Aurora 읽기 전용 복제본을 생성하는 방법은 다음과 같습니다.**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택합니다.

1. Aurora 읽기 전용 복제본의 소스로 사용할 RDS for PostgreSQL DB 인스턴스를 선택합니다. **작업**에서 **Aurora 읽기 전용 복제본 생성**을 선택합니다. 이 선택 항목이 표시되지 않으면 호환되는 Aurora PostgreSQL 버전이 리전에서 사용할 수 없음을 의미합니다.  
![\[Aurora 읽기 전용 복제본 생성\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/Aurorapgres-migrate.png)

1. Aurora 읽기 전용 복제본 설정 생성 페이지에서 다음 표와 같이 Aurora PostgreSQL DB 클러스터의 속성을 구성합니다. 복제본 DB 클러스터는 소스 DB 인스턴스의 스냅샷으로 소스와 동일한 '마스터' 사용자 이름과 암호를 사용하여 만드는 것이기 때문에 현재는 변경할 수 없습니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.html)

1. **Create read replica**(읽기 전용 복제본 생성)를 선택합니다.

### AWS CLI
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Create.CLI"></a>

AWS CLI를 사용하여 소스 RDS for PostgreSQL 인스턴스에서 Aurora 읽기 전용 복제본을 생성하려면 먼저 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) CLI 명령을 사용하여 빈 Aurora DB 클러스터를 생성합니다. DB 클러스터가 존재하면 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 명령을 사용하여 DB 클러스터의 기본 인스턴스를 생성합니다. 기본 인스턴스는 클러스터에 생성된 최초의 Aurora DB 인스턴스입니다. 이 경우 처음에는 RDS for PostgreSQL DB 인스턴스의 Aurora 읽기 전용 복제본으로 생성됩니다. 프로세스가 끝나면 RDS for PostgreSQL DB 인스턴스는 Aurora PostgreSQL DB 클러스터로 효과적으로 마이그레이션된 상태입니다.

기본 사용자 계정(일반적으로 `postgres`), 암호 또는 데이터베이스 이름을 지정할 필요가 없습니다. Aurora 읽기 전용 복제본이 사용자가 AWS CLI 명령을 호출할 때 식별되는 소스 RDS for PostgreSQL DB 인스턴스에서 자동으로 해당 정보를 가져옵니다.

Aurora PostgreSQL DB 클러스터와 DB 인스턴스에 사용할 엔진 버전은 사용자가 지정해야 합니다. 지정한 버전은 소스 RDS for PostgreSQL DB 인스턴스와 일치해야 합니다. 소스 RDS for PostgreSQL DB 인스턴스가 암호화되면 Aurora PostgreSQL DB 클러스터 기본 인스턴스에 대한 암호화도 지정해야 합니다. 암호화된 인스턴스를 암호화되지 않은 Aurora DB 클러스터로 마이그레이션하는 것은 지원되지 않습니다.

다음 예제는 암호화되지 않은 RDS DB 원본 인스턴스를 사용하는 `my-new-aurora-cluster`라는 Aurora PostgreSQL DB 클러스터를 생성합니다. 먼저 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) CLI 명령을 호출하여 Aurora PostgreSQL DB 클러스터를 생성합니다. 이 예에서는 선택적으로 `--storage-encrypted ` 파라미터를 사용하여 DB 클러스터를 암호화해야 한다는 것을 지정하는 방법을 보여줍니다. 소스 DB가 암호화되지 않았기 때문에 사용할 키를 지정하는 데 `--kms-key-id`가 사용됩니다. 필수 및 선택적 파라미터에 대한 자세한 내용은 예시 아래의 목록을 참조하세요.

대상 LinuxmacOS, 또는Unix:

```
aws rds create-db-cluster  \
    --db-cluster-identifier my-new-aurora-cluster \
    --db-subnet-group-name my-db-subnet
    --vpc-security-group-ids sg-11111111 
    --engine aurora-postgresql \
    --engine-version same-as-your-rds-instance-version \
    --replication-source-identifier arn:aws:rds:aws-region:111122223333:db/rpg-source-db \
    --storage-encrypted \
    --kms-key-id arn:aws:kms:aws-region:111122223333:key/11111111-2222-3333-444444444444
```

Windows의 경우:

```
aws rds create-db-cluster  ^
    --db-cluster-identifier my-new-aurora-cluster ^
    --db-subnet-group-name my-db-subnet ^
    --vpc-security-group-ids sg-11111111 ^
    --engine aurora-postgresql ^
    --engine-version same-as-your-rds-instance-version ^
    --replication-source-identifier arn:aws:rds:aws-region:111122223333:db/rpg-source-db ^
    --storage-encrypted ^
    --kms-key-id arn:aws:kms:aws-region:111122223333:key/11111111-2222-3333-444444444444
```

다음 목록에서 예시에 표시된 일부 옵션에 대한 자세한 정보를 찾을 수 있습니다. 별도로 지정하지 않는 한 이러한 파라미터가 필요합니다.
+ `--db-cluster-identifier` - 새 Aurora PostgreSQL DB 클러스터에 이름을 지정해야 합니다.
+ `--db-subnet-group-name` - 소스 DB 인스턴스와 동일한 DB 서브넷에 Aurora PostgreSQL DB 클러스터를 생성합니다.
+ `--vpc-security-group-ids` - Aurora PostgreSQL DB 클러스터의 보안 그룹을 지정합니다.
+ `--engine-version` - Aurora PostgreSQL DB 클러스터에 사용할 버전을 지정합니다. 소스 RDS for PostgreSQL DB 인스턴스에서 사용하는 버전과 같거나 그보다 더 높은 마이너 버전이어야 합니다.
+ `--replication-source-identifier` - Amazon 리소스 이름(ARN)을 사용하여 RDS for PostgreSQL DB 인스턴스를 식별합니다. Amazon RDS ARN에 대한 자세한 내용은 DB 클러스터의 *AWS 일반 참조*에서 [Amazon Relational Database Service(RDS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds) 섹션을 참조하세요.
+ `--storage-encrypted` – 선택 사항입니다. 암호화를 지정하는 데 필요한 경우에만 다음과 같이 사용합니다.
  + 소스 DB 인스턴스에 암호화된 스토리지가 있는 경우 이 파라미터를 사용합니다. 암호화된 스토리지가 있는 소스 DB 인스턴스에서 이 파라미터를 사용하지 않으면 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)에 대한 호출이 실패합니다. Aurora PostgreSQL DB 클러스터에 소스 DB 인스턴스에서 사용하는 키와 다른 키를 사용하려면 `--kms-key-id`도 지정해야 합니다.
  + 소스 DB 인스턴스의 스토리지가 암호화되지 않았지만 Aurora PostgreSQL DB 클러스터에서 암호화를 사용하도록 하려는 경우에 사용합니다. 그렇다면 `--kms-key-id` 파라미터와 함께 사용할 암호화 키도 식별해야 합니다.
+ `--kms-key-id` – 선택 사항입니다. 사용할 경우 ARN, ID, 별칭 ARN 또는 해당 별칭 이름을 사용하여 스토리지 암호화(`--storage-encrypted`)에 사용할 키를 지정할 수 있습니다. 이 파라미터는 다음 상황에서만 필요합니다.
  + Aurora PostgreSQL DB 클러스터에 대해 소스 DB 인스턴스에서 사용하는 키와 다른 키를 선택합니다.
  + 암호화되지 않은 소스에서 암호화된 클러스터를 만드는 방법 이 경우 Aurora PostgreSQL이 암호화에 사용해야 하는 키를 지정해야 합니다.

Aurora PostgreSQL DB 클러스터를 생성한 후 다음과 같이 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) CLI 명령을 사용하여 기본 인스턴스를 생성합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds create-db-instance \
    --db-cluster-identifier my-new-aurora-cluster \
    --db-instance-class db.x2g.16xlarge \
    --db-instance-identifier rpg-for-migration \
    --engine aurora-postgresql
```

Windows의 경우:

```
aws rds create-db-instance ^
    --db-cluster-identifier my-new-aurora-cluster ^
    --db-instance-class db.x2g.16xlarge ^
    --db-instance-identifier rpg-for-migration ^
    --engine aurora-postgresql
```

다음 목록에서 예시에 표시된 일부 옵션에 대한 자세한 정보를 찾을 수 있습니다.
+ `--db-cluster-identifier` - 이전 단계에서 [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 명령으로 생성한 Aurora PostgreSQL DB 클러스터의 이름을 지정합니다.
+ `--db-instance-class` - 기본 인스턴스에 사용할 DB 인스턴스 클래스의 이름입니다(예: `db.r4.xlarge`, `db.t4g.medium`, `db.x2g.16xlarge` 등). 사용 가능한 인스턴스 클래스 목록은 [DB 인스턴스 클래스 유형](Concepts.DBInstanceClass.Types.md) 섹션을 참조하세요.
+ `--db-instance-identifier` - 기본 인스턴스의 이름을 지정합니다.
+ `--engine aurora-postgresql` - 엔진에 대한 `aurora-postgresql`을 지정합니다.

### RDS API
<a name="Aurora.Migration.RDSPostgreSQL.Create.API"></a>

소스 RDS for PostgreSQL DB 인스턴스에서 Aurora 읽기 전용 복제본을 생성하려면 먼저 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) RDS API 작업을 사용하여 소스 RDS for PostgreSQL DB 인스턴스에서 생성되는 Aurora 읽기 전용 복제본의 새 Aurora DB 클러스터를 생성합니다. Aurora PostgreSQL DB 클러스터를 사용할 수 있게 되면 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html)를 사용하여 Aurora DB 클러스터의 기본 인스턴스를 생성합니다.

기본 사용자 계정(일반적으로 `postgres`), 암호 또는 데이터베이스 이름을 지정할 필요가 없습니다. Aurora 읽기 전용 복제본이 사용자가 `ReplicationSourceIdentifier`로 지정된 소스 RDS for PostgreSQL DB 인스턴스에서 자동으로 해당 정보를 가져옵니다.

Aurora PostgreSQL DB 클러스터와 DB 인스턴스에 사용할 엔진 버전은 사용자가 지정해야 합니다. 지정한 버전은 소스 RDS for PostgreSQL DB 인스턴스와 일치해야 합니다. 소스 RDS for PostgreSQL DB 인스턴스가 암호화되면 Aurora PostgreSQL DB 클러스터 기본 인스턴스에 대한 암호화도 지정해야 합니다. 암호화된 인스턴스를 암호화되지 않은 Aurora DB 클러스터로 마이그레이션하는 것은 지원되지 않습니다.

Aurora 읽기 전용 복제본의 Aurora DB 클러스터를 생성하려면 다음 파라미터와 함께 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) RDS API 작업을 사용합니다.
+ `DBClusterIdentifier` - 생성할 DB 클러스터의 이름입니다.
+ `DBSubnetGroupName` - 이 DB 클러스터와 연결할 DB 서브넷 그룹의 이름입니다.
+ `Engine=aurora-postgresql` - 사용할 엔진 이름입니다.
+ `ReplicationSourceIdentifier` - 원본 PostgreSQL DB 인스턴스의 Amazon 리소스 이름(ARN)입니다. Amazon RDS ARN에 대한 자세한 내용은 *Amazon Web Services 일반 참조*에서 [Amazon Relational Database Service(RDS)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-rds) 섹션을 참조하세요. `ReplicationSourceIdentifier`가 암호화된 소스를 식별하는 경우, 사용자가 `KmsKeyId` 옵션을 사용하여 다른 키를 지정하지 않는 한 Amazon RDS가 기본 KMS 키를 사용합니다.
+ `VpcSecurityGroupIds` - DB 클러스터와 연결할 Amazon EC2 VPC 보안 그룹 목록입니다.
+ `StorageEncrypted` - DB 클러스터의 암호화 여부를 나타냅니다. `ReplicationSourceIdentifier`를 지정하지 않고 이 파라미터를 사용할 경우, Amazon RDS는 기본 KMS 키를 사용합니다.
+ `KmsKeyId` - 암호화된 클러스터의 키입니다. 사용할 경우 ARN, ID, 별칭 ARN 또는 해당 별칭 이름을 사용하여 스토리지 암호화에 사용할 키를 지정할 수 있습니다.

자세한 내용은 *Amazon RDS API 참조*에서 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html) 섹션을 참조하세요.

Aurora DB 클러스터를 사용할 수 있게 되면 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) RDS API 작업을 다음 파라미터와 함께 사용하여 기본 인스턴스를 생성할 수 있습니다.
+ `DBClusterIdentifier` - DB 클러스터의 이름입니다.
+ `DBInstanceClass` - 기본 인스턴스에 사용할 DB 인스턴스 클래스의 이름입니다.
+ `DBInstanceIdentifier` - 기본 인스턴스의 이름입니다.
+ `Engine=aurora-postgresql` - 사용할 엔진 이름입니다.

자세한 내용은 *Amazon RDS API 참조*에서 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 섹션을 참조하세요.

## Aurora 읽기 전용 복제본 승격
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Promote"></a>

Aurora PostgreSQL로의 마이그레이션은 복제본 클러스터를 승격하기 전까지는 완료되지 않으므로 RDS for PostgreSQL 소스 DB 인스턴스를 아직 삭제하지 마세요.

복제본 클러스터를 승격하기 전에 RDS for PostgreSQL DB 인스턴스에 진행 중인 트랜잭션이나 데이터베이스 쓰기 작업이 없는지 확인하세요. Aurora 읽기 전용 복제본의 복제본 지연이 0일 때 복제본 클러스터를 승격할 수 있습니다. 복제본 지연 모니터링에 대한 자세한 내용은 [Aurora PostgreSQL 복제 모니터링](AuroraPostgreSQL.Replication.md#AuroraPostgreSQL.Replication.Monitoring) 및 [Amazon Aurora에 대한 인스턴스 수준 지표](Aurora.AuroraMonitoring.Metrics.md#Aurora.AuroraMySQL.Monitoring.Metrics.instances) 섹션을 참조하세요.

### 콘솔
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Promote.Console"></a>

**Aurora 읽기 전용 복제본을 Aurora DB 클러스터로 승격시키려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **Databases**(데이터베이스)를 선택합니다.

1. 복제본 클러스터를 선택합니다.  
![\[복제본 클러스터를 전체 Aurora PostgreSQL DB 클러스터 상태로 승격\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/Aurorapgres-migrate-2.png)

1. **Actions**(작업)에서 **Promote**(승격)를 선택합니다. 몇 분 정도 소요될 수 있으며 가동 중지가 발생할 수 있습니다.

프로세스가 완료되면 Aurora 복제본 클러스터는 Regional Aurora PostgreSQL DB 클러스터이며, 라이터 인스턴스에는 RDS for PostgreSQL DB 인스턴스의 데이터가 들어 있습니다.

### AWS CLI
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Promote.CLI"></a>

Aurora 읽기 전용 복제본을 독립형 DB 클러스터로 승격하려면 [https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/rds/promote-read-replica-db-cluster.html) AWS CLI 명령을 사용합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds promote-read-replica-db-cluster \
    --db-cluster-identifier myreadreplicacluster
```
Windows의 경우:  

```
aws rds promote-read-replica-db-cluster ^
    --db-cluster-identifier myreadreplicacluster
```

### RDS API
<a name="AuroraPostgreSQL.Migrating.RDSPostgreSQL.Replica.Promote.API"></a>

Aurora 읽기 복제본을 독립형 DB 클러스터로 승격하려면 RDS API 작업 [PromoteReadReplicaDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_PromoteReadReplicaDBCluster.html)를 사용합니다.

복제본 클러스터를 승격한 후 다음과 같이 이벤트 로그를 확인하여 승격이 완료되었는지 확인할 수 있습니다.

**Aurora 복제본이 승격되었는지 확인하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **Events**(이벤트) 를 선택합니다.

1. **이벤트** 페이지에서 **소스(Source)** 목록의 해당 클러스터 이름을 찾습니다. 각 이벤트에는 소스, 유형, 시간 및 메시지가 있습니다. 계정의 AWS 리전에서 발생한 모든 이벤트를 볼 수 있습니다. 승격에 성공하면 다음 메시지가 생성됩니다.

   ```
   Promoted Read Replica cluster to a stand-alone database cluster.
   ```

승격이 완료된 후에는 소스 RDS for PostgreSQL DB 인스턴스와 Aurora PostgreSQL DB 클러스터 링크가 해제됩니다. 클라이언트 애플리케이션을 Aurora 읽기 전용 복제본의 엔드포인트로 보낼 수 있습니다. Aurora 엔드포인트에 대한 자세한 내용은 [Amazon Aurora 엔드포인트 연결](Aurora.Overview.Endpoints.md) 섹션을 참조하세요. 이때 DB 인스턴스를 안전하게 삭제할 수 있습니다.

# Aurora PostgreSQL에서 쿼리 성능 최적화
<a name="AuroraPostgreSQL.optimizing.queries"></a>

쿼리 성능을 최적화하면 더 적은 리소스를 사용하면서 데이터베이스가 더 빠르고 효율적으로 실행되어 사용자 경험이 향상되고 운영 비용이 절감되므로 이는 매우 중요합니다. Amazon Aurora PostgreSQL은 PostgreSQL 워크로드의 쿼리 성능을 최적화하는 데 도움이 되는 몇 가지 기능을 제공합니다.

**Topics**
+ [Aurora 최적화된 읽기로 Aurora PostgreSQL 쿼리 성능 개선](AuroraPostgreSQL.optimized.reads.md)
+ [Aurora PostgreSQL에서 상관관계가 있는 하위 쿼리 최적화](apg-correlated-subquery.md)
+ [적응형 조인을 사용하여 쿼리 성능 개선](user-apg-adaptive-join.md)
+ [공유 계획 캐시 사용](apg-shared-plan-cache.md)

# Aurora 최적화된 읽기로 Aurora PostgreSQL 쿼리 성능 개선
<a name="AuroraPostgreSQL.optimized.reads"></a>

Aurora 최적화된 읽기로 Aurora PostgreSQL의 쿼리 처리 속도를 높일 수 있습니다. Aurora 최적화된 읽기를 사용하는 Aurora PostgreSQL DB 인스턴스는 DB 인스턴스의 메모리 용량을 초과하는 대규모 데이터 세트를 보유한 애플리케이션에서 쿼리 지연 시간이 최대 8배 개선되고 비용이 최대 30% 절감됩니다.

**Topics**
+ [PostgreSQL의 Aurora 최적화된 읽기 개요](#AuroraPostgreSQL.optimized.reads.overview)
+ [Aurora 최적화된 읽기 사용](#AuroraPostgreSQL.optimized.reads.using)
+ [Aurora 최적화된 읽기 사용 사례](#AuroraPostgreSQL.optimized.reads.usecases)
+ [Aurora 최적화된 읽기를 사용하는 DB 인스턴스 모니터링](#AuroraPostgreSQL.optimized.reads.monitoring)
+ [Aurora 최적화된 읽기 모범 사례](#AuroraPostgreSQL.optimized.reads.bestpractices)

## PostgreSQL의 Aurora 최적화된 읽기 개요
<a name="AuroraPostgreSQL.optimized.reads.overview"></a>

Aurora 최적화된 읽기는 비휘발성 메모리 익스프레스(NVMe) 스토리지와 함께 Graviton 기반 R6gd, R8gd 및 Intel 기반 R6id 인스턴스를 사용하는 DB 클러스터를 생성할 때 기본적으로 사용할 수 있습니다. 다음 PostgreSQL 버전에서 사용할 수 있습니다.
+ R8gd 인스턴스의 경우 14.12 이상 버전, 15.7 이상 버전, 16.3 이상 버전, 17.4 이상 버전
+ R6gd 및 R6id 인스턴스의 경우 14.9 이상 버전, 15.4 이상 버전, 16.1 이상 버전

Aurora 최적화된 읽기는 계층형 캐시와 임시 객체라는 두 가지 기능을 지원합니다.

**최적화된 읽기가 활성화된 계층형 캐시** - 계층형 캐시를 사용하면 DB 인스턴스 캐싱 용량을 인스턴스 메모리의 최대 5배까지 확장할 수 있습니다. 이렇게 하면 트랜잭션 측면에서 가장 최근의 일관성 있는 데이터를 포함하도록 캐시가 자동으로 유지되므로 애플리케이션은 외부 결과 집합 기반 캐싱 솔루션의 데이터 흐름을 관리하는 오버헤드에서 벗어날 수 있습니다. 이전에 Aurora 스토리지에서 데이터를 가져오던 쿼리에 대해 최대 8배 더 개선된 지연 시간을 제공합니다.

Aurora에서 기본 파라미터 그룹의 `shared_buffers` 값은 일반적으로 사용 가능한 메모리의 약 75%로 설정됩니다. 하지만 r8gd, r6gd 및 r6id 인스턴스 유형의 경우 Aurora는 최적화된 읽기 캐시에 대한 메타데이터를 호스팅하기 위해 `shared_buffers` 공간을 4.5% 줄입니다.

**최적화된 읽기가 활성화된 임시 객체** - 임시 객체를 사용하면 PostgreSQL에서 생성된 임시 파일을 로컬 NVMe 스토리지에 배치하여 보다 빠르게 쿼리를 처리할 수 있습니다. 이렇게 하면 네트워크를 통해 Elastic Block Storage(EBS)로 전송되는 트래픽이 줄어듭니다. DB 인스턴스에서 사용할 수 있는 메모리 용량을 초과하는 대량의 데이터를 정렬, 조인 또는 병합하는 고급 쿼리에 대해 최대 2배 더 개선된 지연 시간과 처리량을 제공합니다.

Aurora I/O 최적화 클러스터에서 최적화된 읽기는 계층형 캐시와 NVMe 스토리지의 임시 객체를 모두 사용합니다. 최적화된 읽기가 활성화된 계층형 캐시 기능을 통해 Aurora는 인스턴스 메모리의 2배를 임시 객체에 할당하고, 스토리지의 약 10%는 내부 작업으로, 나머지 스토리지는 계층형 캐시로 할당합니다. Aurora Standard 클러스터에서 최적화된 읽기는 임시 객체만 사용합니다.

Aurora I/O 최적화 클러스터를 사용하면 인스턴스 수준에서 `aurora_temp_space_size` 동적 파라미터를 사용하여 최적화된 읽기 지원 임시 객체에 할당된 공간의 크기를 조정할 수 있습니다. 이 크기 조정 기능은 다음 PostgreSQL 버전에서 사용할 수 있습니다.
+ 16.8 이상의 모든 버전
+ 15.12 이상의 15 버전
+ 14.17 이상의 14 버전

이 파라미터를 사용하면 데이터베이스 엔진을 다시 시작할 필요 없이 인스턴스 메모리의 2배에서 최대 6배까지 용량을 조정할 수 있습니다. 임시 객체 공간을 확장하면 동시 워크로드에 관계없이 변경 사항이 즉시 적용됩니다. 그러나 공간을 줄이면 임시 객체에 새 크기 요청을 수용할 수 있는 충분한 미사용 공간이 있는 경우에만 조정이 완료됩니다. 최적화된 읽기 지원 임시 객체의 크기를 조정하면 계층형 캐시가 사용 가능한 공간을 사용하도록 자동으로 조정됩니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.optimized.reads.html)

**참고**  
NVMe 기반 DB 인스턴스 클래스에서 IO 최적화 클러스터와 Standard 클러스터 사이를 전환하면 데이터베이스 엔진이 즉시 재시작됩니다.

Aurora PostgreSQL에서는 임시 객체가 저장되는 테이블 공간을 구성하는 데 `temp_tablespaces` 파라미터를 사용합니다.

임시 객체가 구성되었는지 확인하려면 다음 명령을 사용합니다.

```
postgres=> show temp_tablespaces;
temp_tablespaces
---------------------
aurora_temp_tablespace
(1 row)
```

`aurora_temp_tablespace`는 NVMe 로컬 스토리지를 가리키는 Aurora에서 구성한 테이블스페이스입니다. 이 파라미터는 수정하거나 Amazon EBS 스토리지로 다시 전환할 수 없습니다.

최적화된 읽기 캐시가 켜져 있는지 확인하려면 다음 명령을 사용합니다.

```
postgres=> show shared_preload_libraries;
                 shared_preload_libraries
--------------------------------------------------------
rdsutils,pg_stat_statements,aurora_optimized_reads_cache
```

## Aurora 최적화된 읽기 사용
<a name="AuroraPostgreSQL.optimized.reads.using"></a>

NVMe 기반 DB 인스턴스 중 하나를 사용하여 Aurora PostgreSQL DB 인스턴스를 프로비저닝하면 DB 인스턴스는 자동으로 Aurora 최적화된 읽기를 사용합니다.

Aurora Optimized Read를 켜려면 다음 중 하나를 수행합니다.
+ NVMe 기반 DB 인스턴스 클래스 중 하나를 사용하여 Aurora PostgreSQL DB 클러스터를 생성합니다. 자세한 내용은 [Amazon Aurora DB 클러스터 생성](Aurora.CreateInstance.md) 섹션을 참조하세요.
+ NVMe 기반 DB 인스턴스 클래스 중 하나를 사용하여 기존 Aurora PostgreSQL DB 클러스터를 수정합니다. 자세한 내용은 [Amazon Aurora DB 클러스터 수정](Aurora.Modifying.md) 섹션을 참조하세요.

Aurora 최적화된 읽기는 로컬 NVMe SSD 스토리지가 있는 DB 인스턴스 클래스 중 하나 이상이 지원되는 모든 AWS 리전에서 사용 가능합니다. 자세한 내용은 [Amazon AuroraDB 인스턴스 클래스](Concepts.DBInstanceClass.md) 섹션을 참조하세요.

최적화되지 않은 읽기 Aurora 인스턴스로 다시 전환하려면 Aurora 인스턴스의 DB 인스턴스 클래스를 데이터베이스 워크로드에 대해 NVMe 임시 스토리지가 없는 유사한 인스턴스 클래스로 수정하세요. 예를 들어, 현재 DB 인스턴스 클래스가 db.r6gd.4xlarge인 경우 db.r6g.4xlarge를 선택하여 다시 전환합니다. 자세한 내용은 [Aurora DB 인스턴스 수정](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Overview.DBInstance.Modifying.html)을 참조하세요.

## Aurora 최적화된 읽기 사용 사례
<a name="AuroraPostgreSQL.optimized.reads.usecases"></a>

**최적화된 읽기가 활성화된 계층형 캐시**

계층형 캐시가 있는 최적화된 읽기가 도움이 될 수 있는 몇 가지 사용 사례입니다.
+ 엄격한 성능 SLA가 있는 결제 처리, 청구, 전자 상거래와 같은 인터넷 규모의 애플리케이션
+ 지표/데이터 수집을 위해 수백 개의 포인트 쿼리를 실행하는 실시간 보고 대시보드
+ 수백 개의 벡터 임베딩에서 정확한 이웃 또는 가장 가까운 이웃을 검색하기 위해 pgvector 확장을 갖춘 생성형 AI 애플리케이션

**최적화된 읽기가 활성화된 임시 객체**

다음은 임시 객체가 있는 최적화된 읽기가 도움이 될 수 있는 몇 가지 사용 사례입니다.
+ CTE(Common Table Expression), 파생된 테이블, 그룹화 작업을 포함하는 분석 쿼리.
+ 애플리케이션의 최적화되지 않은 쿼리를 처리하는 읽기 전용 복제본.
+ 항상 적절한 인덱스를 사용할 수 없는 GROUP BY 및 ORDER BY 같은 복잡한 작업이 포함된 온디맨드 또는 동적 보고 쿼리.
+ 정렬을 위한 `CREATE INDEX` 또는 `REINDEX` 작업입니다.
+ 내부 임시 테이블을 사용하는 기타 워크로드.

## Aurora 최적화된 읽기를 사용하는 DB 인스턴스 모니터링
<a name="AuroraPostgreSQL.optimized.reads.monitoring"></a>

최적화된 읽기가 활성화된 계층형 캐시를 사용하는 쿼리는 다음 예와 같이 EXPLAIN 명령을 사용하여 모니터링할 수 있습니다.

```
Postgres=> EXPLAIN (ANALYZE, BUFFERS) SELECT c FROM sbtest15 WHERE id=100000000                   

QUERY PLAN
--------------------------------------------------------------------------------------
 Index Scan using sbtest15_pkey on sbtest15  (cost=0.57..8.59 rows=1 width=121) (actual time=0.287..0.288 rows=1 loops=1)
   Index Cond: (id = 100000000)
   Buffers: shared hit=3 read=2 aurora_orcache_hit=2
   I/O Timings: shared/local read=0.264
 Planning:
   Buffers: shared hit=33 read=6 aurora_orcache_hit=6
   I/O Timings: shared/local read=0.607
 Planning Time: 0.929 ms
 Execution Time: 0.303 ms
(9 rows)
Time: 2.028 ms
```

**참고**  
계획 설명의 `Buffers` 섹션에 있는 `aurora_orcache_hit` 및 `aurora_storage_read` 필드는 최적화된 읽기가 켜져 있고 값이 0보다 큰 경우에만 표시됩니다. 읽기 필드는 `aurora_orcache_hit` 필드와 `aurora_storage_read` 필드의 합계입니다.

다음 CloudWatch 지표를 사용하여 Aurora 최적화된 읽기를 사용하는 DB 인스턴스를 모니터링할 수 있습니다.
+ `AuroraOptimizedReadsCacheHitRatio`
+ `FreeEphemeralStorage`
+ `ReadIOPSEphemeralStorage`
+ `ReadLatencyEphemeralStorage`
+ `ReadThroughputEphemeralStorage`
+ `WriteIOPSEphemeralStorage`
+ `WriteLatencyEphemeralStorage`
+ `WriteThroughputEphemeralStorage`

이러한 지표는 사용 가능한 인스턴스 스토어 스토리지, IOPS 및 처리량(throughput)에 대한 데이터를 제공합니다. 이러한 지표에 대한 자세한 내용은 섹션을 참조하세요.[Amazon Aurora에 대한 인스턴스 수준 지표](Aurora.AuroraMonitoring.Metrics.md#Aurora.AuroraMySQL.Monitoring.Metrics.instances)

`pg_proctab` 확장을 사용하여 NVMe 스토리지를 모니터링할 수도 있습니다.

```
postgres=>select * from pg_diskusage();

major | minor |       devname       | reads_completed | reads_merged | sectors_read | readtime | writes_completed | writes_merged | sectors_written | writetime | current_io | iotime  | totaliotime
------+-------+---------------------+-----------------+--------------+--------------+----------+------------------+---------------+-----------------+-----------+------------+---------+-------------
      |       | rdstemp             |           23264 |            0 |       191450 |    11670 |          1750892 |             0 |        24540576 |    819350 |          0 | 3847580 |      831020
      |       | rdsephemeralstorage |           23271 |            0 |       193098 |     2620 |           114961 |             0 |        13845120 |    130770 |          0 |  215010 |      133410
(2 rows)
```

## Aurora 최적화된 읽기 모범 사례
<a name="AuroraPostgreSQL.optimized.reads.bestpractices"></a>

Aurora 최적화된 읽기에 대한 다음 모범 사례를 따릅니다.
+ CloudWatch 지표 `FreeEphemeralStorage`를 사용하여 인스턴스 스토어에서 사용 가능한 스토리지 공간을 모니터링합니다. DB 인스턴스의 워크로드로 인해 인스턴스 스토어가 한도에 도달하면 임시 객체를 많이 사용하는 동시성 및 쿼리를 조정하거나 더 큰 DB 인스턴스 클래스를 사용하도록 수정합니다.
+ 최적화된 읽기 캐시 적중률에 대한 CloudWatch 지표를 모니터링합니다. VACUUM과 같은 작업은 많은 수의 블록을 매우 빠르게 수정합니다. 이로 인해 적중률이 일시적으로 떨어질 수 있습니다. `pg_prewarm` 확장을 사용하여 데이터를 버퍼 캐시에 로드하면 Aurora가 이러한 블록 중 일부를 최적화된 읽기 캐시에 선제적으로 기록할 수 있습니다.
+ 클러스터 캐시 관리(CCM)를 사용하여 장애 조치 대상으로 사용될 Tier-0 리더의 버퍼 캐시 및 계층형 캐시를 워밍업할 수 있습니다. CCM이 활성화되면 버퍼 캐시를 정기적으로 스캔하여 제거 가능한 페이지를 계층형 캐시에 기록합니다. CCM에 대한 자세한 내용은 [장애 조치 후 Aurora PostgreSQL용 클러스터 캐시 관리를 통한 신속한 복구](AuroraPostgreSQL.cluster-cache-mgmt.md) 섹션을 참조하세요.

# Aurora PostgreSQL에서 상관관계가 있는 하위 쿼리 최적화
<a name="apg-correlated-subquery"></a>

 상관관계가 있는 하위 쿼리는 외부 쿼리의 표 열을 참조합니다. 외부 쿼리에서 반환된 모든 행에 대해 한 번씩 평가됩니다. 다음 예에서는 하위 쿼리가 표 ot의 열을 참조합니다. 이 표는 하위 쿼리의 FROM 절에는 포함되지 않지만, 외부 쿼리의 FROM 절에서는 참조됩니다. 표 ot의 행이 100만 개이면 하위 쿼리를 100만 번 평가해야 합니다.

```
SELECT ot.a, ot.b FROM ot WHERE ot.b < (SELECT AVG(it.b) FROM it WHERE it.a = ot.a);
```

**참고**  
하위 쿼리 변환 및 하위 쿼리 캐시는 버전 16.8부터 Aurora PostgreSQL에서 사용할 수 있으며 Babelfish for Aurora PostgreSQL은 4.2.0부터 이러한 기능을 지원합니다.
Babelfish for Aurora PostgreSQL 버전 4.6.0 및 5.2.0부터 다음 파라미터가 이러한 기능을 제어합니다.  
 babelfishpg\$1tsql.apg\$1enable\$1correlated\$1scalar\$1transform 
 babelfishpg\$1tsql.apg\$1enable\$1subquery\$1cache 
기본적으로 두 파라미터 모두 켜져 있습니다.

## 하위 쿼리 변환을 사용하여 Aurora PostgreSQL 쿼리 성능 개선
<a name="apg-corsubquery-transformation"></a>

Aurora PostgreSQL은 상관관계가 있는 하위 쿼리를 상응하는 외부 조인으로 변환하여 해당 하위 쿼리를 가속화할 수 있습니다. 이 최적화는 다음과 같은 두 유형의 상관관계가 있는 하위 쿼리에 적용됩니다.
+ 단일 집계 값을 반환하고 SELECT 목록에 나타나는 하위 쿼리입니다.

  ```
  SELECT ot.a, ot.b, (SELECT AVG(it.b) FROM it WHERE it.a = ot.a) FROM ot;
  ```
+ 단일 집계 값을 반환하고 WHERE 절에 나타나는 하위 쿼리입니다.

  ```
  SELECT ot.a, ot.b FROM ot WHERE ot.b < (SELECT AVG(it.b) FROM it WHERE it.a = ot.a);
  ```

### 하위 쿼리에서 변환 활성화
<a name="apg-corsub-transform"></a>

 상관관계가 있는 하위 쿼리를 동등한 외부 조인으로 변환할 수 있도록 하려면 `apg_enable_correlated_scalar_transform` 파라미터를 `ON`으로 설정합니다. 이 파라미터의 기본값은 `OFF`입니다.

클러스터 또는 인스턴스 파라미터 그룹을 수정하여 파라미터를 설정할 수 있습니다. 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md)를 참조하세요.

또는 다음 명령을 사용하여 현재 세션에 대한 설정만 구성할 수도 있습니다.

```
SET apg_enable_correlated_scalar_transform TO ON;
```

### 변환 확인
<a name="apg-corsub-transform-confirm"></a>

EXPLAIN 명령을 사용하여 상관관계가 있는 하위 쿼리가 쿼리 계획에서 외부 조인으로 변환되었는지 확인합니다.

 변환이 활성화되면 상관관계가 있는 관련 하위 쿼리 부분이 외부 조인으로 변환됩니다. 예제: 

```
postgres=> CREATE TABLE ot (a INT, b INT);
CREATE TABLE
postgres=> CREATE TABLE it (a INT, b INT);
CREATE TABLE

postgres=> SET apg_enable_correlated_scalar_transform TO ON;
SET
postgres=> EXPLAIN (COSTS FALSE) SELECT ot.a, ot.b FROM ot WHERE ot.b < (SELECT AVG(it.b) FROM it WHERE it.a = ot.a);

                         QUERY PLAN
--------------------------------------------------------------
 Hash Join
   Hash Cond: (ot.a = apg_scalar_subquery.scalar_output)
   Join Filter: ((ot.b)::numeric < apg_scalar_subquery.avg)
   ->  Seq Scan on ot
   ->  Hash
         ->  Subquery Scan on apg_scalar_subquery
               ->  HashAggregate
                     Group Key: it.a
                     ->  Seq Scan on it
```

GUC 파라미터를 `OFF`로 설정해도 동일한 쿼리는 변환되지 않습니다. 이 계획에는 외부 조인이 없고, 대신 하위 계획이 있습니다.

```
postgres=> SET apg_enable_correlated_scalar_transform TO OFF;
SET
postgres=> EXPLAIN (COSTS FALSE) SELECT ot.a, ot.b FROM ot WHERE ot.b < (SELECT AVG(it.b) FROM it WHERE it.a = ot.a);
                QUERY PLAN
----------------------------------------
 Seq Scan on ot
   Filter: ((b)::numeric < (SubPlan 1))
   SubPlan 1
     ->  Aggregate
           ->  Seq Scan on it
                 Filter: (a = ot.a)
```

### 제한 사항
<a name="apg-corsub-transform-limitations"></a>
+ 하위 쿼리는 SELECT 목록 또는 where 절의 조건 중 하나에 있어야 합니다. 그렇지 않으면 변환되지 않습니다.
+ 하위 쿼리는 집계 함수를 반환해야 합니다. 사용자 정의 집계 함수는 변환에 지원되지 않습니다.
+ 반환 표현식이 단순 집계 함수가 아닌 하위 쿼리는 변환되지 않습니다.
+ 하위 쿼리 WHERE 절의 상관관계가 있는 조건은 단순한 열 참조여야 합니다. 그렇지 않으면 변환되지 않습니다.
+ 절이 일반 등식 조건자여야 하는 하위 쿼리의 상관관계가 있는 조건입니다.
+ 하위 쿼리에는 HAVING 또는 GROUP BY 절을 포함할 수 없습니다.
+ 하위 쿼리의 where 절에는 AND와 결합된 하나 이상의 조건자가 포함될 수 있습니다.

**참고**  
변환의 성능 영향은 스키마, 데이터 및 워크로드에 따라 달라집니다. 변환과 관련된 하위 쿼리 실행은 외부 쿼리에서 생성된 행 수가 증가함에 따라 성능을 크게 개선할 수 있습니다. 프로덕션 환경에서 활성화하기 전에 실제 스키마, 데이터 및 워크로드를 사용하여 비프로덕션 환경에서 이 기능을 테스트하는 것이 좋습니다.

## 하위 쿼리 캐시를 사용하여 Aurora PostgreSQL 쿼리 성능 향상
<a name="apg-subquery-cache"></a>

 Aurora PostgreSQL은 하위 쿼리 캐시를 지원하여 상관관계가 있는 하위 쿼리의 결과를 저장합니다. 이 기능은 하위 쿼리 결과가 이미 캐시에 있는 경우 상관관계가 있는 반복 하위 쿼리 실행을 건너뜁니다.

### 하위 쿼리 캐시 이해
<a name="apg-subquery-cache-understand"></a>

 PostgreSQL의 Memoize 노드는 하위 쿼리 캐시의 핵심 부분입니다. Memoize 노드는 로컬 캐시에 해시 표를 유지하여 입력 파라미터 값을 쿼리 결과 행으로 매핑합니다. 해시 표의 메모리 제한은 work\$1mem과 hash\$1mem\$1multiplier의 곱입니다. 자세한 내용은 [리소스 소비](https://www.postgresql.org/docs/16/runtime-config-resource.html)를 참조하세요.

 쿼리 실행 중에 하위 쿼리 캐시는 캐시 적중률(CHR)을 사용하여 캐시가 쿼리 성능을 개선하는지를 추정하고 쿼리 런타임 시 캐시를 계속 사용할지를 결정합니다. CHR은 총 요청 수에 대한 캐시 적중 횟수의 비율입니다. 예를 들어, 상관관계가 있는 하위 쿼리를 100번 실행해야 하고 해당 실행 결과 중 70개를 캐시에서 검색할 수 있는 경우 CHR은 0.7입니다.

apg\$1subquery\$1cache\$1check\$1interval 캐시 누락 횟수가 발생할 때마다 CHR이 apg\$1subquery\$1cache\$1hit\$1rate\$1threshold보다 큰지 확인하여 하위 쿼리 캐시의 이점을 평가합니다. 이보다 작으면 캐시가 메모리에서 삭제되고 쿼리 실행은 캐시되지 않은 원래 하위 쿼리 재실행 상태로 돌아갑니다.

### 하위 쿼리 캐시 동작을 제어하는 파라미터
<a name="apg-subquery-cache-parameters"></a>

다음 표에는 하위 쿼리 캐시 동작을 제어하는 파라미터가 나열되어 있습니다.


|  파라미터  | 설명  | 기본값 | 허용됨  | 
| --- | --- | --- | --- | 
| apg\$1enable\$1subquery\$1cache  | 상관관계가 있는 스칼라 하위 쿼리에 캐시를 사용할 수 있도록 지원합니다.  | OFF  | ON, OFF | 
| apg\$1subquery\$1cache\$1check\$1interval  | 하위 쿼리 캐시 적중률을 평가할 빈도(캐시 누락 횟수)를 설정합니다.  | 500  | 0–2147483647 | 
| apg\$1subquery\$1cache\$1hit\$1rate\$1threshold  | 하위 쿼리 캐시 적중률의 임계값을 설정합니다.  | 0.3  | 0.0\$11.0 | 

**참고**  
`apg_subquery_cache_check_interval` 값이 클수록 CHR 기반 캐시 이점 추정의 정확도는 향상될 수 있지만, 캐시 표에 `apg_subquery_cache_check_interval` 행이 있을 때까지 CHR이 평가되지 않으므로 캐시 오버헤드가 증가합니다.
`apg_subquery_cache_hit_rate_threshold` 값이 클수록 하위 쿼리 캐시를 포기하고 캐시되지 않은 원래 하위 쿼리 재실행으로 돌아가는 경향이 있습니다.

클러스터 또는 인스턴스 파라미터 그룹을 수정하여 파라미터를 설정할 수 있습니다. 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md)를 참조하세요.

또는 다음 명령을 사용하여 현재 세션에 대한 설정만 구성할 수도 있습니다.

```
SET apg_enable_subquery_cache TO ON;
```

### Aurora PostgreSQL에서 하위 쿼리 캐시 켜기
<a name="apg-subquery-cache-turningon"></a>

하위 쿼리 캐시가 활성화되면 Aurora PostgreSQL은 캐시를 적용하여 하위 쿼리 결과를 저장합니다. 그러면 쿼리 계획의 SubPlan 아래에 Memoize 노드가 생깁니다.

 예를 들어, 다음 명령 시퀀스는 하위 쿼리 캐시 없이 상관관계가 있는 단순 하위 쿼리의 예상 쿼리 실행 계획을 보여줍니다.

```
postgres=> SET apg_enable_subquery_cache TO OFF;
SET
postgres=> EXPLAIN (COSTS FALSE) SELECT ot.a, ot.b FROM ot WHERE ot.b < (SELECT it.b FROM it WHERE it.a = ot.a);

             QUERY PLAN
------------------------------------
 Seq Scan on ot
   Filter: (b < (SubPlan 1))
   SubPlan 1
     ->  Seq Scan on it
           Filter: (a = ot.a)
```

`apg_enable_subquery_cache`를 활성화한 후 쿼리 계획의 SubPlan 노드 아래에 Memoize 노드가 포함되며, 이는 하위 쿼리가 캐시를 사용할 계획임을 나타냅니다.

```
postgres=> SET apg_enable_subquery_cache TO ON;
SET
postgres=> EXPLAIN (COSTS FALSE) SELECT ot.a, ot.b FROM ot WHERE ot.b < (SELECT it.b FROM it WHERE it.a = ot.a);

             QUERY PLAN
------------------------------------
 Seq Scan on ot
   Filter: (b < (SubPlan 1))
   SubPlan 1
     ->  Memoize
           Cache Key: ot.a
           Cache Mode: binary
           ->  Seq Scan on it
                 Filter: (a = ot.a)
```

 실제 쿼리 실행 계획에는 캐시 적중 및 캐시 누락을 포함하여 하위 쿼리 캐시에 대한 자세한 정보가 포함되어 있습니다. 다음 출력은 표에 일부 값을 삽입한 후의 위 예제 쿼리의 실제 쿼리 실행 계획을 보여줍니다.

```
postgres=> EXPLAIN (COSTS FALSE, TIMING FALSE, ANALYZE TRUE) SELECT ot.a, ot.b FROM ot WHERE ot.b < (SELECT it.b FROM it WHERE it.a = ot.a);
            QUERY PLAN
-----------------------------------------------------------------------------
 Seq Scan on ot (actual rows=2 loops=1)
   Filter: (b < (SubPlan 1))
   Rows Removed by Filter: 8
   SubPlan 1
     ->  Memoize (actual rows=0 loops=10)
           Cache Key: ot.a
           Cache Mode: binary
           Hits: 4  Misses: 6  Evictions: 0  Overflows: 0  Memory Usage: 1kB
           ->  Seq Scan on it (actual rows=0 loops=6)
                 Filter: (a = ot.a)
                 Rows Removed by Filter: 4
```

총 캐시 적중 수는 4이고 총 캐시 누락 수는 6입니다. 총 적중 및 누락 수가 Memoize 노드의 루프 수보다 적으면 CHR 평가를 통과하지 못했고 캐시가 어느 시점에서 정리되고 폐기되었음을 의미합니다. 이에 따라 하위 쿼리 실행이 캐시되지 않은 원래 재실행으로 되돌아갔습니다.

### 제한 사항
<a name="apg-subquery-cache-limitations"></a>

하위 쿼리 캐시는 특정 패턴의 상관관계가 있는 하위 쿼리를 지원하지 않습니다. 이러한 유형의 쿼리는 하위 쿼리 캐시가 설정되어 있더라도 캐시 없이 실행됩니다.
+ IN/EXISTS/ANY/ALL 상관관계가 있는 하위 쿼리
+ 비결정적 함수를 포함하는 상관관계가 있는 하위 쿼리.
+ 해싱 또는 등식 연산을 지원하지 않는 데이터 유형이 있는 외부 테이블 열을 참조하는 상관관계가 있는 하위 쿼리입니다.

# 적응형 조인을 사용하여 쿼리 성능 개선
<a name="user-apg-adaptive-join"></a>

## 개요
<a name="user-apg-adaptive-join-intro"></a>

적응형 조인은 쿼리 성능을 개선하는 데 도움이 되는 Aurora PostgreSQL 17.4의 미리 보기 기능입니다. 이 기능은 기본적으로 비활성화되어 있지만 글로벌 사용자 구성(GUC) 파라미터를 사용하여 활성화할 수 있습니다. 이 기능은 미리 보기 기능이므로 기본 파라미터 값이 변경될 수 있습니다. 활성화된 경우 적응형 조인은 런타임에 중첩 루프 조인에서 해시 조인으로 동적으로 전환하여 쿼리 성능을 최적화하는 데 도움이 됩니다. 이 전환은 부정확한 카디널리티 추정치로 인해 PostgreSQL 최적화 프로그램이 중첩 루프 조인을 잘못 선택한 경우 발생합니다.

## 적응형 조인 구성
<a name="user-apg-adaptive-join-config"></a>

다음 세 가지 GUC 파라미터를 사용하여 적응형 조인을 제어할 수 있습니다.


**적응형 조인 구성 파라미터**  

| GUC 파라미터 | 설명 | 기본 및 구성 옵션 | 
| --- | --- | --- | 
| apg\$1adaptive\$1join\$1crossover\$1multiplier | 이 승수는 행 교차점과 함께 작동하여 중첩 루프에서 해시 조인으로 전환할 시기를 결정합니다. 행 교차점은 SQL 최적화 프로그램이 중첩 루프 및 해시 조인 작업의 비용이 동일하다고 추정하는 지점입니다. 승수 값이 높을수록 적응형 조인이 해시 조인으로 전환될 가능성이 줄어듭니다. |  적응형 조인이 활성화되었는지 여부를 제어합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/user-apg-adaptive-join.html)  | 
| apg\$1adaptive\$1join\$1cost\$1threshold | 이 파라미터는 최소 쿼리 비용 임계값을 설정합니다. 적응형 조인은 이 임계값 미만의 쿼리에 대해 자동으로 비활성화됩니다. 이렇게 하면 적응형 조인을 계획하는 데 드는 비용이 중첩 루프에서 해시 조인으로 전환하는 이익을 초과할 수 있는 단순 쿼리의 성능 오버헤드를 방지할 수 있습니다. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/user-apg-adaptive-join.html)  | 
| apg\$1enable\$1parameterized\$1adaptive\$1join | 이 파라미터는 활성화된 경우 적응형 조인 기능을 파라미터화된 중첩 루프 조인으로 확장합니다. 기본적으로 적응형 조인은 파라미터화되지 않은 중첩 루프 조인에서만 작동합니다. 해시 조인으로 전환하면 이점을 얻을 가능성이 높기 때문입니다. 파라미터화된 중첩 루프 조인은 일반적으로 성능이 더 좋으므로 해시 조인으로 전환할 필요성이 덜합니다. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/user-apg-adaptive-join.html) 먼저 `apg_adaptive_join_crossover_multiplier`를 활성화해야 합니다.  | 

# 공유 계획 캐시 사용
<a name="apg-shared-plan-cache"></a>

## 개요
<a name="apg-shared-plan-cache-overview"></a>

Aurora PostgreSQL은 사용자별 프로세스 모델을 사용하여, 클라이언트 연결마다 전용 백엔드 프로세스가 생성됩니다. 각 백엔드 프로세스는 준비된 문에 대해 자체 로컬 계획 캐시를 유지합니다. 이러한 캐시는 프로세스 간에 공유할 수 없으므로 준비된 문을 많이 사용하는 애플리케이션은 여러 백엔드 프로세스에서 중복 캐시를 생성하여 메모리 사용량이 증가할 수 있습니다.

Aurora PostgreSQL 버전 17.6 이상 및 16.10 이상에는 공유 계획 캐시 기능이 도입되었습니다. 이 기능을 활성화하면 백엔드 프로세스가 일반 계획을 공유할 수 있으므로 중복 계획 생성을 방지하여 메모리 사용량을 줄이고 성능을 개선할 수 있습니다.

공유 계획 캐시는 다음 구성 요소를 캐시 키로 사용합니다.
+ 쿼리 문자열(설명 포함)
+ 플래너 관련 GUC 파라미터(`search_path` 포함)
+ 사용자 ID
+ 데이터베이스 ID

인스턴스가 재시작되면 공유 캐시가 재설정됩니다.

## Parameters
<a name="apg-shared-plan-cache-parameters"></a>

다음 표에서는 공유 계획 캐시 기능을 제어하는 파라미터를 설명합니다.


| 파라미터 | 설명 | 기본값 | 허용됨 | 
| --- | --- | --- | --- | 
| apg\$1shared\$1plan\$1cache.enable | 공유 계획 캐시를 켜거나 끕니다. | 0(꺼짐) | 0, 1 | 
| apg\$1shared\$1plan\$1cache.max | 캐시 항목의 최대 개수 | 200\$11000(인스턴스 크기에 따라 다름) | 100–50000 | 
| apg\$1shared\$1plan\$1cache.min\$1size\$1per\$1entry | 공유 캐시에 저장할 최소 계획 크기. 규모가 작은 계획은 로컬 캐시를 사용하여 OLTP 성능을 최적화합니다. | 16KB | 0\$132768(KB) | 
| apg\$1shared\$1plan\$1cache.max\$1size\$1per\$1entry | 공유 캐시의 최대 계획 크기. 규모가 큰 계획은 비용 정보만 저장합니다. | 256KB\$14MB(인스턴스 크기에 따라 다름) | 0\$132768(KB) | 
| apg\$1shared\$1plan\$1cache.idle\$1generic\$1plan\$1release\$1timeout | 유휴 세션에서 로컬 일반 계획이 해제되기까지 걸리는 시간입니다. 값이 낮을수록 메모리가 절약되고 값이 높을수록 성능이 향상될 수 있습니다. | 10초 | 0\$12147483647(ms) | 

**참고**  
재시작하지 않고도 모든 파라미터를 수정할 수 있습니다.

## 보기 및 함수 모니터링
<a name="apg-shared-plan-cache-monitoring"></a>
+ `apg_shared_plan_cache()` - 세부 캐시 항목 정보(적중 횟수, 유효성, 타임스탬프)를 표시합니다.
+ `apg_shared_plan_cache_stat()` - 인스턴스 수준의 통계(제거, 무효화)를 표시합니다.
+ `apg_shared_plan_cache_reset()` - `apg_shared_plan_cache()` 및 `apg_shared_plan_cache_stat()`의 모든 항목을 제거합니다.
+ `apg_shared_plan_cache_remove(cache_key)` - 항목이 `cache_key`와 일치하는 경우 `apg_shared_plan_cache()`에서 해당 항목을 제거합니다.

## 제한 사항
<a name="apg-shared-plan-cache-limitations"></a>
+ 준비된 문에서만 작동하며 PL/pgSQL 문은 캐싱하지 않음
+ 임시 테이블 또는 카탈로그 테이블이 포함된 쿼리는 캐싱하지 않음
+ RLS(Row-Level Security)에 의존하는 쿼리는 캐싱하지 않음
+ 각 복제본이 자체 캐시를 유지함(교차 복제본 공유 없음)

# Aurora PostgreSQL에서 로깅되지 않은 테이블 작업
<a name="aurora-postgresql-unlogged-tables"></a>

Amazon Aurora PostgreSQL은 라이터 인스턴스가 실패하거나 또는 장애 조치된 후에도 충돌이 방지되고 데이터 무결성을 유지하는 로깅되지 않은 테이블을 지원합니다. 표준 PostgreSQL에서는 로깅되지 않은 테이블이 쓰기 작업 중에 Write-Ahead Log(WAL)를 우회하여 쓰기 속도가 빨라집니다. 그러나 로깅되지 않은 테이블은 충돌이 방지되지 않으며 시스템 장애 또는 비정상 종료 후 데이터가 손실될 수 있으므로 내구성이 낮습니다. 이러한 로깅되지 않은 테이블은 충돌 또는 비정상 종료 후 자동으로 잘립니다. 콘텐츠와 인덱스도 대기 서버에 복제되지 않습니다.

반면 Aurora PostgreSQL은 분산 스토리지 아키텍처로 인해 로깅되지 않은 테이블을 다르게 처리합니다. 이는 Aurora 스토리지 시스템의 내구성이 기존 PostgreSQL WAL에 의존하지 않기 때문입니다. 그러나 표준 PostgreSQL에서 로깅되지 않은 테이블과 일반적으로 연관되는 성능 이점은 Aurora에서 그다지 중요하지 않을 수 있습니다. 이는 Aurora의 분산 스토리지 아키텍처로 인해 표준 PostgreSQL에 사용되는 로컬 스토리지에 비해 추가 오버헤드가 발생할 수 있기 때문입니다.

Aurora PostgreSQL에서 로깅되지 않은 테이블을 사용하는 경우 다음을 고려하세요.
+ 로깅되지 않은 테이블은 Aurora DB 클러스터의 라이터 노드에서만 액세스할 수 있습니다.
+ 리더 노드는 라이터 상태로 승격된 경우에만 로깅되지 않은 테이블에 액세스할 수 있습니다.
+ 리더 노드에서 로깅되지 않은 테이블에 액세스하려고 하면 다음 오류가 발생합니다.

  `cannot access temporary or unlogged relations during recovery.`

## 로깅되지 않은 테이블 만들기
<a name="aurora-postgresql-unlogged-tables-create"></a>

Aurora PostgreSQL에서 로깅되지 않은 테이블을 만들려면 CREATE TABLE 문에 UNLOGGED 키워드를 추가합니다.

```
CREATE UNLOGGED TABLE staging_sales_data (
    transaction_id bigint,
    customer_id bigint,
    product_id bigint,
    transaction_date date,
    amount NUMERIC
);
```

## 마이그레이션 중 로깅되지 않은 테이블 처리
<a name="aurora-postgresql-unlogged-tables-migration"></a>

Aurora PostgreSQL로 데이터를 마이그레이션할 준비를 할 때는 로깅되지 않은 테이블을 적절하게 식별하고 처리하는 것이 중요합니다. 로깅되지 않은 테이블은 WAL 로깅되지 않으며 복제 스트림에서 제외됩니다. 즉, Aurora 읽기 전용 복제본에 복제되지 않습니다.

로깅되지 않은 테이블을 로깅된 테이블로 변환하거나 Aurora 읽기 전용 복제본을 생성하기 전에 사용되지 않는 경우 삭제합니다.

인스턴스 내의 각 데이터베이스에 로깅되지 않은 테이블이 있는지 확인하려면 다음 명령을 사용합니다.

```
SELECT oid, relfilenode, relname, relpersistence, relkind 
FROM pg_class 
WHERE relpersistence ='u';
```

로깅되지 않은 테이블을 다시 로깅된 테이블로 변환하려면 다음 명령을 사용합니다.

```
ALTER TABLE table_name SET LOGGED;
```

이 작업은 전체 테이블을 다시 작성하고 완료될 때까지 테이블을 배타적으로 잠급니다. 대형 테이블의 경우 이로 인해 상당한 가동 중지 시간이 발생할 수 있습니다.

## 로깅되지 않은 테이블을 로깅된 테이블로 변환
<a name="aurora-postgresql-unlogged-tables-convert"></a>

로깅되지 않은 테이블을 다시 로깅된 테이블로 변환해야 하는 경우 다음 명령을 사용할 수 있습니다.

```
ALTER TABLE table_name SET LOGGED;
```

이 작업은 전체 테이블을 다시 작성하고 작업이 완료될 때까지 테이블을 배타적으로 잠급니다. 대형 테이블의 경우 이로 인해 상당한 가동 중지 시간이 발생할 수 있습니다.

## 로깅되지 않은 테이블 및 논리적 복제
<a name="aurora-postgresql-unlogged-tables-logicalrep"></a>

논리적 복제는 WAL을 사용하여 변경 사항을 캡처하고 전송하기 때문에 로깅되지 않은 테이블은 일반적으로 논리적 복제에 포함되지 않습니다. 기본적으로 로깅되지 않은 테이블에 대한 변경 사항은 WAL 로깅되지 않고 복제 스트림에서 제외되므로 논리적 복제가 필요한 사용 사례에 적합하지 않습니다. 그러나 Aurora PostgreSQL은 이 동작을 제어할 수 있는 `rds.logically_replicate_unlogged_tables`라는 파라미터를 제공합니다.
+ `rds.logically_replicate_unlogged_tables`가 0(꺼짐)으로 설정되면 로깅되지 않은 테이블이 논리적 복제에서 제외됩니다.
+  `rds.logically_replicate_unlogged_tables`가 1(켜짐)로 설정되면 로깅되지 않은 테이블이 논리적 복제에 포함됩니다.

**참고**  
Aurora PostgreSQL에서 `rds.logically_replicate_unlogged_tables` 파라미터는 기본적으로 버전 14 이하에서는 1(켜짐), 버전 15 이상에서는 0(꺼짐)으로 설정됩니다.

# Amazon Aurora PostgreSQL에서 PostgreSQL 자동 정리 사용
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum"></a>

자동 정리 기능을 사용하여 PostgreSQL DB 인스턴스의 상태를 유지 관리하는 것이 좋습니다. Autovacuum은 VACUUM 및 ANALYZE 명령의 시작을 자동화합니다. Autovacuum은 삽입되고 업데이트되거나 삭제된 튜플 수가 많은 테이블이 있는지 확인합니다. 확인이 끝나면 Autovacuum은 PostgreSQL 데이터베이스에서 폐기된 데이터 또는 튜플을 제거하여 스토리지를 회수합니다.

기본적으로 자동 정리는 기본 PostgreSQL DB 파라미터 그룹을 사용하여 만든 Aurora PostgreSQL DB 인스턴스에서 켜져 있습니다. 자동 정리 기능과 관련된 다른 구성 파라미터도 기본적으로 설정됩니다. 이러한 기본값은 다소 일반적이기 때문에 특정 워크로드에 대해 자동 정리 기능과 관련된 일부 파라미터를 조정하면 도움이 될 수 있습니다.

다음에서 자동 정리에 대한 자세한 정보와 Aurora PostgreSQL DB 인스턴스에 대한 파라미터를 조정하는 방법을 확인할 수 있습니다. 

**Topics**
+ [Autovacuum에 메모리 할당](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum.WorkMemory)
+ [트랜잭션 ID 랩어라운드의 가능성 감소](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum.AdaptiveAutoVacuuming)
+ [데이터베이스의 테이블을 vacuum해야 하는지 여부를 결정](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.NeedVacuuming.md)
+ [현재 Autovacuum을 수행할 수 있는 테이블 결정](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.EligibleTables.md)
+ [현재 Autovacuum이 실행 중인지 여부 및 실행 기간 확인](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.AutovacuumRunning.md)
+ [수동 vacuum freeze 수행](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.VacuumFreeze.md)
+ [Autovacuum이 실행 중인 경우 테이블 인덱스 다시 지정](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.Reindexing.md)
+ [대용량 인덱스를 사용하여 autovacuum 관리](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.LargeIndexes.md)
+ [Autovacuum에 영향을 주는 기타 파라미터](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.OtherParms.md)
+ [테이블 수준 Autovacuum 파라미터 설정](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.TableParameters.md)
+ [autovacuum 및 vacuum 활동 로그](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.Logging.md)
+ [잘못된 데이터베이스를 사용한 autovacuum 동작 이해](appendix.postgresql.commondbatasks.autovacuumbehavior.md)
+ [Aurora PostgreSQL에서 공격적인 vacuum 블로커 식별 및 해결](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.md)

## Autovacuum에 메모리 할당
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum.WorkMemory"></a>

autovacuum 성능에 영향을 미치는 가장 중요한 파라미터 중 하나는 [https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-AUTOVACUUM-WORK-MEM](https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-AUTOVACUUM-WORK-MEM) 파라미터입니다. Aurora PostgreSQL 버전 14 이하에서는 `autovacuum_work_mem` 파라미터가 -1로 설정되어 `maintenance_work_mem`의 설정이 대신 사용됨을 나타냅니다. 다른 모든 버전의 경우 `autovacuum_work_mem`는 GREATEST(\$1DBInstanceClassMemory/32768\$1, 65536)에 의해 결정됩니다.

수동 vacuum 작업은 항상 기본 `maintenance_work_mem` 설정인 GREATEST(\$1DBInstanceClassMemory/63963136\$11024\$1, 65536)을 사용하며, 보다 대상화된 수동 `VACUUM` 작업을 위해 `SET` 명령을 사용하여 세션 수준에서 조정할 수도 있습니다.

`autovacuum_work_mem`는 인덱스 vacuum용 데드 튜플(`pg_stat_all_tables.n_dead_tup`)의 ID를 저장하기 위한 autovacuum 메모리를 결정합니다.

`autovacuum_work_mem` 파라미터 값을 결정하기 위해 계산할 때는 다음 사항에 유의하세요.
+ 파라미터를 너무 낮게 설정하면 vacuum 프로세스가 테이블을 여러 번 스캔해야 작업이 완료될 수 있습니다. 이러한 다중 스캔은 성능에 부정적인 영향을 줄 수 있습니다. 더 큰 인스턴스의 경우 `maintenance_work_mem` 또는 `autovacuum_work_mem`을 최소 1GB로 설정하면 데드 튜플 수가 많은 테이블을 vacuum하는 성능이 향상될 수 있습니다. 그러나 PostgreSQL 버전 16 이하에서는 vacuum 메모리 사용량이 1GB로 제한되므로 한 번의 전달로 약 1억 7,900만 개의 데드 튜플을 처리하기에 충분합니다. 테이블에 이보다 더 많은 데드 튜플이 있는 경우 vacuum은 테이블의 인덱스를 여러 번 전달해야 하므로 필요한 시간이 크게 늘어납니다. PostgreSQL 버전 17부터는 1GB의 제한이 없으며, autovacuum은 radix 트리를 사용하여 1억 7,900만 개 이상의 튜플을 처리할 수 있습니다.

  튜플 식별자의 크기는 6바이트입니다. 테이블의 인덱스를 vacuum하는 데 필요한 메모리를 추정하려면 `pg_stat_all_tables.n_dead_tup`를 쿼리하여 데드 튜플 수를 찾은 다음 이 수에 6을 곱하여 인덱스를 단일 전달로 vacuum하는 데 필요한 메모리를 결정합니다. 다음 쿼리를 사용할 수 있습니다.

  ```
  SELECT
      relname AS table_name,
      n_dead_tup,
      pg_size_pretty(n_dead_tup * 6) AS estimated_memory
  FROM
      pg_stat_all_tables
  WHERE
      relname = 'name_of_the_table';
  ```
+ `autovacuum_work_mem` 파라미터는 `autovacuum_max_workers` 파라미터와 함께 작동합니다. `autovacuum_max_workers` 중 각각의 작업자는 할당된 메모리를 사용할 수 있습니다. 작은 테이블이 많이 있는 경우에는 `autovacuum_max_workers`를 더 많이 할당하고 `autovacuum_work_mem`을 더 적게 할당합니다. 큰 테이블이 많이 있는 경우(100GB 이상)에는 메모리를 더 많이 할당하고 작업자 프로세스를 더 적게 할당합니다. 가장 큰 테이블에서 성공적으로 작업을 수행하려면 충분한 메모리를 할당해 두어야 합니다. 따라서 작업자 프로세스와 메모리를 합한 양이 할당하려는 전체 메모리 양과 같아야 합니다.

## 트랜잭션 ID 랩어라운드의 가능성 감소
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum.AdaptiveAutoVacuuming"></a>

경우에 따라 Autovacuum과 관련된 파라미터 그룹 설정이 트랜잭션 ID 랩어라운드를 방지하기에 충분히 공격적이지 않을 수 있습니다. 이를 해결하기 위해 Aurora PostgreSQL은 자동 정리 파라미터 값을 자동으로 조정하는 메커니즘을 제공합니다. *적응형 자동 정리*는 Aurora PostgreSQL의 기능입니다. [TransactionID wraparound](https://www.postgresql.org/docs/current/static/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND)에 대한 자세한 설명은 PostgreSQL 설명서에 나와 있습니다.

동적 파라미터 `rds.adaptive_autovacuum`이 켜짐으로 설정된 Aurora PostgreSQL 인스턴스의 경우 적응형 자동 정리가 기본적으로 켜져 있습니다. 이 설정을 항상 활성화해 놓는 것이 좋습니다. 그러나 적응형 Autovacuum 파라미터 튜닝을 끄려면 `rds.adaptive_autovacuum` 파라미터를 0 또는 OFF로 설정합니다.

Aurora Amazon RDS가 자동 정리 파라미터를 조정하더라도 트랜잭션 ID 랩어라운드는 계속 가능합니다. 트랜잭션 ID 랩어라운드에 대한 Amazon CloudWatch 경보를 구현하는 것이 좋습니다. 자세한 내용은 AWS 데이터베이스 블로그의 [RDS for PostgreSQL에서 트랜잭션 ID 랩어라운드에 대한 조기 경고 시스템 구축](https://aws.amazon.com/blogs/database/implement-an-early-warning-system-for-transaction-id-wraparound-in-amazon-rds-for-postgresql/) 게시물을 참조하세요.

적응형 자동 정리 파라미터 튜닝을 사용 설정한 경우 Amazon RDS는 CloudWatch 지표 `MaximumUsedTransactionIDs`가 `autovacuum_freeze_max_age` 파라미터 값 또는 500,000,000 중 큰 값에 도달하면 자동 정리 파라미터를 조정하기 시작합니다.

테이블이 계속 트랜잭션 ID 랩어라운드 방향으로 향하면 Amazon RDS는 Autovacuum의 파라미터를 계속 조정합니다. 이러한 각각의 조정은 랩어라운드를 피하기 위해 Autovacuum에 더 많은 리소스를 할애합니다. Amazon RDS는 다음 자동 정리 관련 파라미터를 업데이트합니다.
+ [autovacuum\$1vacuum\$1cost\$1delay](https://www.postgresql.org/docs/current/static/runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-COST-DELAY)
+ [ autovacuum\$1vacuum\$1cost\$1limit](https://www.postgresql.org/docs/current/static/runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-COST-LIMIT)
+  [https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-AUTOVACUUM-WORK-MEM](https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-AUTOVACUUM-WORK-MEM) 
+  [autovacuum\$1naptime](https://www.postgresql.org/docs/current/runtime-config-autovacuum.html#GUC-AUTOVACUUM-NAPTIME) 

RDS는 새 값이 Autovacuum을 보다 공격적으로 만드는 경우에만 이러한 파라미터를 수정합니다. 파라미터는 DB 인스턴스의 메모리에서 수정됩니다. 파라미터 그룹의 값은 변경되지 않습니다. 현재 인 메모리 설정을 보려면 PostgreSQL [SHOW](https://www.postgresql.org/docs/current/sql-show.html) SQL 명령을 사용하십시오.

Amazon RDS가 이러한 Autovacuum 파라미터를 수정하면 영향받은 DB 인스턴스에 대한 이벤트를 생성합니다. 이 이벤트는 AWS Management Console 및 Amazon RDS API에서 볼 수 있습니다. `MaximumUsedTransactionIDs` CloudWatch 지표가 임계값 미만의 값을 반환하면 Amazon RDS는 메모리의 자동 정리 관련 파라미터를 파라미터 그룹에 지정된 값으로 다시 설정합니다. 그런 다음 이 변경에 해당하는 다른 이벤트를 생성합니다.

# 데이터베이스의 테이블을 vacuum해야 하는지 여부를 결정
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum.NeedVacuuming"></a>

다음 쿼리를 사용하여 데이터베이스의 고정되지 않은 트랜잭션 수를 표시할 수 있습니다. 데이터베이스 `datfrozenxid` 행의 `pg_database` 열은 해당 데이터베이스에 나타나는 정상 트랜잭션 ID의 하한값입니다. 이 열은 데이터베이스 내 테이블 단위 `relfrozenxid` 값 중 최소값입니다.

```
SELECT datname, age(datfrozenxid) FROM pg_database ORDER BY age(datfrozenxid) desc limit 20;
```

예를 들어 앞의 쿼리를 실행하면 다음과 같은 결과가 나올 수 있습니다.

```
datname    | age
mydb       | 1771757888
template0  | 1721757888
template1  | 1721757888
rdsadmin   | 1694008527
postgres   | 1693881061
(5 rows)
```

데이터베이스의 수명이 20억 트랜잭션 ID에 도달하면 트랜잭션 ID(XID) 랩어라운드가 발생하고 데이터베이스는 읽기 전용이 됩니다. 이 쿼리를 사용하면 지표를 생성하여 하루에 몇 번 실행되도록 할 수 있습니다. 기본적으로 autovacuum은 트랜잭션 수명을 200,000,000([https://www.postgresql.org/docs/current/static/runtime-config-autovacuum.html#GUC-AUTOVACUUM-FREEZE-MAX-AGE](https://www.postgresql.org/docs/current/static/runtime-config-autovacuum.html#GUC-AUTOVACUUM-FREEZE-MAX-AGE)) 미만으로 유지하도록 설정됩니다.

샘플 모니터링 전략은 다음과 같습니다.
+ `autovacuum_freeze_max_age` 값을 2억 개 트랜잭션으로 설정하십시오.
+ 테이블이 5억 개의 고정되지 않은 트랜잭션에 도달하면 낮은 심각도 경보가 트리거됩니다. 이 값은 타당한 값이지만 autovacuum이 계속 수행되고 있지 않음을 나타낼 수 있습니다.
+ 테이블 수명이 10억이 되면 조치를 취해야 할 경보로 처리되어야 합니다. 성능상의 이유로 수명을 `autovacuum_freeze_max_age`에 더 가깝게 유지하려는 경우가 대부분입니다. 다음 권장 사항을 사용하여 조사하는 것이 좋습니다.
+ 테이블이 15억 개의 vacuum되지 않은 트랜잭션에 도달하면 높은 심각도 경보가 트리거됩니다. 데이터베이스가 트랜잭션 ID를 사용하는 속도에 따라 이 경보는 시스템에서 autovacuum을 실행할 시간이 부족함을 나타낼 수 있습니다. 이 경우 즉시 이를 해결하는 것이 좋습니다.

테이블이 지속적으로 이 임계값을 위반하면 autovacuum 파라미터를 추가로 수정합니다. 기본적으로 수동 VACUUM을 사용하면(비용에 따른 지연이 비활성화됨)은 기본 autovacuum을 사용할 때보다 더 적극적이지만 시스템 전체에 더 많이 침입할 수 있는 상태이기도 합니다.

다음과 같이 하는 것이 좋습니다.
+ 모니터링 메커니즘을 숙지하고 활성화하여 가장 오래된 트랜잭션의 수명을 확인합니다.

  트랜잭션 ID 랩어라운드에 대해 경고하는 프로세스 생성에 대한 자세한 내용은 AWS 데이터베이스 블로그 게시물 [Amazon RDS for PostgreSQL의 트랜잭션 ID 랩어라운드용 조기 경고 시스템 구현](https://aws.amazon.com/blogs/database/implement-an-early-warning-system-for-transaction-id-wraparound-in-amazon-rds-for-postgresql/)을 참조하세요.
+ 더 많이 사용되는 테이블의 경우 autovacuum을 사용하는 것 이외에 유지 관리 기간 동안 수동 vacuum freeze를 정기적으로 수행합니다. 수동 vacuum freeze 수행에 대한 자세한 내용은 [수동 vacuum freeze 수행](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.VacuumFreeze.md) 단원을 참조하십시오.

# 현재 Autovacuum을 수행할 수 있는 테이블 결정
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum.EligibleTables"></a>

vacuum을 수행해야 하는 테이블이 하나이거나 두 개인 경우가 많습니다. `relfrozenxid` 값이 `autovacuum_freeze_max_age`의 트랜잭션 수보다 큰 테이블은 항상 Autovacuum의 대상이 됩니다. 그렇지 않은 경우 VACUUM이 "vacuum 임계값"을 초과하여 튜플 수가 더 이상 사용되지 않는 경우 테이블이 vacuum됩니다.

[autovacuum 임계값](https://www.postgresql.org/docs/current/static/routine-vacuuming.html#AUTOVACUUM)은 다음과 같이 정의되어 있습니다.

```
Vacuum-threshold = vacuum-base-threshold + vacuum-scale-factor * number-of-tuples
```

여기서 `vacuum base threshold`는 `autovacuum_vacuum_threshold`이고, `vacuum scale factor`는 `autovacuum_vacuum_scale_factor`이며, `number of tuples`는 `pg_class.reltuples`입니다.

데이터베이스에 연결되어 있는 상태에서 다음 쿼리를 실행하여 autovacuum이 vacuum 가능한 대상으로 분류하는 테이블 목록을 확인합니다.

```
WITH vbt AS (SELECT setting AS autovacuum_vacuum_threshold FROM 
pg_settings WHERE name = 'autovacuum_vacuum_threshold'),
vsf AS (SELECT setting AS autovacuum_vacuum_scale_factor FROM 
pg_settings WHERE name = 'autovacuum_vacuum_scale_factor'), 
fma AS (SELECT setting AS autovacuum_freeze_max_age FROM pg_settings WHERE name = 'autovacuum_freeze_max_age'),
sto AS (select opt_oid, split_part(setting, '=', 1) as param,
split_part(setting, '=', 2) as value from (select oid opt_oid, unnest(reloptions) setting from pg_class) opt)
SELECT '"'||ns.nspname||'"."'||c.relname||'"' as relation,
pg_size_pretty(pg_table_size(c.oid)) as table_size,
age(relfrozenxid) as xid_age,
coalesce(cfma.value::float, autovacuum_freeze_max_age::float) autovacuum_freeze_max_age,
(coalesce(cvbt.value::float, autovacuum_vacuum_threshold::float) +
coalesce(cvsf.value::float,autovacuum_vacuum_scale_factor::float) * c.reltuples)
AS autovacuum_vacuum_tuples, n_dead_tup as dead_tuples FROM
pg_class c join pg_namespace ns on ns.oid = c.relnamespace 
join pg_stat_all_tables stat on stat.relid = c.oid join vbt on (1=1) join vsf on (1=1) join fma on (1=1)
left join sto cvbt on cvbt.param = 'autovacuum_vacuum_threshold' and c.oid = cvbt.opt_oid 
left join sto cvsf on cvsf.param = 'autovacuum_vacuum_scale_factor' and c.oid = cvsf.opt_oid
left join sto cfma on cfma.param = 'autovacuum_freeze_max_age' and c.oid = cfma.opt_oid
WHERE c.relkind = 'r' and nspname <> 'pg_catalog'
AND (age(relfrozenxid) >= coalesce(cfma.value::float, autovacuum_freeze_max_age::float)
OR coalesce(cvbt.value::float, autovacuum_vacuum_threshold::float) + 
coalesce(cvsf.value::float,autovacuum_vacuum_scale_factor::float) * 
c.reltuples <= n_dead_tup)
ORDER BY age(relfrozenxid) DESC LIMIT 50;
```

# 현재 Autovacuum이 실행 중인지 여부 및 실행 기간 확인
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum.AutovacuumRunning"></a>

테이블을 수동으로 vacuum해야 하는 경우 autovacuum이 현재 실행 중인지 확인합니다. 실행 중이면 더 효율적으로 실행되도록 파라미터를 수정하거나 VACUUM을 수동으로 실행할 수 있도록 일시적으로 autovacuum을 종료해야 합니다.

다음 쿼리를 사용하여 autovacuum이 실행 중인지 여부와 얼마 동안 실행되고 있는지, 다른 세션에 대해 대기하고 있는지 확인합니다.

```
SELECT datname, usename, pid, state, wait_event, current_timestamp - xact_start AS xact_runtime, query
FROM pg_stat_activity 
WHERE upper(query) LIKE '%VACUUM%' 
ORDER BY xact_start;
```

쿼리를 실행하면 다음과 유사한 출력이 표시됩니다.

```
 datname | usename  |  pid  | state  | wait_event |      xact_runtime       | query  
 --------+----------+-------+--------+------------+-------------------------+--------------------------------------------------------------------------------------------------------
 mydb    | rdsadmin | 16473 | active |            | 33 days 16:32:11.600656 | autovacuum: VACUUM ANALYZE public.mytable1 (to prevent wraparound)
 mydb    | rdsadmin | 22553 | active |            | 14 days 09:15:34.073141 | autovacuum: VACUUM ANALYZE public.mytable2 (to prevent wraparound)
 mydb    | rdsadmin | 41909 | active |            | 3 days 02:43:54.203349  | autovacuum: VACUUM ANALYZE public.mytable3
 mydb    | rdsadmin |   618 | active |            | 00:00:00                | SELECT datname, usename, pid, state, wait_event, current_timestamp - xact_start AS xact_runtime, query+
         |          |       |        |            |                         | FROM pg_stat_activity                                                                                 +
         |          |       |        |            |                         | WHERE query like '%VACUUM%'                                                                           +
         |          |       |        |            |                         | ORDER BY xact_start;                                                                                  +
```

몇 가지 문제로 인해 autovacuum 세션이 오래(며칠간) 실행될 수 있습니다. 이 문제는 대부분 [https://www.postgresql.org/docs/current/static/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM](https://www.postgresql.org/docs/current/static/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM) 파라미터 값이 테이블 크기 또는 업데이트 속도에 대해 너무 낮게 설정된 경우입니다.

다음 공식을 사용하여 `maintenance_work_mem` 파라미터 값을 설정하는 것이 좋습니다.

```
GREATEST({DBInstanceClassMemory/63963136*1024},65536)
```

짧은 기간 동안 실행되는 autovacuum 세션에서도 문제를 표시할 수 있습니다.
+ 워크로드에 `autovacuum_max_workers`가 충분하지 않다고 표시될 수 있습니다. 이 경우 작업자 수를 명시해야 합니다.
+ 인덱스 손상(autovacuum에 충돌이 발생하여 동일한 관계에서 다시 시작되지만 진행되지 않음)이 있다고 표시될 수 있습니다. 이 경우에는 `vacuum freeze verbose table` 매뉴얼을 실행하여 정확한 원인을 확인합니다.

# 수동 vacuum freeze 수행
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum.VacuumFreeze"></a>

vacuum 프로세스가 실행되고 있는 테이블에서 수동 vacuum을 수행하려는 경우가 있습니다. 이 작업은 수명이 20억 개 트랜잭션에 도달하거나 모니터링 중인 임계값을 초과한 테이블을 파악해 둔 경우 유용합니다.

다음 단계는 지침으로 이 프로세스를 여러 가지로 변형할 수 있습니다. 예를 들어 테스트 중에 [https://www.postgresql.org/docs/current/static/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM](https://www.postgresql.org/docs/current/static/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM) 파라미터 값이 너무 작게 설정되었고 테이블에 작업을 즉시 수행해야 한다고 가정해보겠습니다. 그러나 지금은 인스턴스를 반송하고 싶지 않을 수도 있습니다. 이전 세션의 쿼리를 사용하여 어떤 테이블이 문제이고 오랜 기간 동안 실행 중인 autovacuum 세션이 있는지 확인합니다. `maintenance_work_mem` 파라미터 설정도 변경해야 하지만 즉시 조치를 취해 문제가 되는 테이블을 vacuum해야 하기도 합니다. 이 경우 어떤 작업을 수행해야 하는지가 다음 절차에 나와 있습니다.

**vacuum freeze를 수동으로 수행하려면**

1. vacuum할 테이블이 포함되어 있는 데이터베이스에 세션 두 개를 엽니다. 두 번째 세션의 경우 "screen"을 사용하거나 연결이 끊긴 경우 세션을 유지하는 다른 유틸리티를 사용합니다.

1. 첫 번째 세션에서는 테이블에서 실행 중인 autovacuum 세션의 프로세스 ID(PID)를 가져옵니다.

   다음 쿼리를 실행하여 autovacuum 세션의 PID를 가져옵니다.

   ```
   SELECT datname, usename, pid, current_timestamp - xact_start 
   AS xact_runtime, query
   FROM pg_stat_activity WHERE upper(query) LIKE '%VACUUM%' ORDER BY 
   xact_start;
   ```

1. 세션 2에서 이 작업에 필요한 메모리 양을 계산합니다. 이 예제에서는 이 작업에 메모리를 최대 2GB까지 사용할 수 있는 것으로 보고 현재 세션의 [https://www.postgresql.org/docs/current/static/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM](https://www.postgresql.org/docs/current/static/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM)을 2GB로 설정합니다.

   ```
   SET maintenance_work_mem='2 GB';
   SET
   ```

1. 세션 2에서 테이블에 대한 `vacuum freeze verbose` 명령을 실행하십시오. 현재 PostgreSQL에서 이 작업에 대한 진행률 보고가 없음에도 작업을 확인할 수 있기 때문에 상세 정보 표시 설정이 유용하게 사용됩니다.

   ```
   \timing on
   Timing is on.
   vacuum freeze verbose pgbench_branches;
   ```

   ```
   INFO:  vacuuming "public.pgbench_branches"
   INFO:  index "pgbench_branches_pkey" now contains 50 row versions in 2 pages
   DETAIL:  0 index row versions were removed.
   0 index pages have been deleted, 0 are currently reusable.
   CPU 0.00s/0.00u sec elapsed 0.00 sec.
   INFO:  index "pgbench_branches_test_index" now contains 50 row versions in 2 pages
   DETAIL:  0 index row versions were removed.
   0 index pages have been deleted, 0 are currently reusable.
   CPU 0.00s/0.00u sec elapsed 0.00 sec.
   INFO:  "pgbench_branches": found 0 removable, 50 nonremovable row versions 
        in 43 out of 43 pages
   DETAIL:  0 dead row versions cannot be removed yet.
   There were 9347 unused item pointers.
   0 pages are entirely empty.
   CPU 0.00s/0.00u sec elapsed 0.00 sec.
   VACUUM
   Time: 2.765 ms
   ```

1. 세션 1에서 autovacuum이 vacuum 세션을 차단한 경우 `pg_stat_activity`에서 vacuum 세션에 대한 대기를 나타내는 `T`를 확인할 수 있습니다. 이 경우 다음과 같이 autovacuum 프로세스를 종료합니다.

   ```
   SELECT pg_terminate_backend('the_pid'); 
   ```
**참고**  
Amazon Aurora의 일부 하위 버전은 위의 명령을 사용하여 autovacuum 프로세스를 종료할 수 없으며 `ERROR: 42501: must be a superuser to terminate superuser process LOCATION: pg_terminate_backend, signalfuncs.c:227` 오류와 함께 작업이 실패합니다. 패치된 PostgreSQL 버전을 찾으려면 [Amazon Aurora PostgreSQL 업데이트](https://docs.aws.amazon.com/')에서 다음 글머리 기호를 검색합니다.  

   ```
   Allow rds_superuser to terminate backends which are not explicitly associated with a role
   ```

   이때 세션이 시작됩니다. 이 테이블이 작업 목록에서 가장 상위에 있을 것이므로 autovacuum이 즉시 재시작됩니다.

1. 세션 2에서 `vacuum freeze verbose` 명령을 시작한 다음 세션 1에서 autovacuum 프로세스를 종료합니다.

# Autovacuum이 실행 중인 경우 테이블 인덱스 다시 지정
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum.Reindexing"></a>

인덱스가 손상되면 autovacuum은 계속해서 테이블을 처리하려 하고 실패합니다. 이 경우 수동 vacuum을 시도하면 다음과 비슷한 오류 메시지가 표시됩니다.

```
postgres=>  vacuum freeze pgbench_branches;
ERROR: index "pgbench_branches_test_index" contains unexpected 
   zero page at block 30521
HINT: Please REINDEX it.
```

인덱스가 손상된 상태에서 테이블에 대해 autovacuum을 실행하려고 하면 이미 실행 중인 autovacuum 세션이 있음을 확인하게 됩니다. [REINDEX](https://www.postgresql.org/docs/current/static/sql-reindex.html) 명령을 실행하면 테이블에 대한 단독 잠금을 해제합니다. 쓰기 작업과 해당 특정 인덱스를 사용하는 읽기 작업도 차단됩니다.

**테이블에서 autovacuum을 실행할 때 테이블 인덱스를 다시 지정하려면**

1. vacuum할 테이블이 포함되어 있는 데이터베이스에 세션 두 개를 엽니다. 두 번째 세션의 경우 "screen"을 사용하거나 연결이 끊긴 경우 세션을 유지하는 다른 유틸리티를 사용합니다.

1. 첫 번째 세션에서는 테이블에서 실행 중인 autovacuum 세션의 PID를 가져옵니다.

   다음 쿼리를 실행하여 autovacuum 세션의 PID를 가져옵니다.

   ```
   SELECT datname, usename, pid, current_timestamp - xact_start 
   AS xact_runtime, query
   FROM pg_stat_activity WHERE upper(query) like '%VACUUM%' ORDER BY 
   xact_start;
   ```

1. 세션 2에서 reindex 명령을 실행합니다.

   ```
   \timing on
   Timing is on.
   reindex index pgbench_branches_test_index;
   REINDEX
     Time: 9.966 ms
   ```

1. 세션 1에서 autovacuum이 프로세스를 차단한 경우 `pg_stat_activity`에서 vacuum 세션에 대한 대기를 나타내는 "T"를 확인할 수 있습니다. 이 경우에는 autovacuum 프로세스를 종료합니다.

   ```
   SELECT pg_terminate_backend('the_pid');
   ```

   이때 세션이 시작됩니다. 이 테이블이 작업 목록에서 가장 상위에 있을 것이므로 autovacuum이 즉시 다시 시작된다는 점을 알아 두어야 합니다.

1. 세션 2에서 명령을 시작한 다음 세션 1에서 autovacuum 프로세스를 종료합니다.

# 대용량 인덱스를 사용하여 autovacuum 관리
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum.LargeIndexes"></a>

작업 중에 *autovacuum*은 테이블에서 실행되는 동안 여러 [ vacuum 단계를](https://www.postgresql.org/docs/current/progress-reporting.html#VACUUM-PHASES) 수행합니다. 테이블을 정리하기 전에 먼저 모든 인덱스에 vacuum을 실행합니다. 여러 개의 대용량 인덱스를 제거할 경우, 이 단계는 상당한 시간과 리소스를 사용합니다. 따라서 테이블의 인덱스 수를 제어하고 사용하지 않는 인덱스를 제거하는 것이 가장 좋습니다.

이 프로세스에서는 먼저 전체 인덱스 크기를 확인합니다. 그런 다음, 다음 예제에 나온 것처럼 제거할 수 있는 사용하지 않는 인덱스가 있는지 확인합니다.

**테이블 및 해당 인덱스의 크기를 확인하려면**

```
postgres=> select pg_size_pretty(pg_relation_size('pgbench_accounts'));
pg_size_pretty
6404 MB
(1 row)
```

```
postgres=> select pg_size_pretty(pg_indexes_size('pgbench_accounts'));
pg_size_pretty
11 GB
(1 row)
```

이 예제에서는 인덱스 크기가 테이블보다 큽니다. 이러한 차이로 인해 인덱스가 팽창하거나 사용되지 않아 성능 문제가 발생하여 autovacuum 및 삽입 작업에 영향을 미칠 수 있습니다.

**사용하지 않는 인덱스를 확인하려면**

[https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-ALL-INDEXES-VIEW](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-ALL-INDEXES-VIEW) 보기를 사용하면 인덱스가 `idx_scan` 열에 사용되는 빈도를 확인할 수 있습니다. 다음 예제를 보면 사용하지 않은 인덱스는 `idx_scan` 값이 `0`입니다.

```
postgres=> select * from pg_stat_user_indexes where relname = 'pgbench_accounts' order by idx_scan desc;
    
relid  | indexrelid | schemaname | relname          | indexrelname          | idx_scan | idx_tup_read | idx_tup_fetch
-------+------------+------------+------------------+-----------------------+----------+--------------+---------------
16433  | 16454      | public     | pgbench_accounts | index_f               | 6        | 6            | 0
16433  | 16450      | public     | pgbench_accounts | index_b               | 3        | 199999       | 0
16433  | 16447      | public     | pgbench_accounts | pgbench_accounts_pkey | 0        | 0            | 0
16433  | 16452      | public     | pgbench_accounts | index_d               | 0        | 0            | 0
16433  | 16453      | public     | pgbench_accounts | index_e               | 0        | 0            | 0
16433  | 16451      | public     | pgbench_accounts | index_c               | 0        | 0            | 0
16433  | 16449      | public     | pgbench_accounts | index_a               | 0        | 0            | 0
(7 rows)
```

```
postgres=> select schemaname, relname, indexrelname, idx_scan from pg_stat_user_indexes where relname = 'pgbench_accounts' order by idx_scan desc;
    
schemaname  | relname          | indexrelname          | idx_scan
------------+------------------+-----------------------+----------
public      | pgbench_accounts | index_f               | 6
public      | pgbench_accounts | index_b               | 3
public      | pgbench_accounts | pgbench_accounts_pkey | 0
public      | pgbench_accounts | index_d               | 0
public      | pgbench_accounts | index_e               | 0
public      | pgbench_accounts | index_c               | 0
public      | pgbench_accounts | index_a               | 0
(7 rows)
```

**참고**  
이러한 통계는 통계가 재설정된 시점부터 증분됩니다. 사업 분기 말에만 사용되거나 특정 보고서에만 사용되는 인덱스가 있는 경우를 가정해 보겠습니다. 통계가 재설정된 이후로 이 인덱스가 사용되지 않았을 수 있습니다. 자세한 내용은 [Statistics Functions](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-STATS-FUNCTIONS)(통계 함수)를 참조하세요. 고유성을 적용하는 데 사용되는 인덱스는 스캔이 실행되지 않으므로 사용하지 않는 인덱스로 식별해선 안 됩니다. 사용하지 않는 인덱스를 식별하려면 애플리케이션 및 해당 쿼리에 대한 심층적인 지식이 있어야 합니다.

데이터베이스의 통계가 마지막으로 재설정된 시간을 확인하려면 [ https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-DATABASE-VIEW]( https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-DATABASE-VIEW)를 사용하세요.

```
postgres=> select datname, stats_reset from pg_stat_database where datname = 'postgres';
    
datname   | stats_reset
----------+-------------------------------
postgres  | 2022-11-17 08:58:11.427224+00
(1 row)
```

## 테이블에 최대한 신속하게 Vacuum을 실행하는 방법
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum.LargeIndexes.Executing"></a>

**RDS for PostgreSQL 12 이상**

대형 테이블에 인덱스가 너무 많으면 DB 인스턴스가 트랜잭션 ID 랩어라운드(XID)에 가까워질 수 있는데, 이때 XID 카운터가 0으로 래핑됩니다. 이 옵션을 선택하지 않으면 데이터가 손실될 수 있습니다. 그러나 인덱스를 정리하지 않고도 테이블에 신속하게 vacuum을 실행할 수 있습니다. RDS for PostgreSQL 12에서는 [https://www.postgresql.org/docs/current/sql-vacuum.html](https://www.postgresql.org/docs/current/sql-vacuum.html) 절과 함께 VACUUM을 사용할 수 있습니다.

```
postgres=> VACUUM (INDEX_CLEANUP FALSE, VERBOSE TRUE) pgbench_accounts;
        
INFO: vacuuming "public.pgbench_accounts"
INFO: table "pgbench_accounts": found 0 removable, 8 nonremovable row versions in 1 out of 819673 pages
DETAIL: 0 dead row versions cannot be removed yet, oldest xmin: 7517
Skipped 0 pages due to buffer pins, 0 frozen pages.
CPU: user: 0.01 s, system: 0.00 s, elapsed: 0.01 s.
```

autovacuum 세션이 이미 실행 중인 경우, 해당 세션을 종료하여 수동 VACUUM을 시작해야 합니다. 수동 vacuum freeze 수행에 대한 자세한 내용은 [수동 vacuum freeze 수행](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.VacuumFreeze.md) 섹션을 참조하세요.

**참고**  
주기적인 인덱스 정리를 건너뛰면 인덱스 팽창이 발생하여 스캔 성능이 다운그레이드될 수 있습니다. 인덱스는 데드 행을 유지하고 테이블은 데드 라인 포인터를 유지합니다. 따라서 `pg_stat_all_tables.n_dead_tup`는 인덱스 정리가 포함된 수동 VACUUM 또는 autovacuum이 실행될 때까지 증가합니다. 가장 좋은 방법은 이 프로시저만 사용하여 트랜잭션 ID 랩어라운드를 방지하는 것입니다.

**RDS for PostgreSQL 11 이상**

그러나 RDS for PostgreSQL 11 이하 버전에서 vacuum을 더 신속하게 완료할 수 있는 유일한 방법은 테이블의 인덱스 수를 줄이는 것입니다. 인덱스를 삭제하면 쿼리 계획에 영향을 미칠 수 있습니다. 사용하지 않는 인덱스를 먼저 삭제한 다음, XID 랩어라운드가 매우 가까워졌을 때 인덱스를 삭제하는 것이 좋습니다. vacuum 프로세스가 완료되면 이러한 인덱스를 다시 생성할 수 있습니다.

# Autovacuum에 영향을 주는 기타 파라미터
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum.OtherParms"></a>

이 쿼리를 사용하면 autovacuum 및 해당 동작에 직접 영향을 주는 일부 파라미터 값이 표시됩니다. [autovacuum 파라미터](https://www.postgresql.org/docs/current/static/runtime-config-autovacuum.html)는 PostgreSQL 설명서에 자세히 설명되어 있습니다.

```
SELECT name, setting, unit, short_desc
FROM pg_settings
WHERE name IN (
'autovacuum_max_workers',
'autovacuum_analyze_scale_factor',
'autovacuum_naptime',
'autovacuum_analyze_threshold',
'autovacuum_analyze_scale_factor',
'autovacuum_vacuum_threshold',
'autovacuum_vacuum_scale_factor',
'autovacuum_vacuum_threshold',
'autovacuum_vacuum_cost_delay',
'autovacuum_vacuum_cost_limit',
'vacuum_cost_limit',
'autovacuum_freeze_max_age',
'maintenance_work_mem',
'vacuum_freeze_min_age');
```

모두 autovacuum에 영향을 주지만 가장 중요한 사항 몇 가지는 다음과 같습니다.
+ [maintenance\$1work\$1mem](https://www.postgresql.org/docs/current/static/runtime-config-resource.html#GUC-MAINTENANCE_WORK_MEM)
+ [autovacuum\$1freeze\$1max\$1age](https://www.postgresql.org/docs/current/static/runtime-config-autovacuum.html#GUC-AUTOVACUUM-FREEZE-MAX-AGE)
+ [autovacuum\$1max\$1workers](https://www.postgresql.org/docs/current/static/runtime-config-autovacuum.html#GUC-AUTOVACUUM-MAX-WORKERS)
+ [autovacuum\$1vacuum\$1cost\$1delay](https://www.postgresql.org/docs/current/static/runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-COST-DELAY)
+ [ autovacuum\$1vacuum\$1cost\$1limit](https://www.postgresql.org/docs/current/static/runtime-config-autovacuum.html#GUC-AUTOVACUUM-VACUUM-COST-LIMIT)

# 테이블 수준 Autovacuum 파라미터 설정
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum.TableParameters"></a>

Autovacuum이 관련된 [스토리지 파라미터](https://www.postgresql.org/docs/current/static/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS)를 테이블 수준에서 설정할 수 있습니다. 이 방법은 전체 데이터베이스의 동작을 변경하는 방법보다 더 나을 수 있습니다. 큰 테이블에 적극적인 설정을 지정해야 하지만 autovacuum이 모든 테이블에서 이와 같은 방식으로 작동하지 않도록 하려는 경우가 있을 수 있습니다.

이 쿼리를 사용하면 현재 어떤 테이블에 테이블 수준 옵션을 사용 중인지가 표시됩니다.

```
SELECT relname, reloptions
FROM pg_class
WHERE reloptions IS NOT null;
```

이 쿼리가 유용한 경우는 테이블 하나가 나머지 테이블보다 훨씬 더 큰 경우입니다. 300GB 테이블 하나와 1GB 미만의 테이블 30개가 있다고 가정하십시오. 이 경우 더 큰 테이블에 특정 파라미터를 설정하여 전체 시스템의 동작이 변경되지 않도록 할 수 있습니다.

```
ALTER TABLE mytable set (autovacuum_vacuum_cost_delay=0);
```

이렇게 하면 시스템의 리소스를 더 많이 사용하는 대신 이 테이블의 비용에 따른 autovacuum 지연이 비활성화됩니다. 일반적으로 매시간 `autovacuum_cost_limit`에 도달한 `autovacuum_vacuum_cost_delay`의 autovacuum이 일시 중지됩니다. 자세한 내용은 [비용에 따른 vacuum 수행](https://www.postgresql.org/docs/current/static/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-VACUUM-COST)에 대한 PostgreSQL 설명서에서 확인할 수 있습니다.

# autovacuum 및 vacuum 활동 로그
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum.Logging"></a>

autovacuum 활동에 대한 정보는 `rds.force_autovacuum_logging_level` 파라미터에 지정된 레벨을 기반으로 `postgresql.log`에 전송됩니다. 다음은 이 파라미터와 PostgreSQL 버전에 허용되는 해당 값이 기본 설정인 값입니다.
+ `disabled`(PostgreSQL 10, PostgreSQL 9.6)
+ `debug5`, `debug4`, `debug3`, `debug2`, `debug1`
+ `info`(PostgreSQL 12, PostgreSQL 11)
+ `notice`
+ `warning`(PostgreSQL 13 이상)
+ `error`, 로그, `fatal`, `panic` 

`rds.force_autovacuum_logging_level`은 `log_autovacuum_min_duration` 파라미터와 함께 작동합니다. `log_autovacuum_min_duration` 파라미터 값은 autovacuum 작업이 기록되는 임계값(밀리초) 이상입니다. `-1`로 설정하면 아무것도 기록하지 않지만 0으로 설정하면 모든 작업이 기록됩니다. `rds.force_autovacuum_logging_level`과 마찬가지로 `log_autovacuum_min_duration`의 기본값은 다음과 같이 버전에 따라 다릅니다.
+ `10000 ms` - PostgreSQL 14, PostgreSQL 13, PostgreSQL 12, PostgreSQL 11 
+ `(empty)` - PostgreSQL 10 및 PostgreSQL 9.6 기본값 없음

`rds.force_autovacuum_logging_level`을 `WARNING`로 설정하는 것이 좋습니다. 또한 `log_autovacuum_min_duration`을 1000에서 5000까지의 값으로 설정하는 것이 좋습니다. 5,000밀리초 이상 걸리는 5000개의 기록 활동 설정. -1을 제외한 모든 설정은 충돌하는 잠금 또는 동시에 삭제된 관계로 인해 autovacuum 작업을 건너뛴 경우에도 메시지를 기록합니다. 자세한 내용은 PostgreSQL 설명서의 [자동 Vacuuming](https://www.postgresql.org/docs/current/runtime-config-autovacuum.html)을 참조하세요.

문제를 해결하려면 `rds.force_autovacuum_logging_level` 매개 변수를 상세 표시 정보에 대해 `debug1`부터 `debug5`까지의 디버그 레벨 중 하나로 변경할 수 있습니다. 디버그 설정은 단기 문제 해결 목적으로만 사용하는 것이 좋습니다. 자세한 내용은 PostgreSQL의 [로그 시기](https://www.postgresql.org/docs/current/static/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-WHEN) 문서를 참조하세요.

**참고**  
PostgreSQL을 사용하면 `rds_superuser` 계정에서 `pg_stat_activity`의 autovacuum 세션을 볼 수 있습니다. 예: 명령의 실행을 차단하거나, 수동으로 실행한 vacuum 명령보다 느리게 실행되는 autovacuum 세션을 식별 및 종료 가능

# 잘못된 데이터베이스를 사용한 autovacuum 동작 이해
<a name="appendix.postgresql.commondbatasks.autovacuumbehavior"></a>

 DROP DATABASE 작업 도중에 중단된 데이터베이스를 유효하지 않은 것으로 나타내는 새 `-2` 값이 `pg_database` 카탈로그의 `datconnlimit` 열에 도입되었습니다.

 이 새 값은 다음과 같은 Aurora PostgreSQL 버전에서 사용할 수 있습니다.
+ 15.4 이상의 모든 버전
+ 14.9 이상 버전
+ 13.12 이상 버전
+ 12.16 이상 버전
+ 11.21 이상 버전

잘못된 데이터베이스는 유효한 데이터베이스의 기능을 중지하는 autovacuum 기능에 영향을 주지 않습니다. autovacuum은 잘못된 데이터베이스를 무시합니다. 따라서 PostgreSQL 환경의 모든 유효한 데이터베이스에 대해 정기적인 vacuum 작업이 계속해서 적절하고 효율적으로 작동합니다.

**Topics**
+ [트랜잭션 ID 모니터링](#appendix.postgresql.commondbatasks.autovacuum.monitorxid)
+ [모니터링 쿼리 조정](#appendix.postgresql.commondbatasks.autovacuum.monitoradjust)
+ [잘못된 데이터베이스 문제 해결](#appendix.postgresql.commondbatasks.autovacuum.connissue)

## 트랜잭션 ID 모니터링
<a name="appendix.postgresql.commondbatasks.autovacuum.monitorxid"></a>

 `age(datfrozenxid)` 함수는 일반적으로 데이터베이스의 트랜잭션 ID(XID) 수명을 모니터링하여 트랜잭션 ID 랩어라운드를 방지하는 데 사용됩니다.

 유효하지 않은 데이터베이스는 autovacuum에서 제외되므로, 트랜잭션 ID(XID) 횟수가 최대값인 `2 billion`에 도달하여 `- 2 billion`로 순환하며 이 주기를 무한정 계속할 수 있습니다. 트랜잭션 ID 랩어라운드를 모니터링하는 일반적인 쿼리는 다음과 같습니다.

```
SELECT max(age(datfrozenxid)) FROM pg_database;
```

그러나 `datconnlimit`에 대한 -2 값이 도입되면 잘못된 데이터베이스가 이 쿼리의 결과를 왜곡할 수 있습니다. 이러한 데이터베이스는 유효하지 않으며 정기적인 유지 관리 검사에 포함되어서는 안 되므로, 오탐을 유발할 수 있어 실제보다 `age(datfrozenxid)`가 높다고 믿게 됩니다.

## 모니터링 쿼리 조정
<a name="appendix.postgresql.commondbatasks.autovacuum.monitoradjust"></a>

 정확한 모니터링을 위해서는 잘못된 데이터베이스를 제외하도록 모니터링 쿼리를 조정해야 합니다. 다음 권장 쿼리를 따르세요.

```
SELECT
    max(age(datfrozenxid))
FROM
    pg_database
WHERE
    datconnlimit <> -2;
```

이 쿼리를 사용하면 PostgreSQL 환경 전체의 트랜잭션 ID 사용 기간을 정확하게 반영하여 유효한 데이터베이스만 `age(datfrozenxid)` 계산에 고려합니다.

## 잘못된 데이터베이스 문제 해결
<a name="appendix.postgresql.commondbatasks.autovacuum.connissue"></a>

 잘못된 데이터베이스에 연결하려고 하면 다음과 같은 오류 메시지가 표시될 수 있습니다.

```
postgres=> \c db1
connection to server at "mydb.xxxxxxxxxx.us-west-2.rds.amazonaws.com" (xx.xx.xx.xxx), port xxxx failed: FATAL:  cannot connect to invalid database "db1"
HINT:  Use DROP DATABASE to drop invalid databases.
Previous connection kept
```

 또한, `log_min_messages` 파라미터가 `DEBUG2` 이상으로 설정된 경우 autovacuum 프로세스가 잘못된 데이터베이스를 건너뛰고 있음을 나타내는 다음과 같은 로그 항목을 확인할 수 있습니다.

```
       
2024-07-30 05:59:00 UTC::@:[32000]:DEBUG:  autovacuum: skipping invalid database "db6"
2024-07-30 05:59:00 UTC::@:[32000]:DEBUG:  autovacuum: skipping invalid database "db1"
```

이 문제를 해결하려면 연결 시도 중에 제공된 `HINT`를 따르세요. RDS 마스터 계정 또는 `rds_superuser` 역할이 있는 데이터베이스 계정을 사용하여 유효한 데이터베이스에 연결하고 잘못된 데이터베이스를 삭제합니다.

```
SELECT
    'DROP DATABASE ' || quote_ident(datname) || ';'
FROM
    pg_database
WHERE
    datconnlimit = -2 \gexec
```

# Aurora PostgreSQL에서 공격적인 vacuum 블로커 식별 및 해결
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring"></a>

PostgreSQL에서는 vacuum 작업이 스토리지를 회수하고 [트랜잭션 ID 랩어라운드](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND) 문제를 방지하기 때문에 데이터베이스의 좋은 상태를 위해 vacuum 작업이 중요합니다. 그러나 vacuum 작업이 원하는 대로 작동하지 않게 되는 경우가 있어 성능이 저하되고, 스토리지가 팽창하고, 트랜잭션 ID 랩어라운드로 인해 DB 인스턴스의 가용성이 영향을 받을 수 있습니다. 따라서 최적의 데이터베이스 성능과 가용성을 위해서는 이러한 문제를 식별하고 해결하는 것이 필수적입니다. Autovacuum에 대해 자세히 알아보려면 [Understanding autovacuum in Amazon RDS for PostgreSQL environments](https://aws.amazon.com/blogs/database/understanding-autovacuum-in-amazon-rds-for-postgresql-environments/)를 읽어보세요.

`postgres_get_av_diag()` 함수는 공격적 vacuum 진행 상황을 방지하거나 지연시키는 문제를 식별하는 데 도움이 됩니다. 제안이 제공되며, 여기에는 문제를 식별할 수 있는 경우 문제 해결을 위한 명령이, 문제를 식별할 수 없는 경우 추가 진단을 위한 지침이 포함될 수 있습니다. 공격적 vacuum 블로커는 연령이 RDS의 [적응형 autovacuum](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum.AdaptiveAutoVacuuming) 임곗값인 트랜잭션 ID 5억 개를 초과할 때 보고됩니다.

**트랜잭션 ID의 연령이란 무엇인가요?**

트랜잭션 ID에 대한 `age()` 함수는 데이터베이스(`pg_database.datfrozenxid`) 또는 테이블(`pg_class.relfrozenxid`)에 대해 가장 오래된 고정되지 않은 트랜잭션 ID 이후 발생한 트랜잭션 수를 계산합니다. 이 값은 마지막 공격적 vacuum 작업 이후의 데이터베이스 활동을 나타내며 향후 VACUUM 프로세스에 대해 가능한 워크로드를 강조합니다.

**공격적 vacuum이란 무엇인가요?**

공격적인 VACUUM 작업은 일반적인 VACUUM에서는 대개 건너 뛰는 페이지를 포함하여 테이블 내에 있는 모든 페이지에 대한 종합적인 스캔을 수행합니다. 이 철저한 스캔의 목표는 최대 연령에 근접한 트랜잭션 ID를 '고정'하여 [트랜잭션 ID 랩어라운드](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND)라고 하는 상황을 효과적으로 방지하는 것을 목표로 합니다.

`postgres_get_av_diag()`가 블로커를 보고하려면 블로커의 연령이 최소 5억 개의 트랜잭션이어야 합니다.

**Topics**
+ [Aurora PostgreSQL에 자동 정리 모니터링 및 진단 도구 설치](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Installation.md)
+ [Aurora PostgreSQL의 postgres\$1get\$1av\$1diag() 기능](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Functions.md)
+ [Aurora PostgreSQL에서 식별 가능한 vacuum 블로커 해결](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md)
+ [Aurora PostgreSQL에서 식별 불가능한 vacuum 블로커 해결](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Unidentifiable_blockers.md)
+ [Aurora PostgreSQL의 vacuum 성능 문제 해결](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Performance.md)
+ [Aurora PostgreSQL의 NOTICE 메시지 설명](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.NOTICE.md)

# Aurora PostgreSQL에 자동 정리 모니터링 및 진단 도구 설치
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Installation"></a>

`postgres_get_av_diag()` 함수는 현재 다음 Aurora PostgreSQL 버전에서 사용할 수 있습니다.
+ 17.4 이상의 17 버전
+ 16.7 이상의 16 버전
+ 15.11 이상의 15 버전
+ 14.16 이상의 14 버전
+ 13.19 이상의 13 버전

 `postgres_get_av_diag()`를 사용하려면 `rds_tools` 확장을 만듭니다.

```
postgres=> CREATE EXTENSION rds_tools ;
CREATE EXTENSION
```

확장이 설치되어 있는지 확인합니다.

```
postgres=> \dx rds_tools
             List of installed extensions
   Name    | Version |  Schema   |                    Description
 ----------+---------+-----------+----------------------------------------------------------
 rds_tools |   1.9   | rds_tools | miscellaneous administrative functions for RDS PostgreSQL
 1 row
```

함수가 만들어졌는지 확인합니다.

```
postgres=> SELECT
    proname function_name,
    pronamespace::regnamespace function_schema,
    proowner::regrole function_owner
FROM
    pg_proc
WHERE
    proname = 'postgres_get_av_diag';
    function_name     | function_schema | function_owner
----------------------+-----------------+----------------
 postgres_get_av_diag | rds_tools       | rds_superuser
(1 row)
```

# Aurora PostgreSQL의 postgres\$1get\$1av\$1diag() 기능
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Functions"></a>

`postgres_get_av_diag()` 함수는 Aurora PostgreSQL 데이터베이스에서 차단하거나 지연되는 자동 정리 프로세스에 대한 진단 정보를 검색합니다. 정확한 결과를 얻으려면 가장 오래된 트랜잭션 ID로 데이터베이스에서 쿼리를 실행해야 합니다. 가장 오래된 트랜잭션 ID로 데이터베이스를 사용하는 방법에 대한 자세한 내용은 [Not connected to the database with the age of oldest transaction ID](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.NOTICE.md)를 참조하세요.

```
SELECT
    blocker,
    DATABASE,
    blocker_identifier,
    wait_event,
    TO_CHAR(autovacuum_lagging_by, 'FM9,999,999,999') AS autovacuum_lagging_by,
    suggestion,
    suggested_action
FROM (
    SELECT
        *
    FROM
        rds_tools.postgres_get_av_diag ()
    ORDER BY
        autovacuum_lagging_by DESC) q;
```

`postgres_get_av_diag()` 함수는 다음 정보를 반환합니다.

**blocker**  
Vacuum을 차단하는 데이터베이스 활동의 범주를 보여줍니다.  
+ [활성 문](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Active_statement)
+ [트랜잭션의 유휴 상태](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Idle_in_transaction)
+ [준비된 트랜잭션](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Prepared_transaction)
+ [논리적 복제 슬롯](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Logical_replication_slot)
+ [리더 인스턴스](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Reader_instances)
+ [임시 테이블](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Temporary_tables)

**데이터베이스**  
적용 가능하고 지원되는 경우 데이터베이스의 이름을 보여줍니다. 활동이 진행 중이고 autovacuum을 차단 중이거나 차단할 데이터베이스입니다. 연결하고 조치를 취해야 하는 데이터베이스입니다.

**blocker\$1identifier**  
Autovacuum을 차단 중이거나 차단할 활동의 식별자를 보여줍니다. 식별자는 SQL 문, 준비된 트랜잭션, 읽기 전용 복제본의 IP 주소, 논리적 또는 물리적 복제 슬롯의 이름과 함께 프로세스 ID일 수 있습니다.

**wait\$1event**  
차단 세션의 [대기 이벤트](AuroraPostgreSQL.Tuning.md)를 지정하고 다음 블로커에 적용할 수 있습니다.  
+ 활성 문
+ 트랜잭션의 유휴 상태

**autovacum\$1lagging\$1by**  
범주당 백로그 작업에서 autovacuum이 지연되는 트랜잭션 수를 보여줍니다.

**suggestion**  
블로커를 해결하기 위한 제안을 보여줍니다. 이러한 지침에는 해당하는 경우 활동이 존재하는 데이터베이스의 이름, 해당하는 경우 세션의 프로세스 ID(PID) 및 수행할 작업이 포함됩니다.

**suggested\$1action**  
블로커를 해결하기 위해 수행해야 하는 작업을 제안합니다.

# Aurora PostgreSQL에서 식별 가능한 vacuum 블로커 해결
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Identifiableblockers"></a>

Autovacuum은 공격적인 vacuum을 수행하고 트랜잭션 ID의 연령을 RDS 인스턴스의 `autovacuum_freeze_max_age` 파라미터에 의해 지정된 임곗값 미만으로 낮춥니다. 이 연령은 Amazon CloudWatch 지표 `MaximumUsedTransactionIDs`를 사용하여 추적할 수 있습니다.

Amazon RDS 인스턴스에 대한 `autovacuum_freeze_max_age`의 설정(기본값은 2억 개의 트랜잭션 ID)을 찾으려면 다음 쿼리를 사용할 수 있습니다.

```
SELECT
    TO_CHAR(setting::bigint, 'FM9,999,999,999') autovacuum_freeze_max_age
FROM
    pg_settings
WHERE
    name = 'autovacuum_freeze_max_age';
```

`postgres_get_av_diag()`는 연령이 Amazon RDS의 [적응형 autovacuum](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum.AdaptiveAutoVacuuming) 임곗값인 트랜잭션 ID 5억 개를 초과할 때만 공격적 vacuum 블로커를 확인합니다. `postgres_get_av_diag()`가 블로커를 감지하려면 블로커의 연령이 최소 5억 개의 트랜잭션이어야 합니다.

`postgres_get_av_diag()` 함수는 다음과 같은 유형의 블로커를 식별합니다.

**Topics**
+ [활성 문](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Active_statement)
+ [트랜잭션의 유휴 상태](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Idle_in_transaction)
+ [준비된 트랜잭션](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Prepared_transaction)
+ [논리적 복제 슬롯](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Logical_replication_slot)
+ [리더 인스턴스](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Reader_instances)
+ [임시 테이블](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Temporary_tables)

## 활성 문
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Active_statement"></a>

PostgreSQL에서 활성 문은 현재 데이터베이스에서 실행 중인 SQL 문입니다. 여기에는 쿼리, 트랜잭션 또는 진행 중인 작업이 포함됩니다. `pg_stat_activity`를 통해 모니터링할 때 상태 열은 해당 PID가 있는 프로세스가 활성 상태임을 나타냅니다.

`postgres_get_av_diag()` 함수는 활성 문인 문을 식별할 때 다음과 유사한 출력을 표시합니다.

```
blocker               | Active statement
database              | my_database
blocker_identifier    | SELECT pg_sleep(20000);
wait_event            | Timeout:PgSleep
autovacuum_lagging_by | 568,600,871
suggestion            | Connect to database "my_database", review carefully and you may consider terminating the process using suggested_action. For more information, see Working with PostgreSQL autovacuum in the Amazon RDS User Guide.
suggested_action      | {"SELECT pg_terminate_backend (29621);"}
```

**권장 조치**

`suggestion` 열의 지침에 따라 사용자는 활성 문이 있는 데이터베이스에 연결할 수 있으며 `suggested_action` 열에 지정된 대로 세션을 종료하는 옵션을 주의 깊게 검토하는 것이 좋습니다. 종료가 안전한 경우 `pg_terminate_backend()` 함수를 사용하여 세션을 종료할 수 있습니다. 이 작업은 관리자(예: RDS 마스터 계정) 또는 필요한 `pg_terminate_backend()` 권한이 있는 사용자가 수행할 수 있습니다.

**주의**  
종료된 세션은 해당 세션이 만든 (`ROLLBACK`) 변경 사항을 취소합니다. 요구 사항에 따라 문을 다시 실행할 수 있습니다. 그러나 autovacuum 프로세스가 공격적인 vacuum 작업을 완료한 후에만 다시 실행하는 것이 좋습니다.

## 트랜잭션의 유휴 상태
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Idle_in_transaction"></a>

트랜잭션 문의 유휴는 명시적 트랜잭션을 열고(예: `BEGIN` 명령문을 발급하여), 일부 작업을 수행했으며, 이제 클라이언트가 더 많은 작업을 전달하거나 `COMMIT`, `ROLLBACK`또는 `END`(암시적 `COMMIT`을 유발함)를 발급하여 트랜잭션 종료 신호를 보내기를 기다리는 세션을 나타냅니다.

`postgres_get_av_diag()` 함수는 `idle in transaction` 문을 블로커로 식별할 때 다음과 유사한 출력을 표시합니다.

```
blocker               | idle in transaction
database              | my_database
blocker_identifier    | INSERT INTO tt SELECT * FROM tt;
wait_event            | Client:ClientRead
autovacuum_lagging_by | 1,237,201,759
suggestion            | Connect to database "my_database", review carefully and you may consider terminating the process using suggested_action. For more information, see Working with PostgreSQL autovacuum in the Amazon RDS User Guide.
suggested_action      | {"SELECT pg_terminate_backend (28438);"}
```

**권장 조치**

`suggestion` 열에 표시된 대로 트랜잭션 세션에 유휴가 있는 데이터베이스에 연결하고 `pg_terminate_backend()` 함수를 사용하여 세션을 종료할 수 있습니다. 사용자는 관리자(RDS 마스터 계정) 사용자이거나 `pg_terminate_backend()` 권한이 있는 사용자일 수 있습니다.

**주의**  
종료된 세션은 해당 세션이 만든 (`ROLLBACK`) 변경 사항을 취소합니다. 요구 사항에 따라 문을 다시 실행할 수 있습니다. 그러나 autovacuum 프로세스가 공격적인 vacuum 작업을 완료한 후에만 다시 실행하는 것이 좋습니다.

## 준비된 트랜잭션
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Prepared_transaction"></a>

PostgreSQL은 [준비된 트랜잭션](https://www.postgresql.org/docs/current/sql-prepare-transaction.html)이라고 하는 두 단계 커밋 전략의 일부인 트랜잭션을 허용합니다. `max_prepared_transactions` 파라미터를 0이 아닌 값으로 설정하면 활성화됩니다. 준비된 트랜잭션은 데이터베이스 충돌, 재시작 또는 클라이언트 연결 해제 후에도 트랜잭션이 내구성을 유지하고 계속 가능하도록 하기 위해 설계되었습니다. 일반 트랜잭션과 마찬가지로 트랜잭션 ID가 할당되며 autovacuum에 영향을 미칠 수 있습니다. 준비된 상태로 두면 autovacuum이 고정을 수행할 수 없으며 트랜잭션 ID 랩어라운드로 이어질 수 있습니다.

트랜잭션 관리자가 확인하지 않고 트랜잭션을 무기한으로 준비된 상태로 두면 고립된 준비 트랜잭션이 됩니다. 이 문제를 해결하는 유일한 방법은 `COMMIT PREPARED` 또는 `ROLLBACK PREPARED` 명령을 각각 사용하여 트랜잭션을 커밋하거나 롤백하는 것입니다.

**참고**  
준비된 트랜잭션 중에 가져온 백업에는 복원 후에도 해당 트랜잭션이 계속 포함되어 있습니다. 이러한 트랜잭션을 찾고 닫는 방법은 다음 정보를 참조하세요.

준비된 트랜잭션인 블로커를 식별하면 `postgres_get_av_diag()` 함수에 다음 출력이 표시됩니다.

```
blocker               | Prepared transaction
database              | my_database
blocker_identifier    | myptx
wait_event            | Not applicable
autovacuum_lagging_by | 1,805,802,632
suggestion            | Connect to database "my_database" and consider either COMMIT or ROLLBACK the prepared transaction using suggested_action. For more information, see Working with PostgreSQL autovacuum in the Amazon RDS User Guide.
suggested_action      | {"COMMIT PREPARED 'myptx';",[OR],"ROLLBACK PREPARED 'myptx';"}
```

**권장 조치**

제안 열에 언급된 대로 준비된 트랜잭션이 있는 데이터베이스에 연결합니다. `suggested_action` 열을 기반으로 `COMMIT`과 `ROLLBACK` 중 무엇을 수행할지 주의 깊게 검토하고 작업을 적절히 적용합니다.

준비된 트랜잭션을 일반적으로 모니터링하기 위해 PostgreSQL은 `pg_prepared_xacts`라는 카탈로그 보기를 제공합니다. 다음 쿼리를 사용하여 준비된 트랜잭션을 찾을 수 있습니다.

```
SELECT
    gid,
    prepared,
    owner,
    database,
    transaction AS oldest_xmin
FROM
    pg_prepared_xacts
ORDER BY
    age(transaction) DESC;
```

## 논리적 복제 슬롯
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Logical_replication_slot"></a>

복제 슬롯의 목적은 사용되지 않은 변경 사항이 대상 서버에 복제될 때까지 이를 유지하는 것입니다. 자세한 내용은 PostgreSQL의 [Logical replication](https://www.postgresql.org/docs/current/logical-replication.html)을 참조하세요.

논리적 복제 슬롯에는 두 가지 유형이 있습니다.

**비활성 논리적 복제 슬롯**

복제가 종료되면 소비되지 않은 트랜잭션 로그를 제거할 수 없으며 복제 슬롯이 비활성화됩니다. 비활성 논리적 복제 슬롯은 현재 구독자가 사용하지 않지만 서버에 남아 있어 WAL 파일이 보존되고 이전 트랜잭션 로그를 제거할 수 없습니다. 이렇게 되면 LSN 정보를 덮어쓰지 않도록 시스템이 보존해야 하므로 디스크 사용량이 증가하고 특히 autovacuum이 내부 카탈로그 테이블을 정리하지 못하게 됩니다. 해결하지 않으면 카탈로그 팽창, 성능 저하 및 랩어라운드 vacuum 위험 증가로 이어질 수 있으며 이로 인해 트랜잭션 가동 중지 시간이 발생할 수도 있습니다.

**활성이지만 느린 논리적 복제 슬롯**

논리적 복제의 성능 저하로 인해 카탈로그의 데드 튜플 제거가 지연되는 경우가 있습니다. 이러한 복제 지연으로 인해 `catalog_xmin`의 업데이트 속도가 느려지고 카탈로그 팽창 및 랩어라운드 vacuum이 발생할 수 있습니다.

`postgres_get_av_diag()` 함수는 논리적 복제 슬롯을 블로커로 찾았을 때 다음과 유사한 출력을 표시합니다.

```
blocker               | Logical replication slot
database              | my_database
blocker_identifier    | slot1
wait_event            | Not applicable
autovacuum_lagging_by | 1,940,103,068
suggestion            | Ensure replication is active and resolve any lag for the slot if active. If inactive, consider dropping it using the command in suggested_action. For more information, see Working with PostgreSQL autovacuum in the Amazon RDS User Guide.
suggested_action      | {"SELECT pg_drop_replication_slot('slot1') FROM pg_replication_slots WHERE active = 'f';"}
```

**권장 조치**

이 문제를 해결하려면 대상 스키마 또는 적용 프로세스를 종료할 수 있는 데이터에 문제가 있는지 복제 구성을 확인합니다. 가장 일반적인 이유는 다음과 같습니다.
+ 열 누락
+ 호환되지 않는 데이터 유형
+ 데이터 불일치
+ 누락된 테이블

문제가 인프라 문제와 관련된 경우:
+ 네트워크 문제 - [호환되지 않는 네트워크 상태의 Amazon RDS DB 관련 문제를 해결하려면 어떻게 해야 하나요?](https://repost.aws/knowledge-center/rds-incompatible-network)
+ 데이터베이스 또는 DB 인스턴스를 사용할 수 없는 이유는 다음과 같습니다.
  + 복제본 인스턴스의 스토리지가 부족함 - 스토리지 추가에 대한 자세한 내용은 [Amazon RDS DB instances run out of storage](https://repost.aws/knowledge-center/rds-out-of-storage)를 검토하세요.
  + 호환되지 않는 파라미터 - 문제를 해결하는 방법에 대한 자세한 내용은 [호환되지 않는 파라미터 상태에서 멈춘 Amazon RDS DB 인스턴스를 해결하려면 어떻게 해야 하나요?](https://repost.aws/knowledge-center/rds-incompatible-parameters)를 검토하세요.

인스턴스가 AWS 네트워크 외부 또는 AWS EC2에 있는 경우 관리자에게 가용성 또는 인프라 관련 문제를 해결하는 방법을 문의하세요.

**비활성 슬롯 삭제**

**주의**  
주의: 복제 슬롯을 삭제하기 전에 복제가 진행 중이지 않고 비활성 상태이며 복구할 수 없는 상태인지 주의 깊게 확인합니다. 슬롯을 성급히 삭제하면 복제가 중단되거나 데이터가 손실될 수 있습니다.

복제 슬롯이 더 이상 필요하지 않음을 확인한 후 autovacuum이 계속되도록 슬롯을 삭제합니다. `active = 'f'` 조건은 비활성 슬롯만 삭제되도록 합니다.

```
SELECT pg_drop_replication_slot('slot1') WHERE active ='f'
```

## 리더 인스턴스
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Reader_instances"></a>

hot\$1standby\$1feedback 설정이 활성화되면 라이터 인스턴스의 자동 정리가 리더 인스턴스에서 실행 중인 쿼리에 여전히 필요할 수 있는 데드 행을 제거하는 것을 방지합니다. 리더 인스턴스(Aurora 글로벌 데이터베이스의 리더 인스턴스에도 해당)에서 실행되는 쿼리는 쿼리 충돌 및 취소를 방지하는 라이터 인스턴스에서 해당 행을 계속 사용할 수 있어야 하기 때문에 이 동작이 필요합니다.

**참고**  
`hot_standby_feedback`은 Aurora PostgreSQL에서 기본적으로 활성화되며 수정할 수 없습니다.

`postgres_get_av_diag()` 함수는 물리적 복제 슬롯을 사용하는 읽기 전용 복제본을 블로커로 찾았을 때 다음과 유사한 출력을 표시합니다.

```
blocker               | Oldest query running on aurora reader
database              | Not applicable
blocker_identifier    | my-aurora-reader-2
wait_event            | Not applicable
autovacuum_lagging_by | 540,122,859
suggestion            | Run the following query on the reader "my-aurora-reader-2" to find the long running query:                                                                                                 
                      | SELECT * FROM pg_catalog.pg_stat_activity WHERE backend_xmin::text::bigint = 523476310;                                                                                                    
                      | Review carefully and you may consider terminating the query on reader using suggested_action.                                                      
suggested_action      | {"SELECT pg_terminate_backend(pid) FROM pg_catalog.pg_stat_activity WHERE backend_xmin::text::bigint = 523476310;","                                                                       
                      | [OR]                                                                                                                                                                                    
                      | ","Delete the reader if not needed"}
```

`suggested_action` 열에서 권장하는 대로 이러한 옵션을 주의 깊게 검토하여 autovacuum 차단을 해제합니다.
+ **쿼리 종료** - 제안 열의 지침에 따라 suggested\$1action 열에 지정된 대로 읽기 전용 복제본에 연결할 수 있습니다. 세션을 종료하는 옵션을 주의 깊게 검토하는 것이 좋습니다. 종료가 안전한 것으로 간주되는 경우 `pg_terminate_backend()` 함수를 사용하여 세션을 종료할 수 있습니다. 이 작업은 관리자(예: RDS 마스터 계정) 또는 필요한 pg\$1terminate\$1backend() 권한이 있는 사용자가 수행할 수 있습니다.

  읽기 전용 복제본에서 다음 SQL 명령을 실행하여 기본의 vacuum이 오래된 행을 정리하지 못하게 하는 쿼리를 종료할 수 있습니다. `backend_xmin`의 값은 함수의 출력에 보고됩니다.

  ```
  SELECT
      pg_terminate_backend(pid)
  FROM
      pg_catalog.pg_stat_activity
  WHERE
      backend_xmin::text::bigint = backend_xmin;
  ```
+ **필요하지 않은 경우 리더 인스턴스 삭제** - 리더 인스턴스가 더 이상 필요하지 않은 경우 삭제할 수 있습니다. 이렇게 하면 연결된 복제 오버헤드가 제거되고 프라이머리 인스턴스가 인스턴스에 의해 지연되지 않고 트랜잭션 로그를 재활용할 수 있습니다.

## 임시 테이블
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Temporary_tables"></a>

`TEMPORARY` 키워드를 사용하여 만든 [임시 테이블](https://www.postgresql.org/docs/current/sql-createtable.html)은 pg\$1temp\$1xxx와 같은 임시 스키마에 상주하며 해당 테이블을 만든 세션에서만 액세스할 수 있습니다. 세션이 종료되면 임시 테이블이 삭제됩니다. 그러나 이러한 테이블은 PostgreSQL의 autovacuum 프로세스에는 보이지 않으며 테이블을 만든 세션에서 수동으로 vacuum 처리해야 합니다. 다른 세션에서 임시 테이블을 정리하려고 해도 아무런 효과가 없습니다.

비정상적인 상황에서는 임시 테이블이 활성 세션 없이 존재합니다. 치명적인 충돌, 네트워크 문제 또는 유사한 이벤트로 인해 소유 세션이 예기치 않게 종료되는 경우 임시 테이블이 정리되지 않아 '고립된' 테이블로 남겨질 수 있습니다. PostgreSQL autovacuum 프로세스가 고립된 임시 테이블을 감지하면 다음 메시지를 로깅합니다.

```
LOG: autovacuum: found orphan temp table \"%s\".\"%s\" in database \"%s\"
```

`postgres_get_av_diag()` 함수는 임시 테이블을 블로커로 식별할 때 다음과 유사한 출력을 표시합니다. 함수가 임시 테이블과 관련된 출력을 올바르게 표시하려면 해당 테이블이 있는 것과 동일한 데이터베이스 내에서 실행해야 합니다.

```
blocker               | Temporary table
database              | my_database
blocker_identifier    | pg_temp_14.ttemp
wait_event            | Not applicable
autovacuum_lagging_by | 1,805,802,632
suggestion            | Connect to database "my_database". Review carefully, you may consider dropping temporary table using command in suggested_action. For more information, see Working with PostgreSQL autovacuum in the Amazon RDS User Guide.
suggested_action      | {"DROP TABLE ttemp;"}
```

**권장 조치**

출력의 `suggestion` 열에 제공된 지침에 따라 autovacuum 실행을 막는 임시 테이블을 식별하고 제거합니다. 다음 명령을 사용하여 `postgres_get_av_diag()`에서 보고한 임시 테이블을 삭제합니다. `postgres_get_av_diag()` 함수에서 제공하는 출력을 기반으로 테이블 이름을 바꿉니다.

```
DROP TABLE my_temp_schema.my_temp_table;
```

다음 쿼리를 사용하여 임시 테이블을 식별할 수 있습니다.

```
SELECT
    oid,
    relname,
    relnamespace::regnamespace,
    age(relfrozenxid)
FROM
    pg_class
WHERE
relpersistence = 't'
ORDER BY
    age(relfrozenxid) DESC;
```

# Aurora PostgreSQL에서 식별 불가능한 vacuum 블로커 해결
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Unidentifiable_blockers"></a>

이 섹션에서는 vacuum 작업이 진행되지 않는 다른 이유를 살펴봅니다. 이러한 문제는 현재 `postgres_get_av_diag()` 함수를 사용하여 직접 식별할 수 없습니다.

**Topics**
+ [인덱스 불일치](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Index_inconsistency)
+ [매우 높은 트랜잭션 속도](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.High_transaction_rate)

## 인덱스 불일치
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Index_inconsistency"></a>

논리적으로 일치하지 않는 인덱스는 autovacuum이 진행되는 것을 방지할 수 있습니다. 다음 오류 또는 유사한 오류는 인덱스의 vacuum 단계 동안 또는 SQL 문에서 인덱스에 액세스할 때 로깅됩니다.

```
ERROR: right sibling's left-link doesn't match:block 5 links to 10 instead of expected 2 in index ix_name
```

```
ERROR: failed to re-find parent key in index "XXXXXXXXXX" for deletion target page XXX
CONTEXT:  while vacuuming index index_name of relation schema.table
```

**지침**

인덱스를 다시 구축하거나 수동 `VACUUM FREEZE`에서 `INDEX_CLEANUP`을 사용하여 인덱스를 건너뜁니다. 
+ **CONCURRENTLY 옵션 사용** – PostgreSQL 버전 12 전에는 인덱스를 다시 구축하려면 테이블에 대한 액세스를 제한하는 배타적인 테이블 잠금이 필요했습니다. PostgreSQL 버전 12 이상에서는 CONCURRENTLY 옵션을 사용하여 행 수준 잠금을 허용하므로 테이블의 가용성이 크게 향상됩니다. 다음은 명령입니다.

  ```
  REINDEX INDEX ix_name CONCURRENTLY;
  ```

  CONCURRENTLY는 중단이 적지만 사용량이 많은 테이블에서는 속도가 느릴 수 있습니다. 가능하면 트래픽이 적은 기간에 인덱스를 구축하는 것이 좋습니다. 자세한 내용은 *PostgreSQL* 설명서의 [REINDEX](https://www.postgresql.org/docs/current/sql-reindex.html)를 참조하세요.
+ **INDEX\$1CLEANUP FALSE 옵션 사용** - 인덱스가 크고 완료하는 데 상당한 시간이 필요할 것으로 예상되는 경우 인덱스를 제외하면서 수동 VACUUM FREEZE를 실행하여 autovacuum 차단을 해제할 수 있습니다. 이 기능은 PostgreSQL 버전 12 이상에서 사용할 수 있습니다.

  인덱스를 우회하면 일관되지 않은 인덱스의 vacuum 프로세스를 건너뛰고 랩어라운드 문제를 완화할 수 있습니다. 그러나 이렇게 해도 기본 유효하지 않은 페이지 문제는 해결되지 않습니다. 유효하지 않은 페이지 문제를 완전히 해결하려면 인덱스를 다시 구축해야 합니다.

## 매우 높은 트랜잭션 속도
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.High_transaction_rate"></a>

PostgreSQL에서 높은 트랜잭션 속도는 autovacuum의 성능에 상당한 영향을 미쳐 데드 튜플의 정리가 느려지고 트랜잭션 ID 랩어라운드 위험이 증가할 수 있습니다. 두 기간의 `max(age(datfrozenxid))` 차이(일반적으로 초당)를 측정하여 트랜잭션 속도를 모니터링할 수 있습니다. 또한 RDS 성능 개선 도우미의 다음 카운터 지표를 사용하여 총 트랜잭션 수인 트랜잭션 속도(xact\$1commit과 xact\$1rollback의 합계)를 측정할 수 있습니다.


|  카운터  |  유형  |  Unit  |  지표  | 
| --- | --- | --- | --- | 
|  xact\$1commit  |  트랜잭션  |  초당 커밋 수  |  db.Transactions.xact\$1commit  | 
|  xact\$1rollback  |  트랜잭션  |  초당 롤백 수  |  db.Transactions.xact\$1rollback  | 

빠른 증가는 트랜잭션 로드가 높음을 나타내며, 이는 autovacuum에 부담을 주어 팽창, 잠금 경합 및 잠재적 성능 문제를 일으킬 수 있습니다. 이는 다음과 같은 몇 가지 방법으로 autovacuum 프로세스에 부정적인 영향을 미칠 수 있습니다.
+ **테이블 활동:** Vacuum 처리 중인 특정 테이블에 대량의 트랜잭션이 발생하여 지연이 발생할 수 있습니다.
+ **시스템 리소스:** 전체 시스템에 과부하가 발생하여 autovacuum이 효율적으로 작동하는 데 필요한 리소스에 액세스하기 어려울 수 있습니다.

Autovacuum이 더 효과적으로 작동하고 작업을 따라잡을 수 있도록 하려면 다음 전략을 고려하세요.

1. 가능하면 트랜잭션 속도를 줄입니다. 가능한 경우 유사한 트랜잭션을 배치 처리하거나 그룹화하는 것을 고려합니다.

1. 사용량이 적은 시간에 야간, 주간 또는 격주로 수동 `VACUUM FREEZE` 작업을 사용하여 자주 업데이트되는 테이블을 타게팅합니다.

1. 인스턴스 클래스를 스케일 업하여 높은 트랜잭션 볼륨과 autovacuum을 처리할 수 있도록 더 많은 시스템 리소스를 할당하는 것을 고려합니다.

# Aurora PostgreSQL의 vacuum 성능 문제 해결
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Performance"></a>

이 섹션에서는 느린 vacuum 성능에 영향을 미치는 요인과 이러한 문제를 해결하는 방법을 설명합니다.

**Topics**
+ [큰 인덱스 vacuum](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Large_indexes)
+ [테이블 또는 데이터베이스가 너무 많아 vacuum 작업을 할 수 없음](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Multiple_tables)
+ [공격적 vacuum(랩어라운드 방지용) 실행 중](#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Aggressive_vacuum)

## 큰 인덱스 vacuum
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Large_indexes"></a>

VACUUM은 초기화, 힙 스캔, 인덱스 및 힙 vacuum, 인덱스 정리, 힙 잘라내기 및 최종 정리와 같은 순차적 단계를 거칩니다. 힙 스캔 중에 프로세스는 페이지를 정리하고 조각 모음을 하여 고정합니다. 힙 스캔이 완료되면 VACUUM은 인덱스를 정리하고 빈 페이지를 운영 체제로 반환하며 빈 공간 맵 vacuum 및 통계 업데이트와 같은 최종 정리 작업을 수행합니다.

인덱스를 vacuum할 때 `maintenance_work_mem`(또는 `autovacuum_work_mem`)이 인덱스를 처리하기에 충분하지 않은 경우 여러 번 전달해야 할 수 있습니다. PostgreSQL 16 이하에서는 데드 튜플 ID 저장을 위한 1GB 메모리 제한이 있어 큰 인덱스에서는 여러 번의 전달이 강제될 때가 많았습니다. PostgreSQL 17에는 단일 할당 배열을 사용하는 대신 메모리를 동적으로 할당하는 `TidStore`가 도입되었습니다. 이렇게 하면 1GB 제약이 제거되고, 메모리를 더 효율적으로 사용하며, 인덱스당 여러 인덱스 스캔의 필요성이 줄어듭니다.

사용 가능한 메모리가 전체 인덱스 처리를 한 번에 수용할 수 없는 경우에도 큰 인덱스는 PostgreSQL 17에서 여러 번 전달해야 할 수 있습니다. 일반적으로 큰 인덱스에는 여러 번 전달해야 하는 데드 튜플이 더 많이 포함되어 있습니다.

**느린 vacuum 작업 탐지**

`postgres_get_av_diag()` 함수는 메모리 부족으로 인해 vacuum 작업이 느리게 실행되는 시기를 탐지할 수 있습니다. 이 함수에 대한 자세한 내용은 [Aurora PostgreSQL에 자동 정리 모니터링 및 진단 도구 설치](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Installation.md) 단원을 참조하십시오.

사용 가능한 메모리가 단일 패스에서 인덱스 vacuuming을 완료하기에 충분하지 않은 경우 `postgres_get_av_diag()` 함수는 다음 알림을 발행합니다.

**`rds_tools` 1.9**

```
NOTICE: Your database is currently running aggressive vacuum to prevent wraparound and it might be slow.
```

```
NOTICE: The current setting of autovacuum_work_mem is XX might not be sufficient. Consider increasing the setting to XXX, and if necessary, scaling up the RDS instance class for more 
        memory. The suggested value is an estimate based on the current number of dead tuples for the table being vacuumed, which might not fully reflect the latest state. Additionally, review the possibility of manual 
        vacuum with exclusion of indexes using (VACUUM (INDEX_CLEANUP FALSE, VERBOSE TRUE) table_name;). For more information, see 
        
        [Working with PostgreSQL autovacuum in the Amazon Aurora User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Autovacuum.html).
```

**참고**  
이 `postgres_get_av_diag()` 함수는 인덱스 vacuum 작업에 필요한 메모리의 양을 추정하기 위해 `pg_stat_all_tables.n_dead_tup`에 의존합니다.

`postgres_get_av_diag()` 함수가 `autovacuum_work_mem` 부족으로 인해 여러 인덱스 스캔이 필요한 느린 vacuum 작업을 식별하면 다음 메시지가 생성됩니다.

```
NOTICE: Your vacuum is performing multiple index scans due to insufficient autovacuum_work_mem:XXX for index vacuuming. 
        For more information, see [Working with PostgreSQL autovacuum in the Amazon Amazon RDS User Guide](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Autovacuum.html).
```

**지침**

수동 `VACUUM FREEZE`를 사용해 다음 해결 방법을 적용하여 테이블 고정의 속도를 높일 수 있습니다.

**Vacuum 작업을 위한 메모리 증가**

`postgres_get_av_diag()` 함수에서 제안한 대로 인스턴스 수준에서 잠재적 메모리 제약을 해결하기 위해 `autovacuum_work_mem` 파라미터를 늘리는 것이 좋습니다. `autovacuum_work_mem`은 동적 파라미터이지만 새 메모리 설정이 적용되려면 autovacuum 대몬이 작업자를 다시 시작해야 합니다. 이를 수행하는 방법은 다음과 같습니다.

1. 새 설정이 있는지 확인합니다.

1. 현재 autovacuum을 실행 중인 프로세스를 종료합니다.

이 접근 방식을 사용하면 조정된 메모리 할당이 새 autovacuum 작업에 적용됩니다.

보다 즉각적인 결과를 얻으려면 세션 내에서 `maintenance_work_mem` 설정이 증가된 `VACUUM FREEZE` 작업을 수동으로 수행하는 것을 고려하세요.

```
SET maintenance_work_mem TO '1GB';
VACUUM FREEZE VERBOSE table_name;
```

Amazon RDS를 사용하고 있고 `maintenance_work_mem` 또는 `autovacuum_work_mem`에 대해 더 높은 값을 지원하는 데 추가 메모리가 필요한 경우 메모리가 더 많은 인스턴스 클래스로 업그레이드하는 것을 고려해 보세요. 이를 통해 수동 및 자동 vacuum 작업을 모두 개선하는 데 필요한 리소스를 제공하여 전반적인 vacuum 및 데이터베이스 성능을 개선할 수 있습니다.

**INDEX\$1CLEANUP 비활성화**

PostgreSQL 버전 12 이상의 수동 `VACUUM`에서는 인덱스 정리 단계를 건너뛸 수 있고, PostgreSQL 버전 14 이상의 긴급 autovacuum에서는 [https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-VACUUM-FAILSAFE-AGE](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-VACUUM-FAILSAFE-AGE) 파라미터를 기반으로 자동으로 이 작업을 수행합니다.

**주의**  
인덱스 정리를 건너뛰면 인덱스 팽창이 발생하여 쿼리 성능에 부정적인 영향을 미칠 수 있습니다. 이를 완화하려면 영향을 받는 인덱스를 유지 관리 기간 동안 다시 인덱싱하거나 vacuum하는 것이 좋습니다.

큰 인덱스 처리에 대한 추가 지침은 [대용량 인덱스를 사용하여 autovacuum 관리](Appendix.PostgreSQL.CommonDBATasks.Autovacuum.LargeIndexes.md)의 설명서를 참조하세요.

**병렬 인덱스 vacuum 작업**

PostgreSQL 13부터 인덱스는 각 인덱스에 하나의 vacuum 작업자 프로세스가 할당된 수동 `VACUUM`을 사용하여 기본적으로 병렬로 vacuum 및 정리가 가능합니다. 그러나 vacuum 작업이 병렬 실행에 적합한지 PostgreSQL이 확인하려면 다음과 같은 특정 기준을 충족해야 합니다.
+ 인덱스가 최소 2개 있어야 합니다.
+ `max_parallel_maintenance_workers` 파라미터 값을 최소 2로 설정합니다.
+ 인덱스 크기는 `min_parallel_index_scan_size` 한도를 초과해야 하며, 기본값은 512KB입니다.

Amazon RDS 인스턴스에서 사용할 수 vCPU의 수와 테이블의 인덱스 수에 따라 `max_parallel_maintenance_workers` 설정을 조정하여 vacuum 작업 처리 시간을 최적화할 수 있습니다.

자세한 내용은 [Parallel vacuuming in Amazon RDS for PostgreSQL and Amazon Aurora PostgreSQL](https://aws.amazon.com/blogs/database/parallel-vacuuming-in-amazon-rds-for-postgresql-and-amazon-aurora-postgresql/)을 참조하세요.

## 테이블 또는 데이터베이스가 너무 많아 vacuum 작업을 할 수 없음
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Multiple_tables"></a>

PostgreSQL의 [The Autovacuum Daemon](https://www.postgresql.org/docs/current/routine-vacuuming.html#AUTOVACUUM') 설명서에서 언급한 것처럼 autovacuum 대몬은 여러 프로세스를 통해 작동합니다. 여기에는 시스템 내 각 데이터베이스에 대해 autovacuum 작업자 프로세스를 시작하는 영구 autovacuum 런처가 포함됩니다. 런처는 데이터베이스당 약 `autovacuum_naptime`초마다 이러한 작업자가 시작하도록 일정을 예약합니다.

데이터베이스가 'N'개이면 새 작업자가 대략 [`autovacuum_naptime`/N초]마다 시작합니다. 그러나 총 동시 작업자 수는 `autovacuum_max_workers` 설정에 따라 제한됩니다. Vacuum 작업이 필요한 데이터베이스 또는 테이블 수가 이 한도를 초과하는 경우 작업자를 사용할 수 있게 되는 즉시 다음 데이터베이스 또는 테이블이 처리됩니다.

많은 대형 테이블 또는 데이터베이스에서 동시에 vacuum 작업이 필요한 경우 사용 가능한 모든 autovacuum 작업자가 장기간 점유되어 다른 테이블 및 데이터베이스에 대한 유지 관리가 지연될 수 있습니다. 트랜잭션 속도가 높은 환경에서는 이 병목 현상이 빠르게 에스컬레이션되어 Amazon RDS 인스턴스 내에서 vacuum 랩어라운드 문제가 발생할 수 있습니다.

`postgres_get_av_diag()`가 많은 수의 테이블 또는 데이터베이스를 감지하면 다음과 같은 권장 사항을 제공합니다.

```
NOTICE: Your database is currently running aggressive vacuum to prevent wraparound and it might be slow.
```

```
NOTICE: The current setting of autovacuum_max_workers:3 might not be sufficient. Consider increasing the setting and, if necessary, consider scaling up the Amazon RDS instance class for more workers.
```

**지침**

**autovacuum\$1max\$1workers 증가**

Vacuum 작업의 속도를 높이기 위해 더 많은 동시 autovacuum 작업자를 허용하도록 `autovacuum_max_workers` 파라미터를 조정하는 것이 좋습니다. 성능 병목 현상이 지속되면 Amazon RDS 인스턴스를 더 많은 vCPU가 있는 클래스로 스케일 업하는 것이 좋습니다. 이렇게 하면 병렬 처리 기능을 더욱 개선할 수 있습니다.

## 공격적 vacuum(랩어라운드 방지용) 실행 중
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Aggressive_vacuum"></a>

PostgreSQL의 데이터베이스(MaximumUsedTransactionIDs) 연령은 공격적 vacuum(랩어라운드 방지용)이 성공적으로 완료될 때만 감소합니다. 이 vacuum 작업이 완료될 때까지 트랜잭션 속도에 따라 연령이 계속 증가합니다.

`postgres_get_av_diag()` 함수는 공격적인 vacuum을 감지하면 다음 `NOTICE`를 생성합니다. 그러나 vacuum의 활성 상태가 최소 2분간 지속된 후에만 이 출력이 트리거됩니다.

```
NOTICE: Your database is currently running aggressive vacuum to prevent wraparound, monitor autovacuum performance.
```

공격적 vacuum에 대한 자세한 내용은 [When an aggressive vacuum is already running](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.NOTICE.md) 섹션을 참조하세요.

다음 쿼리를 사용하여 공격적인 vacuum이 진행 중인지 확인할 수 있습니다.

```
SELECT
    a.xact_start AS start_time,
    v.datname "database",
    a.query,
    a.wait_event,
    v.pid,
    v.phase,
    v.relid::regclass,
    pg_size_pretty(pg_relation_size(v.relid)) AS heap_size,
    (
        SELECT
            string_agg(pg_size_pretty(pg_relation_size(i.indexrelid)) || ':' || i.indexrelid::regclass || chr(10), ', ')
        FROM
            pg_index i
        WHERE
            i.indrelid = v.relid
    ) AS index_sizes,
    trunc(v.heap_blks_scanned * 100 / NULLIF(v.heap_blks_total, 0)) AS step1_scan_pct,
    v.index_vacuum_count || '/' || (
        SELECT
            count(*)
        FROM
            pg_index i
        WHERE
            i.indrelid = v.relid
    ) AS step2_vacuum_indexes,
    trunc(v.heap_blks_vacuumed * 100 / NULLIF(v.heap_blks_total, 0)) AS step3_vacuum_pct,
    age(CURRENT_TIMESTAMP, a.xact_start) AS total_time_spent_sofar
FROM
    pg_stat_activity a
    INNER JOIN pg_stat_progress_vacuum v ON v.pid = a.pid;
```

출력의 쿼리 열을 확인하여 공격적인 vacuum(랩어라운드 방지용)인지 확인할 수 있습니다. '랩어라운드 방지용'이라는 문구는 공격적인 vacuum임을 나타냅니다.

```
query                  | autovacuum: VACUUM public.t3 (to prevent wraparound)
```

예를 들어, 트랜잭션 연령이 10억인 블로커가 있고 동일한 트랜잭션 연령에서 랩어라운드 방지용으로 공격적인 vacuum이 필요한 테이블이 있다고 가정해 보겠습니다. 또한 트랜잭션 연령이 7억 5,000만인 또 다른 블로커가 있습니다. 트랜잭션 연령이 1억인 블로커를 정리한 후에 트랜잭션 연령이 7억 5,000만으로 즉시 줄어들지 않습니다. 공격적인 vacuum이 필요한 테이블 또는 연령이 7억 5,000만이 넘는 트랜잭션이 완료될 때까지 트랜잭션 연령이 높게 유지됩니다. 이 기간 동안 PostgreSQL 클러스터의 트랜잭션 연령이 계속 증가합니다. Vacuum 프로세스가 완료되면 트랜잭션 연령이 7억 5,000만으로 감소하지만 추가 vacuum 작업이 완료될 때까지 다시 증가하기 시작합니다. 이 주기는 이러한 조건이 지속되는 한, 트랜잭션 연령이 결국 `autovacuum_freeze_max_age`에서 지정된 Amazon RDS 인스턴스에 대해 구성된 수준으로 떨어질 때까지 계속됩니다.

# Aurora PostgreSQL의 NOTICE 메시지 설명
<a name="Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.NOTICE"></a>

 `postgres_get_av_diag()` 함수는 다음 NOTICE 메시지를 제공합니다.

**연령이 모니터링 임곗값에 아직 도달하지 않은 경우**  
`postgres_get_av_diag()`가 블로커를 식별하기 위한 모니터링 임곗값은 기본적으로 5억 개의 트랜잭션입니다. `postgres_get_av_diag()`가 다음 NOTICE를 생성하면 트랜잭션 연령이 아직이 임곗값에 도달하지 않았음을 나타냅니다.  

```
NOTICE: postgres_get_av_diag() checks for blockers that prevent aggressive vacuums only, it does so only after exceeding dvb_threshold which is 500,000,000 and age of this PostgreSQL cluster is currently at 2.
```

**연령이 가장 많은 트랜잭션 ID를 가진 데이터베이스에 연결되지 않음**  
`postgres_get_av_diag()` 함수는 연령이 가장 많은 트랜잭션 ID를 가진 데이터베이스에 연결할 때 가장 정확한 출력을 제공합니다. `postgres_get_av_diag()`에서 보고한 연령이 가장 많은 트랜잭션 ID를 가진 데이터베이스는 사용자의 경우 'my\$1database'와 다릅니다. 올바른 데이터베이스에 연결되지 않은 경우 다 NOTICE가 생성됩니다.  

```
NOTICE: You are not connected to the database with the age of oldest transaction ID. Connect to my_database database and run postgres_get_av_diag() for accurate reporting.
```
연령이 가장 많은 트랜잭션을 가진 데이터베이스에 연결하는 것은 다음과 같은 이유로 중요합니다.  
+ **임시 테이블 블로커 식별:** 임시 테이블의 메타데이터는 각 데이터베이스마다 다르기 때문에 일반적으로 테이블이 만들어진 데이터베이스에서 찾을 수 있습니다. 그러나 임시 테이블이 최상위 블로커이고 수명이 가장 많은 트랜잭션을 가진 데이터베이스에 있는 경우 이는 오해의 소지가 있을 수 있습니다. 올바른 데이터베이스에 연결하면 임시 테이블 블로커를 정확하게 식별할 수 있습니다.
+ **느린 vacuum 진단:** 인덱스 메타데이터 및 테이블 수 정보는 데이터베이스별로 다르며 느린 vacuum 문제를 진단하는 데 필요합니다.

**연령을 기준으로 가장 오래된 트랜잭션을 가진 데이터베이스가 rdsadmin 또는 template0 데이터베이스임**  
경우에 따라 `rdsadmin` 또는 `template0` 데이터베이스가 연령이 가장 많은 트랜잭션 ID를 가진 데이터베이스로 식별될 수 있습니다. 이 경우 `postgres_get_av_diag()`는 다음 NOTICE를 발행합니다.  

```
NOTICE: The database with the age of oldest transaction ID is rdsadmin or template0, reach out to support if the reported blocker is in rdsadmin or template0.
```
나열된 블로커가 이 두 데이터베이스 중 하나에서 시작되지 않는지 확인합니다. `rdsadmin` 또는 `template0`에 블로커가 있는 것으로 보고되는 경우 이러한 데이터베이스는 사용자가 액세스할 수 없으며 개입이 필요하므로 지원팀에 문의하세요.  
`rdsadmin` 또는 `template0` 데이터베이스가 최상위 블로커를 포함할 가능성은 매우 낮습니다.

**공격적 vacuum이 이미 실행 중인 경우**  
`postgres_get_av_diag()` 함수는 공격적인 vacuum 프로세스가 실행 중일 때 보고하도록 설계되었지만, vacuum이 최소 1분 동안 활성 상태인 경우에만 이 출력을 트리거합니다. 이러한 의도적인 지연은 오탐지의 가능성을 줄이는 데 도움이 됩니다. 이 함수는 대기함으로써 효과적이고 중요한 vacuum만 보고되도록 하므로 vacuum 활동을 보다 정확하고 안정적으로 모니터링할 수 있습니다.  
`postgres_get_av_diag()` 함수는 진행 중인 공격적인 vacuum이 하나 이상인 것을 감지하면 다음 NOTICE를 생성합니다.  

```
NOTICE: Your database is currently running aggressive vacuum to prevent wraparound, monitor autovacuum performance.
```
NOTICE에 표시된 대로 vacuum의 성능을 계속 모니터링합니다. 공격적 vacuum에 대한 자세한 내용은 [공격적 vacuum(랩어라운드 방지용) 실행 중](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Resolving_Performance.md#Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Aggressive_vacuum) 섹션을 참조하세요.

**Autovacuum이 꺼져 있는 경우**  
데이터베이스 인스턴스에서 autovacuum이 비활성화된 경우 `postgres_get_av_diag()` 함수는 다음 NOTICE를 생성합니다.  

```
NOTICE: Autovacuum is OFF, we strongly recommend to enable it, no restart is necessary.
```
자동 정리는 원활한 데이터베이스 작업을 보장하는 Aurora PostgreSQL DB 인스턴스의 중요한 기능입니다. 오래된 행 버전을 자동으로 제거하고, 스토리지 공간을 회수하고, 테이블 팽창을 방지하여 테이블과 인덱스를 효율적으로 유지함으로써 최적의 성능을 발휘하도록 합니다. 또한 Amazon RDS 인스턴스에서 트랜잭션을 중지할 수 있는 트랜잭션 ID 랩어라운드를 방지합니다. Autovacuum을 비활성화하면 데이터베이스 성능과 안정성이 장기적으로 저하될 수 있습니다. 항상 켜두는 것이 좋습니다. 자세한 내용은 [Understanding autovacuum in Aurora PostgreSQL environments](https://aws.amazon.com/blogs/database/understanding-autovacuum-in-amazon-rds-for-postgresql-environments/)를 참조하세요.  
Autovacuum을 끄더라도 공격적인 vacuum이 중지되지 않습니다. 테이블이 `autovacuum_freeze_max_age` 임곗값에 도달하면 여전히 공격적 vacuum이 발생합니다.

**남은 트랜잭션 수가 매우 적음**  
`postgres_get_av_diag()` 함수는 랩어라운드 vacuum이 임박하면 다음 NOTICE를 생성합니다. 이 NOTICE는 Amazon RDS 인스턴스가 잠재적으로 새 트랜잭션을 거부하기까지 1억 개의 트랜잭션이 남았을 때 발행됩니다.  

```
WARNING: Number of transactions remaining is critically low, resolve issues with autovacuum or perform manual VACUUM FREEZE before your instance stops accepting transactions.
```
데이터베이스 가동 중지 시간을 방지하려면 즉각적인 조치가 필요합니다. Vacuum 작업을 면밀히 모니터링하고 영향을 받는 데이터베이스에서 `VACUUM FREEZE`를 수동으로 시작하여 트랜잭션 실패를 방지해야 합니다.

# Amazon Aurora PostgreSQL에서 TOAST OID 경합 관리
<a name="Appendix.PostgreSQL.CommonDBATasks.TOAST_OID"></a>

TOAST(Oversized-Attribute Storage Technique)는 일반적인 8KB 데이터베이스 블록 크기를 초과하는 큰 데이터 값을 처리하도록 설계된 PostgreSQL 기능입니다. PostgreSQL은 물리적 행이 여러 블록에 걸쳐 있는 것을 허용하지 않습니다. 블록 크기는 행 크기에 대한 상한 역할을 합니다. TOAST는 큰 필드 값을 더 작은 청크로 분할하여 이러한 제한을 극복합니다. 기본 테이블에 연결된 전용 TOAST 테이블에 별도로 저장합니다. 자세한 내용은 [PostgreSQL TOAST 스토리지 메커니즘 및 구현 설명서](https://www.postgresql.org/docs/current/storage-toast.html)를 참조하세요.

**Topics**
+ [TOAST 작업 이해](#Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.HowWorks)
+ [성능 문제 식별](#Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.PerformanceChallenges)
+ [추천](#Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.Recommendations)
+ [모니터링](#Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.Monitoring)

## TOAST 작업 이해
<a name="Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.HowWorks"></a>

TOAST는 압축을 수행하고 큰 필드 값을 일렬로 저장합니다. TOAST는 TOAST 테이블에 저장된 각 크기 초과 데이터 청크에 고유한 OID(객체 식별자)를 할당합니다. 기본 테이블은 TOAST 테이블의 해당 행을 참조하기 위해 TOAST 값 ID와 관계 ID를 페이지에 저장합니다. 이를 통해 PostgreSQL은 이러한 TOAST 청크를 효율적으로 찾고 관리할 수 있습니다. 그러나 TOAST 테이블이 증가함에 따라, 시스템에서 사용 가능한 OID가 소진되어 성능 저하와 OID 고갈로 인한 잠재적 가동 중지 시간이 발생할 위험이 있습니다.

### TOAST의 객체 식별자
<a name="Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.ObjectIdentifiers"></a>

객체 식별자(OID)는 PostgreSQL에서 테이블, 인덱스 및 함수와 같은 데이터베이스 객체를 참조하는 데 사용하는 시스템 전체의 고유 식별자입니다. 이러한 식별자는 PostgreSQL의 내부 작업에서 중요한 역할을 하므로 데이터베이스가 객체를 효율적으로 찾고 관리할 수 있습니다.

토스팅에 적합한 데이터 세트가 있는 테이블의 경우 PostgreSQL은 OID를 할당하여 연결된 TOAST 테이블에 저장된 크기 초과 데이터의 각 청크를 고유하게 식별합니다. 시스템은 각 청크를 `chunk_id`와 연결하므로 PostgreSQL이 TOAST 테이블 내에서 이러한 청크를 효율적으로 구성하고 찾을 수 있습니다.

## 성능 문제 식별
<a name="Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.PerformanceChallenges"></a>

PostgreSQL의 OID 관리는 40억 개의 고유 값을 생성한 후 래핑되도록 글로벌 32비트 카운터를 사용합니다. 데이터베이스 클러스터가 이 카운터를 공유하는 동안 OID 할당에는 TOAST 작업 중 두 단계가 포함됩니다.
+ **할당을 위한 글로벌 카운터** - 글로벌 카운터는 클러스터 전체에 새 OID를 할당합니다.
+ **로컬 충돌 검색** - TOAST 테이블은 새 OID가 해당 특정 테이블에 이미 사용된 기존 OID와 충돌하지 않도록 합니다.

성능 저하는 다음과 같은 경우에 발생할 수 있습니다.
+ TOAST 테이블의 조각화 수준이 높거나 OID 사용량이 밀집되어 OID 할당이 지연됩니다.
+ 시스템은 TOAST를 광범위하게 사용하는 데이터 이탈이 높거나 넓은 테이블이 있는 환경에서 OID를 자주 할당하고 재사용합니다.

자세한 내용은 [PostgreSQL TOAST 테이블 크기 제한 및 OID 할당 설명서](https://wiki.postgresql.org/wiki/TOAST#Total_table_size_limit)를 참조하세요.

글로벌 카운터는 OID를 생성하고 40억 개마다 값을 래핑하므로 시스템은 때때로 이미 사용된 값을 다시 생성합니다. PostgreSQL은 이를 감지하고 다음 OID로 다시 시도합니다. TOAST 테이블에 간격 없이 사용된 OID 값이 매우 오래 실행되는 경우 느린 INSERT가 발생할 수 있습니다. OID 공간이 가득 차면 이러한 문제가 더욱 두드러져 삽입 및 업데이트 속도가 느려집니다.

### 문제 식별
<a name="Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.IdentifyingProblem"></a>
+ 단순 `INSERT` 문은 일관되지 않고 무작위적인 방식으로 평소보다 훨씬 오래 걸립니다.
+ 지연은 TOAST 작업과 관련된 `INSERT` 및 `UPDATE` 문에만 발생합니다.
+ 시스템이 TOAST 테이블에서 사용 가능한 OID를 찾는 데 어려움을 겪으면 PostgreSQL 로그에 다음 로그 항목이 나타납니다.

  ```
  LOG: still searching for an unused OID in relation "pg_toast_20815"
  DETAIL: OID candidates have been checked 1000000 times, but no unused OID has been found yet.
  ```
+ Performance Insights는 `LWLock:buffer_io` 및 `LWLock:OidGenLock` 대기 이벤트와 관련된 평균 활성 세션(AAS) 수가 많음을 나타냅니다.

  다음 SQL 쿼리를 실행하여 대기 이벤트가 있는 장기 실행 INSERT 트랜잭션을 식별할 수 있습니다.

  ```
  SELECT
      datname AS database_name,
      usename AS database_user,
      pid,
      now() - pg_stat_activity.xact_start AS transaction_duration,
      concat(wait_event_type, ':', wait_event) AS wait_event,
      substr(query, 1, 30) AS TRANSACTION,
      state
  FROM
      pg_stat_activity
  WHERE (now() - pg_stat_activity.xact_start) > INTERVAL '60 seconds'
      AND state IN ('active', 'idle in transaction', 'idle in transaction (aborted)', 'fastpath function call', 'disabled')
      AND pid <> pg_backend_pid()
  AND lower(query) LIKE '%insert%'
  ORDER BY
      transaction_duration DESC;
  ```

  대기 시간이 연장된 INSERT 작업을 표시하는 쿼리 결과의 예:

  ```
   database_name |  database_user  |  pid  | transaction_duration |     wait_event      |          transaction           | state
  ---------------+-----------------+-------+----------------------+---------------------+--------------------------------+--------
   postgres       | db_admin_user| 70965 | 00:10:19.484061      | LWLock:buffer_io    | INSERT INTO "products" (......... | active
   postgres       | db_admin_user| 69878 | 00:06:14.976037      | LWLock:buffer_io    | INSERT INTO "products" (......... | active
   postgres       | db_admin_user| 68937 | 00:05:13.942847      | :                   | INSERT INTO "products" (......... | active
  ```

### 문제 격리
<a name="Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.IsolatingProblem"></a>
+ **작은 삽입 테스트** - `toast_tuple_target` 임계값보다 작은 레코드를 삽입합니다. TOAST 스토리지 전에 압축이 적용됩니다. 성능 문제 없이 작동하는 경우이 문제는 TOAST 작업과 관련이 있습니다.
+ **새 테이블 테스트** - 구조가 동일한 새 테이블을 생성하고 `toast_tuple_target`보다 큰 레코드를 삽입합니다. 문제 없이 작동하는 경우 문제가 원래 테이블의 OID 할당으로 현지화됩니다.

## 추천
<a name="Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.Recommendations"></a>

다음 접근 방식은 TOAST OID 경합 문제를 해결하는 데 도움이 될 수 있습니다.
+ **데이터 정리 및 아카이브** - 더 이상 사용되지 않거나 불필요한 데이터를 검토 및 삭제하여 나중에 사용할 수 있도록 OID를 확보하거나 데이터를 보관합니다. 다음 제한을 고려하세요.
  + 향후 정리가 항상 가능한 것은 아니므로 확장성이 제한적입니다.
  + 결과 데드 튜플을 제거하는 장기 실행 VACUUM 작업입니다.
+ **새 테이블에 쓰기** - 향후 삽입을 위해 새 테이블을 생성하고 `UNION ALL` 뷰를 사용하여 쿼리를 위해 이전 데이터와 새 데이터를 결합합니다. 이 보기는 이전 테이블과 새 테이블의 결합된 데이터를 표시하므로 쿼리가 단일 테이블로 액세스할 수 있습니다. 다음 제한을 고려하세요.
  + 이전 테이블을 업데이트해도 OID가 소진될 수 있습니다.
+ **파티션 또는 샤드** - 확장성과 성능을 높이기 위해 테이블 또는 샤드 데이터를 파티셔닝합니다. 다음 제한을 고려하세요.
  + 쿼리 로직 및 유지 관리의 복잡성이 증가하여 분할된 데이터를 올바르게 처리하기 위해 애플리케이션을 변경해야 할 수 있습니다.

## 모니터링
<a name="Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.Monitoring"></a>

### 시스템 테이블 사용
<a name="Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.SystemTables"></a>

PostgreSQL의 시스템 테이블을 사용하여 OID 사용량 증가를 모니터링할 수 있습니다.

**주의**  
TOAST 테이블의 OID 수에 따라 완료하는 데 시간이 걸릴 수 있습니다. 영향을 최소화하려면 업무 외 시간에 모니터링을 예약하는 것이 좋습니다.

다음 익명 블록은 각 TOAST 테이블에 사용된 고유 OID 수를 계산하고 상위 테이블 정보를 표시합니다.

```
DO $$
DECLARE
    r record;
    o bigint;
    parent_table text;
    parent_schema text;
BEGIN
    SET LOCAL client_min_messages TO notice;
    FOR r IN
    SELECT
        c.oid,
        c.oid::regclass AS toast_table
    FROM
        pg_class c
    WHERE
        c.relkind = 't'
        AND c.relowner != 10 LOOP
            -- Fetch the number of distinct used OIDs (chunk IDs) from the TOAST table
            EXECUTE 'SELECT COUNT(DISTINCT chunk_id) FROM ' || r.toast_table INTO o;
            -- If there are used OIDs, find the associated parent table and its schema
            IF o <> 0 THEN
                SELECT
                    n.nspname,
                    c.relname INTO parent_schema,
                    parent_table
                FROM
                    pg_class c
                    JOIN pg_namespace n ON c.relnamespace = n.oid
                WHERE
                    c.reltoastrelid = r.oid;
                -- Raise a concise NOTICE message
                RAISE NOTICE 'Parent schema: % | Parent table: % | Toast table: % | Number of used OIDs: %', parent_schema, parent_table, r.toast_table, TO_CHAR(o, 'FM9,999,999,999,999');
            END IF;
        END LOOP;
END
$$;
```

TOAST 테이블별로 OID 사용량 통계를 표시하는 출력 예제:

```
NOTICE:  Parent schema: public | Parent table: my_table | Toast table: pg_toast.pg_toast_16559 | Number of used OIDs: 45,623,317
NOTICE:  Parent schema: public | Parent table: my_table1 | Toast table: pg_toast.pg_toast_45639925 | Number of used OIDs: 10,000
NOTICE:  Parent schema: public | Parent table: my_table2 | Toast table: pg_toast.pg_toast_45649931 | Number of used OIDs: 1,000,000
DO
```

다음 익명 블록은 비어 있지 않은 각 TOAST 테이블에 할당된 최대 OID를 검색합니다.

```
DO $$
DECLARE
    r record;
    o bigint;
    parent_table text;
    parent_schema text;
BEGIN
    SET LOCAL client_min_messages TO notice;
    FOR r IN
    SELECT
        c.oid,
        c.oid::regclass AS toast_table
    FROM
        pg_class c
    WHERE
        c.relkind = 't'
        AND c.relowner != 10 LOOP
            -- Fetch the max(chunk_id) from the TOAST table
            EXECUTE 'SELECT max(chunk_id) FROM ' || r.toast_table INTO o;
            -- If there's at least one TOASTed chunk, find the associated parent table and its schema
            IF o IS NOT NULL THEN
                SELECT
                    n.nspname,
                    c.relname INTO parent_schema,
                    parent_table
                FROM
                    pg_class c
                    JOIN pg_namespace n ON c.relnamespace = n.oid
                WHERE
                    c.reltoastrelid = r.oid;
                -- Raise a concise NOTICE message
                RAISE NOTICE 'Parent schema: % | Parent table: % | Toast table: % | Max chunk_id: %', parent_schema, parent_table, r.toast_table, TO_CHAR(o, 'FM9,999,999,999,999');
            END IF;
        END LOOP;
END
$$;
```

TOAST 테이블의 최대 청크 ID를 표시하는 출력 예제:

```
NOTICE:  Parent schema: public | Parent table: my_table | Toast table: pg_toast.pg_toast_16559 | Max chunk_id: 45,639,907
NOTICE:  Parent schema: public | Parent table: my_table1 | Toast table: pg_toast.pg_toast_45639925 | Max chunk_id: 45,649,929
NOTICE:  Parent schema: public | Parent table: my_table2 | Toast table: pg_toast.pg_toast_45649931 | Max chunk_id: 46,649,935
DO
```

### 성능 개선 도우미 사용
<a name="Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.PerformanceInsights"></a>

대기 이벤트 `LWLock:buffer_io` 및 `LWLock:OidGenLock`은 새 객체 식별자(OID)를 할당해야 하는 작업 중에 Performance Insights에 표시됩니다. 이러한 이벤트에 대한 높은 평균 활성 세션(AAS)은 일반적으로 OID 할당 및 리소스 관리 중에 경합을 가리킵니다. 이는 데이터 이탈이 높거나, 대규모 데이터 사용량이 많거나, 객체를 자주 생성하는 환경에서 특히 일반적입니다.

#### LWLock:buffer\$1io
<a name="Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.LWLockBufferIO"></a>

`LWLock:buffer_io`는 PostgreSQL 세션이 공유 버퍼의 I/O 작업이 완료될 때까지 대기할 때 발생하는 대기 이벤트입니다. 이는 일반적으로 데이터베이스가 디스크의 데이터를 메모리로 읽거나 수정된 페이지를 메모리에서 디스크로 쓸 때 발생합니다. `BufferIO` 대기 이벤트는 I/O 작업이 진행되는 동안 여러 프로세스가 동일한 버퍼에 액세스하거나 수정하지 못하도록 하여 일관성을 보장합니다. 이 대기 이벤트가 높게 발생하면 디스크 병목 현상 또는 데이터베이스 워크로드의 과도한 I/O 활동을 나타낼 수 있습니다.

TOAST 작업 중에 다음을 수행합니다.
+ PostgreSQL은 대형 객체에 OID를 할당하고 TOAST 테이블의 인덱스를 스캔하여 고유성을 보장합니다.
+ 대형 TOAST 인덱스는 OID 고유성을 확인하기 위해 여러 페이지에 액세스해야 할 수 있습니다. 이로 인해 특히 버퍼 풀이 필요한 모든 페이지를 캐싱할 수 없는 경우, 디스크 I/O가 증가합니다.

인덱스의 크기는 이러한 작업 중에 액세스해야 하는 버퍼 페이지 수에 직접적인 영향을 미칩니다. 인덱스가 팽창하지 않더라도 특히 동시성이 높거나 이탈이 많은 환경에서는 얇은 크기로 인해 버퍼 I/O가 증가할 수 있습니다. 자세한 내용은 [LWLock:BufferIO 대기 이벤트 문제 해결 가이드](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/apg-waits.lwlockbufferio.html)를 참조하세요.

#### LWLock:OidGenLock
<a name="Appendix.PostgreSQL.CommonDBATasks.TOAST_OID.LWLockOidGenLock"></a>

`OidGenLock`은 PostgreSQL 세션이 새 객체 식별자(OID) 할당을 기다리고 있을 때 발생하는 대기 이벤트입니다. 이 잠금을 사용하면 OID가 순차적으로 안전하게 생성되므로 한 번에 하나의 프로세스만 OID를 생성할 수 있습니다.

TOAST 작업 중에 다음을 수행합니다.
+ **TOAST 테이블의 청크에 대한 OID 할당** - PostgreSQL은 대용량 데이터 레코드를 관리할 때 TOAST 테이블의 청크에 OID를 할당합니다. 시스템 카탈로그에서 충돌을 방지하려면 각 OID가 고유해야 합니다.
+ **높은 동시성** - OID 생성기에 대한 액세스는 순차적이므로 여러 세션이 동시에 OID가 필요한 객체를 생성하는 경우 `OidGenLock`에 대한 경합이 발생할 수 있습니다. 이렇게 하면 세션이 OID 할당이 완료될 때까지 기다릴 가능성이 높아집니다.
+ **시스템 카탈로그 액세스 종속성** - OID를 할당하려면 `pg_class` 및 `pg_type`과 같은 공유 시스템 카탈로그 테이블을 업데이트해야 합니다. 이러한 테이블에 과도한 활동이 발생하는 경우(DDL 작업이 잦음) `OidGenLock`에 대한 잠금 경합이 증가할 수 있습니다.
+ **높은 OID 할당 수요** - 대규모 데이터 레코드가 있는 TOAST 과중한 워크로드에는 일정한 OID 할당이 필요하므로 경합이 증가합니다.

OID 경합을 높이는 추가 요인:
+ **빈번한 객체 생성** - 임시 테이블과 같은 객체를 자주 생성 및 삭제하는 워크로드는 글로벌 OID 카운터에서 경합을 증폭합니다.
+ **글로벌 카운터 잠금** - 글로벌 OID 카운터는 고유성을 보장하기 위해 순차적으로 액세스되므로 동시성이 높은 환경에서 단일 경합 지점을 생성합니다.

# Babelfish for Aurora PostgreSQL 사용
<a name="babelfish"></a>

Babelfish for Aurora PostgreSQL에서는 SQL Server 클라이언트의 데이터베이스 연결을 수락하는 기능을 사용하여 Aurora PostgreSQL DB 클러스터를 확장합니다. Babelfish를 사용하면 원래 SQL Server용으로 구축된 애플리케이션이 기존 마이그레이션에 비해 코드를 거의 변경할 필요가 없고 데이터베이스 드라이버를 수정하지 않고도 Aurora PostgreSQL과 직접 작동할 수 있습니다. 마이그레이션에 대한 자세한 내용은 [SQL Server 데이터베이스를 Babelfish for Aurora PostgreSQL로 마이그레이션](babelfish-migration.md) 섹션을 참조하세요.

Babelfish는 Aurora PostgreSQL 데이터베이스 클러스터에 대한 추가 엔드포인트를 제공하여 SQL Server 와이어 수준 프로토콜 및 일반적으로 사용되는 SQL Server 문을 이해하도록 할 수 있습니다. Tabular Data Stream(TDS) 와이어 프로토콜을 사용하는 클라이언트 애플리케이션은 Aurora PostgreSQL의 TDS 리스너 포트에 기본적으로 연결할 수 있습니다. TDS에 대한 자세한 내용은 Microsoft 웹 사이트의 [[MS-TDS]: Tabular Data Stream 프로토콜](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-tds/b46a581a-39de-4745-b076-ec4dbb7d13ec)을 참조하세요.

**참고**  
Babelfish for Aurora PostgreSQL은 TDS 버전 7.1에서 7.4까지를 지원합니다.

또한 Babelfish는 PostgreSQL 연결을 사용하여 데이터에 대한 액세스를 제공합니다. 기본적으로 Babelfish에서 지원하는 두 SQL 언어는 다음 포트에서 기본 와이어 프로토콜을 통해 사용할 수 있습니다.
+ SQL Server 언어(T-SQL), 클라이언트는 포트 1433에 연결합니다.
+ PostgreSQL 언어(PL/pgSQL), 클라이언트는 포트 5432에 연결합니다.

Babelfish는 몇 가지 차이가 있는 Transact-SQL(T-SQL) 언어를 실행합니다. 자세한 내용은 [Babelfish for Aurora PostgreSQL과 SQL Server의 차이점](babelfish-compatibility.md) 섹션을 참조하세요.

다음 섹션에서는 Babelfish for Aurora PostgreSQL DB 클러스터를 설정하고 사용하는 방법에 대한 정보를 찾아볼 수 있습니다.

**Topics**
+ [Babelfish 제한 사항](babelfish-limitations.md)
+ [Babelfish 아키텍처 및 구성 이해](babelfish-understanding-overview-howitworks.md)
+ [Babelfish for Aurora PostgreSQL DB 클러스터 생성](babelfish-create.md)
+ [SQL Server 데이터베이스를 Babelfish for Aurora PostgreSQL로 마이그레이션](babelfish-migration.md)
+ [Babelfish for Aurora PostgreSQL을 사용하는 데이터베이스 인증](babelfish-db-authentication.md)
+ [Babelfish DB 클러스터에 연결](babelfish-connect.md)
+ [Babelfish 작업](working-with-babelfish-usage-notes-features.md)
+ [Babelfish 문제 해결](babelfish-troubleshooting.md)
+ [Babelfish 끄기](babelfish-remove.md)
+ [Babelfish for Aurora PostgreSQL 버전 업데이트 관리](babelfish-information.md)
+ [Babelfish for Aurora PostgreSQL 참조](USER_AuroraPostgreSQL_Babelfish_Reference.md)

# Babelfish 제한 사항
<a name="babelfish-limitations"></a>

 현재 Babelfish for Aurora PostgreSQL에 다음과 같은 제한 사항이 적용됩니다.
+  Babelfish는 다음 Aurora 기능을 지원하지 않습니다.
  + AWS Identity and Access Management
  + 데이터베이스 활동 스트림(DAS)
  + Aurora PostgreSQL Serverless v2를 사용하고 프로비저닝된 RDS 데이터 API
  + RDS for SQL Server를 사용하는 RDS 프록시
  + Salted challenge response authentication mechanism(SCRAM)
  + 쿼리 편집기
  + 제로 ETL 통합
+  Babelfish는 다음과 같은 클라이언트 드라이버 API 지원을 제공하지 않습니다.
  +  Microsoft Distributed Transaction Coordinator(MSDTC) 관련 연결 속성이 있는 API 요청은 지원되지 않습니다. 여기에는 SQL 서버 JDBC 드라이버의 SQLServerXAResource 클래스에 의한 XA 호출이 포함됩니다.
+ Babelfish는 현재 다음 Aurora PostgreSQL 확장을 지원하지 않습니다.
  + `bloom`
  + `btree_gin`
  + `btree_gist`
  + `citext`
  + `cube`
  + `hstore`
  + `hypopg`
  + `pglogical`를 이용한 논리적 복제
  + `ltree`
  + `pgcrypto`
  + `apg_plan_mgmt`를 사용하는 쿼리 계획 관리

  PostgreSQL 확장에 대한 자세한 내용은 [확장 및 외부 데이터 래퍼 작업](Appendix.PostgreSQL.CommonDBATasks.md) 섹션을 참조하세요.
+ Microsoft JDBC 드라이버의 대안으로 설계된 오픈 소스 [jTDS 드라이버](https://github.com/milesibastos/jTDS/)는 지원되지 않습니다.

# Babelfish 아키텍처 및 구성 이해
<a name="babelfish-understanding-overview-howitworks"></a>

Aurora DB 클러스터와 마찬가지로 Babelfish를 실행하는 Aurora PostgreSQL-Compatible Edition DB 클러스터를 관리합니다. 즉 확장성, 장애 조치를 지원하는 고가용성 및 Aurora DB 클러스터가 제공하는 기본 제공 복제본의 이점을 누릴 수 있습니다. 이러한 기능에 대해 자세히 알아보려면 [Aurora DB 클러스터의 성능 및 확장 관리](Aurora.Managing.Performance.md), [Amazon Aurora의 고가용성](Concepts.AuroraHighAvailability.md) 및 [Amazon Aurora를 사용한 복제](Aurora.Replication.md) 섹션을 참조하세요. 다음과 같이 다른 많은 AWS 도구 및 유틸리티에 대한 액세스 권한도 있습니다.
+ Amazon CloudWatch는 데이터 및 실행 가능한 인사이트를 제공하는 모니터링 및 관찰 가능 서비스입니다. 자세한 내용은 [Amazon CloudWatch로 Amazon Aurora 지표 모니터링](monitoring-cloudwatch.md) 단원을 참조하십시오.
+ 성능 개선 도우미는 데이터베이스의 로드를 빠르게 평가할 수 있는 데이터베이스 성능 튜닝 및 모니터링 기능입니다. 자세한 내용은 [성능 개선 도우미를 통한 Amazon Aurora 모니터링](USER_PerfInsights.md)을 참조하십시오.
+ Aurora 글로벌 데이터베이스는 여러 AWS 리전에 걸쳐 있으므로 대기 시간이 짧은 글로벌 읽기를 지원하며, 드물게 발생하여 전체 AWS 리전에 영향을 미칠 수 있는 중단을 신속하게 복구할 수 있습니다. 자세한 내용은 [Amazon Aurora Global Database 사용](aurora-global-database.md) 단원을 참조하십시오.
+ 사용 가능한 경우 자동 소프트웨어 패치를 사용하면 최신 보안 및 기능 패치로 데이터베이스를 최신 상태로 유지할 수 있습니다.
+ Amazon RDS 이벤트는 이메일 또는 SMS 메시지를 통해 사용자에게 자동 장애 조치와 같은 중요한 데이터베이스 이벤트에 대한 알림을 제공합니다. 자세한 내용은 [Amazon Aurora 이벤트 모니터링](working-with-events.md) 단원을 참조하십시오.

아래에서 Babelfish 아키텍처와 마이그레이션하는 SQL Server 데이터베이스를 Babelfish에서 처리하는 방법에 대해 알아볼 수 있습니다. Babelfish DB 클러스터를 생성할 때 단일 데이터베이스 또는 다중 데이터베이스, 데이터 정렬 및 기타 세부 사항에 대해 몇 가지 결정을 내려야 합니다.

**Topics**
+ [Babelfish 아키텍처](babelfish-architecture.md)
+ [Babelfish용 DB 클러스터 파라미터 그룹 설정](babelfish-configuration.md)
+ [Babelfish for Aurora PostgreSQL의 데이터 정렬 이해](babelfish-collations.md)
+ [이스케이프 해치를 사용하여 Babelfish 오류 처리 관리](babelfish-strict.md)

# Babelfish 아키텍처
<a name="babelfish-architecture"></a>

Babelfish가 켜진 상태에서 Aurora PostgreSQL 클러스터를 생성하면 Aurora는 `babelfish_db`라는 PostgreSQL 데이터베이스로 클러스터를 프로비저닝합니다. 이 데이터베이스에는 마이그레이션된 모든 SQL Server 객체 및 구조가 상주합니다.

**참고**  
Aurora PostgreSQL 클러스터에서 `babelfish_db` 데이터베이스 이름은 Babelfish용으로 예약되어 있습니다. Babelfish DB 클러스터에 자체 'babelfish\$1db' 데이터베이스를 생성하면 Aurora가 Babelfish를 성공적으로 프로비저닝하지 못합니다.

TDS 포트에 연결하면 세션이 `babelfish_db` 데이터베이스에 배치됩니다. T-SQL에서 구조는 SQL Server 인스턴스에 연결되는 것과 비슷합니다. `master`, `msdb`, `tempdb` 데이터베이스와 `sys.databases` 카탈로그가 표시됩니다. USE 문을 사용하여 추가 사용자 데이터베이스를 생성하고 데이터베이스 간에 전환할 수 있습니다. SQL Server 사용자 데이터베이스를 생성하면 `babelfish_db` PostgreSQL 데이터베이스에 병합됩니다. 데이터베이스는 SQL Server에서 제공하는 것과 같거나 유사한 교차 데이터베이스 구문 및 의미 체계를 유지합니다.

## 단일 데이터베이스 또는 여러 데이터베이스에서 Babelfish 사용
<a name="babelfish-single_vs_multi_db"></a>

Babelfish와 함께 사용할 Aurora PostgreSQL 클러스터를 생성하면 자체적으로 단일 SQL Server 데이터베이스를 사용하거나 여러 SQL Server 데이터베이스를 함께 사용할 것인지 선택할 수 있습니다. 선택 사항은 `babelfish_db` 데이터베이스 내부의 SQL Server 스키마의 이름이 Aurora PostgreSQL에서 나타나는 방식에 영향을 미칩니다. 마이그레이션 모드는 `migration_mode` 파라미터에 저장됩니다. 이전에 생성한 모든 SQL 객체에 대한 액세스 권한이 손실될 수 있으므로, 클러스터를 생성한 후에는 이 파라미터를 변경하지 않아야 합니다.

단일 데이터베이스 모드에서는 SQL Server 데이터베이스의 스키마 이름이 PostgreSQL의 `babelfish_db` 데이터베이스에서도 그대로 유지됩니다. 단일 데이터베이스만 마이그레이션하도록 선택하면, 마이그레이션된 사용자 데이터베이스의 스키마 이름을 SQL Server에서 사용한 것과 동일한 이름으로 PostgreSQL에서 참조할 수 있습니다. 예를 들어 `dbo` 및 `smith` 스키마는 `dbA` 데이터베이스 내부에 상주합니다*.*

![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/babelfish_single_db_mode.png)


TDS를 통해 연결할 때 SQL 서버에서와 마찬가지로 T-SQL에서 `dbo` 및 `dev` 스키마를 보려면 `USE dba`를 실행할 수 있습니다. 변경되지 않은 스키마 이름은 PostgreSQL에서 볼 수 있습니다.

다중 데이터베이스 모드에서 사용자 데이터베이스의 스키마 이름은 PostgreSQL에서 액세스하는 경우 `dbname_schemaname`이 됩니다. T-SQL에서 액세스하는 경우에도 스키마 이름은 동일하게 유지됩니다.

![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/babelfish_multi_db_mode.png)


이미지에서 볼 수 있듯이 다중 데이터베이스 모드와 단일 데이터베이스 모드는 TDS 포트를 통해 연결하고 T-SQL을 사용할 때 SQL Server와 동일합니다. 예를 들어, `USE dbA`은 SQL Server에서와 같이 스키마 `dbo` 및 `dev`를 나열합니다. 매핑된 스키마 이름(예: `dba_dbo` 및 `dba_dev`)은 PostgreSQL에서 볼 수 있습니다.

각 데이터베이스에는 여전히 스키마가 포함되어 있습니다. 각 데이터베이스의 이름이 SQL Server 스키마 이름 앞에 추가되며 밑줄을 구분 기호로 사용합니다. 예를 들면 다음과 같습니다.
+ `dba`가 `dba_dbo` 및 `dba_dev`를 포함합니다.
+ `dbb`가 `dbb_dbo` 및 `dbb_test`를 포함합니다.
+ `dbc`가 `dbc_dbo` 및 `dbc_prod`를 포함합니다.

`babelfish_db` 데이터베이스 내부에서 T-SQL 사용자는 계속 `USE dbname`을 실행하여 데이터베이스 컨텍스트를 변경하므로 모양과 느낌이 SQL Server와 비슷하게 유지됩니다.

## 마이그레이션 모드 선택
<a name="babelfish-choosing_single_vs_multi"></a>

각 마이그레이션 모드에는 장점과 단점이 있습니다. 보유한 사용자 데이터베이스 수와 마이그레이션 계획에 따라 마이그레이션 모드를 선택합니다. Babelfish와 함께 사용할 클러스터를 생성한 후에는 마이그레이션 모드를 변경하지 않아야 합니다. 이전에 생성한 모든 SQL 객체에 대한 액세스 권한을 잃을 수 있습니다. 마이그레이션 모드를 선택할 때는 사용자 데이터베이스 및 클라이언트의 요구 사항을 고려하세요.

Babelfish와 함께 사용할 클러스터를 만들면 Aurora PostgreSQL은 시스템 데이터베이스 `master` 및 `tempdb`를 생성합니다. 시스템 데이터베이스(`master` 또는 `tempdb`)에서 객체를 생성하거나 수정한 경우 새 클러스터에서 해당 객체를 다시 생성해야 합니다. SQL 서버와 달리 Babelfish는 클러스터 재부팅 후 `tempdb`를 다시 초기화하지 않습니다.

다음과 같은 경우 단일 데이터베이스 마이그레이션 모드를 사용합니다.
+ 단일 SQL Server 데이터베이스를 마이그레이션하는 경우. 단일 데이터베이스 모드의 경우 PostgreSQL에서 액세스될 때 마이그레이션된 스키마 이름은 원래 SQL Server 스키마 이름과 동일합니다. 따라서 PostgreSQL 연결에서 실행되도록 기존 SQL 쿼리를 최적화하려는 경우 기존 SQL 쿼리에 대한 코드 변경이 줄어듭니다.
+ 최종 목표가 기본 Aurora PostgreSQL로 완전히 마이그레이션하는 경우. 마이그레이션하기 전에 스키마를 단일 스키마(`dbo`)로 통합한 다음, 단일 클러스터로 마이그레이션하여 필요한 변경 사항을 줄입니다.

다음과 같은 경우 여러 데이터베이스 마이그레이션 모드를 사용합니다.
+ 동일한 인스턴스에서 여러 사용자 데이터베이스를 사용하는 기본 SQL Server 경험을 원하는 경우
+ 여러 사용자 데이터베이스를 함께 마이그레이션해야 하는 경우

# Babelfish용 DB 클러스터 파라미터 그룹 설정
<a name="babelfish-configuration"></a>

Aurora PostgreSQL DB 클러스터를 생성하고 **Babelfish에서 설정(Turn on Babelfish)**을 선택한 경우 **새로 생성(Create new)**을 선택하면 DB 클러스터 파라미터 그룹이 자동으로 생성됩니다. 이 DB 클러스터 파라미터 그룹은 설치를 위해 선택한 Aurora PostgreSQL 버전(예: Aurora PostgreSQL 버전 14)의 Aurora PostgreSQL DB 클러스터 파라미터 그룹을 기반으로 합니다. 다음과 같은 일반 패턴을 사용하여 이름을 지정합니다.

```
custom-aurora-postgresql14-babelfish-compat-3
```

클러스터 생성 프로세스 중에 다음 설정을 변경할 수 있지만, 일부 설정은 사용자 지정 파라미터 그룹에 저장되면 변경할 수 없으므로 신중하게 지정해야 합니다.
+ 단일 데이터베이스 또는 다중 데이터베이스
+ 기본 데이터 정렬 로캘
+ 데이터 정렬 이름
+ DB 파라미터 그룹

기존 Aurora PostgreSQL DB 클러스터 버전 13 이상의 파라미터 그룹을 사용하려면 그룹을 편집하고 `babelfish_status` 파라미터를 `on`으로 설정합니다. Aurora PostgreSQL 클러스터를 생성하기 전에 Babelfish 옵션을 지정합니다. 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md)를 참조하세요.

다음 파라미터는 Babelfish 기본 설정을 제어합니다. 설명(Description)에 달리 명시되지 않는 한 파라미터를 수정할 수 있습니다. 기본값이 설명에 포함됩니다. 파라미터에 사용할 수 있는 값을 보려면 다음을 수행합니다.

**참고**  
새 DB 파라미터 그룹을 DB 인스턴스와 연결하면 수정된 정적 파라미터 및 동적 파라미터는 DB 인스턴스가 재부팅된 후에만 적용됩니다. 그러나 DB 파라미터 그룹을 DB 인스턴스에 연결한 후 DB 파라미터 그룹에서 동적 파라미터를 수정하면 이러한 변경 사항이 재부팅 없이 즉시 적용됩니다.

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 메뉴에서 **파라미터 그룹(Parameter groups)**을 선택합니다.

1. 목록에서 `default.aurora-postgresql14` DB 클러스터 파라미터 그룹을 선택합니다.

1. 검색 필드에 파라미터 이름을 입력합니다. 예를 들면, 검색 필드에 `babelfishpg_tsql.default_locale`을 입력하여 이 파라미터와 기본값 및 허용되는 설정을 표시합니다.
**참고**  
Babelfish for Aurora PostgreSQL 글로벌 데이터베이스는 보조 리전에 다음 파라미터가 설정된 경우에만 보조 리전에서 작동합니다.


| 파라미터 | 설명 | 적용 유형 | 수정 가능 | 
| --- | --- | --- | --- | 
| babelfishpg\$1tsql.apg\$1enable\$1correlated\$1scalar\$1transform | 플래너가 Babelfish에서 상관관계가 있는 스칼라 하위 쿼리를 변환할 수 있습니다. (기본값: on)(허용: on, off)  | 동적 | true | 
| babelfishpg\$1tsql.apg\$1enable\$1subquery\$1cache | Babelfish에서 상관관계가 있는 스칼라 하위 쿼리에 캐시를 사용할 수 있도록 지원합니다. (기본값: on)(허용: on, off)  | 동적 | true | 
| babelfishpg\$1tds.tds\$1default\$1numeric\$1scale | 엔진에서 지정하지 않은 경우 TDS 열 메타데이터에서 전송할 숫자 유형의 기본 배율을 설정합니다. (기본값: 8)(허용: 0\$138)  | 동적 | true | 
| babelfishpg\$1tds.tds\$1default\$1numeric\$1precision | 엔진에서 지정하지 않은 경우 TDS 열 메타데이터에서 전송할 숫자 유형의 기본 정밀도를 설정하는 정수입니다. (기본값: 38)(허용: 1\$138) | 동적 | true | 
| babelfishpg\$1tds.tds\$1default\$1packet\$1size | SQL Server 클라이언트 연결을 위한 기본 패킷 크기를 설정하는 정수입니다. (기본값: 4096)(허용: 512\$132767) | 동적 | true | 
| babelfishpg\$1tds.tds\$1default\$1protocol\$1version | 클라이언트 연결을 위한 기본 TDS 프로토콜 버전을 설정하는 정수입니다. (기본값: DEFAULT) (허용: TDSv7.0, TDSv7.1, TDSv7.1.1, TDSv7.2, TDSv7.3A, TDSv7.3B, TDSv7.4, DEFAULT) | 동적 | true | 
| babelfishpg\$1tds.default\$1server\$1name | Babelfish 서버의 기본 이름을 식별하는 문자열입니다. (기본값: Microsoft SQL Server)(허용: null) | 동적 | true | 
| babelfishpg\$1tds.tds\$1debug\$1log\$1level | TDS에서 로깅 수준을 설정하는 정수로, 0은 로깅을 끕니다. (기본값: 1)(허용: 0, 1, 2, 3) | 동적 | true | 
| babelfishpg\$1tds.listen\$1addresses | TDS를 수신할 호스트 이름, IP 주소 또는 주소를 설정하는 문자열입니다. Babelfish DB 클러스터를 생성한 후에는 이 파라미터를 수정할 수 없습니다. (기본값: \$1)(허용: null)  | – | false | 
| babelfishpg\$1tds.port | SQL Server 구문의 요청에 사용되는 TCP 포트를 설정하는 정수입니다. (기본값: 1433)(허용: 1\$165535) | 고정 | true | 
| babelfishpg\$1tds.tds\$1ssl\$1encrypt | TDS 리스너 포트를 통과하는 데이터에 대해 암호화를 켜거나(0) 끄는(1) 부울입니다. 클라이언트 연결을 위해 SSL 사용법에 대한 자세한 내용은 [Babelfish SSL 설정 및 클라이언트 연결](#babelfish-ssl) 섹션을 참조하세요. (기본값: 0)(허용: 0, 1) | 동적 | true | 
| babelfishpg\$1tds.tds\$1ssl\$1max\$1protocol\$1version | TDS 세션에 사용할 가장 높은 SSL/TLS 프로토콜 버전을 지정하는 문자열입니다. (기본값: 'TLSv1.2')(허용: 'TLSv1', 'TLSv1.1', 'TLSv1.2') | 동적 | true | 
| babelfishpg\$1tds.tds\$1ssl\$1min\$1protocol\$1version | TDS 세션에 사용할 최소 SSL/TLS 프로토콜 버전을 지정하는 문자열입니다. (기본값: Aurora PostgreSQL 버전 16의 'TLSv1.2', Aurora PostgreSQL 버전 16 이전 버전의 경우 'TLSv1') (허용 가능: 'TLSv1', 'TLSv1.1', 'TLSv1.2') | 동적 | true | 
| babelfishpg\$1tds.unix\$1socket\$1directories | TDS 서버 Unix 소켓 디렉터리를 식별하는 문자열입니다. Babelfish DB 클러스터를 생성한 후에는 이 파라미터를 수정할 수 없습니다. (기본값: /tmp)(허용: null) | – | false | 
| babelfishpg\$1tds.unix\$1socket\$1group | TDS 서버 Unix 소켓 그룹을 식별하는 문자열입니다. Babelfish DB 클러스터를 생성한 후에는 이 파라미터를 수정할 수 없습니다. (기본값: rdsdb)(허용: null) | – | false | 
| babelfishpg\$1tsql.default\$1locale |  Babelfish 데이터 정렬에 사용되는 기본 로캘을 지정하는 문자열입니다. 기본 로캘은 로캘일 뿐이며 한정자는 포함하지 않습니다. Babelfish DB 클러스터를 프로비저닝할 때 이 파라미터를 설정합니다. DB 클러스터를 프로비저닝한 후 이 파라미터에 대한 변경은 무시됩니다. (기본값: en\$1US)(허용: [테이블](babelfish-collations.md) 참조)   | 고정 | true | 
| babelfishpg\$1tsql.migration\$1mode |  단일 또는 다중 사용자 데이터베이스에 대한 지원을 지정하는 수정할 수 없는 목록입니다. Babelfish DB 클러스터를 프로비저닝할 때 이 파라미터를 설정합니다. DB 클러스터를 프로비저닝한 후에는 이 파라미터의 값을 수정할 수 없습니다. (기본값: Aurora PostgreSQL 버전 16의 multi-db, Aurora PostgreSQL 버전 16 이전 버전의 경우 single-db) (허용: single-db, multi-db, null)  | 고정 | true | 
| babelfishpg\$1tsql.server\$1collation\$1name |  서버 수준 작업에 사용되는 데이터 정렬의 이름을 지정하는 문자열입니다. Babelfish DB 클러스터를 프로비저닝할 때 이 파라미터를 설정합니다. DB 클러스터를 프로비저닝한 후에는 이 파라미터의 값을 수정하지 마세요. (기본값: bbf\$1unicode\$1general\$1ci\$1as)(허용: [테이블](babelfish-collations.md) 참조)  | 고정 | true | 
| babelfishpg\$1tsql.version |  @@VERSION 변수의 출력을 설정하는 문자열입니다. Aurora PostgreSQL DB 클러스터에 대해 이 값을 수정하지 마세요. (기본값: null)(허용: 기본값)  | 동적 | true | 
| rds.babelfish\$1status | Babelfish 기능의 상태를 설정하는 문자열입니다. 이 파라미터가 `datatypesonly`로 설정된 경우 Babelfish는 꺼져 있지만 SQL Server 데이터 유형은 계속 사용할 수 있습니다. (기본값: off)(허용: on, off, datatypesonly) | 고정 | true | 
| unix\$1socket\$1permissions | TDS 서버 Unix 소켓 권한을 설정하는 정수입니다. Babelfish DB 클러스터를 생성한 후에는 이 파라미터를 수정할 수 없습니다. (기본값: 0700)(허용: 0\$1511) | – | false | 

## Babelfish SSL 설정 및 클라이언트 연결
<a name="babelfish-ssl"></a>

Babelfish for Aurora PostgreSQL DB 클러스터에 대한 SSL/TLS 연결을 요구하려면 `rds.force_ssl` 파라미터를 사용합니다.
+ SSL/TLS 연결을 요구하려면 `rds.force_ssl` 파라미터 값을 1(켜짐)로 설정합니다.
+ SSL/TLS 연결 요구를 끄려면 `rds.force_ssl` 파라미터 값을 0(꺼짐)으로 설정합니다.

이 파라미터의 기본값은 Aurora PostgreSQL 버전에 따라 다릅니다.
+ Aurora PostgreSQL 버전 17 이상: 기본값은 1(켜짐)입니다.
+ Aurora PostgreSQL 버전 16 이상: 기본값은 0(꺼짐)입니다.

**참고**  
Aurora PostgreSQL 버전 16 이하에서 버전 17 이상으로 메이저 버전 업그레이드를 수행하면 파라미터의 기본값이 0(꺼짐)에서 1(켜짐)로 변경됩니다. 이 변경으로 인해 SSL용으로 구성되지 않은 애플리케이션에 대한 연결이 실패할 수 있습니다. 이 파라미터를 0(꺼짐)으로 설정하여 이전 기본 동작으로 되돌릴 수 있습니다.

드라이버별 세부 정보는 [Babelfish DB 클러스터에 연결](babelfish-connect.md) 섹션을 참조하세요.

클라이언트가 TDS 포트(기본값 `1433`)에 연결하는 경우 Babelfish는 클라이언트 핸드셰이크 중에 전송된 보안 소켓 계층(SSL) 설정을 Babelfish SSL 파라미터 설정(`tds_ssl_encrypt`)과 비교합니다. 그런 다음, Babelfish는 연결이 허용되는지 여부를 결정합니다. 연결이 허용되면 파라미터 설정과 클라이언트가 제공하는 암호화 지원에 따라 암호화 동작이 적용되거나 적용되지 않습니다.

다음 테이블은 Babelfish가 각 조합에 대해 어떻게 동작하는지 보여줍니다.


| 클라이언트 SSL 설정 | Babelfish SSL 설정 | rds.force\$1ssl | 연결이 허용되나요? | 클라이언트에 반환된 값 | 
| --- | --- | --- | --- | --- | 
| ENCRYPT\$1ON | 임의 | 임의 | 허용됨, 전체 연결 암호화 | ENCRYPT\$1ON | 
| ENCRYPT\$1OFF | tds\$1ssl\$1encrypt=1 | 임의 | 허용됨, 전체 연결 암호화 | ENCRYPT\$1REQ | 
| ENCRYPT\$1OFF | tds\$1ssl\$1encrypt=0 | rds.force\$1ssl=0 | 허용됨, 로그인 패킷 암호화 | ENCRYPT\$1OFF | 
| ENCRYPT\$1OFF | tds\$1ssl\$1encrypt=0 | rds.force\$1ssl=1 | 아니요. 연결 종료 | ENCRYPT\$1OFF | 
| ENCRYPT\$1NOT\$1SUP | tds\$1ssl\$1encrypt=0 | rds.force\$1ssl=0 | 예 | ENCRYPT\$1NOT\$1SUP | 
| ENCRYPT\$1NOT\$1SUP | tds\$1ssl\$1encrypt=1 | 임의 | 아니요. 연결 종료  | ENCRYPT\$1REQ | 
| ENCRYPT\$1NOT\$1SUP | tds\$1ssl\$1encrypt=0 | rds.force\$1ssl=1 | 아니요. 연결 종료 | ENCRYPT\$1NOT\$1SUP | 
| ENCRYPT\$1CLIENT\$1CERT | 임의 | 임의 | 아니요. 연결 종료 | 지원되지 않음 | 

# Babelfish for Aurora PostgreSQL의 데이터 정렬 이해
<a name="babelfish-collations"></a>

Babelfish를 사용하여 Aurora PostgreSQL DB 클러스터를 생성하는 경우 데이터의 데이터 정렬을 선택하게 됩니다. *데이터 정렬*은 주어진 문자 언어로 텍스트 또는 문자를 생성하는 정렬 순서와 비트 패턴을 지정합니다. 데이터 정렬에는 지정된 비트 패턴 세트에 대한 데이터를 비교하는 규칙이 포함됩니다. 데이터 정렬은 현지화와 관련이 있습니다. 서로 다른 로캘은 문자 매핑, 정렬 순서 등에 영향을 줍니다. 데이터 정렬 속성은 다양한 데이터 정렬의 이름에 반영됩니다. 속성에 대한 자세한 내용은 [Babelfish collation attributes table](#bfish-collation-attributes-table) 섹션을 참조하세요.

Babelfish는 SQL Server 데이터 정렬을 Babelfish에서 제공하는 유사한 데이터 정렬에 매핑합니다. Babelfish는 문화적으로 민감한 문자열 비교 및 정렬 순서를 사용하여 유니코드 데이터 정렬을 미리 정의합니다. 또한 Babelfish는 SQL Server DB에 있는 데이터 정렬을 가장 r근접하게 일치하는 Babelfish 데이터 정렬로 변환하는 방법을 제공합니다. 로캘별 데이터 정렬은 다양한 언어 및 지역에 대해 제공됩니다.

일부 데이터 정렬은 클라이언트 측 인코딩에 해당하는 코드 페이지를 지정합니다. Babelfish는 각 출력 열의 데이터 정렬에 따라 서버 인코딩에서 클라이언트 인코딩으로 자동 변환됩니다.

Babelfish는 [Babelfish supported collations table](#bfish-collations-table)에 나열된 데이터 정렬을 지원합니다. Babelfish는 SQL Server 데이터 정렬을 Babelfish에서 제공하는 유사한 데이터 정렬에 매핑합니다.

Babelfish는 International Components for Unicode(ICU) 데이터 정렬 라이브러리 버전 153.80을 사용합니다. ICU 데이터 정렬의 자세한 내용은 ICU 설명서의 [데이터 정렬](https://unicode-org.github.io/icu/userguide/collation/)을 참조하세요. PostgreSQL 및 데이터 정렬에 대한 자세한 내용은 PostgreSQL 설명서의 [Collation Support](https://www.postgresql.org/docs/current/collation.html)(데이터 정렬 지원)을 참조하세요.

**Topics**
+ [데이터 정렬 및 로캘을 제어하는 DB 클러스터 파라미터](#babelfish-collations.parameters)
+ [Babelfish의 결정적 및 비결정적 데이터 정렬](#babelfish-collations.deterministic-nondeterministic)
+ [Babelfish의 데이터베이스 수준에서 지원되는 데이터 정렬](#babelfish-collations.database-level)
+ [Babelfish의 서버 및 객체 데이터 정렬](#babelfish-collations.reference-tables-supported-collations)
+ [Babelfish의 기본 데이터 정렬 동작](#babelfish-collations-default)
+ [데이터 정렬 관리](collation.managing.md)
+ [데이터 정렬 제한 및 동작 차이점](collation.limitations.md)

## 데이터 정렬 및 로캘을 제어하는 DB 클러스터 파라미터
<a name="babelfish-collations.parameters"></a><a name="collation-related-parameters"></a>

다음 파라미터는 데이터 정렬 동작에 영향을 줍니다.

**babelfishpg\$1tsql.default\$1locale**  
이 파라미터는 데이터 정렬에 사용되는 기본 로캘을 지정합니다. 또한, [Babelfish collation attributes table](#bfish-collation-attributes-table)에 나열된 속성과 함께 사용되어 특정 언어 및 지역에 대한 데이터 정렬을 사용자 지정합니다. 이 파라미터의 기본값은 `en-US`입니다.  
기본 로캘은 BBF로 시작하는 모든 Babelfish 데이터 정렬 이름과 Babelfish 데이터 정렬에 매핑되는 모든 SQL Server 데이터 정렬에 적용됩니다. 기존 Babelfish DB 클러스터의 이 파라미터에 대한 설정을 변경해도 기존 데이터 정렬의 로캘에는 영향을 주지 않습니다. 데이터 정렬 목록은 [Babelfish supported collations table](#bfish-collations-table) 섹션을 참조하세요.

**babelfishpg\$1tsql.server\$1collation\$1name**  
이 파라미터는 서버(Aurora PostgreSQL DB 클러스터 인스턴스)와 데이터베이스의 기본 데이터 정렬을 지정합니다. 기본값은 `sql_latin1_general_cp1_ci_as`입니다. T-SQL에서 서버 데이터 정렬이 식별자를 비교하는 방법을 결정하므로 `server_collation_name`은 `CI_AS` 데이터 정렬이어야 합니다.  
Babelfish DB 클러스터를 생성할 때 선택 가능한 목록에서 **데이터 정렬 이름(Collation name)**을 선택합니다. 여기에는 [Babelfish supported collations table](#bfish-collations-table)에 나열된 데이터 정렬이 포함됩니다. Babelfish 데이터베이스가 생성된 후 `server_collation_name`을 수정하지 마세요.

Babelfish for Aurora PostgreSQL DB 클러스터를 생성할 때 선택하는 설정은 이러한 파라미터의 클러스터와 연결된 DB 클러스터 파라미터 그룹에 저장되고 데이터 정렬 동작을 설정합니다.

## Babelfish의 결정적 및 비결정적 데이터 정렬
<a name="babelfish-collations.deterministic-nondeterministic"></a>

Babelfish는 결정적이고 비결정적인 데이터 정렬을 지원합니다.
+ *결정적 데이터 정렬*은 동일한 바이트 시퀀스를 가진 문자를 동등하게 평가합니다. 이는 `x` 및 `X`가 결정적 데이터 정렬에서는 동일하지 않다는 뜻입니다. 결정적 데이터 정렬에는 대소문자 구분(CS) 및 악센트 구분(AS)이 적용됩니다.
+ *비결정적 데이터 정렬*은 똑같이 일치할 필요가 없습니다. 비결정적 데이터 정렬은 `x` 및 `X`를 동일한 것으로 확인합니다. 비결정적 데이터 정렬은 대소문자 구분하지 않음(CI)이나 악센트 구분하지 않음(AI) 또는 둘 다가 적용됩니다.

다음 테이블에서 비결정적 데이터 정렬을 사용할 때 Babelfish와 PostgreSQL 간의 동작 차이점을 확인할 수 있습니다.


| Babelfish | PostgreSQL | 
| --- | --- | 
|  CI\$1AS 데이터 정렬에 대한 LIKE 절을 지원합니다.  |  비결정적 데이터 정렬에서는 LIKE 절을 지원하지 않습니다.  | 
|  Babelfish 버전 4.2.0의 다음 AI 데이터 정렬에서만 LIKE 절을 지원합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/babelfish-collations.html)  |  비결정적 데이터 정렬에서는 LIKE 절을 지원하지 않습니다.  | 

SQL Server 및 PostgreSQL과 비교하여 Babelfish의 기타 제한 사항 및 동작 차이점에 대한 목록은 [데이터 정렬 제한 및 동작 차이점](collation.limitations.md) 섹션을 참조하세요.

Babelfish와 SQL Server는 다음 테이블과 같이 데이터 정렬 속성을 설명하는 데이터 정렬에 대한 명명 규칙을 따릅니다.<a name="bfish-collation-attributes-table"></a>


| 속성 | 설명 | 
| --- | --- | 
| AI | 악센트 구분하지 않음. | 
| AS | 악센트 구분. | 
| BIN2 | BIN2는 코드 포인트 순서대로 데이터를 정렬하도록 요청합니다. 유니코드 코드 포인트 순서는 UTF-8, UTF-16 및 UCS-2 인코딩의 문자 순서와 동일합니다. 코드 포인트 순서는 빠른 결정적 데이터 정렬입니다. | 
| CI | 대소문자 구분하지 않음. | 
| CS | 대소문자 구분. | 
| PREF | 소문자 앞에 대문자를 정렬하려면 PREF 데이터 정렬을 사용합니다. 비교가 대소문자를 구분하지 않는 경우 다른 구분이 없으면 대문자 버전은 소문자 버전 앞에 정렬됩니다. ICU 라이브러리는 `colCaseFirst=upper`의 대문자 기본 설정을 지원하지만 CI\$1AS 데이터 정렬은 지원하지 않습니다. PREF는 `CS_AS` 결정적 데이터 정렬에만 적용될 수 있습니다. | 

## Babelfish의 데이터베이스 수준에서 지원되는 데이터 정렬
<a name="babelfish-collations.database-level"></a>

다음 데이터 정렬은 Babelfish의 데이터베이스 수준에서 지원됩니다.
+ bbf\$1unicode\$1bin2
+ bbf\$1unicode\$1cp1\$1ci\$1ai
+ bbf\$1unicode\$1cp1\$1ci\$1as
+ bbf\$1unicode\$1cp1250\$1ci\$1ai
+ bbf\$1unicode\$1cp1250\$1ci\$1as
+ bbf\$1unicode\$1cp1257\$1ci\$1ai
+ bbf\$1unicode\$1cp1257\$1ci\$1as
+ estonian\$1ci\$1ai
+ estonian\$1ci\$1as
+ finnish\$1swedish\$1ci\$1ai
+ finnish\$1swedish\$1ci\$1as
+ french\$1ci\$1ai
+ french\$1ci\$1as
+ latin1\$1general\$1bin2
+ latin1\$1general\$1ci\$1ai
+ latin1\$1general\$1ci\$1as
+ latin1\$1general\$190\$1bin2
+ latin1\$1general\$1100\$1bin2
+ latin1\$1general\$1140\$1bin2
+ modern\$1spanish\$1ci\$1ai
+ modern\$1spanish\$1ci\$1as
+ polish\$1ci\$1ai
+ polish\$1ci\$1as
+ sql\$1latin1\$1general\$1cp1\$1ci\$1ai
+ sql\$1latin1\$1general\$1cp1\$1ci\$1as
+ sql\$1latin1\$1general\$1cp1250\$1ci\$1as
+ sql\$1latin1\$1general\$1cp1251\$1ci\$1as
+ sql\$1latin1\$1general\$1cp1257\$1ci\$1as
+ traditional\$1spanish\$1ci\$1ai
+ traditional\$1spanish\$1ci\$1as

**참고**  
데이터베이스 수준에서 다른 데이터 정렬을 사용하려면 서버 수준 데이터 정렬과 일치하는지 확인합니다. 자세한 내용은 [Babelfish의 서버 및 객체 데이터 정렬](#babelfish-collations.reference-tables-supported-collations) 단원을 참조하세요.

## Babelfish의 서버 및 객체 데이터 정렬
<a name="babelfish-collations.reference-tables-supported-collations"></a>

다음 데이터 정렬을 서버 데이터 정렬 또는 객체 데이터 정렬로 사용합니다.<a name="bfish-collations-table"></a>


| 데이터 정렬 ID | 참고 | 
| --- | --- | 
|  bbf\$1unicode\$1general\$1ci\$1as  |  대소문자를 구분하지 않는 비교와 LIKE 연산자를 지원합니다.  | 
|  bbf\$1unicode\$1cp1\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1252.txt)은 CP1252라고도 합니다.  | 
|  bbf\$1unicode\$1CP1250\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1250.txt)은 라틴 문자를 사용하는 중부 유럽 및 동유럽 언어로 텍스트를 표현하는 데 사용됩니다.  | 
|  bbf\$1unicode\$1CP1251\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1251.txt)은 키릴 문자를 사용하는 언어에 사용됩니다.  | 
|  bbf\$1unicode\$1cp1253\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1253.txt)은 현대 그리스어를 표현하는 데 사용됩니다.  | 
|  bbf\$1unicode\$1cp1254\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1254.txt)은 터키어를 지원합니다.  | 
|  bbf\$1unicode\$1cp1255\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1255.txt)은 히브리어를 지원합니다.  | 
|  bbf\$1unicode\$1cp1256\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1256.txt)은 아랍 문자를 사용하는 언어를 작성하는 데 사용됩니다.  | 
|  bbf\$1unicode\$1cp1257\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1257.txt)은 에스토니아어, 라트비아어 및 리투아니아어를 지원하는 데 사용됩니다.  | 
|  bbf\$1unicode\$1cp1258\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1258.txt)은 베트남 문자를 작성하는 데 사용됩니다.  | 
|  bbf\$1unicode\$1cp874\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit874.txt)은 태국 문자를 작성하는 데 사용됩니다.  | 
|  sql\$1latin1\$1general\$1cp1250\$1ci\$1as  |  [비결정적 싱글바이트 문자 인코딩](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1250.txt)은 라틴 문자를 표현하는 데 사용됩니다.  | 
|  sql\$1latin1\$1general\$1cp1251\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1251.txt)은 라틴 문자를 지원합니다.  | 
|  sql\$1latin1\$1general\$1cp1\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1252.txt)은 라틴 문자를 지원합니다.  | 
|  sql\$1latin1\$1general\$1cp1253\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1253.txt)은 라틴 문자를 지원합니다.  | 
|  sql\$1latin1\$1general\$1cp1254\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1254.txt)은 라틴 문자를 지원합니다.  | 
|  sql\$1latin1\$1general\$1cp1255\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1255.txt)은 라틴 문자를 지원합니다.  | 
|  sql\$1latin1\$1general\$1cp1256\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1256.txt)은 라틴 문자를 지원합니다.  | 
|  sql\$1latin1\$1general\$1cp1257\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1257.txt)은 라틴 문자를 지원합니다.  | 
|  sql\$1latin1\$1general\$1cp1258\$1ci\$1as  |  [비결정적 데이터 정렬](https://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WindowsBestFit/bestfit1258.txt)은 라틴 문자를 지원합니다.  | 
|  chinese\$1prc\$1ci\$1as  |  비결정적 데이터 정렬은 중국어(PRC)를 지원합니다.  | 
|  cyrillic\$1general\$1ci\$1as  |  비결정적 데이터 정렬은 키릴어를 지원합니다.  | 
|  finnish\$1swedish\$1ci\$1as  |  비결정적 데이터 정렬은 핀란드어를 지원합니다.  | 
|  french\$1ci\$1as  |  비결정적 데이터 정렬은 프랑스어를 지원합니다.  | 
|  japanese\$1ci\$1as  | 비결정적 데이터 정렬은 일본어를 지원합니다. Babelfish 2.1.0 이상 릴리스에서 지원됩니다. | 
|  korean\$1wansung\$1ci\$1as  |  비결정적 데이터 정렬은 한국어를 지원합니다(사전 정렬 사용).  | 
|  latin1\$1general\$1ci\$1as  |  비결정적 데이터 정렬은 라틴 문자를 지원합니다.  | 
|  modern\$1spanish\$1ci\$1as  |  비결정적 데이터 정렬은 현대 스페인어를 지원합니다.  | 
|  polish\$1ci\$1as  |  비결정적 데이터 정렬은 폴란드어를 지원합니다.  | 
|  thai\$1ci\$1as  |  비결정적 데이터 정렬은 태국어를 지원합니다.  | 
|  traditional\$1spanish\$1ci\$1as  |  비결정적 데이터 정렬은 스페인어(전통에 따라 정렬)를 지원합니다.  | 
|  turkish\$1ci\$1as  |  비결정적 데이터 정렬은 터키어를 지원합니다.  | 
|  ukrainian\$1ci\$1as  |  비결정적 데이터 정렬은 우크라이나어를 지원합니다.  | 
|  vietnamese\$1ci\$1as  |  비결정적 데이터 정렬은 베트남어를 지원합니다.  | 

다음 데이터 정렬을 객체 데이터 정렬로 사용할 수 있습니다.<a name="bfish-icu-collations-table"></a>


| 언어 | 결정적 옵션 | 비결정적 옵션 | 
| --- | --- | --- | 
|  아랍어  |  Arabic\$1CS\$1AS  |  Arabic\$1CI\$1AS Arabic\$1CI\$1AI  | 
|  아랍어 문자  |  BBF\$1Unicode\$1CP1256\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1256\$1CS\$1AS  |  BBF\$1Unicode\$1CP1256\$1CI\$1AI BBF\$1Unicode\$1CP1256\$1CS\$1AI  | 
|  바이너리  |  latin1\$1general\$1bin2 BBF\$1Unicode\$1BIN2  |  –  | 
|  라틴 문자를 사용하는 중부 유럽 및 동유럽 언어  |  BBF\$1Unicode\$1CP1250\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1250\$1CS\$1AS  |  BBF\$1Unicode\$1CP1250\$1CI\$1AI BBF\$1Unicode\$1CP1250\$1CS\$1AI  | 
|  중국어  |  Chinese\$1PRC\$1CS\$1AS  |  Chinese\$1PRC\$1CI\$1AS Chinese\$1PRC\$1CI\$1AI  | 
|  키릴 문자\$1일반  |  Cyrillic\$1General\$1CS\$1AS  |  Cyrillic\$1General\$1CI\$1AS Cyrillic\$1General\$1CI\$1AI  | 
|  키릴 문자  |  BBF\$1Unicode\$1CP1251\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1251\$1CS\$1AS  |  BBF\$1Unicode\$1CP1251\$1CI\$1AI BBF\$1Unicode\$1CP1251\$1CS\$1AI  | 
|  에스토니아어  |  Estonian\$1CS\$1AS  |  Estonian\$1CI\$1AS Estonian\$1CI\$1AI  | 
|  에스토니아어, 라트비아어, 리투아니아어  |  BBF\$1Unicode\$1CP1257\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1257\$1CS\$1AS  |  BBF\$1Unicode\$1CP1257\$1CI\$1AI BBF\$1Unicode\$1CP1257\$1CS\$1AI  | 
|  필란드어\$1스웨덴어  |  Finnish\$1Swedish\$1CS\$1AS  |  Finnish\$1Swedish\$1CI\$1AS Finnish\$1Swedish\$1CI\$1AI  | 
|  프랑스어  |  French\$1CS\$1AS  |  French\$1CI\$1AS French\$1CI\$1AI  | 
|  그리스어  |  Greek\$1CS\$1AS  |  Greek\$1CI\$1AS Greek\$1CI\$1AI  | 
|  히브리어  |  BBF\$1Unicode\$1CP1255\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1255\$1CS\$1AS Hebrew\$1CS\$1AS  |  BBF\$1Unicode\$1CP1255\$1CI\$1AI BBF\$1Unicode\$1CP1255\$1CS\$1AI Hebrew\$1CI\$1AS Hebrew\$1CI\$1AI  | 
|  일본어(Babelfish 2.1.0 이상)  | Japanese\$1CS\$1AS | Japanese\$1CI\$1AI Japanese\$1CI\$1AS | 
|  한국어\$1완성형  |  Korean\$1Wamsung\$1CS\$1AS  |  Korean\$1Wamsung\$1CI\$1AS Korean\$1Wamsung\$1CI\$1AI  | 
|  코드 페이지 CP1252의 라틴 문자  |  latin1\$1general\$1cs\$1as BBF\$1Unicode\$1General\$1CS\$1AS BBF\$1Unicode\$1General\$1Pref\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1\$1CS\$1AS BBF\$1Unicode\$1CP1\$1CS\$1AS  |  latin1\$1general\$1ci\$1as latin1\$1general\$1ci\$1ai latin1\$1general\$1cs\$1ai BBF\$1Unicode\$1General\$1CI\$1AI BBF\$1Unicode\$1General\$1CS\$1AI BBF\$1Unicode\$1CP1\$1CI\$1AI BBF\$1Unicode\$1CP1\$1CS\$1AI  | 
|  현대 그리스어  |  BBF\$1Unicode\$1CP1253\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1253\$1CS\$1AS  |  BBF\$1Unicode\$1CP1253\$1CI\$1AI BBF\$1Unicode\$1CP1253\$1CS\$1AI  | 
|  현대\$1스페인어  |  Modern\$1Spanish\$1CS\$1AS  |  Modern\$1Spanish\$1CI\$1AS Modern\$1Spanish\$1CI\$1AI  | 
|  몽골어  |  Mongolian\$1CS\$1AS  |  Mongolian\$1CI\$1AS Mongolian\$1CI\$1AI  | 
|  폴란드어  |  Polish\$1CS\$1AS  |  Polish\$1CI\$1AS Polish\$1CI\$1AI  | 
|  태국어  |  BBF\$1Unicode\$1CP874\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP874\$1CS\$1AS Thai\$1CS\$1AS  |  BBF\$1Unicode\$1CP874\$1CI\$1AI BBF\$1Unicode\$1CP874\$1CS\$1AI Thai\$1CI\$1AS, Thai\$1CI\$1AI  | 
|  정통\$1스페인어  |  Traditional\$1Spanish\$1CS\$1AS  |  Traditional\$1Spanish\$1CI\$1AS Traditional\$1Spanish\$1CI\$1AI  | 
|  터키어  |  BBF\$1Unicode\$1CP1254\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1254\$1CS\$1AS Turkish\$1CS\$1AS  |  BBF\$1Unicode\$1CP1254\$1CI\$1AI BBF\$1Unicode\$1CP1254\$1CS\$1AI Turkish\$1CI\$1AS, Turkish\$1CI\$1AI  | 
|  우크라이나어  |  Ukranian\$1CS\$1AS  |  Ukranian\$1CI\$1AS Ukranian\$1CI\$1AI  | 
|  베트남어  |  BBF\$1Unicode\$1CP1258\$1CS\$1AS BBF\$1Unicode\$1Pref\$1CP1258\$1CS\$1AS Vietnamese\$1CS\$1AS  |  BBF\$1Unicode\$1CP1258\$1CI\$1AI BBF\$1Unicode\$1CP1258\$1CS\$1AI Vietnamese\$1CI\$1AS Vietnamese\$1CI\$1AI  | 

## Babelfish의 기본 데이터 정렬 동작
<a name="babelfish-collations-default"></a>

이전에는 `pg_catalog.default`가 정렬 가능한 데이터 형식의 기본 데이터 정렬이었습니다. 이러한 데이터 형식에 의존하는 데이터 형식 및 객체는 대/소문자 구분 데이터 정렬을 따릅니다. 이 조건은 대소문자를 구분하지 않는 데이터 정렬을 따르는 데이터 세트의 T-SQL 객체에 잠재적으로 영향을 미칩니다. Babelfish 2.3.0부터 정렬 가능한 데이터 형식(TEXT 및 NTEXT 제외)의 기본 데이터 정렬은 `babelfishpg_tsql.server_collation_name` 파라미터의 데이터 정렬과 동일합니다. Babelfish 2.3.0으로 업그레이드하면 DB 클러스터 생성 시 기본 데이터 정렬이 자동으로 선택되므로 눈에 띄는 영향이 없습니다.

# 데이터 정렬 관리
<a name="collation.managing"></a>

ICU 라이브러리는 데이터 정렬 버전 추적을 제공하여 새 버전의 ICU를 사용할 수 있으면 데이터 정렬에 종속된 인덱스를 다시 인덱싱할 수 있도록 합니다. 현재 데이터베이스에 새로 고침이 필요한 데이터 정렬이 있는지 확인하려면 `psql` 또는 `pgAdmin`을 사용하여 연결한 후 다음 쿼리를 활용합니다.

```
SELECT pg_describe_object(refclassid, refobjid,
    refobjsubid) AS "Collation", 
    pg_describe_object(classid, objid, objsubid) AS "Object" 
    FROM pg_depend d JOIN pg_collation c ON refclassid = 'pg_collation'::regclass
    AND refobjid = c.oid WHERE c.collversion <> pg_collation_actual_version(c.oid) 
    ORDER BY 1, 2;
```

이 쿼리는 다음과 같은 출력을 반환합니다.

```
 Collation | Object
-----------+--------
(0 rows)
```

이 예에서는 데이터 정렬을 업데이트할 필요가 없습니다.

Babelfish 데이터베이스에서 미리 정의된 데이터 정렬 목록을 확인하려면 다음 쿼리와 함께 `psql` 또는 `pgAdmin`을 사용하면 됩니다.

```
SELECT * FROM pg_collation;
```

미리 정의된 데이터 정렬은 `sys.fn_helpcollations` 테이블에 저장됩니다. 다음 명령을 사용하여 데이터 정렬에 대한 정보(예: lcid, style 및 collate flags)를 표시할 수 있습니다. `sqlcmd`를 사용하여 모든 데이터 정렬 목록을 가져오려면 T-SQL 포트(기본값 1433)에 연결하고 다음 쿼리를 실행합니다.

```
1> :setvar SQLCMDMAXVARTYPEWIDTH 40
2> :setvar SQLCMDMAXFIXEDTYPEWIDTH 40
3> SELECT * FROM fn_helpcollations()
4> GO
name                                     description
---------------------------------------- ----------------------------------------
arabic_cs_as                             Arabic, case-sensitive, accent-sensitive
arabic_ci_ai                             Arabic, case-insensitive, accent-insensi
arabic_ci_as                             Arabic, case-insensitive, accent-sensiti
bbf_unicode_bin2                         Unicode-General, case-sensitive, accent-
bbf_unicode_cp1250_ci_ai                 Default locale, code page 1250, case-ins
bbf_unicode_cp1250_ci_as                 Default locale, code page 1250, case-ins
bbf_unicode_cp1250_cs_ai                 Default locale, code page 1250, case-sen
bbf_unicode_cp1250_cs_as                 Default locale, code page 1250, case-sen
bbf_unicode_pref_cp1250_cs_as            Default locale, code page 1250, case-sen
bbf_unicode_cp1251_ci_ai                 Default locale, code page 1251, case-ins
bbf_unicode_cp1251_ci_as                 Default locale, code page 1251, case-ins
bbf_unicode_cp1254_ci_ai                 Default locale, code page 1254, case-ins
...
(124 rows affected)
```

이 예에 표시된 1행과 2행은 문서 가독성을 위해 출력 범위를 좁혔습니다.

```
1> SELECT SERVERPROPERTY('COLLATION')
2> GO
serverproperty
---------------------------------------------------------------------------
sql_latin1_general_cp1_ci_as

(1 rows affected)
1>
```

# 데이터 정렬 제한 및 동작 차이점
<a name="collation.limitations"></a>

Babelfish는 데이터 정렬 지원을 위해 ICU 라이브러리를 사용합니다. PostgreSQL은 특정 버전의 ICU로 빌드되며 최대 한 버전의 데이터 정렬을 일치시킬 수 있습니다. 시간이 흐름에 따라 언어가 발전하면서 사소한 변형이 있는 것처럼 버전 간 변형은 피할 수 없습니다. 다음 목록에는 Babelfish 데이터 정렬의 알려진 제한 사항 및 동작 변형이 나와 있습니다.
+ **인덱스 및 데이터 정렬 유형 종속성** – International Components for Unicode(ICU) 데이터 정렬 라이브러리(Babelfish에서 사용하는 라이브러리)를 따르는 사용자 지정 유형의 인덱스는 라이브러리 버전이 변경되어도 무효화되지 않습니다.
+ **COLLATIONPROPERTY 함수** – 데이터 정렬 속성은 지원되는 Babelfish BBF 데이터 정렬에 대해서만 구현됩니다. 자세한 내용은 [Babelfish supported collations table](babelfish-collations.md#bfish-collations-table)을 참조하세요.
+ **유니코드 정렬 규칙 차이점** - SQL Server의 SQL 데이터 정렬은 유니코드로 인코딩된 데이터(`nchar` 및 `nvarchar`)를 유니코드로 인코딩되지 않은 데이터(`char` 및 `varchar`)와 다르게 정렬합니다. Babelfish 데이터베이스는 항상 UTF-8으로 인코딩되며, `char` 또는 `varchar`에 대한 정렬 순서가 `nchar` 또는 `nvarchar`에 대한 정렬 순서와 같도록 데이터 유형에 관계없이 항상 유니코드 정렬 규칙을 일관되게 적용합니다.
+ **2차와 동일한 데이터 정렬 및 정렬 동작** – 기본 ICU 유니코드 2차와 동일한(`CI_AS`) 데이터 정렬은 문장 부호 및 기타 영숫자가 아닌 문자를 숫자 문자 앞에 정렬하고 숫자 문자는 알파벳 문자 앞에 정렬합니다. 그러나 문장 부호 및 기타 특수 문자의 순서는 다릅니다.
+ **3차 데이터 정렬, ORDER BY용 차선책** – SQL 데이터 정렬(예: `SQL_Latin1_General_Pref_CP1_CI_AS`)은 `TERTIARY_WEIGHTS` 함수 및 `CI_AS` 데이터 정렬에서 균등하게 비교되는 문자열을 정렬하는 기능을 지원하여 `ABC`, `ABc`, `AbC`, `Abc`, `aBC`, `aBc`, `abC`, `abc`와 같이 먼저 대문자로 정렬되도록 합니다. 따라서 `DENSE_RANK OVER (ORDER BY column)` 분석 함수는 이러한 문자열을 동일한 순위를 갖는 것으로 평가하지만 파티션 내에서 먼저 대문자를 정렬합니다.

  `COLLATE` 절을 `@colCaseFirst=upper`를 지정하는 3차 `CS_AS` 데이터 정렬을 지정하는 `ORDER BY` 절에 추가하여 Babelfish와 비슷한 결과를 얻을 수 있습니다. 그러나 `colCaseFirst` 한정자는 `CI_AS` 데이터 정렬과 같이 2차와 동일한 문자열이 아닌 3차와 동일한 문자열에만 적용됩니다. 따라서 단일 ICU 데이터 정렬을 사용하여 3차 SQL 데이터 정렬을 에뮬레이션할 수 없습니다.

  해결 방법으로 먼저 `BBF_SQL_Latin1_General_CP1_CI_AS` 데이터 정렬을 사용하려면 `SQL_Latin1_General_Pref_CP1_CI_AS` 데이터 정렬을 사용하는 애플리케이션을 수정하는 것이 좋습니다. 그런 다음, `COLLATE BBF_SQL_Latin1_General_Pref_CP1_CS_AS`를 이 열의 `ORDER BY` 절에 추가합니다.
+ **문자 확장** – 문자 확장은 단일 문자를 기본 수준의 문자 시퀀스와 동일하게 취급합니다. SQL Server의 기본 `CI_AS` 데이터 정렬은 문자 확장을 지원합니다. ICU 데이터 정렬은 악센트를 구분하지 않는 데이터 정렬에 대해서만 문자 확장을 지원합니다.

  문자 확장이 필요한 경우 비교를 위해 `AI` 데이터 정렬을 사용합니다. 그러나 이러한 데이터 정렬은 현재 LIKE 연산자에서 지원되지 않습니다.
+ **char 및 varchar 인코딩** – SQL 데이터 정렬이 `char` 또는 `varchar` 데이터 유형에 사용되는 경우 ASCII 127 이전 문자의 정렬 순서는 해당 SQL 데이터 정렬에 대한 특정 코드 페이지에 따라 결정됩니다. SQL 데이터 정렬의 경우 `char` 또는 `varchar`로 선언된 문자열은 `nchar` 또는 `nvarchar`로 선언된 문자열과 다르게 정렬될 수 있습니다.

  PostgreSQL은 데이터베이스 인코딩으로 모든 문자열을 인코딩하므로 모든 문자를 UTF-8으로 변환하고 유니코드 규칙을 사용하여 정렬합니다.

  SQL 데이터 정렬은 유니코드 규칙을 사용하여 nchar 및 nvarchar 데이터 유형을 정렬하므로 Babelfish는 UTF-8을 사용하여 서버의 모든 문자열을 인코딩합니다. Babelfish는 유니코드 규칙을 사용하여 char 및 varchar 문자열을 정렬하는 것과 동일한 방식으로 nchar 및 nvarchar 문자열을 정렬합니다.
+ **보조 문자** – SQL Server 함수 `NCHAR`, `UNICODE`, `LEN`은 유니코드 기본 다국어 평면(BMP) 외부의 코드 포인트에 대한 문자를 지원합니다. 대조적으로 SC가 아닌 데이터 정렬은 서로게이트 쌍 문자를 사용하여 보조 문자를 처리합니다. 유니코드 데이터 형식의 경우 SQL Server는 UCS-2 또는 보조 문자를 사용하는 경우 전체 유니코드 범위(1,114,114자)를 사용하여 최대 65,535자를 나타낼 수 있습니다.
+ **가나 구분(KS) 데이터 정렬** - 가나 구분(KS) 데이터 정렬은 `Hiragana` 및 `Katakana` 일본어 가나 문자를 다르게 취급합니다. ICU는 일본 데이터 정렬 표준 `JIS X 4061`을 지원합니다. 이제 사용되지 않는 `colhiraganaQ [on | off]` 로캘 한정자는 KS 데이터 정렬과 동일한 기능을 제공할 수 있습니다. 그러나 SQL Server와 동일한 이름의 KS 데이터 정렬은 현재 Babelfish에서 지원하지 않습니다.
+ **전자/반자 구분(WS) 데이터 정렬** – 싱글바이트 문자(반자)와 더블바이트 문자(전자)로 표현되는 동일한 문자가 다르게 처리되는 경우의 데이터 정렬을 *전자/반자 구분(WS)*이라고 합니다. 그러나 SQL Server와 동일한 이름의 WS 데이터 정렬은 현재 Babelfish에서 지원하지 않습니다.
+ **변형 선택기 구분(VSS) 데이터 정렬** - 변형 선택기 구분(VSS) 데이터 정렬은 일본어 데이터 정렬 `Japanese_Bushu_Kakusu_140` 및 `Japanese_XJIS_140`에서 표의 문자 변형 선택기를 구분합니다. 변형 시퀀스는 기본 문자와 추가 변형 선택기로 구성됩니다. `_VSS` 옵션을 선택하지 않은 경우 변형 선택기는 비교 시 고려되지 않습니다.

  VSS 데이터 정렬은 현재 Babelfish에서 지원되지 않습니다.
+ **BIN 및 BIN2 데이터 정렬** – BIN2 데이터 정렬은 코드 포인트 순서에 따라 문자를 정렬합니다. UTF-8의 바이트별 이진 순서는 유니코드 코드 포인트 순서를 준수하므로 가장 성능이 좋은 데이터 정렬이 될 수 있습니다. 유니코드 코드 포인트 순서가 애플리케이션에서 작동하는 경우 BIN2 데이터 정렬을 사용하는 것이 좋습니다. 그러나 BIN2 데이터 정렬을 사용하면 문화적으로 예상치 못한 순서로 데이터가 클라이언트에 표시될 수 있습니다. 시간이 진행되면서 소문자에 대한 새로운 매핑이 유니코드에 추가되므로 `LOWER` 함수는 ICU의 다른 버전에서 다르게 수행될 수 있습니다. 이 경우는 BIN2 데이터 정렬과 관련된 문제가 아닌 좀 더 일반적인 데이터 정렬 버전 관리 문제의 특별한 경우입니다.

  Babelfish는 Babelfish 배포를 통해 `BBF_Latin1_General_BIN2` 데이터 정렬을 제공하여 유니코드 코드 포인트 순서로 정렬합니다. BIN 데이터 정렬에서는 첫 번째 문자만 wchar로 정렬됩니다. 나머지 문자는 해당 인코딩에 따라 코드 포인트 순서로 바이트별 정렬이 효과적으로 이뤄집니다. 이 방법은 유니코드 데이터 정렬 규칙을 따르지 않으며 Babelfish에서 지원하지 않습니다.
+ **비결정적 데이터 정렬 및 CHARINDEX 제한** - 버전 2.1.0 이전 Babelfish 릴리스의 경우 CHARINDEX를 비결정적 데이터 정렬과 함께 사용할 수 없습니다. 기본적으로 Babelfish는 대소문자를 구분하지 않는(비결정적) 데이터 정렬을 사용합니다. 이전 버전의 Babelfish에 CHARINDEX를 사용하면 다음과 같은 런타임 오류가 발생합니다.

  ```
  nondeterministic collations are not supported for substring searches
  ```
**참고**  
이 제한 사항 및 해결 방법은 Babelfish 버전 1.x(Aurora PostgreSQL 13.x 버전)에만 적용됩니다. Babelfish 2.1.0 이상 릴리스에는 문제가 발생하지 않습니다.

  이 문제를 해결하려면 다음 중 한 방법을 시도하면 됩니다.
  + 표현식을 대소문자를 구분하는 데이터 정렬로 명시적으로 변환하고 LOWER 또는 UPPER를 적용하여 두 인수를 모두 케이스 폴드(case-fold)합니다. 예를 들어 `SELECT charindex('x', a) FROM t1`은 다음이 됩니다.

    ```
    SELECT charindex(LOWER('x'), LOWER(a COLLATE sql_latin1_general_cp1_cs_as)) FROM t1
    ```
  + SQL 함수 f\$1charindex를 만들고 CHARINDEX 호출을 다음 함수에 대한 호출로 바꿉니다.

    ```
    CREATE function f_charindex(@s1 varchar(max), @s2 varchar(max)) RETURNS int
    AS
    BEGIN
    declare @i int = 1
    WHILE len(@s2) >= len(@s1)
    BEGIN
      if LOWER(@s1) = LOWER(substring(@s2,1,len(@s1))) return @i
      set @i += 1
      set @s2 = substring(@s2,2,999999999)
    END
    return 0
    END
    go
    ```

# 이스케이프 해치를 사용하여 Babelfish 오류 처리 관리
<a name="babelfish-strict"></a>

Babelfish는 제어 흐름 및 트랜잭션 상태에 대해 SQL 동작을 가능한 한 모방합니다. Babelfish에 오류가 발생하면 SQL Server 오류 코드와 유사한 오류 코드를 반환합니다. Babelfish가 오류를 SQL Server 코드에 매핑할 수 없으면 고정 오류 코드(`33557097`)를 반환하고 다음과 같이 오류 유형에 따라 특정 작업을 수행합니다.
+ 컴파일 타임 오류인 경우 Babelfish는 트랜잭션을 롤백합니다.
+ 런타임 오류인 경우 Babelfish는 배치를 종료하고 트랜잭션을 롤백합니다.
+ 클라이언트와 서버 간의 프로토콜 오류인 경우 트랜잭션이 롤백되지 않습니다.

오류 코드를 동등한 코드에 매핑할 수 없고 유사한 오류에 대한 코드를 사용할 수 있는 경우 오류 코드가 대체 코드에 매핑됩니다. 예를 들어 SQL Server 코드, `8143` 및 `8144`를 유발하는 동작이 둘 다 `8143`으로 매핑됩니다.

매핑할 수 없는 오류는 `TRY... CATCH` 구문을 준수하지 않습니다.

`@@ERROR`를 사용하여 SQL Server 오류 코드를 반환하거나 `@@PGERROR` 함수를 사용하여 PostgreSQL 오류 코드를 반환할 수 있습니다. `fn_mapped_system_error_list` 함수를 사용하여 매핑된 오류 코드 목록을 반환할 수 있습니다. PostgreSQL 오류 코드에 대한 자세한 내용은 [PostgreSQL 웹 사이트](https://www.postgresql.org/docs/current/errcodes-appendix.html)를 참조하세요.

## Babelfish 이스케이프 해치 설정 수정
<a name="babelfish-escape_hatches"></a>

오류가 있을 수 있는 문장을 처리하기 위해 Babelfish는 이스케이프 해치라는 특정 옵션을 정의합니다. *이스케이프 해치*는 지원되지 않는 기능이나 구문을 발견했을 때 Babelfish 동작을 지정하는 옵션입니다.

`sp_babelfish_configure` 저장 프로시저를 사용하여 이스케이프 해치의 설정을 제어할 수 있습니다. 스크립트를 사용하여 이스케이프 해치를 `ignore` 또는 `strict`로 설정합니다. `strict`로 설정된 경우 Babelfish는 계속하기 전에 수정해야 하는 오류를 반환합니다.

현재 세션과 클러스터 수준에 변경 사항을 적용하려면 `server` 키워드를 포함합니다.

사용법은 다음과 같습니다.
+ 모든 이스케이프 해치와 해당 상태 및 사용 정보를 나열하려면 `sp_babelfish_configure`를 실행합니다.
+ 명명된 이스케이프 해치와 해당 값을 나열하려면 현재 세션 또는 클러스터 전체에 대해 `hatch_name`이 하나 이상의 이스케이프 해치의 식별자인 `sp_babelfish_configure 'hatch_name'` 명령을 실행합니다. *hatch\$1name*에는 '%'와 같은 SQL 와일드카드를 사용할 수 있습니다.
+ 하나 이상의 이스케이프 해치를 지정된 값으로 설정하려면 `sp_babelfish_configure ['hatch_name' [, 'strict'|'ignore' [, 'server']]`을 실행합니다. 클러스터 전체 수준에서 설정이 영구적이 되게 하려면 아래 나와 있는 것처럼 `server` 키워드를 포함합니다.

  ```
  EXECUTE sp_babelfish_configure 'escape_hatch_unique_constraint', 'ignore', 'server'
  ```

  현재 세션에 대해서만 설정하려면 `server`는 사용하지 마세요.
+ 모든 이스케이프 해치를 기본값으로 재설정하려면 `sp_babelfish_configure 'default'`(Babelfish 1.2.0 이상)를 실행합니다.

해치를 식별하는 문자열에는 SQL 와일드카드가 포함될 수 있습니다. 예를 들어 다음은 모든 구문 이스케이프 해치를 Aurora PostgreSQL 클러스터의 `ignore`로 설정합니다.

```
EXECUTE sp_babelfish_configure '%', 'ignore', 'server'
```

다음 표에서는 Babelfish 사전 정의된 이스케이프 해치에 대한 설명과 기본값을 확인할 수 있습니다.


| 이스케이프 해치 | 설명 | Default | 
| --- | --- | --- | 
| escape\$1hatch\$1checkpoint |  절차 코드에서 CHECKPOINT 문을 사용할 수 있지만 CHECKPOINT 문은 현재 구현되지 않았습니다.  |  무시  | 
| escape\$1hatch\$1constraint\$1name\$1for\$1default |  기본 제약 조건 이름과 관련된 Babelfish 동작을 제어합니다.  |  무시  | 
| escape\$1hatch\$1database\$1misc\$1options |  CREATE DATABASE: CONTAINMENT, DB\$1CHAINING, TRUSTWORTHY, PERSISTENT\$1LOG\$1BUFFER에서 다음 옵션과 관련된 Babelfish 동작을 제어합니다.  |  무시  | 
| escape\$1hatch\$1for\$1replication |  테이블을 만들거나 변경하는 경우 [NOT] FOR REPLICATION 절과 관련된 Babelfish 동작을 제어합니다.  |  strict  | 
| escape\$1hatch\$1fulltext |  DEFAULT\$1FULLTEXT\$1LANGUAGE in CREATE/ALTER DATABASE, CREATE FULLTEXT INDEX, 또는 sp\$1fulltext\$1database와 같은 FULLTEXT 기능과 관련된 Babelfish 동작을 제어합니다.  |  무시  | 
| escape\$1hatch\$1ignore\$1dup\$1key |  CREATE/ALTER TABLE 및 CREATE INDEX와 관련된 Babelfish 동작을 제어합니다. IGNORE\$1DUP\$1KEY=ON인 경우 `strict`(기본값)로 설정하면 오류가 반환되고`ignore`로 설정하면 오류가 무시됩니다(Babelfish 버전 1.2.0 이상).  |  strict  | 
| escape\$1hatch\$1index\$1clustering |  인덱스 및 PRIMARY KEY 또는 UNIQUE 제약 조건에 대한 CLUSTERED 또는 NONCLUSTERED 키워드와 관련된 Babelfish 동작을 제어합니다. 클러스터링이 무시되면 NONCLUSTERED가 지정된 것처럼 인덱스 또는 제약 조건이 계속 만들어집니다.  |  무시  | 
| escape\$1hatch\$1index\$1columnstore |  COLUMNSTORE 절과 관련된 Babelfish 동작을 제어합니다. `ignore`를 지정한 경우 Babelfish는 일반 B-tree 인덱스를 생성합니다.  |  strict  | 
| escape\$1hatch\$1join\$1hints |  LOOP, HASH, MERGE, REMOTE, REDUCE, REDISTRIBUTE, REPLICATE 등 JOIN 연산자의 키워드 동작을 제어합니다.  |  무시  | 
| escape\$1hatch\$1language\$1non\$1english |  화면 메시지에 대해 영어 이외의 언어와 관련된 Babelfish 동작을 제어합니다. Babelfish는 현재 화면 메시지에 대해 `us_english`만 지원합니다. SET LANGUAGE는 언어 이름을 포함하는 변수를 사용할 수 있으므로 설정 중인 실제 언어는 런타임 시에만 감지할 수 있습니다.  |  strict  | 
| escape\$1hatch\$1login\$1hashed\$1password |  무시하면 `CREATE LOGIN`과 `ALTER LOGIN`에 대한 `HASHED` 키워드의 오류를 표시하지 않습니다.  |  strict  | 
| escape\$1hatch\$1login\$1misc\$1options |  무시하면 `CREATE LOGIN` 및 `ALTER LOGIN`에 대한 `HASHED`, `MUST_CHANGE`, `OLD_PASSWORD` 및 `UNLOCK`을 제외한 다른 키워드의 오류를 표시하지 않습니다.  |  strict  | 
| escape\$1hatch\$1login\$1old\$1password |  무시하면 `CREATE LOGIN`과 `ALTER LOGIN`에 대한 `OLD_PASSWORD` 키워드의 오류를 표시하지 않습니다.  |  strict  | 
| escape\$1hatch\$1login\$1password\$1must\$1change |  무시하면 `CREATE LOGIN`과 `ALTER LOGIN`에 대한 `MUST_CHANGE` 키워드의 오류를 표시하지 않습니다.  |  strict  | 
| escape\$1hatch\$1login\$1password\$1unlock |  무시하면 `CREATE LOGIN`과 `ALTER LOGIN`에 대한 `UNLOCK` 키워드의 오류를 표시하지 않습니다.  |  strict  | 
| escape\$1hatch\$1nocheck\$1add\$1constraint |  제약 조건에 대한 WITH CHECK 또는 NOCHECK 절과 관련된 Babelfish 동작을 제어합니다.  |  strict  | 
| escape\$1hatch\$1nocheck\$1existing\$1constraint |  FOREIGN KEY 또는 CHECK 제약 조건과 관련된 Babelfish 동작을 제어합니다.  |  strict  | 
| escape\$1hatch\$1query\$1hints |  쿼리 힌트와 관련된 Babelfish 동작을 제어합니다. 이 옵션을 무시하도록 설정하면 서버는 OPTION (...) 절을 사용하여 쿼리 처리 측면을 지정하는 힌트를 무시합니다. 예에는 SELECT FROM ...이 있습니다. OPTION(MERGE JOIN HASH, MAXRECURSION 10)).  |  무시  | 
|  escape\$1hatch\$1rowversion | ROWVERSION 및 TIMESTAMP 데이터 유형의 동작을 제어합니다. 사용 정보는 [구현이 제한된 Babelfish 기능 사용](babelfish-compatibility.tsql.limited-implementation.md) 단원을 참조하세요. | strict | 
| escape\$1hatch\$1schemabinding\$1function |  WITH SCHEMABINDING 절과 관련된 Babelfish 동작을 제어합니다. 기본적으로 WITH SCHEMABINDING 절은 CREATE 또는 ALTER FUNCTION 명령으로 지정되면 무시됩니다.  |  무시  | 
| escape\$1hatch\$1schemabinding\$1procedure |  WITH SCHEMABINDING 절과 관련된 Babelfish 동작을 제어합니다. 기본적으로 WITH SCHEMABINDING 절은 CREATE 또는 ALTER PROCEDURE 명령으로 지정되면 무시됩니다.  |  무시  | 
| escape\$1hatch\$1rowguidcol\$1column |  테이블을 만들거나 변경하는 경우 ROWGUIDCOL 절과 관련된 Babelfish 동작을 제어합니다.  |  strict  | 
| escape\$1hatch\$1schemabinding\$1trigger |  WITH SCHEMABINDING 절과 관련된 Babelfish 동작을 제어합니다. 기본적으로 WITH SCHEMABINDING 절은 CREATE 또는 ALTER TRIGGER 명령으로 지정되면 무시됩니다.  |  무시  | 
| escape\$1hatch\$1schemabinding\$1view |  WITH SCHEMABINDING 절과 관련된 Babelfish 동작을 제어합니다. 기본적으로 WITH SCHEMABINDING 절은 CREATE 또는 ALTER VIEW 명령으로 지정되면 무시됩니다.  |  무시  | 
| escape\$1hatch\$1session\$1settings |  지원되지 않는 세션 수준 SET 문에 대한 Babelfish 동작을 제어합니다.  |  무시  | 
| escape\$1hatch\$1showplan\$1all |  SET SHOWPLAN\$1ALL 및 SET STATISTICS PROFILE과 관련된 Babelfish 동작을 제어합니다. 무시하도록 설정하면 SET BABELFISH\$1SHOWPLAN\$1ALL 및 SET BABELFISH\$1STATISTICS PROFILE처럼 동작합니다. 엄격하게 설정하면 자동으로 무시됩니다.  |  strict  | 
| escape\$1hatch\$1storage\$1on\$1partition |  파티셔닝을 정의하는 경우 `ON partition_scheme column ` 절과 관련된 Babelfish 동작을 제어합니다. Babelfish는 현재 파티셔닝을 구현하지 않습니다.  |  strict  | 
| escape\$1hatch\$1storage\$1options |  CREATE, ALTER DATABASE, TABLE, INDEX에 사용되는 모든 스토리지 옵션의 이스케이프 해치. 여기에는 테이블, 인덱스, 제약 조건과 데이터베이스에 대한 스토리지 위치(파티션, 파일 그룹)를 정의하는 (LOG) ON, TEXTIMAGE\$1ON, FILESTREAM\$1ON 절이 포함됩니다. 이 이스케이프 해치 설정은 이러한 모든 절(ON [PRIMARY] 및 ON 'DEFAULT' 포함)에 적용됩니다. ON partition\$1scheme(열)이 있는 테이블이나 인덱스에 대해 파티션이 지정된 경우는 예외입니다.  |  무시  | 
| escape\$1hatch\$1table\$1hints |  WITH (...) 절을 사용하여 지정된 테이블 힌트의 동작을 제어합니다.  |  무시  | 
| escape\$1hatch\$1unique\$1constraint |  엄격으로 설정하면 인덱싱된 열에서 NULL 값을 처리할 때 SQL Server와 PostgreSQL의 의미 차이가 모호한 경우 오류가 발생할 수 있습니다. 의미 차이는 비현실적인 사용 사례에서만 나타나므로 오류가 표시되지 않도록 이 이스케이프 해치를 '무시'로 설정할 수 있습니다. 다음 버전에서 더 이상 사용되지 않음: 3.6.0 이상 버전, 4.2.0 이상 버전  |  strict  | 

# Babelfish for Aurora PostgreSQL DB 클러스터 생성
<a name="babelfish-create"></a>

Babelfish for Aurora PostgreSQL은 Aurora PostgreSQL 버전 13.4 이상에서 지원됩니다.

AWS Management Console 또는 AWS CLI를 사용하여 Babelfish에서 Aurora PostgreSQL DB 클러스터를 생성할 수 있습니다.

**참고**  
Aurora PostgreSQL 클러스터에서 `babelfish_db` 데이터베이스 이름은 Babelfish용으로 예약되어 있습니다. Babelfish for Aurora PostgreSQL에 자체 "babelfish\$1db" 데이터베이스를 생성하면 Aurora가 Babelfish를 성공적으로 프로비저닝하지 못합니다.

## 콘솔
<a name="babelfish-create-cluster.console"></a>

**AWS Management Console에서 실행되는 Babelfish를 사용하여 클러스터를 만들려면**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 열고 **데이터베이스 생성(Create database)**을 선택합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/bbf_create_cluster_1.png)

1. **데이터베이스 생성 방법 선택(Choose a database creation method)**에서 다음 중 하나를 수행합니다.
   + 자세한 엔진 옵션을 지정하려면 **표준 생성(Standard create)**을 선택합니다.
   + Aurora 클러스터에 대한 모범 사례를 지원하는 사전 구성된 옵션을 사용하려면 **간편한 생성(Easy create)**을 선택합니다.

1. **엔진 유형**에서 **Aurora(PostgreSQL 호환)**를 선택합니다.

1. **필터 표시(Show filters)**를 선택한 다음, **Babelfish for PostgreSQL 기능을 지원하는 버전 표시(Show versions that support the Babelfish for PostgreSQL feature)**를 선택하여 Babelfish를 지원하는 엔진 유형을 나열합니다. Babelfish는 현재 Aurora PostgreSQL 13.4 이상 버전에서 지원됩니다.

1. **사용 가능한 버전(Available versions)**에서 Aurora PostgreSQL 버전을 선택합니다. 최신 Babelfish 기능을 사용하려면 가장 높은 Aurora PostgreSQL 메이저 버전을 선택하세요.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/bbf_create_cluster_3.png)

1. **템플릿(Templates)**에서 사용 사례에 맞는 템플릿을 선택합니다.

1. **DB 클러스터 식별자(DB cluster identifier)**에서 나중에 쉽게 찾을 수 있는 이름을 DB 클러스터 목록에 입력합니다.

1. **마스터 사용자 이름(Master username)**에 관리자 사용자 이름을 입력합니다. Aurora PostgreSQL의 기본값은 `postgres`입니다. 기본값을 적용하거나 다른 이름을 선택할 수 있습니다. 예를 들어, SQL Server 데이터베이스에 사용된 이름 지정 규칙을 따르려면 마스터 사용자 이름에 `sa`(시스템 관리자)를 입력하면 됩니다.

   현재 `sa`라는 이름의 사용자를 생성하지 않는 경우 선택한 클라이언트를 사용하여 나중에 사용자를 하나 만들 수 있습니다. 사용자를 생성한 후 `ALTER SERVER ROLE` 명령을 이용하여 클러스터의 `sysadmin` 그룹(역할)에 사용자를 추가합니다.
**주의**  
마스터 사용자 이름은 항상 소문자를 사용해야 하며, 그러지 않으면 DB 클러스터가 TDS 포트를 통해 Babelfish에 연결할 수 없습니다.

1. **마스터 암호(Master password)**에서 강력한 암호를 만들고 암호를 확인합니다.

1. 다음 옵션의 경우 **Babelfish 설정(Babelfish settings)** 섹션에서 DB 클러스터 설정을 지정합니다. 각 설정에 대한 자세한 내용은 [Aurora DB 클러스터 설정](Aurora.CreateInstance.md#Aurora.CreateInstance.Settings) 섹션을 참조하세요.

1. Babelfish 기능을 사용할 수 있도록 하려면 **Babelfish 켜기(Turn on Babelfish)** 상자를 선택합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/bbf_create_cluster_5.png)

1. **DB 클러스터 파라미터 그룹(DB cluster parameter group)**에서 다음 중 하나를 수행합니다.
   + **새로 생성(Create new)**을 선택하여 Babelfish를 켠 상태에서 새 파라미터 그룹을 생성합니다.
   + **기존 선택(Choose existing)**을 선택하여 기존 파라미터 그룹을 사용합니다. 기존 그룹을 사용하는 경우 클러스터를 생성하기 전에 그룹을 수정하고 Babelfish 파라미터에 대한 값을 추가해야 합니다. Babelfish 파라미터에 대한 자세한 내용은 [Babelfish용 DB 클러스터 파라미터 그룹 설정](babelfish-configuration.md) 섹션을 참조하세요.

     기존 그룹을 사용하는 경우 다음 상자에 그룹 이름을 입력합니다.

1. **데이터베이스 마이그레이션 모드(Database migration mode)**에서 다음 중 하나를 선택합니다.
   + 단일 SQL Server 데이터베이스를 마이그레이션할 **단일 데이터베이스(Single database)**.

     경우에 따라 Babelfish를 사용하지 않고 기본 Aurora PostgreSQL로 완전히 마이그레이션하는 것을 목표로 여러 사용자 데이터베이스를 함께 마이그레이션할 수 있습니다. 최종 애플리케이션에 통합 스키마(단일`dbo` 스키마)가 필요한 경우 먼저 SQL Server 데이터베이스를 단일 SQL 서버 데이터베이스로 통합해야 합니다. 그런 다음, **단일 데이터베이스(Single database)**모드를 사용하여 Babelfish로 마이그레이션합니다.
   + 여러 SQL Server 데이터베이스를 마이그레이션할 **다중 데이터베이스(Multiple databases)**(단일 SQL Server 설치에서 시작). 다중 데이터베이스 모드는 단일 SQL Server 설치에서 시작되지 않은 여러 데이터베이스를 통합하지 않습니다. 여러 데이터베이스 마이그레이션에 대한 자세한 내용은 [단일 데이터베이스 또는 여러 데이터베이스에서 Babelfish 사용](babelfish-architecture.md#babelfish-single_vs_multi_db) 섹션을 참조하세요.
**참고**  
Aurora PostgreSQL 버전 16에서는 기본적으로 **여러 데이터베이스**가 데이터베이스 마이그레이션 모드로 선택됩니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/bbf_create_cluster_6.png)

1. **기본 데이터 정렬 로캘(Default collation locale)**에서 서버 로캘을 입력합니다. 기본값은 `en-US`입니다. 데이터 정렬에 대한 자세한 내용은 [Babelfish for Aurora PostgreSQL의 데이터 정렬 이해](babelfish-collations.md) 섹션을 참조하세요.

1. **데이터 정렬 이름(Collation name)** 필드에 기본 데이터 정렬을 입력합니다. 기본값은 `sql_latin1_general_cp1_ci_as`입니다. 자세한 내용은 [Babelfish for Aurora PostgreSQL의 데이터 정렬 이해](babelfish-collations.md)섹션을 참조하세요.

1. **Babelfish TDS 포트**의 경우 기본 포트인 `1433`을 입력합니다. 현재 Babelfish는 DB 클러스터에 `1433` 포트만 지원합니다.

1. **DB 파라미터 그룹(DB parameter group)**에서 파라미터 그룹을 선택하거나 Aurora에서 기본 설정으로 새 그룹을 생성하도록 합니다.

1. **장애 조치 우선순위(Failover priority)**에서 인스턴스에 대한 장애 조치 우선순위를 선택합니다. 값을 선택하지 않은 경우 기본값은 `tier-1`입니다. 기본 인스턴스 장애로부터 복구할 때 이 우선 순위에 따라 복제본이 승격되는 순서가 결정됩니다. 자세한 내용은 [Aurora DB 클러스터의 내결함성](Concepts.AuroraHighAvailability.md#Aurora.Managing.FaultTolerance) 섹션을 참조하세요.

1. **백업 보존 기간(Backup retention period)**에서 Aurora가 데이터베이스 백업 사본을 보존하는 기간(1\$135일)을 선택합니다. 백업 복사본은 데이터베이스를 마지막 특정 시점으로 복원(PITR)하는 데 사용할 수 있습니다. 기본 보존 기간은 7일입니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/bbf_create_cluster_7.png)

1. 스냅샷을 생성할 때 DB 인스턴스 태그를 DB 스냅샷에 복사하려면 **태그를 스냅샷에 복사(Copy tags to snapshots)**를 선택합니다.
**참고**  
스냅샷에서 DB 클러스터를 복원할 때는 Babelfish for Aurora PostgreSQL DB 클러스터로 복원되지 않습니다. Babelfish를 다시 활성화하려면 DB 클러스터 파라미터 그룹의 Babelfish 기본 설정을 제어하는 파라미터를 켜야 합니다. Babelfish 파라미터에 대한 자세한 내용은 [Babelfish용 DB 클러스터 파라미터 그룹 설정](babelfish-configuration.md) 단원을 참조하세요.

1. **암호화 사용 설정(Enable Encryption)**을 선택하면 이 DB 클러스터의 미사용 데이터 암호화(Aurora 스토리지 암호화)를 설정할 수 있습니다.

1. **성능 개선 도우미 사용 설정(Enable Performance Insights)**을 선택하여 Amazon RDS 성능 개선 도우미를 설정할 수 있습니다.

1. DB 클러스터가 실행되는 운영 체제에 대한 실시간 지표 수집을 시작하려면 **향상된 모니터링 사용 설정(Enable enhanced monitoring)**을 선택합니다.

1. **PostgreSQL 로그(PostgreSQL log)**를 선택하여 Amazon CloudWatch Logs에 로그 파일을 게시합니다.

1. **마이너 버전 자동 업그레이드 사용 설정(Enable auto minor version upgrade)**을 선택하여 마이너 버전 업그레이드가 사용 가능할 때 Aurora DB 클러스터를 자동으로 업데이트합니다.

1. **유지 관리 기간(Maintenance window)**에서 다음을 수행합니다.
   + Amazon RDS가 수정하거나 유지 관리를 수행할 시간을 선택하려면 **기간 선택(Select window)**을 선택합니다.
   + 예정되지 않은 시간에 Amazon RDS 유지 관리를 수행하려면 **선호 시간 없음(No preference)**을 선택합니다.

1. **삭제 방지 사용 설정(Enable deletion protection)**을 선택하여 실수로 데이터베이스가 삭제되지 않도록 보호합니다.

   이 기능을 설정하면 데이터베이스를 직접 삭제할 수 없습니다. 대신, 데이터베이스를 삭제하기 전에 데이터베이스 클러스터를 수정하고 이 기능을 해제해야 합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/bbf_create_cluster_9.png)

1. **데이터베이스 생성(Create database)**을 선택합니다.

**데이터베이스(Databases)** 목록에서 Babelfish에 대해 설정된 새 데이터베이스를 찾을 수 있습니다. **상태(Status)** 열은 배포가 완료되면 **사용 가능(Available)**이 표시됩니다.

![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/bbf_create_cluster_10.png)


## AWS CLI
<a name="babelfish-create-cluster.CLI"></a>

AWS CLI를 사용하여 Babelfish for Aurora PostgreSQL을 생성할 때는 클러스터에 사용할 DB 클러스터 파라미터 그룹의 이름에 명령을 전달해야 합니다. 자세한 내용은 [DB 클러스터 사전 조건](Aurora.CreateInstance.md#Aurora.CreateInstance.Prerequisites) 섹션을 참조하세요.

AWS CLI를 사용하여 Babelfish에서 Aurora PostgreSQL DB 클러스터를 생성할 수 있기 전에 다음을 수행합니다.
+ [Amazon Aurora 엔드포인트 및 할당량)Amazon Aurora endpoints and quotas)](https://docs.aws.amazon.com/general/latest/gr/aurora.html)의 서비스 목록에서 엔드포인트 URL을 선택합니다.
+ 클러스터에 대한 파라미터 그룹을 생성합니다. 파라미터 그룹에 대한 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.
+ 파라미터 그룹을 수정하고 Babelfish를 설정하는 파라미터를 추가합니다.<a name="babelfish.CLI.Creating.DBCluster"></a>

**AWS CLI를 사용하여 Babelfish가 있는 Aurora PostgreSQL DB 클러스터를 생성하려면**

다음 예에서는 기본 마스터 사용자 이름(`postgres`)을 사용합니다. 필요에 따라 DB 클러스터에 대해 생성한 사용자 이름(예: `sa` 또는 기본값을 사용하지 않은 경우에 선택한 사용자 이름)으로 대체합니다.

1. 파라미터 그룹을 생성합니다.

   대상 LinuxmacOS, 또는Unix:

   ```
   aws rds create-db-cluster-parameter-group \
   --endpoint-url endpoint-url \
   --db-cluster-parameter-group-name parameter-group \
   --db-parameter-group-family aurora-postgresql14 \
   --description "description"
   ```

   Windows의 경우:

   ```
   aws rds create-db-cluster-parameter-group ^
   --endpoint-url endpoint-URL ^
   --db-cluster-parameter-group-name parameter-group ^
   --db-parameter-group-family aurora-postgresql14 ^
   --description "description"
   ```

1. 파라미터 그룹을 수정하여 Babelfish를 설정합니다.

   대상 LinuxmacOS, 또는Unix:

   ```
   aws rds modify-db-cluster-parameter-group \
   --endpoint-url endpoint-url \
   --db-cluster-parameter-group-name parameter-group \
   --parameters "ParameterName=rds.babelfish_status,ParameterValue=on,ApplyMethod=pending-reboot"
   ```

   Windows의 경우:

   ```
   aws rds modify-db-cluster-parameter-group ^
   --endpoint-url endpoint-url ^
   --db-cluster-parameter-group-name paramater-group ^
   --parameters "ParameterName=rds.babelfish_status,ParameterValue=on,ApplyMethod=pending-reboot"
   ```

1. 새 DB 클러스터에 대한 DB 서브넷 그룹과 VPC(Virtual Private Cloud) 보안 그룹 ID를 확인한 다음, [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html) 명령을 호출합니다.

   대상 LinuxmacOS, 또는Unix:

   ```
   aws rds create-db-cluster \
   --db-cluster-identifier  cluster-name\
   --master-username postgres \
   --manage-master-user-password \
   --engine aurora-postgresql \
   --engine-version 14.3            \
   --vpc-security-group-ids security-group \
   --db-subnet-group-name subnet-group-name \
   --db-cluster-parameter-group-name parameter-group
   ```

   Windows의 경우:

   ```
   aws rds create-db-cluster ^
   --db-cluster-identifier cluster-name ^
   --master-username postgres ^
   --manage-master-user-password ^
   --engine aurora-postgresql ^
   --engine-version 14.3 ^
   --vpc-security-group-ids security-group ^
   --db-subnet-group-name subnet-group ^
   --db-cluster-parameter-group-name parameter-group
   ```

   이 예제에서는 마스터 사용자 암호를 생성하고 이를 Secrets Manager에서 관리하는 `--manage-master-user-password` 옵션을 지정합니다. 자세한 내용은 [Amazon Aurora 및 AWS Secrets Manager를 통한 암호 관리](rds-secrets-manager.md) 섹션을 참조하세요. 또는 `--master-password` 옵션을 사용하여 암호를 직접 지정하고 관리할 수 있습니다.

1. DB 클러스터에 대한 프라이머리 인스턴스를 명시적으로 생성합니다. 다음과 같이 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 명령을 호출할 때 3단계에서 생성한 클러스터의 이름을 `--db-cluster-identifier` 인수에 사용합니다.

   대상 LinuxmacOS, 또는Unix:

   ```
   aws rds create-db-instance \
   --db-instance-identifier instance-name \
   --db-instance-class db.r6g \
   --db-subnet-group-name subnet-group \
   --db-cluster-identifier cluster-name \
   --engine aurora-postgresql
   ```

   Windows의 경우:

   ```
   aws rds create-db-instance ^
   --db-instance-identifier instance-name ^
   --db-instance-class db.r6g ^
   --db-subnet-group-name subnet-group ^
   --db-cluster-identifier cluster-name ^
   --engine aurora-postgresql
   ```

# SQL Server 데이터베이스를 Babelfish for Aurora PostgreSQL로 마이그레이션
<a name="babelfish-migration"></a>

Babelfish for Aurora PostgreSQL을 사용하여 SQL Server 데이터베이스에서 Amazon Aurora PostgreSQL DB 클러스터로 마이그레이션할 수 있습니다. 마이그레이션하기 전에 [단일 데이터베이스 또는 여러 데이터베이스에서 Babelfish 사용](babelfish-architecture.md#babelfish-single_vs_multi_db) 섹션을 검토하세요.

**Topics**
+ [마이그레이션 프로세스 개요](#babelfish-migration.process-summary)
+ [SQL Server 및 Babelfish 간의 차이점 평가 및 처리](#babelfish-migration.assessing-the-source)
+ [SQL Server에서 Babelfish로 마이그레이션하기 위한 가져오기/내보내기 도구](#babelfish-migration.import-export-tools)

## 마이그레이션 프로세스 개요
<a name="babelfish-migration.process-summary"></a>

다음 요약에는 SQL Server 애플리케이션을 성공적으로 마이그레이션하고 Babelfish와 함께 사용하는 데 필요한 단계가 나열되어 있습니다. 내보내기 및 가져오기 프로세스에 사용할 수 있는 도구에 대한 자세한 내용과 심층적인 정보는 [SQL Server에서 Babelfish로 마이그레이션하기 위한 가져오기/내보내기 도구](#babelfish-migration.import-export-tools) 섹션을 참조하세요. 데이터를 로드하려면 대상 엔드포인트로 Aurora PostgreSQL DB 클러스터가 있는 AWS DMS를 사용하는 것이 좋습니다.

1. Babelfish를 설정한 새로운 Aurora PostgreSQL DB 클러스터를 생성합니다. 자세한 방법은 [Babelfish for Aurora PostgreSQL DB 클러스터 생성](babelfish-create.md)을 참조하세요.

   SQL Server 데이터베이스에서 내보낸 다양한 SQL 아티팩트를 가져오려면 [sqlcmd](https://docs.microsoft.com/en-us/sql/tools/sqlcmd-utility?view=sql-server-ver15)와 같은 SQL Server 도구를 사용하여 Babelfish 클러스터에 연결하면 됩니다. 자세한 내용은 [SQL Server 클라이언트 도구를 사용하여 DB 클러스터에 연결](babelfish-connect-sqlserver.md) 섹션을 참조하세요.

1. 마이그레이션할 SQL Server 데이터베이스에서 데이터 정의 언어(DDL)를 내보냅니다. DDL은 사용자 데이터(예: 테이블, 인덱스 및 뷰)와 사용자가 작성한 데이터베이스 코드(예: 저장 프로시저, 사용자 정의 함수 및 트리거)를 포함하는 데이터베이스 객체를 설명하는 SQL 코드입니다.

   자세한 내용은 [SQL Server Management Studio(SSMS)를 사용하여 Babelfish로 마이그레이션](#babelfish-migration.import-export-tools.ssms) 섹션을 참조하세요.

1. Babelfish가 SQL Server에서 실행 중인 애플리케이션을 효과적으로 지원할 수 있도록 평가 도구를 실행하여 변경해야 할 내용 범위를 평가합니다. 자세한 내용은 [SQL Server 및 Babelfish 간의 차이점 평가 및 처리](#babelfish-migration.assessing-the-source) 섹션을 참조하세요.

1. AWS DMS 대상 엔드포인트 제한 사항을 검토하고 필요에 따라 DDL 스크립트를 업데이트합니다. 자세한 내용은 [Babelfish for Aurora PostgreSQL을 대상으로 사용](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html#CHAP_Target.PostgreSQL.Babelfish)에서 Babelfish 테이블과 함께 PostgreSQL 대상 엔드포인트 사용 시 제한 사항을 참조하세요.

1. 새 Babelfish DB 클러스터에서, 지정한 T-SQL 데이터베이스 내에서 DDL을 실행하여 프라이머리 키 제약 조건이 있는 스키마, 사용자 정의 데이터 유형과 테이블만 생성합니다.

1. AWS DMS를 사용하여 SQL Server의 데이터를 Babelfish 테이블로 마이그레이션합니다. SQL Server Change Data Capture 또는 SQL Replication를 사용한 연속 복제의 경우, Babelfish 대신 Aurora PostgreSQL을 엔드포인트로 사용합니다. 방법은 [AWS Database Migration Service의 대상으로 Babelfish for Aurora PostgreSQL 사용](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Target.PostgreSQL.html#CHAP_Target.PostgreSQL.Babelfish)을 참조하십시오.

1. 데이터 로드가 완료되면, Babelfish 클러스터의 애플리케이션을 지원하는 나머지 T-SQL 객체를 모두 생성합니다.

1.  SQL Server 데이터베이스 대신 Babelfish 엔드포인트에 연결하도록 클라이언트 애플리케이션을 재구성합니다. 자세한 내용은 [Babelfish DB 클러스터에 연결](babelfish-connect.md) 섹션을 참조하세요.

1. 필요한 경우 애플리케이션을 수정하여 다시 테스트합니다. 자세한 내용은 [Babelfish for Aurora PostgreSQL과 SQL Server의 차이점](babelfish-compatibility.md) 섹션을 참조하세요.

여전히 클라이언트 측 SQL 쿼리를 평가해야 합니다. SQL Server 인스턴스에서 생성된 스키마는 서버 측 SQL 코드만 변환합니다. 다음 단계를 수행하는 것이 좋습니다.
+ TSQL\$1Replay 미리 정의된 템플릿과 함께 SQL Server 프로파일러를 사용하여 클라이언트측 쿼리를 캡처합니다. 이 템플릿은 반복적인 튜닝 및 테스트를 위해 재생할 수 있는 T-SQL 문 정보를 캡처합니다. SQL Server Management Studio의 **Tools**(도구) 메뉴에서 프로파일러를 시작할 수 있습니다. **SQL Server 프로파일러(SQL Server Profiler)**를 선택하여 프로파일러를 열고 TSQL\$1Replay 템플릿을 선택합니다.

  Babelfish 마이그레이션에 사용하려면 추적을 시작한 다음 기능 테스트를 사용하여 애플리케이션을 실행합니다. 프로파일러는 T-SQL 문을 캡처합니다. 테스트를 마친 후 추적을 중단합니다. 클라이언트 측 쿼리를 사용하여 XML 파일에 결과를 저장합니다(파일(File) > 다른 이름으로 저장(Save as) > XML 파일을 추적하여 재생(Trace XML File for Replay)).

  자세한 내용은 Microsoft 설명서에서 [SQL Server 프로파일러](https://docs.microsoft.com/en-us/sql/tools/sql-server-profiler/sql-server-profiler?view=sql-server-ver16)를 참조하세요. TSQL\$1Replay 템플릿에 대한 자세한 내용은 [SQL Server 프로파일러 템플릿](https://docs.microsoft.com/en-us/sql/tools/sql-server-profiler/sql-server-profiler-templates?view=sql-server-ver16)을 참조하세요.
+ 복잡한 클라이언트 측 SQL 쿼리가 있는 애플리케이션의 경우 Babelfish 호환성을 위해 Babelfish Compass를 사용하여 이러한 쿼리를 분석하는 것이 좋습니다. 분석에서 클라이언트 측 SQL 문에 지원되지 않는 SQL 기능이 포함되어 있음이 드러난 경우 클라이언트 애플리케이션의 SQL 측면을 검토하고 필요한 경우 수정합니다.
+ SQL 쿼리를 확장 이벤트(.xel 형식)로 캡처할 수도 있습니다. 이렇게 하려면 SSMS XEvent Profiler를 사용해야 합니다. .xel 파일을 생성한 후, SQL 문을 Compass에서 처리할 수 있는 .xml 파일로 추출합니다. 자세한 내용은 Microsoft 설명서에서 [SQL Server 프로파일러](https://learn.microsoft.com/en-us/sql/relational-databases/extended-events/use-the-ssms-xe-profiler?view=sql-server-ver16)를 참조하세요.

마이그레이션된 애플리케이션에 필요한 모든 테스트, 분석 및 수정이 완료되면 프로덕션용으로 Babelfish 데이터베이스를 사용할 수 있습니다. 이렇게 하려면 원래 데이터베이스를 중지하고 라이브 클라이언트 애플리케이션을 리디렉션하여 Babelfish TDS 포트를 사용하면 됩니다.

**참고**  
AWS DMS는 이제 Babelfish에서 데이터 복제를 지원합니다. 자세한 내용은 이제 [AWS DMS가 소스로서 Aurora PostgreSQL용 Babelfish를 지원함](https://aws.amazon.com/about-aws/whats-new/2024/06/aws-dms-babelfish-aurora-postgresql-source/)을 참조하세요.

## SQL Server 및 Babelfish 간의 차이점 평가 및 처리
<a name="babelfish-migration.assessing-the-source"></a>

 최상의 결과를 얻으려면 SQL Server 데이터베이스 애플리케이션을 Babelfish로 실제로 마이그레이션하기 전에 생성된 DDL/DML 및 클라이언트 쿼리 코드를 평가하는 것이 좋습니다. Babelfish의 버전과 애플리케이션에서 구현하는 SQL Server의 특정 기능에 따라 애플리케이션을 리팩터링하거나 Babelfish에서 아직 완전히 지원되지 않는 기능에 대한 대안을 사용해야 할 수 있습니다.
+ SQL Server 애플리케이션 코드를 평가하려면, 생성된 DDL에서 Babelfish Compass를 사용하여 Babelfish에서 얼마나 많은 T-SQL 코드를 지원하는지 확인해야 합니다. Babelfish에서 실행하기 전에 수정이 필요할 수 있는 T-SQL 코드를 식별합니다. 이 도구에 대한 자세한 내용은 GitHub의 [Babelfish Compass 도구](https://github.com/babelfish-for-postgresql/babelfish_compass/releases/latest)를 참조하세요.
**참고**  
Babelfish Compass는 오픈 소스 도구입니다. AWS Support 대신 GitHub를 통해 Babelfish Compass와 관련된 모든 문제를 보고하십시오.

SQL Server Management Studio(SSMS)와 함께 스크립트 생성 마법사를 사용하여, Babelfish Compass 또는 AWS Schema Conversion Tool CLI에서 평가하는 SQL 파일을 생성할 수 있습니다. 다음 단계를 따라 평가를 간소화하는 것이 좋습니다.

1. **Choose Objects**(객체 선택) 페이지에서 **Script entire database and all database objects**(전체 데이터베이스 및 모든 데이터베이스 객체 스크립팅)를 선택합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/Babelfish-wizard-choose-objects.png)

1. **Set Scripting Options**(스크립팅 옵션 설정)에서 **Save as script file**(스크립트 파일로 저장)을 **Single script file**(단일 스크립트 파일)로 선택합니다.   
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/Babelfish-wizard-set-scripting-options.png)

1. 전체 평가에서 일반적으로 false로 설정되는 기능을 식별하도록 기본 스크립팅 옵션을 변경하려면 **Advanced**(고급)를 선택합니다.
   + Script Change Tracking(스크립트 변경 사항 트래킹)을 True로
   + Script Full-Text Indexes(스크립트 전체 텍스트 인덱스)를 True로
   + Script Triggers(스크립트 트리거)를 True롤
   + Script Logins(스크립트 로그인)를 True로
   + Script Owner(스크립트 소유자)를 True로
   + Script Object-Level Permissions(스크립트 객체 수준 권한)를 True로
   + Script Collations(스크립트 콜레이션)를 True로  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/Babelfish-advanced-scripting-options.png)

1. 마법사의 나머지 단계를 수행하여 파일을 생성합니다.

## SQL Server에서 Babelfish로 마이그레이션하기 위한 가져오기/내보내기 도구
<a name="babelfish-migration.import-export-tools"></a>

 SQL Server에서 Babelfish로 마이그레이션하는 기본 도구로 AWS DMS를 사용하는 것이 좋습니다. 그러나 Babelfish는 다음을 포함한 SQL Server 도구를 사용하여 데이터를 마이그레이션하는 여러 다른 방법을 지원합니다.
+ 모든 Babelfish 버전을 위한 SQL Server Integration Services(SSIS) 자세한 내용은 [SSIS 및 Babelfish를 사용하여 SQL Server에서 Aurora PostgreSQL로 마이그레이션](https://aws.amazon.com/blogs/database/migrate-from-sql-server-to-aurora-postgresql-using-ssis-and-babelfish/)을 참조하세요.
+ Babelfish 버전 2.1.0 이상에서는 SSMS 가져오기/내보내기 마법사를 사용합니다. 이 도구는 SSMS를 통해 사용할 수 있지만, 독립 실행형 도구로도 지원됩니다. 자세한 내용은 Microsoft 설명서의 [SQL Server 가져오기 및 내보내기 마법사 소개](https://docs.microsoft.com/en-us/sql/integration-services/import-export-data/welcome-to-sql-server-import-and-export-wizard?view=sql-server-ver16)를 참조하세요.
+ Microsoft 일괄 데이터 복사 프로그램(bcp) 유틸리티를 사용하면 데이터를 Microsoft SQL Server 인스턴스에서 지정한 형식의 데이터 파일로 복사할 수 있습니다. 자세한 내용은 Microsoft 설명서의 [bcp 유틸리티](https://docs.microsoft.com/en-us/sql/tools/bcp-utility?view=sql-server-ver16)를 참조하세요. 이제 Babelfish는 BCP 클라이언트를 사용한 데이터 마이그레이션을 지원하고, bcp 유틸리티는 `-E` 플래그(ID 열용) 및 -b 플래그(일괄 삽입용)를 지원합니다. `-C`, `-T`, `-G`, `-K`, `-R`, `-V` 및 `-h`를 포함한 특정 bcp 옵션은 지원되지 않습니다.

### SQL Server Management Studio(SSMS)를 사용하여 Babelfish로 마이그레이션
<a name="babelfish-migration.import-export-tools.ssms"></a>

각 특정 객체 유형별로 별도의 파일을 생성하는 것이 좋습니다. 먼저 각 DDL 문 세트에 대해 SSMS의 스크립트 생성 마법사를 사용한 다음, 객체를 그룹으로 수정하여 평가 중에 발견된 문제를 해결할 수 있습니다.

AWS DMS 또는 다른 데이터 마이그레이션 방법을 사용하여 데이터를 마이그레이션하려면 다음 단계를 수행하십시오. 이러한 생성 스크립트 유형을 먼저 실행하면 Aurora PostgreSQL의 Babelfish 테이블에 데이터를 더 빠르고 효율적으로 로드할 수 있습니다.

1. `CREATE SCHEMA` 문을 실행합니다.

1. `CREATE TYPE` 문을 실행하여 사용자 정의 데이터 유형을 생성합니다.

1. 기본 키 또는 고유한 제약 조건을 사용하여 기본 `CREATE TABLE` 문을 실행합니다.

권장되는 가져오기/내보내기 도구를 사용하여 데이터 로드를 수행합니다. 다음 단계에 대해 수정된 스크립트를 실행하여 나머지 데이터베이스 객체를 추가합니다. 제약 조건, 트리거 및 인덱스를 대상으로 이러한 스크립트를 실행하려면 create table 문이 필요합니다. 스크립트가 생성되면 create table 문을 삭제합니다.

1. 검사 제약 조건, 외래 키 제약 조건, 기본 제약 조건을 대상으로 `ALTER TABLE` 문을 실행합니다.

1. `CREATE TRIGGER` 문을 실행합니다.

1. `CREATE INDEX` 문을 실행합니다.

1. `CREATE VIEW` 문을 실행합니다.

1. `CREATE STORED PROCEDURE` 문을 실행합니다.

**각 객체 유형에 대한 스크립트를 생성하는 방법**

다음 단계를 수행하여, SSMS에서 스크립트 생성 마법사를 사용하여 기본 create table 문을 만듭니다. 동일한 단계를 수행하여 다양한 객체 유형에 대한 스크립트를 생성합니다.

1. 기존 SQL Server 인스턴스에 연결합니다.

1. 데이터베이스 이름의 컨텍스트 메뉴를 엽니다(마우스 오른쪽 버튼 클릭).

1. **Tasks**(태스크)를 선택한 다음 **Generate Scripts...**(스크립트 생성)를 선택합니다.

1. **객체 선택(Choose Objects)** 창에서 **특정 데이터베이스 객체 선택(Select specific database objects)**을 선택합니다. **테이블(Tables)**을 선택하고 모든 테이블을 선택합니다. **다음**을 선택하여 계속 진행합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/Babelfish-choose-objects-tables.png)

1. **스크립팅 옵션 설정(Set Scripting Options)** 페이지에서 **고급(Advanced)**을 선택하여 **옵션(Options)** 설정을 엽니다. 기본 create table 명령문을 생성하려면 다음 기본값을 변경해야 합니다.
   + Script Defaults(스크립트 기본값)를 False로 변경합니다.
   + Script Extended Properties(스크립트 확장 속성)을 False로 변경합니다. Babelfish는 확장 속성을 지원하지 않습니다.
   + Script Check Constraints(스크립트 확인 제약 조건)를 False로 변경합니다. Foreign Keys(외래 키)를 False로 변경합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/Babelfish-advance-scripting-def-values.png)

1. **확인**을 선택합니다.

1. **Set Scripting Options**(스크립팅 옵션 설정)에서 **Save as script file**(스크립트 파일로 저장)을 선택하고 **Single script file**(단일 스크립트 파일) 옵션을 선택합니다. **File name(파일 이름)**을 입력합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/Babelfish-set-scripting-def-values.png)

1. **Next**(다음)를 선택하여 **Summary wizard(요약 마법사)** 페이지를 확인합니다.

1. **Next**(다음)를 선택하여 스크립트 생성을 시작합니다.

   마법사에서 다른 객체 유형에 대한 스크립트를 계속 생성할 수 있습니다. 파일을 저장되면 **Finish**(완료)를 선택하는 대신 **Previous**(이전) 버튼을 세 번 선택하여 **Choose Objects**(객체 선택) 페이지로 돌아갑니다. 그런 다음 마법사에서 단계를 반복하여 다른 객체 유형에 대한 스크립트를 생성합니다.

# Babelfish for Aurora PostgreSQL을 사용하는 데이터베이스 인증
<a name="babelfish-db-authentication"></a>

Babelfish for Aurora PostgreSQL은 데이터베이스 사용자를 인증하는 두 가지 방법을 지원합니다. 암호 인증은 기본적으로 모든 Babelfish DB 클러스터에 사용할 수 있습니다. 같은 DB 클러스터에 대해 Kerberos 인증을 추가할 수도 있습니다.

**Topics**
+ [Babelfish를 사용하는 비밀번호 인증](#babelfish-authentication)
+ [Babelfish를 사용하는 Kerberos 인증](babelfish-active-directory.md)
+ [Babelfish용 Active Directory 보안 그룹을 사용하여 Kerberos 인증 설정](babelfish-kerberos-securityad.md)

## Babelfish를 사용하는 비밀번호 인증
<a name="babelfish-authentication"></a>

Babelfish for Aurora PostgreSQL은 암호 인증을 지원합니다. 암호는 디스크에 암호화된 형태로 저장됩니다. Aurora PostgreSQL 클러스터의 인증에 대한 자세한 내용은 [Amazon Aurora PostgreSQL를 사용한 보안](AuroraPostgreSQL.Security.md) 섹션을 참조하세요.

Babelfish에 연결할 때마다 자격 증명을 묻는 메시지가 표시될 수 있습니다. Aurora PostgreSQL로 마이그레이션되거나 생성된 모든 사용자는 SQL Server 포트와 PostgreSQL 포트 모두에서 동일한 자격 증명을 사용할 수 있습니다. Babelfish는 암호 정책을 시행하지 않지만, 다음을 수행하는 것이 좋습니다.
+ 8자 이상의 복잡한 암호여야 합니다.
+ 암호 만료 정책을 적용합니다.

전체 데이터베이스 사용자 목록을 검토하려면 `SELECT * FROM pg_user;` 명령을 사용합니다.

# Babelfish를 사용하는 Kerberos 인증
<a name="babelfish-active-directory"></a>

Babelfish for Aurora PostgreSQL 15.2 버전은 Kerberos를 사용하여 DB 클러스터에 대한 인증을 지원합니다. 이 방법은 사용자가 Babelfish 데이터베이스에 접속하려고 할 때 Windows 인증을 사용하여 사용자를 인증할 수 있도록 합니다. 이를 위해서는 먼저 Kerberos 인증을 위한 AWS Directory Service for Microsoft Active Directory를 사용하도록 DB 클러스터를 구성해야 합니다. 자세한 내용은 *AWS Directory Service 관리 가이드*의 [Directory Service란 무엇입니까?](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/what_is.html)를 참조하세요.

## Kerberos 인증 설정
<a name="babelfish-active-directory-setup"></a>

 Babelfish for Aurora PostgreSQL DB 클러스터는 서로 다른 두 개의 포트를 사용하여 연결할 수 있지만 Kerberos 인증 설정은 한 번만 수행하면 됩니다. 따라서 먼저 DB 클러스터에 대한 Kerberos 인증을 설정해야 합니다. 자세한 내용은 [Kerberos 인증 설정](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-kerberos-setting-up.html)을 참조하세요. 설정을 완료한 후에는 Kerberos를 사용하여 PostgreSQL 클라이언트에 연결할 수 있는지 확인합니다. 자세한 내용은 [Kerberos 인증을 사용하여 연결](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-kerberos-connecting.html)을 참조하세요.

## Babelfish의 로그인 및 사용자 프로비저닝
<a name="babelfish-active-directory-login"></a>

 Tabular Data Stream(TDS) 포트에서 생성된 Windows 로그인은 TDS 포트 또는 PostgreSQL 포트와 함께 사용할 수 있습니다. 먼저 인증에 Kerberos를 사용할 수 있는 로그인이 T-SQL 사용자 및 애플리케이션이 Babelfish 데이터베이스에 연결하는 데 사용되기 전에 TDS 포트에서 프로비저닝되어야 합니다. Windows 로그인을 생성할 경우 관리자는 DNS 도메인 이름 또는 NetBIOS 도메인 이름을 사용하여 로그인을 제공할 수 있습니다. 일반적으로 NetBIOS 도메인은 DNS 도메인 이름의 하위 도메인입니다. 예를 들어 DNS 도메인 이름이 `CORP.EXAMPLE.COM`인 경우 NetBIOS 도메인은 `CORP`일 수 있습니다. 로그인을 위해 NetBIOS 도메인 이름 형식을 제공할 경우 DNS 도메인 이름에 대한 매핑이 있어야 합니다.

### DNS 도메인 이름 매핑에 대한 NetBIOS 도메인 이름 관리
<a name="babelfish-active-directory-login-netbios"></a>

NetBIOS 도메인 이름과 DNS 도메인 이름 간의 매핑을 관리하기 위해 Babelfish는 매핑을 추가, 제거, 잘라내기할 수 있는 시스템 저장 프로시저를 제공합니다. `sysadmin` 역할이 있는 사용자만 이러한 프로시저를 실행할 수 있습니다.

NetBIOS와 DNS 도메인 이름 간에 매핑을 생성하려면 Babelfish에서 제공하는 시스템 저장 프로시저인 `babelfish_add_domain_mapping_entry`를 사용하세요. 두 인수 모두 유효한 값이 있어야 하고 NULL이 아니어야 합니다.

**Example**  

```
EXEC babelfish_add_domain_mapping_entry 'netbios_domain_name', 'fully_qualified_domain_name'
```

다음 예제에서는 NetBIOS 이름인 CORP와 DNS 도메인 이름인 CORP.EXAMPLE.COM 간에 매핑을 생성하는 방법을 보여 줍니다.

**Example**  

```
EXEC babelfish_add_domain_mapping_entry 'corp', 'corp.example.com'
```

기존 매핑 항목을 삭제하려면 시스템 저장 프로시저 babelfish\$1remove\$1domain\$1mapping\$1entry를 사용하세요.

**Example**  

```
EXEC babelfish_remove_domain_mapping_entry 'netbios_domain_name'
```

다음 예제는 NetBIOS 이름인 CORP에 대한 매핑을 제거하는 방법을 보여 줍니다.

**Example**  

```
EXEC babelfish_remove_domain_mapping_entry 'corp'
```

기존 매핑 항목을 제거하려면 시스템 저장 프로시저 babelfish\$1truncate\$1domain\$1mapping\$1table을 사용하세요.

**Example**  

```
EXEC babelfish_truncate_domain_mapping_table
```

NetBIOS와 DNS 도메인 이름 간의 모든 매핑을 보려면 다음 쿼리를 사용합니다.

**Example**  

```
SELECT netbios_domain_name, fq_domain_name FROM babelfish_domain_mapping;
```

### 로그인 관리
<a name="babelfish-active-directory-login-managing"></a>

**로그인 생성**  
올바른 권한이 있는 로그인을 사용하여 TDS 엔드포인트를 통해 DB에 연결합니다. 로그인을 위해 생성된 데이터베이스 사용자가 없는 경우 로그인은 게스트 사용자에게 매핑됩니다. 게스트 사용자가 활성화되지 않은 경우 로그인 시도가 실패합니다.

다음 쿼리를 사용하여 Windows 로그인을 생성합니다. 이 `FROM WINDOWS` 옵션을 사용하면 Active Directory를 사용하여 인증할 수 있습니다.

```
CREATE LOGIN login_name FROM WINDOWS [WITH DEFAULT_DATABASE=database]
```

**Example**  
다음 예시에서는 기본 데이터베이스인 db1을 사용하여 Active Directory 사용자 [corp\$1 test1]에 대한 로그인을 생성하는 방법을 보여줍니다.

```
CREATE LOGIN [corp\test1] FROM WINDOWS WITH DEFAULT_DATABASE=db1
```

이 예시에서는 NetBIOS 도메인인 CORP와 DNS 도메인 이름인 CORP.EXAMPLE.COM 간에 매핑이 있다고 가정합니다. 매핑이 없는 경우 DNS 도메인 이름 [CORP.EXAMPLE.COM\$1test1]을 제공해야 합니다.

**참고**  
Active Directory 사용자를 기준으로 한 로그인은 21자 미만의 이름으로 제한됩니다.

**로그인 삭제**  
로그인을 삭제하려면 다음 예시에 나온 것처럼 로그인에 사용된 것과 동일한 구문을 사용하세요.

```
DROP LOGIN [DNS domain name\login]
```

**로그인 변경**  
로그인을 변경하려면 다음 예시에 나온 것처럼 로그인에 사용된 것과 동일한 구문을 사용하세요.

```
ALTER LOGIN [DNS domain name\login] { ENABLE|DISABLE|WITH DEFAULT_DATABASE=[master] }
```

ALTER LOGIN 명령은 다음을 포함하여 Windows 로그인을 위한 제한된 옵션을 지원합니다.
+ DISABLE - 로그인을 비활성화합니다. 비활성화된 로그인은 인증에 사용할 수 없습니다.
+ ENABLE - 비활성화된 로그인을 활성화합니다.
+ DEFAULT\$1DATABASE - 로그인의 기본 데이터베이스를 변경합니다.

**참고**  
모든 암호 관리는 Directory Service를 통해 수행되므로, ALTER LOGIN 명령을 사용해도 데이터베이스 관리자는 Windows 로그인에 대한 암호를 변경하거나 설정할 수 없습니다.

### Kerberos 인증을 사용하여 Babelfish for Aurora PostgreSQL에 연결
<a name="babelfish-active-directory-kerberos"></a>

일반적으로 Kerberos를 사용하여 인증하는 데이터베이스 사용자는 클라이언트 시스템에서 인증을 수행합니다. 이러한 시스템은 Active Directory 도메인의 멤버입니다. 이들은 클라이언트 애플리케이션에서 Windows 인증을 사용하여 TDS 포트의 Babelfish for Aurora PostgreSQL 서버에 액세스합니다.

### Kerberos 인증을 사용하여 PostgreSQL 포트에서 Babelfish for Aurora PostgreSQL에 연결
<a name="babelfish-active-directory-kerberos-pgport"></a>

 TDS 포트에서 생성된 로그인은 TDS 포트 또는 PostgreSQL 포트와 함께 사용할 수 있습니다. 그러나 PostgreSQL은 기본적으로 사용자 이름에 대소문자를 구분하는 비교를 사용합니다. Aurora PostgreSQL이 Kerberos 사용자 이름을 대소문자를 구분하지 않는 것으로 해석하려면 사용자 지정 Babelfish 클러스터 파라미터 그룹에서 `krb_caseins_users` 파라미터를 `true`로 설정해야 합니다. 이 파라미터는 기본적으로 `false`로 설정되어 있습니다. 자세한 내용은 [대소문자를 구분하지 않는 사용자 이름 구성](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-kerberos-setting-up.html#postgresql-kerberos-setting-up.create-logins.set-case-insentive)을 참조하세요. 또한 PostgreSQL 클라이언트 애플리케이션에서 <login@DNS 도메인 이름> 형식으로 로그인 사용자 이름을 지정해야 합니다. <DNS 도메인 이름\$1login> 형식은 사용할 수 없습니다.

### 자주 발생하는 오류
<a name="babelfish-active-directory-errors"></a>

온프레미스 Microsoft Active Directory와 AWS Managed Microsoft AD 간에 포리스트 트러스트 관계를 설정할 수 있습니다. 자세한 내용은 [신뢰 관계 생성](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-kerberos-setting-up.html#postgresql-kerberos-setting-up.create-trust)을 참조하세요. 그런 다음, 호스트 엔드포인트에서 Amazon 도메인 `rds.amazonaws.com`을 사용하는 대신 특수 도메인별 엔드포인트를 사용하여 연결해야 합니다. 올바른 도메인별 엔드포인트를 사용하지 않으면 다음과 같은 오류가 발생할 수 있습니다.

```
Error: “Authentication method "NTLMSSP" not supported (Microsoft SQL Server, Error: 514)"
```

 이 오류는 제공된 엔드포인트 URL에 대한 서비스 티켓을 TDS 클라이언트가 캐싱할 수 없을 때 발생합니다. 자세한 내용은 [Kerbero를 사용하여 연결](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-kerberos-connecting.html)을 참조하세요.

# Babelfish용 Active Directory 보안 그룹을 사용하여 Kerberos 인증 설정
<a name="babelfish-kerberos-securityad"></a>

Babelfish 버전 4.2.0부터 Active Directory 보안 그룹을 사용하여 Babelfish에 대한 Kerberos 인증을 설정할 수 있습니다. Active Directory를 사용하여 Kerberos 인증을 설정하려면 완료해야 하는 사전 조건은 다음과 같습니다.
+  [Babelfish를 사용하는 Kerberos 인증](babelfish-active-directory.md)에 언급된 모든 단계를 따라야 합니다.
+ DB 인스턴스가 Active Directory와 연결되어 있는지 확인합니다. 콘솔에서 또는 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI 명령을 실행하여 도메인 구성원 자격 상태를 보고 확인할 수 있습니다.

  DB 인스턴스의 상태가 kerberos를 지원해야 합니다. 도메인 구성원 자격 이해에 대한 자세한 내용은 [도메인 멤버십 이해](postgresql-kerberos-managing.md#postgresql-kerberos-managing.understanding) 섹션을 참조하세요.
+ 다음 쿼리를 사용하여 NetBIOS 도메인 이름과 DNS 도메인 이름 간의 매핑을 확인합니다.

  ```
  SELECT netbios_domain_name, fq_domain_name FROM babelfish_domain_mapping;
  ```
+ 계속 진행하기 전에 개별 로그인을 사용한 Kerberos 인증이 예상대로 작동하는지 확인합니다. Active Directory 사용자로서 Kerberos 인증을 사용한 연결이 성공해야 합니다. 문제가 발생하는 경우 [자주 발생하는 오류](babelfish-active-directory.md#babelfish-active-directory-errors) 섹션을 참조하세요.

## pg\$1ad\$1mapping 확장 설정
<a name="babelfish-kerberos-securityad-setpgextn"></a>

 [pg\$1ad\$1mapping 확장 설정](AD.Security.Groups.md#AD.Security.Groups.Setup)에 언급된 모든 단계를 따라야 합니다. 확장 프로그램이 설치되었는지 확인하려면 TDS 엔드포인트에서 다음 쿼리를 실행합니다.

```
1> SELECT extname, extversion FROM pg_extension where extname like 'pg_ad_mapping';
2> GO
extname       extversion
------------- ----------
pg_ad_mapping 0.1

(1 rows affected)
```

## 그룹 로그인 관리
<a name="babelfish-kerberos-securityad-managing"></a>

 [로그인 관리](babelfish-active-directory.md#babelfish-active-directory-login-managing)에 설명된 단계에 따라 그룹 로그인을 생성합니다. 필수는 아니지만, 유지 관리가 용이하도록 로그인 이름을 Active Directory(AD) 보안 그룹 이름과 동일하게 사용하는 것이 좋습니다. 예제: 

```
CREATE LOGIN [corp\accounts-group] FROM WINDOWS [WITH DEFAULT_DATABASE=database]
```

# T-SQL 그룹 로그인과 AD 보안 그룹 매핑
<a name="babelfish-kerberos-securityad-maptsql"></a>

 데이터베이스 서버에 대한 액세스가 필요한 각 AD 보안 그룹에 대해 T-SQL Windows 그룹 로그인을 명시적으로 프로비저닝해야 합니다. 하나 이상의 프로비저닝된 AD 보안 그룹에 속하는 AD 사용자는 데이터베이스 서버에 액세스할 수 있습니다.

**참고**  
이 T-SQL 로그인은 더 이상 암호 기반 인증을 사용하여 인증할 수 없습니다.

 예를 들어, accounts-group은 AD의 보안 그룹이며 Babelfish에서 이 보안 그룹을 프로비저닝하려는 경우 [corp\$1accounts-group] 형식을 사용해야 합니다.
+ AD 보안 그룹: accounts-group
+ TSQL 로그인: [corp\$1accounts-group]
+ 지정된 TSQL 로그인에 해당하는 PG 역할: accounts-group@CORP.EXAMPLE.COM

 이제 관리자는 다음 psql 명령을 통해 PostgreSQL 엔드포인트에서 AD 보안 그룹과 T-SQL 로그인 간의 매핑을 생성할 수 있습니다. 함수 사용에 대한 자세한 내용은 [`pg_ad_mapping` 확장의 함수 사용](AD.Security.Groups.md#AD.Security.Groups.functions) 섹션을 참조하세요.

**참고**  
매핑을 추가할 때 T-SQL 로그인을 login\$1name@FQDN 형식으로 지정해야 합니다. TDS 엔드포인트를 통해 연결할 때는 가중치가 무시됩니다. 가중치 사용에 대한 자세한 내용은 [PostgreSQL 포트의 PostgreSQL 엔드포인트를 통해 Babelfish에 연결](babelfish-kerberos-securityad-connect-pgendpoint.md) 섹션을 참조하세요.

```
postgres=>select pgadmap_set_mapping('accounts-group', 'accounts-group@CORP.EXAMPLE.COM', <SID>, <Weight>);
```

AD 보안 그룹의 SID 검색에 대한 자세한 내용은 [PowerShell에서 Active Directory 그룹 SID 검색](AD.Security.Groups.md#AD.Security.Groups.retrieving) 섹션을 참조하세요.

다음 표에는 AD 보안 그룹에서 T-SQL 로그인으로의 샘플 매핑이 나와 있습니다.


| AD 보안 그룹 | TSQL 로그인 | 지정된 TSQL 로그인에 해당하는 PG 역할 | 가중치 | 
| --- | --- | --- | --- | 
| accounts-group | [corp\$1accounts-group] | accounts-group@CORP.EXAMPLE.COM | 7 | 
| sales-group | [corp\$1sales-group] | sales-group@CORP.EXAMPLE.COM | 10 | 
| dev-group | [corp\$1dev-group] | dev-group@CORP.EXAMPLE.COM | 7 | 

```
postgres=> select admap.ad_sid, admap.ad_grp, lgn.orig_loginname, lgn.rolname, admap.weight from pgadmap_read_mapping() as admap, sys.babelfish_authid_login_ext as lgn where admap.pg_role = lgn.rolname;
    ad_sid    |     ad_grp     |    orig_loginname   |             rolname             | weight
--------------+----------------+---------------------+---------------------------------+--------
 S-1-5-67-890 | accounts-group | corp\accounts-group  | accounts-group@CORP.EXAMPLE.COM |     7
 S-1-2-34-560 | sales-group    | corp\sales-group     | sales-group@CORP.EXAMPLE.COM    |     10
 S-1-8-43-612 | dev-group      | corp\dev-group       | dev-group@CORP.EXAMPLE.COM      |     7
 (7 rows)
```

# TDS 엔드포인트를 통해 Babelfish에 연결
<a name="babelfish-kerberos-securityad-connect"></a>

 다음 예제에서 user1은 accounts-group 및 sales-group의 구성원이고, user2는 accounts-group 및 dev-group의 구성원입니다.


| 사용자 이름 | AD 보안 그룹 구성원 자격 | 
| --- | --- | 
| user1 | accounts-group, sales-group | 
| user2 | accounts-group, dev-group | 

 sqlcmd 유틸리티를 사용하여 Babelfish 데이터베이스 서버에 연결합니다. 아래 예제에 따라 사용자(이 예제에서는 user1)가 Kerberos를 사용하여 인증되었는지 확인할 수 있습니다.

```
1> select principal, gss_authenticated from pg_stat_gssapi where pid = pg_backend_pid();
2>  GO
principal               gss_authenticated
----------------------  -----------------
user1@CORP.EXAMPLE.COM  1 

((1 rows affected))
1> select suser_name();
2>  GO
suser_name
----------
corp\user1 

(1 rows affected)
```

 이 예제에서 user1은 accounts-group 및 sales-group의 권한을 상속합니다. `sys.login_token` 시스템 보기를 사용하여 그룹 구성원 자격을 확인할 수 있습니다.

```
1> SELECT name, type FROM sys.login_token;
2>  GO
name                type
------------------- ----
corp\accounts-group WINDOWS GROUP
corp\sales-group    WINDOWS GROUP

(2 rows affected)
```

## 감사 및 로깅
<a name="babelfish-kerberos-securityad-audit"></a>

 AD 보안 주체 ID를 확인하려면 아래 명령을 사용하세요.

```
1> select suser_name();
2> GO
suser_name
----------
corp\user1

(1 rows affected)
```

현재로서는 AD 사용자 ID가 로그에 표시되지 않습니다. `log_connections` 파라미터를 설정하여 DB 세션 설정을 로깅할 수 있습니다. 자세한 내용은 [log\$1connections](https://docs.aws.amazon.com/prescriptive-guidance/latest/tuning-postgresql-parameters/log-connections.html)를 참조하세요. 다음 예제와 같이 출력에 AD 사용자 ID가 보안 주체로 포함됩니다. 이 출력과 관련된 백엔드 PID는 실제 AD 사용자에게 작업을 귀속시키는 데 도움이 됩니다.

```
bbf_group_ad_login@babelfish_db:[615]:LOG: connection authorized: user=bbf_group_ad_login database=babelfish_db application_name=sqlcmd GSS (authenticated=yes, encrypted=yes, principal=user1@CORP.EXAMPLE.COM)
```

# AD 보안 그룹 구성원 자격 권한 활용
<a name="babelfish-kerberos-securityad-privileges"></a>

## 서버 수준 권한 상속
<a name="babelfish-kerberos-securityad-inheritpriv-server"></a>

 지정된 AD 보안 그룹의 구성원인 AD 사용자는 매핑된 Windows 그룹 로그인에 부여된 서버 수준 권한을 상속합니다. Babelfish의 `sysadmin` 서버 역할에 대한 구성원 자격이 부여된 `accounts-group` AD 보안 그룹을 예로 들어 보겠습니다. 다음 명령을 사용하여 서버 수준 권한을 상속할 수 있습니다.

```
1> ALTER SERVER ROLE sysadmin ADD MEMBER [corp\accounts-group];
```

 따라서 `accounts-group` AD 보안 그룹의 구성원인 Active Directory 사용자는 `sysadmin` 역할과 관련된 서버 수준 권한을 상속받게 됩니다. 즉, `accounts-group`의 구성원인 `corp\user1`과 같은 사용자도 이제 Babelfish 내에서 서버 수준 작업을 수행할 수 있습니다.

**참고**  
 서버 수준 DDL을 수행하려면 개별 AD 사용자에 대한 Windows 로그인이 있어야 합니다. 자세한 내용은 [제한 사항](babelfish-kerberos-securityad-limitations.md) 섹션을 참조하세요.

## 데이터베이스 수준 권한 상속
<a name="babelfish-kerberos-securityad-inheritpriv-database"></a>

 데이터베이스 수준 권한을 부여하려면 Windows 그룹 로그인으로 데이터베이스 사용자를 만들고 매핑해야 합니다. 지정된 AD 보안 그룹의 구성원인 AD 사용자는 해당 데이터베이스 사용자에게 부여된 데이터베이스 수준 권한을 상속합니다. 다음 예제에서는 Windows 그룹 [corp\$1accounts-group]에 대해 데이터베이스 수준 권한이 할당되는 방식을 확인할 수 있습니다.

```
1> CREATE DATABASE db1; 
2> GO
1> USE db1;
2> GO
Changed database context to 'db1'.
1> CREATE TABLE dbo.t1(a int);
2> GO
```

 Windows 그룹 로그인 [corp\$1accounts-group]을 위한 데이터베이스 사용자 [corp\$1sales-group]을 생성합니다. 이 단계를 수행하려면 sysadmin의 구성원인 로그인을 사용하여 TDS 엔드포인트를 통해 연결하세요.

```
1> CREATE USER [corp\accounts-group] FOR LOGIN [corp\accounts-group];
2> GO
```

 이제 AD 사용자 user1으로 연결하여 표 t1의 액세스 권한을 확인합니다. 아직 데이터베이스 수준 권한을 부여하지 않았으므로, 권한 거부 오류가 발생합니다.

```
1> SELECT * FROM dbo.t1;
2> GO
Msg 33557097, Level 16, State 1, Server db-inst, Line 1
permission denied for table t1
```

데이터베이스 사용자 [corp\$1accounts-group]에게 표 t1의 SELECT 권한을 부여하세요. 이 단계를 수행하려면 sysadmin의 구성원인 로그인을 사용하여 TDS 엔드포인트를 통해 연결하세요.

```
1> GRANT SELECT ON dbo.t1 TO [corp\accounts-group];
2> GO
```

 AD 사용자 user1으로 연결하여 액세스를 검증합니다.

```
1> SELECT * FROM dbo.t1;
2> GO
a
-----------

(0 rows affected)
```

# 기본 또는 명시적 스키마를 기반으로 DDL 문 동작 처리
<a name="babelfish-kerberos-securityad-ddl"></a>

 AD 인증 세션을 사용하는 경우 현재 세션의 기본 스키마는 다음 조건에 따라 결정됩니다.
+ 개별 데이터베이스 사용자가 있는 경우 사용자의 기본 스키마가 현재 세션의 기본 스키마로 간주됩니다.
+ 그룹 데이터베이스 사용자의 기본 스키마가 있는 경우 그룹 데이터베이스 사용자의 기본 스키마는 보안 주체 ID가 최소인 현재 세션의 기본 스키마로 간주됩니다.

## CREATE DDL 문 동작에 대한 이해
<a name="babelfish-kerberos-securityad-ddlcreate"></a>

 CREATE DDL 문에 명시적 스키마가 지정되지 않은 경우 현재 세션의 기본 스키마에서 객체 생성이 수행됩니다. 스키마가 기본값으로든 명시적으로든 확인할 수 없는 경우 DDL 문에서 다음 오류가 발생합니다.

```
"Babelfish Unsupported Command : Schema required for CREATE DDLs when connecting with Active Directory Group authentication. Assign default schema to group user or specify schema in command."
```

**Example : Windows 그룹 사용자의 기본 스키마가 존재하지 않습니다.**  
Windows 그룹 사용자 [corp\$1accounts-group]의 기본 스키마가 NULL이고 AD 사용자 user1이 스키마를 명시적으로 지정하지 않고 DDL을 수행하려고 합니다. user1에는 개별 Windows 로그인 및 사용자가 존재하지 않으므로, Windows 그룹 사용자 [corp\$1accounts-group]의 데이터베이스 수준 권한만 갖게 됩니다.  

```
1> create TABLE t2(a int);
2> GO

Msg 33557097, Level 16, State 1, Server db-inst, Line 1
Babelfish Unsupported Command : Schema required for CREATE DDLs when connecting with Active Directory Group authentication. Assign default schema to group user or specify schema in command.
```
AD 사용자 user1에는 개별 Windows 로그인 및 사용자가 존재하지 않습니다.

**Example : Windows 그룹 사용자의 기본 스키마가 있습니다.**  
sysadmin을 사용하여 기본 스키마를 통해 [corp\$1accounts-group] 로그인용 Windows 그룹 사용자를 생성합니다.  

```
1> CREATE USER [corp\accounts-group] FOR LOGIN [corp\accounts-group] WITH DEFAULT_SCHEMA = sch_acc;
2> GO
1> CREATE SCHEMA sch_acc AUTHORIZATION [gad\accounts-group];
2> GO
1> SELECT name, principal_id, default_schema_name FROM sys.database_principals WHERE name = 'corp\accounts-group';
2> GO
                
name               principal_id default_schema_name
------------------ ------------ -------------------
corp\accounts-group 24162        sch_acc

(1 rows affected)
```
 AD 사용자 user1을 사용하여 스키마를 명시적으로 지정하지 않고 객체를 만들어 보세요. 표 t2는 [corp\$1accounts-group] Windows 그룹 사용자의 기본 스키마에서 생성됩니다. 이 객체의 소유자는 sch\$1acc 스키마의 소유자와 동일합니다.  

```
1> CREATE TABLE t_group(a int);
2> GO
1> SELECT name, schema_name(schema_id) FROM sys.objects WHERE name like 't_group';
2> GO

name    schema_name
------- -----------
t_group sch_acc

(1 rows affected)
```
AD 사용자 user1에는 개별 Windows 로그인 및 사용자가 존재하지 않습니다.

**Example : AD 사용자에 대해 개별 데이터베이스 사용자도 있습니다.**  
 AD 사용자에 대해 개별 데이터베이스 사용자도 존재하는 경우 객체는 항상 개별 데이터베이스 사용자와 연결된 스키마에 생성됩니다. 데이터베이스 사용자에 대한 스키마가 없는 경우 dbo 스키마가 사용됩니다. AD 사용자 user1을 위한 개별 Windows 로그인 및 데이터베이스 사용자를 생성합니다. sysadmin 로그인을 사용하여 TDS 엔드포인트를 통해 연결   

```
1> CREATE LOGIN [corp\user1] FROM WINDOWS;
2> GO
1> CREATE USER [corp\user1] FOR LOGIN [corp\user1] WITH DEFAULT_SCHEMA = sch1;
2> GO
1> CREATE SCHEMA sch1 AUTHORIZATION [corp\user1];
2> GO
1> SELECT name, default_schema_name FROM sys.database_principals WHERE name = 'corp\user1';
2> GO

name      default_schema_name
--------- -------------------
corp\user1 sch1

(1 rows affected)
```
 AD 사용자 user1을 사용하여 연결하고, 스키마를 명시적으로 지정하지 않고 객체를 만들어 보세요. 표 t2는 스키마 sch1에 생성됩니다. 또한 이 객체의 소유자는 스키마 sch1의 소유자와 동일하다는 점에 유의하세요.  

```
1> CREATE TABLE t2(a int);
2> GO
1> SELECT name, schema_name(schema_id) FROM sys.objects WHERE name like 't2';
2> GO
            
name schema_name
---- -----------
t2   sch1

(1 rows affected)
```

# 제한 사항
<a name="babelfish-kerberos-securityad-limitations"></a>
+ Dump/Restore 유틸리티는 pg\$1ad\$1mapping 확장 매핑 덤프를 지원하지 않습니다. 복원 후에는 이러한 매핑을 다시 생성해야 합니다.
+ `pg_ad_mapping`을 사용하는 Babelfish 및 Aurora PostgreSQL 인스턴스에는 블루-그린 배포가 지원되지 않습니다.
+ 암시적 스키마 생성은 지원되지 않습니다. 암시적 스키마 생성이 필요한 DDL 문은 지원되지 않습니다.
+ 서버 수준의 DDL인 ALTER AUTHORIZATION ALTER AUTHORIZATION ON DATABASE , CREATE DATABASE, CREATE LOGIN, ALTER LOGIN, ALTER SERVER ROLE, ALTER DATABASE는 개별 Windows 로그인이 없고 그룹 Windows 로그인만 있는 경우 그룹 AD 인증 세션에서 지원되지 않습니다. 이 제한을 해결하려면 암호로 인증된 세션에서 이러한 작업을 수행하거나 개별 Windows 로그인을 생성하는 것이 좋습니다.
+ 암시적 사용자 생성은 지원되지 않습니다. 이상적인 T-SQL 동작 [Babelfish에서는 아직 지원되지 않음]: DDL 및 GRANT/REVOKE와 같은 액세스 제어문의 경우 AD 사용자의 이름이 명령에 지정되어 있지만, 데이터베이스에 존재하지 않는다면 AD 사용자로 명명된 데이터베이스 사용자가 암시적으로 생성됩니다.
+ PSQL 엔드포인트에서 생성되고 그룹 AD 인증 세션의 TDS 엔드포인트에서 실행되는 PL/pgSQL 프로시저 또는 함수의 DDL인 경우:
  + ALTER/DROP 문이 지원됩니다.
  + 스키마가 명시적으로 제공되지 않고 기본 스키마가 현재 세션에 대해 null인 경우 CREATE TABLE, CREATE VIEW, CREATE INDEX, CREATE FUNCTION/PROC, CREATE TYPE, CREATE SEQUENCE, CREATE TRIGGER, SELECT INTO, CREATE FULLTEXT INDEX, CREATE UNIQUE INDEX에서 오류가 발생합니다.
  + CREATE DATABASE , CREATE EXTENSION 및 PG(T-SQL에 없음) 특정 객체용 기타 모든 CREATE 문(CREATE SUBSCRIPTION, CREATE TABLESPACE, CREATE POLICY, CREATE CONVERSION)은 지원되지 않습니다.
+ PostgreSQL 엔드포인트의 DDL은 그룹 AD 인증 세션에서 지원되지 않습니다. 해결 방법으로 언제든지 마스터 사용자 또는 암호 기반 인증 메커니즘을 사용하는 다른 사용자로 연결할 수 있습니다.
+ SUSER\$1SID(), IS\$1SRVROLEMEMBER(), IS\$1MEMBER(), sys.dm\$1exec\$1sessions와 같은 시스템 객체에는 다음과 같은 제한이 있습니다.
  + AD 사용자 또는 AD 보안 그룹이 제공된 경우 SUSER\$1SID()는 SID를 반환하지 않습니다.
  + 현재 AD 사용자가 Windows 그룹 로그인의 서버 역할 구성원 자격으로부터 서버 역할 구성원 자격을 상속받는 경우 IS\$1SRVROLEMEMBER()는 역할 구성원 자격을 고려하지 않습니다.
  + IS\$1MEMBER()는 모든 Windows 그룹 관련 쿼리에 대해 false를 반환합니다.
  + sys.dm\$1exec\$1sessions에는 예상 값 login\$1name, nt\$1user\$1name 열이 표시되지 않습니다.

# PostgreSQL 포트의 PostgreSQL 엔드포인트를 통해 Babelfish에 연결
<a name="babelfish-kerberos-securityad-connect-pgendpoint"></a>

TDS 포트에서 생성된 그룹 로그인을 활용하여 PostgreSQL 포트를 통해 연결할 수도 있습니다. PostgreSQL 포트를 통해 연결하려면 PostgreSQL 클라이언트 애플리케이션의 `<ad_username@FQDN>` 형식으로 AD 사용자 이름을 지정해야 합니다. `<DNS domain name\ad_username>` 형식은 사용할 수 없습니다.

PostgreSQL은 기본적으로 사용자 이름에 대소문자를 구분하는 비교를 사용합니다. Aurora PostgreSQL이 Kerberos 사용자 이름을 대소문자를 구분하지 않는 것으로 해석하려면 사용자 지정 Babelfish 클러스터 파라미터 그룹에서 krb\$1caseins\$1users 파라미터를 true로 설정해야 합니다. 이 파라미터는 기본적으로 false로 설정되어 있습니다. 자세한 내용은 [대소문자를 구분하지 않는 사용자 이름을 위해 Aurora PostgreSQL DB 클러스터 구성](postgresql-kerberos-setting-up.md#postgresql-kerberos-setting-up.create-logins.set-case-insentive) 섹션을 참조하세요.

## AD 사용자가 여러 그룹에 속해 있는 경우 T-SQL과 PostgreSQL 엔드포인트 간의 동작 차이
<a name="babelfish-kerberos-securityad-diff-tsql-pg"></a>

AD 사용자 user1이 2개의 AD 보안 그룹 [corp\$1accounts-group] 및 [corp\$1sales-group]의 일부이고 DB 관리자가 다음과 같은 방식으로 사용자 매핑을 설정했다고 가정해 보겠습니다.

```
postgres=> select * from pgadmap_read_mapping();
            
ad_sid       | pg_role                         | weight | ad_grp 
-------------+---------------------------------+--------+---------------
S-1-5-67-980 | accounts-group@CORP.EXAMPLE.COM | 7      | accounts-group
S-1-2-34-560 | sales-group@CORP.EXAMPLE.COM    | 10     | sales-group
(2 rows)
```

사용자가 T-SQL 엔드포인트에서 연결하는 경우 권한 부여 중에 연결된 모든 T-SQL 로그인의 권한이 상속됩니다. 이 예제에서 user1은 T-SQL 그룹 로그인 모두의 권한 통합을 상속하며 가중치는 무시됩니다. 이는 표준 T-SQL 동작과 일치합니다.

그러나 동일한 사용자가 PostgreSQL 엔드포인트에서 연결하는 경우 가중치가 가장 높은 하나의 관련 T-SQL 로그인에서만 권한을 상속할 수 있습니다. 두 T-SQL 그룹 로그인에 동일한 가중치가 할당되면 AD 사용자는 가장 최근에 추가된 매핑에 해당하는 T-SQL 로그인의 권한을 상속받습니다. PostgreSQL의 경우 모호성을 피하려면 개별 DB 역할의 상대적 허가/권한을 반영하는 가중치를 지정하는 것이 좋습니다. 아래 예제에서 user1은 PSQL 엔드포인트를 통해 연결했고 sales-groups 권한만 상속했습니다.

```
babelfish_db=> select session_user, current_user;

   session_user               |   current_user
------------------------------+---------------------------
 sales-group@CORP.EXAMPLE.COM | sales-group@CORP.EXAMPLE.COM
(1 row)


babelfish_db=> select principal, gss_authenticated from pg_stat_gssapi where pid = pg_backend_pid();

     principal          | gss_authenticated
------------------------+-------------------
 user1@CORP.EXAMPLE.COM | t
(1 row)
```

# Babelfish DB 클러스터에 연결
<a name="babelfish-connect"></a>

Babelfish에 연결하려면 Babelfish를 실행하는 Aurora PostgreSQL 클러스터의 엔드포인트에 연결합니다. 클라이언트는 TDS 버전 7.1부터 7.4까지와 호환되는 다음 클라이언트 드라이버 중 하나를 사용할 수 있습니다.
+ ODBC(Open Database Connectivity)
+ OLE DB 드라이버/MSOLEDBSQL
+ 자바 데이터베이스 커넥티비티 (JDBC) 버전 8.2.2 (mssql-jdbc-8.2.2) 이상
+ Microsoft SqlClient Data Provider for SQL Server
+ .NET Data Provider for SQL Server
+ SQL Server 기본 클라이언트 11.0(더 이상 사용되지 않음)
+ OLE DB Provider/SQLOLEDB(더 이상 사용되지 않음)

Babelfish를 사용하여 다음을 실행합니다.
+ TDS 포트(기본적으로 포트 1433)의 SQL Server 도구, 애플리케이션 및 구문입니다.
+ PostgreSQL 포트(기본적으로 포트 5432)의 PostgreSQL 도구, 애플리케이션 및 구문입니다.

Aurora PostgreSQL에 연결하는 일반적인 방법에 대한 자세한 내용은 [Amazon Aurora PostgreSQL DB 클러스터에 연결](Aurora.Connecting.md#Aurora.Connecting.AuroraPostgreSQL) 섹션을 참조하세요.

**참고**  
SQL Server OLEDB 제공업체를 사용하여 메타데이터에 액세스하는 타사 개발자 도구는 지원되지 않습니다. 이러한 도구에는 SQL Server JDBC, ODBC 또는 SQL Native 클라이언트 연결을 사용하는 것이 좋습니다.

Babelfish 버전 5.1.0부터 엔드투엔드 연결 암호화가 기본적으로 적용됩니다. 지속적인 연결을 보장하는 방법:
+ 연결에 대한 SSL/TLS 암호화를 구성합니다. 자세한 내용은 [SSL/TLS를 사용하여 DB 클러스터에 대한 연결 암호화](UsingWithRDS.SSL.md) 섹션을 참조하세요.
+ 필요한 인증서를 클라이언트 컴퓨터에 가져옵니다. 자세한 내용은 [Microsoft SQL Server DB 인스턴스와 함께 SSL 사용](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.SSL.Using.html)을 참조하세요.

이전 버전의 Babelfish(버전 5.1.0 전)에서 암호화 설정을 계속 사용하려면 DB 클러스터 파라미터 그룹에서 `rds.force_ssl` 파라미터를 `0`으로 설정하면 됩니다.

**Topics**
+ [라이터 엔드포인트 및 포트 번호 찾기](#babelfish-connect-endpoint)
+ [Babelfish에 대한 C\$1 또는 JDBC 클라이언트 연결 생성](babelfish-connect-configure.md)
+ [SQL Server 클라이언트 도구를 사용하여 DB 클러스터에 연결](babelfish-connect-sqlserver.md)
+ [SQL Server 클라이언트를 사용하여 DB 클러스터에 연결](babelfish-connect-PostgreSQL.md)

## 라이터 엔드포인트 및 포트 번호 찾기
<a name="babelfish-connect-endpoint"></a>

Babelfish DB 클러스터에 연결하려면 DB 클러스터의 라이터(프라이머리) 인스턴스와 연결된 엔드포인트를 사용합니다. 인스턴스의 상태는 **사용 가능(Available)**이어야 합니다. Babelfish for Aurora PostgreSQL DB 클러스터를 생성한 후 인스턴스를 사용할 수 있기까지 최대 20분 정도 걸릴 수 있습니다.

**데이터베이스 엔드포인트를 찾으려면**

1. Babelfish의 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스(Databases)**를 선택합니다.

1. 자세한 내용을 보려면 나열된 Babelfish for Aurora PostgreSQL DB 클러스터를 선택합니다.

1. **연결성 및 보안(Connectivity & security)** 탭에서 사용 가능한 클러스터 **엔드포인트(Endpoints)** 값을 참고합니다. 데이터베이스 쓰기 또는 읽기 작업을 수행하는 모든 애플리케이션에 대해 연결 문자열에서 라이터 인스턴스의 클러스터 엔드포인트를 사용합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/Babelfish-database-endpoint.png)

Aurora DB 클러스터 세부 정보에 대한 자세한 내용은 [Amazon Aurora DB 클러스터 생성](Aurora.CreateInstance.md) 섹션을 참조하세요.

# Babelfish에 대한 C\$1 또는 JDBC 클라이언트 연결 생성
<a name="babelfish-connect-configure"></a>

C\$1 및 JDBC 클래스를 사용하여 Babelfish for Aurora PostgreSQL에 연결하는 몇 가지 예는 다음과 같습니다.

**Example : C\$1 코드를 사용하여 DB 클러스터 연결**  

```
string dataSource = 'babelfishServer_11_24';

//Create connection
connectionString = @"Data Source=" + dataSource
    +";Initial Catalog=your-DB-name"
    +";User ID=user-id;Password=password";
					
// [optional] To validate server certificate during TLS/SSL connection
connectionString = connectionString + ";ServerCertificate=/path/to/certificate.pem";					

SqlConnection cnn = new SqlConnection(connectionString);
cnn.Open();
```

**Example : 일반 JDBC API 클래스 및 인터페이스를 사용하여 DB 클러스터에 연결**  

```
String dbServer = 
   "database-babelfish.cluster-123abc456def.us-east-1-rds.amazonaws.com";
String connectionUrl = "jdbc:sqlserver://" + dbServer + ":1433;" +
    "databaseName=your-DB-name;user=user-id;password=password";

// [optional] To validate server certificate during TLS/SSL connection
connectionUrl = connectionUrl + ";serverCertificate=/path/to/certificate.pem";

// Load the SQL Server JDBC driver and establish the connection.
System.out.print("Connecting Babelfish Server ... ");
Connection cnn = DriverManager.getConnection(connectionUrl);
```

**Example : SQL Server별 JDBC 클래스 및 인터페이스를 사용하여 DB 클러스터에 연결**  

```
// Create datasource.
SQLServerDataSource ds = new SQLServerDataSource();
ds.setUser("user-id");
ds.setPassword("password");
String babelfishServer = 
   "database-babelfish.cluster-123abc456def.us-east-1-rds.amazonaws.com";

ds.setServerName(babelfishServer);
ds.setPortNumber(1433);
ds.setDatabaseName("your-DB-name");

// [optional] To validate server certificate during TLS/SSL connection
ds.setServerCertificate("/path/to/certificate.pem"); 

Connection con = ds.getConnection();
```

**중요**  
인증서가 AWS Management Console의 DB 클러스터 구성에 표시된 인증 기관과 일치하는지 확인합니다.

# SQL Server 클라이언트 도구를 사용하여 DB 클러스터에 연결
<a name="babelfish-connect-sqlserver"></a>

SQL Server 클라이언트를 사용하여 TDS 포트의 Babelfish에 연결할 수 있습니다. Babelfish 2.1.0 이상 릴리스부터 SSMS 객체 탐색기 또는 SSMS 쿼리 편집기를 사용하여 Babelfish 클러스터에 연결할 수 있습니다.

**제한 사항**
+ Babelfish 2.1.0 및 이전 버전에서는 `PARSE`를 사용하여 SQL 구문을 확인하는 작업이 제대로 작동하지 않습니다. `PARSE` 명령은 쿼리를 실행하지 않고 구문을 확인하는 대신 쿼리를 실행하지만, 결과를 표시하지 않습니다. SMSS <Ctrl><F5> 키 조합을 사용하여 구문을 확인하면 동일한 비정상적인 동작이 발생합니다. 즉, Babelfish는 출력을 제공하지 않고 예기치 않게 쿼리를 실행합니다.
+ Babelfish는 Multiple Active Result Sets(MARS)를 지원하지 않습니다. Babelfish에 연결하는 데 사용하는 모든 클라이언트 애플리케이션이 MARS를 사용하도록 설정되어 있지 않은지 확인합니다.
+ Babelfish 1.3.0 및 이전 버전의 경우 SSMS에 대해 쿼리 편집기만 지원됩니다. Babelfish에서 SSMS를 사용하려면 객체 탐색기가 아닌 SSMS에서 쿼리 편집기 연결 대화상자를 열어야 합니다. 객체 탐색기의 대화 상자가 열리면 대화 상자를 취소하고 쿼리 편집기를 다시 엽니다. 다음 이미지에서 Babelfish 1.3.0 또는 이전 버전에 연결할 때 선택할 메뉴 옵션을 찾을 수 있습니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/babelfish_connect_ssms.png)

SQL Server와 Babelfish 간의 상호 운용성 및 동작 차이에 대한 자세한 내용은 [Babelfish for Aurora PostgreSQL과 SQL Server의 차이점](babelfish-compatibility.md) 섹션을 참조하세요.

## sqlcmd를 사용하여 DB 클러스터에 연결
<a name="babelfish-connect-sqlcmd"></a>

버전 19.1 이전의 SQL Server `sqlcmd` 명령줄 클라이언트를 사용해야만 Babelfish를 지원하는 Aurora PostgreSQL DB 클러스터에 연결하고 상호 작용할 수 있습니다. SSMS 버전 19.2는 Babelfish 클러스터에 연결할 수 없습니다. 다음 명령을 사용하여 연결합니다.

```
sqlcmd -S endpoint,port -U login-id -P password -d your-DB-name
```

옵션은 다음과 같습니다.
+ `-S`는 DB 클러스터의 엔드포인트 및 TDS 포트(선택 사항)입니다.
+ `-U`는 사용자의 로그인 이름입니다.
+ `-P`는 사용자와 연결된 암호입니다.
+ `-d`는 Babelfish 데이터베이스의 이름입니다.

연결 후에는 SQL Server에서 사용하는 것과 동일한 명령을 많이 사용할 수 있습니다. 몇 가지 예는 [Babelfish 시스템 카탈로그에서 정보 얻기](babelfish-query-database.md) 섹션을 참조하세요.

## SSMS를 사용하여 DB 클러스터에 연결
<a name="babelfish-connect-SSMS"></a>

Microsoft SQL Server Management Studio(SSMS)를 사용하여 Babelfish를 실행하는 Aurora PostgreSQL DB 클러스터에 연결할 수 있습니다. SSMS에는 [SQL Server 데이터베이스를 Babelfish for Aurora PostgreSQL로 마이그레이션](babelfish-migration.md)에서 설명하는 SQL Server 가져오기 및 내보내기 마법사를 비롯한 여러 도구가 포함되어 있습니다. SSMS에 대한 자세한 내용은 Microsoft 설명서의 [SQL Server Management Studio(SSMS) 다운로드](https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16)를 참조하세요. SSL/TLS를 구성하려면 [Microsoft SQL Server DB 인스턴스와 함께 SSL 사용](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.SSL.Using.html)을 참조하세요.

**SSMS를 사용하여 Babelfish 데이터베이스에 연결하려면**

1. SSMS를 시작합니다.

1. **Connect to Server** 대화 상자가 열립니다. 연결을 계속하려면 다음 중 하나를 수행합니다.
   + **새 쿼리(New Query)**를 선택합니다.
   + 쿼리 편집기가 열려 있는 경우 **쿼리(Query)**, **연결(Connection)**, **연결(Connect)**을 선택합니다.

1. 데이터베이스에 대한 다음 정보를 제공합니다.

   1. **서버 유형(Server type)**에서 **데이터베이스 엔진(Database Engine)**을 선택합니다.

   1. **서버 이름(Server name)**에 DNS 이름을 입력합니다. 예를 들어 서버 이름은 다음과 같은 형식이어야 합니다.

      ```
      cluster-name.cluster-555555555555.aws-region.rds.amazonaws.com,1433
      ```

   1. **인증(Authentication)**]의 경우 **SQL Server 인증(SQL Server Authentication)**을 선택합니다.

   1. **로그인(Login)**에 데이터베이스를 생성할 때 선택한 사용자 이름을 입력합니다.

   1. **암호(Password)**에 데이터베이스를 생성할 때 선택한 암호를 입력합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/Babelfish-SSMS-connect-database1.png)

1. (선택 사항) **옵션(Options)**을 선택한 다음, **연결 속성(Connection Properties)** 탭을 선택합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/Babelfish-SSMS-connect-database2.png)

1. (선택 사항) **데이터베이스에 연결(Connect to database)**에서 연결할 마이그레이션된 SQL Server 데이터베이스의 이름을 지정하고 **연결(Connect)**을 선택합니다.

   SSMS가 연결 문자열을 적용할 수 없다는 메시지가 나타나면 **확인(OK)**을 선택합니다.

   Babelfish 연결에 문제가 있으면 [연결 실패](babelfish-troubleshooting.md#babelfish-troubleshooting-connectivity) 단원을 참조하세요.

   SQL Server 연결 문제에 대한 자세한 내용은 *Amazon RDS 사용 설명서*의 [SQL Server 인스턴스에 대한 연결 문제 해결](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ConnectToMicrosoftSQLServerInstance.html#USER_ConnectToMicrosoftSQLServerInstance.Troubleshooting)을 참조하세요.

# SQL Server 클라이언트를 사용하여 DB 클러스터에 연결
<a name="babelfish-connect-PostgreSQL"></a>

PostgreSQL 클라이언트를 사용하여 PostgreSQL 포트의 Babelfish에 연결할 수 있습니다. 버전 5.1.0부터 Babelfish 서버는 기본적으로 엔드투엔드 연결 암호화를 적용합니다. SSL/TLS 인증서를 사용하도록 애플리케이션을 업데이트하세요. SSL/TLS 인증서 구성에 대한 자세한 내용은 [SSL/TLS를 이용한 Aurora PostgreSQL 데이터 보안](AuroraPostgreSQL.Security.md#AuroraPostgreSQL.Security.SSL) 섹션을 참조하세요.

## psql을 사용하여 DB 클러스터에 연결
<a name="babelfish-connect-psql"></a>

[PostgreSQL](https://www.postgresql.org/download/) 웹 사이트에서 PostgreSQL 클라이언트를 다운로드할 수 있습니다. psql을 설치하려면 운영 체제 버전별 지침을 따르세요.

`psql` 명령줄 클라이언트를 사용하여 Babelfish를 지원하는 Aurora PostgreSQL DB 클러스터를 쿼리할 수 있습니다. 연결할 때 PostgreSQL 포트를 사용합니다(기본적으로 포트 5432). 일반적으로 기본값에서 변경하지 않는 한 포트 번호를 지정할 필요가 없습니다. 다음 명령을 사용하여 `psql` 클라이언트에서 Babelfish에 연결합니다.

```
psql -h bfish-db.cluster-123456789012.aws-region.rds.amazonaws.com
-p 5432 -U postgres -d babelfish_db
```

파라미터는 다음과 같습니다.
+ `-h` - 액세스할 DB 클러스터(클러스터 엔드포인트)의 호스트 이름입니다.
+ `-p` - DB 인스턴스에 연결하는 데 사용할 PostgreSQL 포트 번호입니다.
+ `-d` – 연결하려는 데이터베이스입니다. 기본값은 `babelfish_db`입니다.
+ `-U` - 액세스할 데이터베이스 사용자 계정입니다. (이 예에서는 기본 마스터 사용자 이름을 보여줍니다.)

psql 클라이언트에서 SQL 명령을 실행하면 세미콜론으로 명령을 종료합니다. 예를 들어 다음 SQL 명령은 [pg\$1tables 시스템 뷰](https://www.postgresql.org/docs/current/view-pg-tables.html)를 쿼리하여 데이터베이스의 각 테이블에 대한 정보를 반환합니다.

`SELECT * FROM pg_tables;`

또한 psql 클라이언트에는 기본 제공 메타 명령 집합이 있습니다. *메타 명령*은 서식을 조정하거나 메타 데이터를 사용하기 쉬운 형식으로 반환하는 바로 가기를 제공하는 바로 가기입니다. 예를 들어, 다음 메타 명령은 이전의 SQL 명령과 유사한 정보를 반환합니다.

`\d`

메타 명령은 세미콜론(;)으로 종료할 필요가 없습니다.

psql 클라이언트를 종료하려면 `\q`를 입력합니다.

psql 클라이언트를 사용하여 Aurora PostgreSQL 클러스터를 쿼리하는 방법에 대한 자세한 내용은 [PostgreSQL 설명서](https://www.postgresql.org/docs/14/app-psql.html)를 참조하세요.

## pgAdmin을 사용하여 DB 클러스터에 연결
<a name="babelfish-connect-pgadmin"></a>

pgAdmin 클라이언트를 사용하여 기본 PostgreSQL 언어로 데이터에 액세스할 수 있습니다.

**pgAdmin 클라이언트를 사용하여 클러스터에 연결하려면**

1. [pgAdmin 웹 사이트](https://www.pgadmin.org/)에서 pgAdmin 클라이언트를 다운로드하여 설치합니다.

1. 클라이언트를 열고 pgAdmin을 사용하여 인증합니다.

1. **서버(Servers)**에 대한 컨텍스트 메뉴를 연 다음(마우스 오른쪽 버튼 클릭), **생성(Create)**, **서버(Servers)**를 선택합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/pgAdmin1.png)

1. **생성 - 서버(Create - Server)** 대화 상자에 정보를 입력합니다.

   **연결(Connection)** 탭에서 **호스트(Host)**에 대한 Aurora PostgreSQL 클러스터 주소 및 **포트(Port)**에 대한 PostgreSQL 포트 번호(기본값: 5432)를 추가합니다. 인증 세부 정보를 제공하고 **저장(Save)**을 선택합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/pgAdmin2.png)

연결 후 pgAdmin 기능을 사용하여 PostgreSQL 포트에서 Aurora PostgreSQL 클러스터를 모니터링하고 관리할 수 있습니다.

![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/pgAdmin3.png)


자세한 내용은 [pgAdmin](https://www.pgadmin.org/) 웹 페이지를 참조하세요.

# Babelfish 작업
<a name="working-with-babelfish-usage-notes-features"></a>

Babelfish와 SQL Server 작업 간의 차이점과 Babelfish와 PostgreSQL 데이터베이스 간의 차이점 등 Babelfish에 대한 사용 정보가 아래에 나와 있습니다.

**Topics**
+ [Babelfish 시스템 카탈로그에서 정보 얻기](babelfish-query-database.md)
+ [Babelfish for Aurora PostgreSQL에서 권한 및 액세스 제어 관리](babelfish-permissions.md)
+ [Babelfish for Aurora PostgreSQL과 SQL Server의 차이점](babelfish-compatibility.md)
+ [구현이 제한된 Babelfish 기능 사용](babelfish-compatibility.tsql.limited-implementation.md)
+ [Babelfish 쿼리 성능 개선](babelfish-query-performance.md)
+ [Babelfish와 함께 Aurora PostgreSQL 확장 사용](babelfish-postgres-aws-extensions.md)
+ [연결된 서버를 지원하는 Babelfish](babelfish-postgres-linkedservers.md)
+ [Babelfish에서 전체 텍스트 검색 사용](babelfish-postgres-fulltextsearch.md)
+ [Babelfish에서 지리공간 데이터 유형 지원](babelfish-geospatial.md)
+ [Babelfish의 파티셔닝 이해](babelfish-partition.md)

# Babelfish 시스템 카탈로그에서 정보 얻기
<a name="babelfish-query-database"></a>

SQL Server에서 사용되는 것과 동일한 여러 시스템 뷰를 쿼리하여 Babelfish 클러스터에 저장된 데이터베이스 객체에 대한 정보를 얻을 수 있습니다. Babelfish의 새로운 릴리스마다 더 많은 시스템 뷰를 지원합니다. 현재 사용할 수 있는 뷰 목록은 [SQL Server system catalog views](#system-catalog-table) 테이블을 참조하세요.

이러한 시스템 뷰는 시스템 카탈로그(`sys.schemas`)의 정보를 제공합니다. Babelfish의 경우 이러한 뷰에는 SQL Server 및 PostgreSQL 시스템 스키마가 모두 포함되어 있습니다. Babelfish에서 시스템 카탈로그 정보를 쿼리하려면 다음 예와 같이 TDS 포트 또는 PostgreSQL 포트를 사용할 수 있습니다.
+ **`sqlcmd`를 사용하여 T-SQL 포트를 쿼리하거나 다른 SQL Server 클라이언트를 쿼리합니다**.

  ```
  1> SELECT * FROM sys.schemas
  2> GO
  ```

  이 쿼리는 다음과 같이 SQL Server 및 Aurora PostgreSQL 시스템 스키마를 반환합니다.

  ```
  name      
  ---------------------------------------------------------
  demographic_dbo          
  public                                                    
  sys                           
  master_dbo
  tempdb_dbo
  ...
  ```
+ **`psql` 또는 `pgAdmin`을 사용하여 PostgreSQL 포트를 쿼리합니다**. 이 예에서는 `psql` 목록 스키마 메타 명령(`\dn`)을 사용합니다.

  ```
  babelfish_db=> \dn
  ```

  쿼리는 `sqlcmd`에서 T-SQL 포트에 반환한 것과 동일한 결과 세트를 반환합니다.

  ```
          List of schemas
               Name              
  ------------------------------
  
   demographic_dbo           
  
   public                       
   sys                          
   master_dbo                   
   tempdb_dbo                   
  ...
  ```

## Babelfish에서 사용할 수 있는 SQL Server 시스템 카탈로그
<a name="babelfish-query-database.system-catalogs"></a>

다음 테이블에서는 Babelfish에 현재 구현된 SQL Server 뷰를 확인할 수 있습니다. SQL Server의 시스템 카탈로그에 대한 자세한 내용은 Microsoft 설명서의 [시스템 카탈로그 뷰(Transact-SQL)](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/catalog-views-transact-sql?view=sql-server-ver16)를 참조하세요.<a name="system-catalog-table"></a>


| 뷰 이름 | 설명 또는 Babelfish 제한(있는 경우) | 
| --- | --- | 
| `sys.all_columns` | 모든 테이블 및 뷰의 모든 열 | 
| `sys.all_objects` | 모든 스키마의 모든 객체 | 
| `sys.all_sql_modules` | `sys.sql_modules` 및 `sys.system_sql_modules` 연합 | 
| `sys.all_views` | 모든 스키마의 모든 뷰 | 
| `sys.columns` | 사용자 정의 테이블 및 뷰의 모든 열 | 
| `sys.configurations` | Babelfish 지원은 단일 읽기 전용 구성으로 제한됩니다. | 
| `sys.data_spaces` | 각 데이터 공간에 대한 행이 포함됩니다. 파일 그룹, 파티션 구성표 또는 FILESTREAM 데이터 파일 그룹이 될 수 있습니다. | 
| `sys.database_files` | 데이터베이스 자체에 저장된 데이터베이스의 각 파일에 대해 하나의 행이 포함된 데이터베이스별 뷰입니다. | 
| `sys.database_mirroring` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.database\$1mirroring](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-mirroring-transact-sql?view=sql-server-ver16)을 참조하세요. | 
| `sys.database_principals` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.database\$1principals](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-principals-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.database_role_members` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.database\$1role\$1members](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-database-role-members-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.databases` | 모든 스키마의 모든 데이터베이스 | 
| `sys.dm_exec_connections` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.dm\$1exec\$1connections](https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-connections-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.dm_exec_sessions` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.dm\$1exec\$1sessions](https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-exec-sessions-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.dm_hadr_database_replica_states` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.dm\$1hadr\$1database\$1replica\$1states](https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-hadr-database-replica-states-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.dm_os_host_info` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.dm\$1os\$1host\$1info](https://docs.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-host-info-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.endpoints` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.endpoints](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-endpoints-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.indexes` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.indexes](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-indexes-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.languages` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.languages](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-fulltext-languages-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.schemas` | 모든 스키마 | 
| `sys.server_principals` | 모든 로그인 및 역할 | 
| `sys.sql_modules` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.sql\$1modules](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-sql-modules-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.sysconfigures` | Babelfish 지원은 단일 읽기 전용 구성으로 제한됩니다. | 
| `sys.syscurconfigs` | Babelfish 지원은 단일 읽기 전용 구성으로 제한됩니다. | 
| `sys.sysprocesses` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.sysprocesses](https://docs.microsoft.com/en-us/sql/relational-databases/system-compatibility-views/sys-sysprocesses-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.system_sql_modules` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.system\$1sql\$1modules](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-system-sql-modules-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.table_types` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.table\$1types](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-table-types-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| `sys.tables` | 스키마의 모든 테이블 | 
| `sys.xml_schema_collections` | 자세한 내용은 Microsoft Transact-SQL 설명서의 [sys.xml\$1schema\$1collections](https://docs.microsoft.com/en-us/sql/relational-databases/system-catalog-views/sys-xml-schema-collections-transact-sql?view=sql-server-ver16)를 참조하세요. | 

PostgreSQL은 SQL Server 객체 카탈로그 뷰와 유사한 시스템 카탈로그를 구현합니다. 전체 시스템 카탈로그 목록은 PostgreSQL 설명서의 [시스템 카탈로그](https://www.postgresql.org/docs/current/catalogs.html)를 참조하세요.

## Babelfish에서 지원되는 DDL 내보내기
<a name="babelfish-ddl-exports"></a>

Babelfish 2.4.0 및 3.1.0 버전의 경우 Babelfish는 다양한 도구에서 DDL 내보내기를 지원합니다. 예를 들어, SQL Server Management Studio(SSMS)에서 이 기능을 사용하여 Babelfish for Aurora PostgreSQL 데이터베이스의 다양한 객체에 대한 데이터 정의 스크립트를 생성할 수 있습니다. 그런 다음, 이 스크립트에서 생성된 DDL 명령을 사용하여 다른 Babelfish for Aurora PostgreSQL 또는 SQL Server 데이터베이스에서 동일한 객체를 생성할 수 있습니다.

Babelfish는 지정된 버전에서 다음과 같은 객체에 대한 DDL 내보내기를 지원합니다.


| 객체 목록 | 2.4.0 | 3.1.0 | 
| --- | --- | --- | 
| 사용자 테이블 | 예 | 예 | 
| 기본 키 | 예 | 예 | 
| 외래 키 | 예 | 예 | 
| 고유한 제약 조건 | 예 | 예 | 
| 인덱스 | 예 | 예 | 
| 제약 조건 확인 | 예 | 예 | 
| 보기 | 예 | 예 | 
| 저장 프로시저 | 예 | 예 | 
| 사용자 정의 함수 | 예 | 예 | 
| 테이블 값 함수 | 예 | 예 | 
| 트리거 | 예 | 예 | 
| 사용자 정의 데이터 형식 | 아니요 | 아니요 | 
| 사용자 정의 테이블 유형 | 아니요 | 아니요 | 
| Users | 아니요 | 아니요 | 
| 로그인 | 아니요 | 아니요 | 
| 시퀀스 | 아니요 | 아니요 | 
| Roles | 아니요 | 아니요 | 

### 내보낸 DDL의 제한 사항
<a name="babelfish-ddl-exports-limitations"></a>
+ **내보낸 DDL을 사용하여 객체를 다시 생성하기 전에 이스케이프 해치 사용** - Babelfish는 내보낸 DDL 스크립트의 모든 명령을 지원하지는 않습니다. Babelfish의 DDL 명령에서 객체를 다시 생성할 때 발생하는 오류를 방지하려면 이스케이프 해치를 사용하세요. 이스케이프 해치에 대한 자세한 내용은 [이스케이프 해치를 사용하여 Babelfish 오류 처리 관리](babelfish-strict.md) 단원을 참조하세요.
+ **명시적 COLLATE 절과 함께 CHECK 제약 조건을 포함하는 객체** - SQL Server 데이터베이스에서 생성된 이러한 객체가 포함된 스크립트는 Babelfish 데이터베이스와 같이 서로 형태는 다르지만 동일한 데이터 정렬을 사용합니다. 예를 들어 sql\$1latin1\$1general\$1cp1\$1cs\$1as, sql\$1latin1\$1general\$1cp1251\$1cs\$1as 및 latin1\$1general\$1cs\$1as 같은 몇 가지 데이터 정렬은 가장 가까운 Windows 데이터 정렬인 latin1\$1general\$1cs\$1as로 생성됩니다.

# Babelfish for Aurora PostgreSQL에서 권한 및 액세스 제어 관리
<a name="babelfish-permissions"></a>

 Babelfish for Aurora PostgreSQL에서 데이터베이스, 스키마 및 객체에 대한 권한 및 액세스 제어를 관리할 수 있습니다. 다음 표에는 Babelfish에서 다양한 액세스 제어 시나리오를 달성할 수 있는 권한을 부여하는 특정 SQL 명령이 요약되어 있습니다. 현재 지원되지 않는 사례에 대한 해결 방법뿐만 아니라 구현할 수 있는 지원되는 사용 사례를 다룹니다. 이렇게 하면 Babelfish 데이터베이스로 작업할 때 보안 및 규정 준수 요구 사항에 맞게 적절한 권한을 구성할 수 있습니다.

## 지원되는 사용 사례
<a name="babelfish-permissions-supported"></a>

 다음 표에서는 Babelfish에서 지원되는 사용 사례를 설명합니다. 각 사용 사례에 대해 표에는 이를 달성하는 데 필요한 작업과 샘플 SQL 명령이 나와 있습니다.


|  사용 사례  |  작업  |  SQL 명령  |  설명  |  Babelfish 버전 호환성  | 
| --- | --- | --- | --- | --- | 
|   모든 데이터베이스에서 SELECTs/DMLs/DDLs를 수행하기 위한 로그인 허용   |   sysadmin 서버 역할에 로그인 추가   |   ALTER SERVER ROLE sysadmin ADD MEMBER `login`   |   없음   |   모든 버전   | 
|   데이터베이스에서 SELECTs/DMLs/DDLs를 수행하기 위한 로그인 허용   |   로그인을 데이터베이스의 소유자로 설정   |   ALTER AUTHORIZATION ON DATABASE::`database` TO `login`   |   데이터베이스에는 소유자가 하나만 있을 수 있습니다.  |   버전 3.4 이상   | 
|   데이터베이스 사용자가 스키마에서 SELECTs/DMLs를 수행하도록 허용   |   스키마에서 데이터베이스 사용자에게 권한 부여   |   GRANT SELECT/EXECUTE/INSERT/UPDATE/DELETE ON SCHEMA::`schema` TO `user`   |   없음   |   버전 3.6 이상, 4.2 이상   | 
|   데이터베이스 사용자가 스키마에서 SELECTs/DMLs를 수행하도록 허용   |   스키마 생성 시 스키마의 데이터베이스 사용자 소유자 생성   |   CREATE SCHEMA `schema` AUTHORIZATION `user`   |   만든 후 스키마 소유권 변경은 현재 지원되지 않습니다.  |   버전 1.2 이상   | 
|   데이터베이스 사용자가 객체에서 SELECTs/DMLs를 수행하도록 허용   |   객체의 데이터베이스 사용자에게 권한 부여   |   GRANT SELECT/EXECUTE/INSERT/UPDATE/DELETE ON OBJECT::`object` TO `user`   |   없음   |   모든 버전   | 
|   데이터베이스 사용자가 데이터베이스 삭제를 포함하여 데이터베이스에서 SELECTs/DMLs/DDLs를 수행하도록 허용   |   db\$1owner 고정 데이터베이스 역할에 사용자 추가   |   ALTER ROLE db\$1owner ADD MEMBER `user`   |   db\$1owner 고정 데이터베이스 역할에 사용자만 추가할 수 있습니다. db\$1owner 역할에 역할을 추가하는 것은 아직 지원되지 않습니다.  |   버전 4.5 이상, 5.1 이상   | 
|   사용자 지정 데이터베이스 역할의 사용자 또는 구성원이 데이터베이스에서 SELECT만 수행하도록 허용   |   db\$1datareader 고정 데이터베이스 역할에 사용자 또는 역할 추가   |   ALTER ROLE db\$1datareader ADD MEMBER `user` / `role`   |   없음   |   버전 4.5 이상, 5.1 이상   | 
|   사용자 지정 데이터베이스 역할의 사용자 또는 구성원이 데이터베이스에서 DML만 수행하도록 허용   |   db\$1datawriter 고정 데이터베이스 역할에 사용자 또는 역할 추가   |   ALTER ROLE db\$1datawriter ADD MEMBER `user` / `role`   |   없음   |   버전 4.5 이상, 5.1 이상   | 
|   사용자 지정 데이터베이스 역할의 사용자 또는 구성원이 데이터베이스에서 DDL만 수행하도록 허용   |   db\$1accessadmin 고정 데이터베이스 역할에 사용자 또는 역할 추가   |   ALTER ROLE db\$1accessadmin ADD MEMBER `user` / `role`   |   없음   |   버전 4.5 이상, 5.1 이상   | 
|   사용자 지정 데이터베이스 역할의 사용자 또는 구성원에게 사용자 지정 역할 CREATE/ALTER/DROP, 데이터베이스의 객체에 대한 권한 GRANT/REVOKE 및/또는 데이터베이스의 CREATE SCHEMA만 허용   |   db\$1securityadmin 고정 데이터베이스 역할에 사용자 또는 역할 추가   |   ALTER ROLE db\$1securityadmin ADD MEMBER `user` / `role`   |   없음   |   버전 4.5 이상, 5.1 이상   | 
|   사용자 지정 데이터베이스 역할의 사용자 또는 구성원에게 모든 사용자에 대한 CREATE/ALTER/DROP, 데이터베이스 액세스 권한 부여 또는 취소, 로그인에 사용자 계정 매핑 및/또는 데이터베이스에서의 CREATE SCHEMA만 허용   |   db\$1accessadmin 고정 데이터베이스 역할에 사용자 또는 역할 추가   |   ALTER ROLE db\$1accessadmin ADD MEMBER `user` / `role`   |   없음   |   버전 4.5 이상, 5.1 이상   | 
|   로그인에 모든 데이터베이스에 대한 CREATE/DROP/ALTER만 허용   |   dbcreator 고정 서버 역할에 로그인 추가   |   ALTER SERVER ROLE dbcreator ADD MEMBER `login`   |   dbcreator 로그인이 액세스할 수 있는 데이터베이스만 변경할 수 있습니다.  |   버전 4.5 이상, 5.1 이상   | 
|   로그인에 모든 로그인에 대한 CREATE/ALTER/DROP만 허용   |   securityadmin 고정 서버 역할에 로그인 추가   |   ALTER SERVER ROLE securityadmin ADD MEMBER `login`   |   없음   |   버전 4.5 이상, 5.1 이상   | 

## 지원되지 않는 사용 사례 및 해결 방법
<a name="babelfish-permissions-unsupported"></a>

 다음 표에서는 Babelfish에서 지원되지 않지만 해결 방법을 사용하여 달성할 수 있는 사용 사례를 설명합니다.


|  사용 사례  |  작업  |  SQL 명령  |  설명  |  해결 방법을 위한 Babelfish 버전 호환성  | 
| --- | --- | --- | --- | --- | 
|   다른 사용자에게 이러한 권한을 GRANT하는 옵션과 함께 사용자가 객체/스키마에 SELECT/DML을 수행하도록 허용   |   다른 모든 사용자에게 직접 권한 GRANT   |   GRANT SELECT/EXECUTE/INSERT/UPDATE/DELETE ON OBJECT/SCHEMA::`object`/`schema` TO `user`   |   GRANT ... WITH GRANT OPTION은 현재 지원되지 않습니다.  |   버전 3.6 이상, 4.2 이상   | 
|   데이터베이스 사용자가 데이터베이스 삭제를 포함하여 데이터베이스에서 SELECTs/DMLs/DDLs를 수행하도록 허용   |   db\$1owner 고정 데이터베이스 역할에 역할 구성원 추가   |   ALTER ROLE db\$1owner ADD MEMBER `user`   |   db\$1owner 역할에 역할 추가는 현재 지원되지 않습니다.  |   버전 4.5 이상, 5.1 이상   | 

## 지원되는 사용 사례
<a name="babelfish-permissions-unsupported"></a>

 다음 표에서는 Babelfish에서 지원되지 않는 사용 사례를 설명합니다.


|  사용 사례  |  설명  | 
| --- | --- | 
|  사용자 지정 데이터베이스 역할의 사용자 또는 구성원이 데이터베이스에서 SELECT를 수행하지 못하도록 거부   |   db\$1denydatareader 고정 데이터베이스 역할은 아직 지원되지 않습니다.  | 
|  사용자 지정 데이터베이스 역할의 사용자 또는 구성원이 데이터베이스에서 DML을 수행하지 못하도록 거부   |   db\$1denydatawriter 고정 데이터베이스 역할은 현재 지원되지 않습니다.  | 
|  로그인에 모든 데이터베이스 연결에 대한 KILL만 허용   |   processadmin 고정 서버 역할은 현재 지원되지 않습니다.  | 
|  로그인에 연결된 서버 추가 또는 제거만 허용   |   setupadmin 고정 서버 역할은 현재 지원되지 않습니다.  | 

# 업그레이드 후 객체 소유권 차이 해결
<a name="babelfish-ownership-differences"></a>

Babelfish 버전 4.6 이상 및 5.2 이상에는 TDS 엔드포인트를 통한 객체 소유권 처리에 대한 변경 사항이 포함되어 있습니다. TDS 엔드포인트를 통해 새 객체를 생성하면 기존 사용자 대신 스키마 소유자가 이러한 객체를 소유합니다. 이 소유권 변경은 4.6 또는 5.2 이전 버전에서 업그레이드할 때 기존 객체와 비교하여 새 객체의 권한 동작에 영향을 미칠 수 있습니다.

이러한 소유권 차이를 해결하기 위해 Babelfish는 `sys.generate_alter_ownership_statements()` 함수를 제공합니다. 이 함수는 객체 소유권을 스키마 소유권과 일치시키는 SQL 문을 생성합니다.

객체 소유권을 처리할 때 다음 제한 사항에 유의하세요.
+ PostgreSQL 엔드포인트를 통해 CREATE 권한을 부여받은 사용자는 해당 스키마의 TDS 엔드포인트를 통해 객체를 생성할 수 없습니다.
+ PostgreSQL 엔드포인트를 통해 T-SQL 객체에 대한 권한을 수정하는 것은 권장되지 않으며 잘못된 T-SQL 동작을 유발할 수 있습니다.
+ 액세스 권한은 소유권 불일치로 인해 이전 객체와 새 객체 간에 다를 수 있습니다. 예를 들어 `sch_own`에서 소유한 스키마에 `dbo`에서 소유한 객체가 포함되어 있다고 생각해 봅시다. 이 경우 업그레이드 전에 생성된 `dbo` 소유 객체는 업그레이드 후 생성된 `sch_own` 소유 객체와 다른 액세스 권한을 가질 수 있습니다. 이는 SELECT 및 INSERT와 같은 작업에 영향을 미칠 수 있습니다.

DB 클러스터에 Babelfish 버전 4.6 또는 5.2 전에 생성된 객체가 포함된 경우 소유권을 조정하는 것이 좋습니다.

**객체 소유권 차이를 해결하는 방법**

1. PostgreSQL 엔드포인트를 사용하여 DB 클러스터의 `babelfish_db` 데이터베이스에 연결합니다.

1. 다음 명령을 실행합니다.

   ```
   SELECT * from sys.generate_alter_ownership_statements();
   ```

   이렇게 하면 객체 간의 소유권을 표준화하기 위한 SQL 문 목록이 생성됩니다.

1. 먼저 테스트 환경에서 생성된 문을 실행하여 효과를 검증한 후 프로덕션 환경에 적용합니다.

데이터베이스 전체에서 일관된 객체 소유권 모델을 달성하려면 이러한 문을 실행하는 것이 좋습니다.

# Babelfish for Aurora PostgreSQL과 SQL Server의 차이점
<a name="babelfish-compatibility"></a>

Babelfish는 끊임없이 발전하는 Aurora PostgreSQL 기능으로, Aurora PostgreSQL 13.4의 초기 제공 이후 각 릴리스에 추가된 새 기능입니다. TDS 포트를 사용하는 T-SQL 언어를 통해 PostgreSQL 위에 T-SQL 의미 체계를 제공하도록 설계되었습니다. [버전별 Babelfish에서 지원되는 기능](babelfish-compatibility.supported-functionality-table.md) 테이블에 표시된 것처럼 Babelfish 버전이 나올 때마다 T-SQL 기능 및 동작에 잘 맞는 기능이 추가되고 있습니다. Babelfish로 작업할 때 최상의 결과를 얻으려면 SQL Server에서 지원하는 T-SQL과 최신 버전의 Babelfish 간에 현재 존재하는 차이점을 이해하는 것이 좋습니다. 자세한 내용은 [Babelfish에서의 T-SQL 차이점](babelfish-compatibility.tsql.limitations.md)를 참조하세요.

Babelfish와 SQL Server에서 지원하는 T-SQL의 차이점 외에도 Aurora PostgreSQL DB 클러스터 컨텍스트에서 Babelfish와 PostgreSQL 간의 상호 운용성 문제를 고려해야 할 수도 있습니다. 앞서 언급했듯이 Babelfish는 TDS 포트를 사용하여 T-SQL 언어를 통해 PostgreSQL 외에 T-SQL 의미 체계를 지원합니다. 동시에 PostgreSQL SQL 문을 사용하여 표준 PostgreSQL 포트를 통해 Babelfish 데이터베이스에 액세스할 수도 있습니다. 프로덕션 배포에서 PostgreSQL과 Babelfish 기능을 모두 사용하려는 경우 스키마 이름, 식별자, 권한, 트랜잭션 의미 체계, 다중 결과 집합, 기본 데이터 정렬 등 간의 잠재적인 상호 운용성 문제를 알고 있어야 합니다. 간단히 말해서 Babelfish 컨텍스트에서 PostgreSQL 문 또는 PostgreSQL 액세스가 발생하면 PostgreSQL과 Babelfish 사이에 간섭이 발생할 수 있으며 새 버전의 Babelfish가 출시될 때 잠재적으로 구문, 의미 및 호환성에 영향을 미칠 수 있습니다. 모든 고려 사항에 대한 전체 정보 및 지침은 PostgreSQL용 Babelfish 설명서에서 Babelfish 상호 운용성에 대한 지침을 참조하세요.

**참고**  
동일한 애플리케이션 컨텍스트에서 PostgreSQL 기본 기능과 Babelfish 기능을 모두 사용하기 전에 Babelfish for PostgreSQL 설명서의 [Babelfish 상호 운용성](https://babelfishpg.org/docs/usage/interoperability/)에 대한 지침에서 논의된 문제를 고려하는 것이 좋습니다. 이러한 상호 운용성 문제(Aurora PostgreSQL 및 Babelfish)는 Babelfish와 동일한 애플리케이션 컨텍스트에서 PostgreSQL 데이터베이스 인스턴스를 사용하려는 경우에만 관련이 있습니다.

**Topics**
+ [Babelfish 덤프 및 복원](#babelfish-compatibility.dumprestore)
+ [Babelfish에서의 T-SQL 차이점](babelfish-compatibility.tsql.limitations.md)
+ [Babelfish의 트랜잭션 격리 수준](babelfish-transaction.md)

## Babelfish 덤프 및 복원
<a name="babelfish-compatibility.dumprestore"></a>

버전 4.0.0과 3.4.0부터 Babelfish 사용자는 이제 덤프 및 복원 유틸리티를 활용하여 데이터베이스를 백업하고 복원할 수 있습니다. 자세한 내용은 [Babelfish 덤프 및 복원](https://github.com/babelfish-for-postgresql/babelfish-for-postgresql/wiki/Babelfish-Dump-and-Restore)을 참조하세요. 이 기능은 PostgreSQL 덤프 및 복원 유틸리티를 기반으로 구축됩니다. 자세한 내용은 [pg\$1dump](https://www.postgresql.org/docs/current/app-pgdump.html) 및 [pg\$1restore](https://www.postgresql.org/docs/current/app-pgrestore.html)를 참조하세요. Babelfish에서 이 기능을 효과적으로 사용하려면 Babelfish에 맞게 특별히 조정된 PostgreSQL 기반 도구를 사용해야 합니다. Babelfish의 백업 및 복원 기능은 SQL Server의 백업 및 복원 기능과 크게 다릅니다. 이러한 차이점에 대한 자세한 내용은 [덤프 및 복원 기능의 차이점: Babelfish와 SQL Server](https://github.com/babelfish-for-postgresql/babelfish-for-postgresql/wiki/Babelfish-Dump-and-Restore#differences)를 참조하세요. Babelfish for Aurora PostgreSQL은 Amazon Aurora PostgreSQL DB 클러스터 백업 및 복원을 위한 추가 기능을 제공합니다. 자세한 내용은 [Amazon Aurora DB 클러스터 백업 및 복구](BackupRestoreAurora.md) 섹션을 참조하세요.

# Babelfish에서의 T-SQL 차이점
<a name="babelfish-compatibility.tsql.limitations"></a>

현재 Babelfish 릴리스에서 지원되는 T-SQL 기능 표와 SQL Server와의 동작 차이점에 대한 몇 가지 참고 사항을 아래에서 확인할 수 있습니다.

다양한 버전 지원에 대한 자세한 내용은 [버전별 Babelfish에서 지원되는 기능](babelfish-compatibility.supported-functionality-table.md) 단원을 참조하세요. 현재 지원되지 않는 기능에 대한 자세한 내용은 [Babelfish에서 지원되지 않는 기능](babelfish-compatibility.tsql.limitations-unsupported.md) 단원을 참조하세요.

Babelfish는 Aurora PostgreSQL-Compatible Edition과 함께 사용할 수 있습니다. Babelfish 릴리스에 대한 자세한 내용은 [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html)를 참조하세요.


| 기능 또는 구문 | 동작 또는 차이점에 대한 설명 | 
| --- | --- | 
| \$1(줄 연속 문자) | 문자 및 16진수 문자열에 대한 줄 연속 문자(줄 바꿈 앞 백슬래시)는 현재 지원되지 않습니다. 문자열의 경우 백슬래시-줄 바꿈은 문자열의 문자로 해석됩니다. 16진수 문자열의 경우 백슬래시-줄 바꿈으로 인해 구문 오류가 발생합니다. | 
| @@version | `@@version`에서 반환하는 값의 형식은 SQL Server에서 반환하는 값과 약간 다릅니다. `@@version` 형식에 따라 코드가 올바르게 작동하지 않을 수 있습니다. | 
| 집계 함수 | 집계 함수는 부분적으로 지원됩니다(AVG, COUNT, COUNT\$1BIG, GROUPING, MAX, MIN, STRING\$1AGG 및 SUM이 지원됨). 지원되지 않는 집계 함수 목록은 [지원되지 않는 함수](babelfish-compatibility.tsql.limitations-unsupported.md#babelfish-compatibility.tsql.limitations-unsupported-list4) 단원을 참조하세요. | 
|  ALTER TABLE  | 단일 열 또는 제약 조건의 추가 또는 삭제만 지원합니다. | 
|  ALTER TABLE..ALTER COLUMN  | NULL 및 NOT NULL은 현재 지정할 수 없습니다. 열의 null 허용 여부를 변경하려면 postgreSQL 문 ALTER TABLE..\$1SET\$1DROP\$1 NOT NULL을 사용합니다. | 
|  AT TIME ZONE  | 일광 절약 시간(DST)에서 표준 시간으로 전환되는 동안 표준 시간 오프셋을 사용하여 중첩되는 기간이 표시됩니다. 명확히 이해하기 위해 다음 예제를 검토하세요. <pre>SELECT CONVERT(DATETIME2(0), '2022-10-30T02:00:00', 126) AT TIME ZONE 'Central European Standard Time';<br />GO;<br />Result: 2022-10-30 02:00:00 +01:00</pre>  | 
| 열 별칭이 없는 빈 열 이름 | `sqlcmd` 및 `psql` 유틸리티는 빈 이름이 있는 열을 다르게 처리합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/babelfish-compatibility.tsql.limitations.html)  | 
| CHECKSUM 함수 | Babelfish와 SQL Server는 CHECKSUM 함수에 대해 서로 다른 해싱 알고리즘을 사용합니다. 따라서 Babelfish의 CHECKSUM 함수에서 생성된 해시 값은 SQL Server의 CHECKSUM 함수에서 생성된 해시 값과 다를 수 있습니다. | 
| 열 기본값 | 열 기본값을 생성할 때 제약 조건 이름은 무시됩니다. 열 기본값을 삭제하려면 `ALTER TABLE...ALTER COLUMN..DROP DEFAULT...` 구문을 사용합니다. | 
| Constraint\$1name | SQL Server에서 제약 조건 이름은 표가 속한 스키마 내에서 고유해야 합니다. 그러나 Babelfish에서는 PRIMARY KEY 및 UNIQUE 제약 조건에만 적용됩니다. 다른 유형의 제약 조건에는 이 제한이 적용되지 않습니다. | 
| 제약 조건 | PostgreSQL 개별 제약 조건 켜기 및 끄기를 지원하지 않습니다. 명령문이 무시되면서 경고가 발행됩니다. | 
| IGNORE\$1DUP\$1KEY를 사용한 제약 조건 | 제약 조건은 이 속성 없이도 생성됩니다. | 
| CREATE, ALTER, DROP SERVER ROLE |  ALTER SERVER ROLE은 `sysadmin`에 대해서만 지원됩니다. 다른 모든 구문은 지원되지 않습니다. Babelfish의 T-SQL 사용자는 로그인(서버 주체), 데이터베이스 및 데이터베이스 사용자(데이터베이스 주체)의 개념에 대해 SQL Server와 유사한 경험을 합니다.  | 
| CREATE, ALTER LOGIN 절은 제한된 구문으로 지원 | CREATE LOGIN... PASSWORD 절, ...DEFAULT\$1DATABASE 절 및 ...DEFAULT\$1LANGUAGE 절은 지원됩니다. ALTER LOGIN... PASSWORD 절은 지원되지만 ALTER LOGIN... OLD\$1PASSWORD 절은 지원되지 않습니다. sysadmin 구성원인 로그인만 암호를 수정할 수 있습니다. | 
| CREATE DATABASE 대/소문자 구분하는 데이터 정렬  | 대소문자 구분하는 데이터 정렬은 CREATE DATABASE 문에서 지원되지 않습니다. | 
| CREATE DATABASE 키워드 및 절 | COLLATE 및 CONTAINMENT=NONE을 제외한 옵션은 지원되지 않습니다. COLLATE 절은 허용되며 항상 `babelfishpg_tsql.server_collation_name` 값으로 설정됩니다. | 
| CREATE SCHEMA... 지원 절 | CREATE SCHEMA 명령을 사용하여 빈 스키마를 만들 수 있습니다. 추가 명령을 사용하여 스키마 객체를 생성합니다. | 
| Babelfish에서는 데이터베이스 ID 값이 다릅니다.  |  마스터 및 tempdb 데이터베이스는 데이터베이스 ID 1과 2가 아닙니다.  | 
|  FORMAT 날짜 유형 함수는 다음과 같은 제한 사항으로 지원됩니다. | 단일 문자 오전/오후는 지원되지 않습니다. SQL 서버의 ‘yyy’ 형식은 1000 이상의 연도에 대해 4자리를 반환하지만 다른 연도에 대해서는 3자리만 반환합니다. ‘g’ 및 ‘R’ 형식은 지원되지 않습니다. ‘vi-VN’ 로케일은 번역이 약간 다릅니다. | 
| 63자를 초과하는 식별자 | PostgreSQL은 식별자에 대해 최대 63자까지 지원합니다. Babelfish는 63자보다 긴 식별자를 원래 이름의 해시를 포함하는 이름으로 변환합니다. 예를 들어, 'AB(ABC1234567890123456789012345678901234567890123456789012345678901234567890'으로 생성된 테이블이 'ABC123456789012345678901234567890123456789012345678901234567890'으로 변환될 수 있습니다. | 
| IDENTITY 열 지원 | IDENTITY 열은 tinyint, smallint, int, bigint. numeric 및 decimal과 같은 데이터 유형에 대해 지원됩니다.SQL Server는 IDENTITY 열의 `numeric` 및 `decimal` 데이터 유형에 대해 38자리까지의 정밀도를 지원합니다.PostgreSQL은 IDENTITY 열의 `numeric` 및 `decimal` 데이터 유형에 대해 19자리까지의 정밀도를 지원합니다. | 
| IGNORE\$1DUP\$1KEY가 포함된 인덱스 | IGNORE\$1DUP\$1KEY가 포함된 인덱스를 생성하는 구문은 이 속성이 생략된 것처럼 인덱스를 만듭니다. | 
| 32개 이상의 열이 포함된 인덱스 | 인덱스에는 32개 이상의 열이 포함될 수 없습니다. 포함된 인덱스 열은 PostgreSQL의 최대값으로 계산되지만 SQL Server에서는 계산되지 않습니다. | 
| 인덱스(클러스터형) | 클러스터형 인덱스는 NONCLUSTERED가 지정된 것처럼 만들어집니다. | 
| 인덱스 절 | FILLFACTOR, ALLOW\$1PAGE\$1LOCKS, ALLOW\$1ROW\$1LOCKS, PAD\$1INDEX, STATISTICS\$1NORECOMPUTE, OPTIMIZE\$1FOR\$1SEQUENTIAL\$1KEY, SORT\$1IN\$1TEMPDB, DROP\$1EXISTING, ONLINE, COMPRESSION\$1DELAY, MAXDOP, DATA\$1COMPRESSION과 같은 절은 무시됩니다. | 
| JSON 지원 |  이름-값 쌍의 순서는 보장되지 않습니다. 그러나 배열 유형은 영향을 받지 않습니다. | 
| LOGIN 객체 | PASSWORD, DEFAULT\$1DATABASE, DEFAULT\$1LANGUAGE, ENABLE, DISABLE을 제외하고 LOGIN 객체의 모든 옵션이 지원되지 않습니다. | 
| NEWERENTIALID 함수 | NEWID로 구현되고 순차적 동작은 보장되지 않습니다. `NEWSEQUENTIALID`를 호출하는 경우 PostgreSQL은 새 GUID 값을 생성합니다. | 
| OUTPUT 절은 다음 제한 사항을 통해 지원됩니다. | OUTPUT 및 OUTPUT INTO는 동일한 DML 쿼리에서 지원되지 않습니다. OUTPUT 절에서 UPDATE 또는 DELETE 작업의 대상이 아닌 테이블에 대한 참조는 지원되지 않습니다. OUTPUT... DELETED\$1, INSERTED\$1는 동일한 쿼리에서 지원되지 않습니다. | 
| 프로시저 또는 함수 파라미터 제한 | Babelfish는 프로시저 또는 함수에 대해 최대 100개의 파라미터를 지원합니다. | 
| ROWGUIDCOL | 이 절은 현재 무시됩니다. `$GUIDGOL`을 참조하는 쿼리는 구문 오류를 일으킵니다. | 
| SEQUENCE 객체 지원 | SEQUENCE 객체는 tinyint, smallint, int, bigint, numeric 및 decimal과 같은 데이터 형식에 대해 지원됩니다. Aurora PostgreSQL은 SEQUENCE에서 numeric 및 decimal과 같은 데이터 유형에 대해 19자리까지의 정밀도를 지원합니다. | 
| 서버 수준 역할 | `sysadmin` 서버 수준 역할이 지원됩니다. 다른 서버 수준 역할(`sysadmin` 이외)은 지원되지 않습니다. | 
| `db_owner`를 제외한 데이터베이스 수준 역할 | `db_owner` 데이터베이스 수준 역할과 사용자 정의 데이터베이스 수준 역할이 지원됩니다. 다른 데이터베이스 수준 역할(db\$1owner 이외)은 지원되지 않습니다. | 
| SQL 키워드 SPARSE | 키워드 SPARSE는 승인되고 무시됩니다. | 
| SQL 키워드 절 `ON filegroup` | 이 절은 현재 무시됩니다. | 
| 인덱스 및 제약 조건에 대한 SQL 키워드 `CLUSTERED` 및 `NONCLUSTERED` | Babelfish는 `CLUSTERED` 및 `NONCLUSTERED` 키워드를 수락하고 무시합니다. | 
| `sysdatabases.cmptlevel` | `sysdatabases.cmptlevel`은 항상 120으로 설정됩니다. | 
| tempdb는 다시 시작 시 다시 초기화되지 않음 | tempdb에서 생성된 영구 객체(예: 테이블 및 프로시저)는 데이터베이스를 다시 시작할 때 제거되지 않습니다. | 
| TEXTIMAGE\$1ON 파일 그룹 | Babelfish는 `TEXTIMAGE_ON` *`filegroup`* 절을 무시합니다. | 
| 시간 정밀도 | Babelfish는 소수 초에 대해 6자리 정밀도를 지원합니다. 이 동작에는 부작용이 예상되지 않습니다. | 
| 트랜잭션 격리 수준 | READUNCOMMITTED는 READCOMMITTED와 동일하게 취급됩니다. | 
| 가상 계산 열(비영구적) | 가상 계산 열은 영구적으로 생성됩니다. | 
| SCHEMABINDING 절 제외 | 이 절은 함수, 프로시저, 트리거 또는 뷰에는 지원되지 않습니다. WITH SCHEMABINDING이 지정된 것처럼 객체가 생성됩니다. | 

# Babelfish의 트랜잭션 격리 수준
<a name="babelfish-transaction"></a>

Babelfish는 트랜잭션 격리 수준 `READ UNCOMMITTED`, `READ COMMITTED`, `SNAPSHOT`을 지원합니다. Babelfish 3.4 버전부터 추가 격리 수준 `REPEATABLE READ` 및 `SERIALIZABLE`이 지원됩니다. Babelfish의 모든 격리 수준은 PostgreSQL의 해당 격리 수준 동작으로 지원됩니다. SQL Server와 Babelfish는 트랜잭션 격리 수준(동시 액세스 차단, 트랜잭션에 의한 잠금, 오류 처리 등)을 구현하기 위해 서로 다른 기본 메커니즘을 사용합니다. 또한 워크로드에 따라 동시 액세스가 작동하는 방식에도 미묘한 차이가 있습니다. 이 PostgreSQL 동작에 대한 자세한 내용은 [트랜잭션 격리](https://www.postgresql.org/docs/current/transaction-iso.html)를 참조하세요.

**Topics**
+ [트랜잭션 격리 수준 개요](#babelfish-transaction.overview)
+ [트랜잭션 격리 수준 설정](#babelfish-transaction.setting)
+ [트랜잭션 격리 수준 활성화 또는 비활성화](#babelfish-transaction.enabling)
+ [Babelfish 및 SQL Server 격리 수준 비교](babelfish-transaction.examples.md)

## 트랜잭션 격리 수준 개요
<a name="babelfish-transaction.overview"></a>

 원래의 SQL Server 트랜잭션 격리 수준은 데이터 사본이 하나만 존재하고 쿼리가 행과 같은 리소스를 잠가야 액세스할 수 있는 수동적 잠금을 기반으로 합니다. 이후에 `READ COMMITTED` 격리 수준의 변형이 도입되었습니다. 이를 통해 행 버전을 사용하여 비차단 액세스를 사용하는 리더와 라이터 간의 동시성이 높아졌습니다. 이 외에도 `SNAPSHOT`이라는 새로운 격리 수준을 사용할 수 있습니다. 또한 행 버전을 사용하여 트랜잭션이 끝날 때까지 유지되는 읽기 데이터에 대한 공유 잠금을 피함으로써 `REPEATABLE READ` 격리 수준보다 더 나은 동시성을 제공합니다.

SQL Server와 달리 Babelfish의 모든 트랜잭션 격리 수준은 낙관적 잠금(MVCC)을 기반으로 합니다. 각 트랜잭션은 기본 데이터의 현재 상태에 관계없이 문의 시작 부분(`READ COMMITTED`) 또는 트랜잭션 시작 부분(`REPEATABLE READ`, `SERIALIZABLE`)에서 데이터 스냅샷을 확인할 수 있습니다. 따라서 Babelfish의 동시 트랜잭션 실행 동작은 SQL Server와 다를 수 있습니다.

SQL Server에서 처음에는 차단되었다가 나중에 성공하는 격리 수준 `SERIALIZABLE`의 트랜잭션을 예로 들어 보겠습니다. Babelfish에서는 동일한 행을 읽거나 업데이트하는 동시 트랜잭션과의 직렬화 충돌로 인해 실패로 끝날 수 있습니다. 동시 트랜잭션을 여러 개 실행하면 SQL Server와 비교하여 Babelfish의 최종 결과가 달라지는 경우도 생길 수 있습니다. 격리 수준을 사용하는 애플리케이션은 동시성 시나리오를 철저하게 테스트해야 합니다.


| SQL Server 격리 수준 | Babelfish 격리 수준 | PostgreSQL 격리 수준 | 설명 | 
| --- | --- | --- | --- | 
|  `READ UNCOMMITTED`  |  `READ UNCOMMITTED`  |  `READ UNCOMMITTED`  |  `READ UNCOMMITTED`는 Babelfish 또는 PostgreSQL의 `READ COMMITTED`와 동일합니다.  | 
|  `READ COMMITTED`  |  `READ COMMITTED`  |  `READ COMMITTED`  |  SQL Server `READ COMMITTED`는 수동적 잠금 기반이고, Babelfish `READ COMMITTED`는 스냅샷(MVCC) 기반입니다.  | 
|  `READ COMMITTED SNAPSHOT`  |  `READ COMMITTED`  |  `READ COMMITTED`  |  둘 다 스냅샷(MVCC) 기반이지만 완전히 동일하지는 않습니다.  | 
|  `SNAPSHOT`  |  `SNAPSHOT`  |  `REPEATABLE READ`  |  완전히 동일합니다.  | 
|  `REPEATABLE READ`  |  `REPEATABLE READ`  |  `REPEATABLE READ`  |  SQL Server `REPEATABLE READ`는 수동적 잠금 기반이고, Babelfish `REPEATABLE READ`는 스냅샷(MVCC) 기반입니다.  | 
|  `SERIALIZABLE`  |  `SERIALIZABLE`  |  `SERIALIZABLE`  |  SQL Server `SERIALIZABLE`은 수동적 격리이고, Babelfish `SERIALIZABLE`은 스냅샷(MVCC) 기반입니다.  | 

**참고**  
테이블 힌트는 현재 지원되지 않으며 해당 동작은 Babelfish의 사전 정의된 이스케이프 해치 `escape_hatch_table_hints`를 사용하여 제어됩니다.

## 트랜잭션 격리 수준 설정
<a name="babelfish-transaction.setting"></a>

다음 명령을 사용하여 트랜잭션 격리 수준을 설정합니다.

**Example**  

```
SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SNAPSHOT | SERIALIZABLE }
```

## 트랜잭션 격리 수준 활성화 또는 비활성화
<a name="babelfish-transaction.enabling"></a>

Babelfish에서는 트랜잭션 격리 수준 `REPEATABLE READ` 및 `SERIALIZABLE`이 기본적으로 비활성화되어 있으며, `sp_babelfish_configure`를 사용해 `babelfishpg_tsql.isolation_level_serializable` 또는 `babelfishpg_tsql.isolation_level_repeatable_read` 이스케이프 해치를 `pg_isolation`으로 설정하여 명시적으로 활성화해야 합니다. 자세한 내용은 [이스케이프 해치를 사용하여 Babelfish 오류 처리 관리](babelfish-strict.md) 단원을 참조하십시오.

다음은 각각의 이스케이프 해치를 설정하여 현재 세션에서 `REPEATABLE READ` 및 `SERIALIZABLE` 사용을 활성화 또는 비활성화하는 예제입니다. 필요에 따라 현재 세션뿐만 아니라 이후의 모든 새 세션에 대한 이스케이프 해치를 설정하는 `server` 파라미터를 포함하세요.

 현재 세션에서만 `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ`를 사용하도록 설정합니다.

**Example**  

```
EXECUTE sp_babelfish_configure 'isolation_level_repeatable_read', 'pg_isolation'
```

 `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ`를 현재 세션과 이후의 모든 새 세션에서 사용하도록 설정합니다.

**Example**  

```
EXECUTE sp_babelfish_configure 'isolation_level_repeatable_read', 'pg_isolation', 'server'
```

 `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ`를 현재 세션과 이후의 새 세션에서 사용할 수 없도록 합니다.

**Example**  

```
EXECUTE sp_babelfish_configure 'isolation_level_repeatable_read', 'off', 'server'
```

 현재 세션에서만 `SET TRANSACTION ISOLATION LEVEL SERIALIZABLE`를 사용하도록 설정합니다.

**Example**  

```
EXECUTE sp_babelfish_configure 'isolation_level_serializable', 'pg_isolation'
```

 `SET TRANSACTION ISOLATION LEVEL SERIALIZABLE`를 현재 세션과 이후의 모든 새 세션에서 사용하도록 설정합니다.

**Example**  

```
EXECUTE sp_babelfish_configure 'isolation_level_serializable', 'pg_isolation', 'server'
```

 `SET TRANSACTION ISOLATION LEVEL SERIALIZABLE`를 현재 세션과 이후의 새 세션에서 사용할 수 없도록 합니다.

**Example**  

```
EXECUTE sp_babelfish_configure 'isolation_level_serializable', 'off', 'server'
```

# Babelfish 및 SQL Server 격리 수준 비교
<a name="babelfish-transaction.examples"></a>

 다음은 SQL Server와 Babelfish가 ANSI 격리 수준을 구현하는 방식의 미묘한 차이에 대한 몇 가지 예입니다.

**참고**  
`REPEATABLE READ` 및 `SNAPSHOT` 격리 수준은 Babelfish에서 동일합니다.
`READ UNCOMMITTED` 및 `READ COMMITTED` 격리 수준은 Babelfish에서 동일합니다.

다음 예제에서는 아래에 언급된 모든 예제에 대한 기본 테이블을 생성하는 방법을 보여줍니다.

```
CREATE TABLE employee (
    id sys.INT NOT NULL PRIMARY KEY,
    name sys.VARCHAR(255)NOT NULL,
    age sys.INT NOT NULL
);
INSERT INTO employee (id, name, age) VALUES (1, 'A', 10);
INSERT INTO employee (id, name, age) VALUES (2, 'B', 20);
INSERT INTO employee (id, name, age) VALUES (3, 'C', 30);
```

**Topics**
+ [SQL Server `READ UNCOMMITTED` 격리 수준과 비교한 Babelfish `READ UNCOMMITTED`](#babelfish-transaction.examples.unc)
+ [SQL Server `READ COMMITTED` 격리 수준과 비교한 Babelfish `READ COMMITTED`](#babelfish-transaction.examples.com)
+ [SQL Server `READ COMMITTED SNAPSHOT` 격리 수준과 비교한 Babelfish `READ COMMITTED`](#babelfish-transaction.examples.snapshot)
+ [SQL Server `REPEATABLE READ` 격리 수준과 비교한 Babelfish `REPEATABLE READ`](#babelfish-transaction.examples.read)
+ [SQL Server `SERIALIZABLE` 격리 수준과 비교한 Babelfish `SERIALIZABLE`](#babelfish-transaction.examples.serialize)

## SQL Server `READ UNCOMMITTED` 격리 수준과 비교한 Babelfish `READ UNCOMMITTED`
<a name="babelfish-transaction.examples.unc"></a>

다음 표는 동시 트랜잭션이 실행될 때 더티 읽기에 대한 세부 정보를 제공합니다. 이는 Babelfish 구현과 비교하여 SQL Server에서 `READ UNCOMMITTED` 격리 수준을 사용할 때 관찰된 결과를 보여줍니다.


| 트랜잭션 1 | 트랜잭션 2 | SQL Server `READ UNCOMMITTED` | Babelfish `READ UNCOMMITTED` | 
| --- | --- | --- | --- | 
|  `BEGIN TRANSACTION`  |  `BEGIN TRANSACTION`  |  없음  |  없음  | 
|  `SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;`  |  `SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;`  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `UPDATE employee SET age=0;`  |  업데이트 성공  |  업데이트 성공  | 
|  트랜잭션의 유휴 상태  |  `INSERT INTO employee VALUES (4, 'D', 40);`  |  삽입 성공  |  삽입 성공  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  트랜잭션 1은 트랜잭션 2에서 커밋되지 않은 변경 사항을 확인할 수 있습니다.  |  Babelfish의 `READ COMMITTED`와 동일합니다. 트랜잭션 2의 커밋되지 않은 변경 사항은 트랜잭션 1에 표시되지 않습니다.  | 
|  트랜잭션의 유휴 상태  |  `COMMIT`  |  없음  |  없음  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  트랜잭션 2에서 커밋된 변경 사항을 확인합니다.  |  트랜잭션 2에서 커밋된 변경 사항을 확인합니다.  | 

## SQL Server `READ COMMITTED` 격리 수준과 비교한 Babelfish `READ COMMITTED`
<a name="babelfish-transaction.examples.com"></a>

다음 표에서는 동시 트랜잭션이 실행될 때 읽기-쓰기 차단 동작에 대한 세부 정보를 제공합니다. 이는 Babelfish 구현과 비교하여 SQL Server에서 `READ COMMITTED` 격리 수준을 사용할 때 관찰된 결과를 보여줍니다.


| 트랜잭션 1 | 트랜잭션 2 | SQL Server `READ COMMITTED` | Babelfish `READ COMMITTED` | 
| --- | --- | --- | --- | 
|  `BEGIN TRANSACTION`  |  `BEGIN TRANSACTION`  |  없음  |  없음  | 
|  `SET TRANSACTION ISOLATION LEVEL READ COMMITTED;`  |  `SET TRANSACTION ISOLATION LEVEL READ COMMITTED;`  |  없음  |  없음  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `UPDATE employee SET age=100 WHERE id = 1;`  |  업데이트 성공  |  업데이트 성공  | 
|  `UPDATE employee SET age = 0 WHERE age IN (SELECT MAX(age) FROM employee);`  |  트랜잭션의 유휴 상태  |  트랜잭션 2가 커밋될 때까지 단계가 차단됩니다.  |  트랜잭션 2 변경 사항은 아직 표시되지 않습니다. id = 3인 행을 업데이트합니다.  | 
|  트랜잭션의 유휴 상태  |  `COMMIT`  |  트랜잭션 2가 성공적으로 커밋됩니다. 이제 트랜잭션 1의 차단이 해제되고 트랜잭션 2의 업데이트를 확인할 수 있습니다.  |  트랜잭션 2가 성공적으로 커밋됩니다.  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  트랜잭션 1이 id = 1인 행을 업데이트합니다.  |  트랜잭션 1이 id = 3인 행을 업데이트합니다.  | 

## SQL Server `READ COMMITTED SNAPSHOT` 격리 수준과 비교한 Babelfish `READ COMMITTED`
<a name="babelfish-transaction.examples.snapshot"></a>

다음 표에서는 동시 트랜잭션이 실행될 때 새로 삽입된 행의 차단 동작에 대한 세부 정보를 제공합니다. 이는 `READ COMMITTED` Babelfish 구현과 비교하여 SQL Server에서 `READ COMMITTED SNAPSHOT` 격리 수준을 사용할 때 관찰된 결과를 보여줍니다.


| 트랜잭션 1 | 트랜잭션 2 | SQL Server `READ COMMITTED SNAPSHOT` | Babelfish `READ COMMITTED` | 
| --- | --- | --- | --- | 
|  `BEGIN TRANSACTION`  |  `BEGIN TRANSACTION`  |  없음  |  없음  | 
|  `SET TRANSACTION ISOLATION LEVEL READ COMMITTED;`  |  `SET TRANSACTION ISOLATION LEVEL READ COMMITTED;`  |  없음  |  없음  | 
|  `INSERT INTO employee VALUES (4, 'D', 40);`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `UPDATE employee SET age = 99;`  |  트랜잭션 1가 커밋될 때까지 단계가 차단됩니다. 삽입된 행은 트랜잭션 1에 의해 잠깁니다.  |  3개 행이 업데이트됩니다. 새로 삽입된 행은 아직 표시되지 않습니다.  | 
|  `COMMIT`  |  트랜잭션의 유휴 상태  |  커밋 성공. 이제 트랜잭션 2가 차단 해제됩니다.  |  커밋 성공.  | 
|  트랜잭션의 유휴 상태  |  `SELECT * FROM employee;`  |  4개 행 모두 age=99가 됩니다.  |  id = 4인 행은 업데이트 쿼리 중에 트랜잭션 2에 표시되지 않았으므로 age 값이 40입니다. 다른 행은 age=99로 업데이트됩니다.  | 

## SQL Server `REPEATABLE READ` 격리 수준과 비교한 Babelfish `REPEATABLE READ`
<a name="babelfish-transaction.examples.read"></a>

다음 표에서는 동시 트랜잭션이 실행될 때 읽기-쓰기 차단 동작에 대한 세부 정보를 제공합니다. 이는 `REPEATABLE READ` Babelfish 구현과 비교하여 SQL Server에서 `REPEATABLE READ` 격리 수준을 사용할 때 관찰된 결과를 보여줍니다.


| 트랜잭션 1 | 트랜잭션 2 | SQL Server `REPEATABLE READ` | Babelfish `REPEATABLE READ` | 
| --- | --- | --- | --- | 
|  `BEGIN TRANSACTION`  |  `BEGIN TRANSACTION`  |  없음  |  없음  | 
|  `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;`  |  `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;`  |  없음  |  없음  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  `UPDATE employee SET name='A_TXN1' WHERE id=1;`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `SELECT * FROM employee WHERE id != 1;`  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `SELECT * FROM employee;`  |  트랜잭션 2는 트랜잭션 1이 커밋될 때까지 차단됩니다.  |  트랜잭션 2는 정상적으로 진행됩니다.  | 
|  `COMMIT`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `SELECT * FROM employee;`  |  트랜잭션 1의 업데이트가 표시됩니다.  |  트랜잭션 1의 업데이트가 표시되지 않습니다.  | 
|  `COMMIT`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `SELECT * FROM employee;`  |  트랜잭션 1의 업데이트를 확인합니다.  |  트랜잭션 1의 업데이트를 확인합니다.  | 

다음 표에서는 동시 트랜잭션이 실행될 때 쓰기-쓰기 차단 동작에 대한 세부 정보를 제공합니다. 이는 `REPEATABLE READ` Babelfish 구현과 비교하여 SQL Server에서 `REPEATABLE READ` 격리 수준을 사용할 때 관찰된 결과를 보여줍니다.


| 트랜잭션 1 | 트랜잭션 2 | SQL Server `REPEATABLE READ` | Babelfish `REPEATABLE READ` | 
| --- | --- | --- | --- | 
|  `BEGIN TRANSACTION`  |  `BEGIN TRANSACTION`  |  없음  |  없음  | 
|  `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;`  |  `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;`  |  없음  |  없음  | 
|  `UPDATE employee SET name='A_TXN1' WHERE id=1;`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `UPDATE employee SET name='A_TXN2' WHERE id=1;`  |  트랜잭션 2가 차단됩니다.  |  트랜잭션 2가 차단됩니다.  | 
|  `COMMIT`  |  트랜잭션의 유휴 상태  |  커밋이 완료되고 트랜잭션 2가 차단 해제되었습니다.  |  동시 업데이트로 인해 액세스를 직렬화할 수 없다는 오류와 함께 커밋이 완료되고 트랜잭션 2가 실패합니다.  | 
|  트랜잭션의 유휴 상태  |  `COMMIT`  |  커밋 성공.  |  트랜잭션 2는 이미 중단된 상태입니다.  | 
|  트랜잭션의 유휴 상태  |  `SELECT * FROM employee;`  |  id=1인 행에서 name='A\$1TX2'입니다.  |  id=1인 행에서 name='A\$1TX1'입니다.  | 

다음 표에서는 동시 트랜잭션이 실행될 때 가상 읽기 동작에 대한 세부 정보를 제공합니다. 이는 `REPEATABLE READ` Babelfish 구현과 비교하여 SQL Server에서 `REPEATABLE READ` 격리 수준을 사용할 때 관찰된 결과를 보여줍니다.


| 트랜잭션 1 | 트랜잭션 2 | SQL Server `REPEATABLE READ` | Babelfish `REPEATABLE READ` | 
| --- | --- | --- | --- | 
|  `BEGIN TRANSACTION`  |  `BEGIN TRANSACTION`  |  없음  |  없음  | 
|  `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;`  |  `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;`  |  없음  |  없음  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `INSERT INTO employee VALUES (4, 'NewRowName', 20);`  |  트랜잭션 2는 차단 없이 진행됩니다.  |  트랜잭션 2는 차단 없이 진행됩니다.  | 
|  트랜잭션의 유휴 상태  |  `SELECT * FROM employee;`  |  새로 삽입한 행이 표시됩니다.  |  새로 삽입한 행이 표시됩니다.  | 
|  트랜잭션의 유휴 상태  |  `COMMIT`  |  없음  |  없음  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  트랜잭션 2에서 삽입한 새 행이 표시됩니다.  |  트랜잭션 2에서 삽입한 새 행이 표시되지 않습니다.  | 
|  `COMMIT`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  새로 삽입한 행이 표시됩니다.  |  새로 삽입한 행이 표시됩니다.  | 

다음 표는 동시 트랜잭션이 실행되는 시기 및 `REPEATABLE READ` Babelfish 구현과 비교하여 SQL Server에서 `REPEATABLE READ` 격리 수준을 사용할 때의 다양한 최종 결과를 제공합니다.


| 트랜잭션 1 | 트랜잭션 2 | SQL Server `REPEATABLE READ` | Babelfish `REPEATABLE READ` | 
| --- | --- | --- | --- | 
|  `BEGIN TRANSACTION`  |  `BEGIN TRANSACTION`  |  없음  |  없음  | 
|  `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;`  |  `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;`  |  없음  |  없음  | 
|  `UPDATE employee SET age = 100 WHERE age IN (SELECT MIN(age) FROM employee);`  |  트랜잭션의 유휴 상태  |  트랜잭션 1이 id = 1인 행을 업데이트합니다.  |  트랜잭션 1이 id = 1인 행을 업데이트합니다.  | 
|  트랜잭션의 유휴 상태  |  `UPDATE employee SET age = 0 WHERE age IN (SELECT MAX(age) FROM employee);`  |  SELECT 문이 트랜잭션 1의 UPDATE 쿼리로 잠긴 행을 읽으려고 하기 때문에 트랜잭션 2가 차단됩니다.  |  트랜잭션 2는 읽기가 차단되지 않으므로 차단 없이 진행됩니다. SELECT 문이 실행되고 마지막으로 트랜잭션 1의 변경 내용이 아직 표시되지 않으므로 id = 3인 행이 업데이트됩니다.  | 
|  트랜잭션의 유휴 상태  |  `SELECT * FROM employee;`  |  이 단계는 트랜잭션 1이 커밋된 후에 실행됩니다. id = 1인 행은 이전 단계의 트랜잭션 2에 의해 업데이트되며 여기에 표시됩니다.  |  트랜잭션 2가 id = 3인 행을 업데이트합니다.  | 
|  `COMMIT`  |  트랜잭션의 유휴 상태  |  이제 트랜잭션 2가 차단 해제됩니다.  |  커밋 성공.  | 
|  트랜잭션의 유휴 상태  |  `COMMIT`  |  없음  |  없음  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  두 트랜잭션 모두 id = 1인 행에서 업데이트를 실행합니다.  |  트랜잭션 1과 2가 서로 다른 행을 업데이트합니다.  | 

## SQL Server `SERIALIZABLE` 격리 수준과 비교한 Babelfish `SERIALIZABLE`
<a name="babelfish-transaction.examples.serialize"></a>

다음 표에서는 동시 트랜잭션이 실행될 때 범위 잠금에 대한 세부 정보를 제공합니다. 이는 `SERIALIZABLE` Babelfish 구현과 비교하여 SQL Server에서 `SERIALIZABLE` 격리 수준을 사용할 때 관찰된 결과를 보여줍니다.


| 트랜잭션 1 | 트랜잭션 2 | SQL Server `SERIALIZABLE` | Babelfish `SERIALIZABLE` | 
| --- | --- | --- | --- | 
|  `BEGIN TRANSACTION`  |  `BEGIN TRANSACTION`  |  없음  |  없음  | 
|  `SET TRANSACTION ISOLATION LEVEL SERILAIZABLE;`  |  `SET TRANSACTION ISOLATION LEVEL SERILAIZABLE;`  |  없음  |  없음  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `INSERT INTO employee VALUES (4, 'D', 35);`  |  트랜잭션 2는 트랜잭션 1이 커밋될 때까지 차단됩니다.  |  트랜잭션 2는 차단 없이 진행됩니다.  | 
|  트랜잭션의 유휴 상태  |  `SELECT * FROM employee;`  |  없음  |  없음  | 
|  `COMMIT`  |  트랜잭션의 유휴 상태  |  트랜잭션 1이 성공적으로 커밋됩니다. 이제 트랜잭션 2가 차단 해제됩니다.  |  트랜잭션 1이 성공적으로 커밋됩니다.  | 
|  트랜잭션의 유휴 상태  |  `COMMIT`  |  없음  |  없음  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  새로 삽입한 행이 표시됩니다.  |  새로 삽입한 행이 표시됩니다.  | 

다음 표는 동시 트랜잭션이 실행되는 시기 및 `SERIALIZABLE` Babelfish 구현과 비교하여 SQL Server에서 `SERIALIZABLE` 격리 수준을 사용할 때의 다양한 최종 결과를 제공합니다.


| 트랜잭션 1 | 트랜잭션 2 | SQL Server `SERIALIZABLE` | Babelfish `SERIALIZABLE` | 
| --- | --- | --- | --- | 
|  `BEGIN TRANSACTION`  |  `BEGIN TRANSACTION`  |  없음  |  없음  | 
|  `SET TRANSACTION ISOLATION LEVEL SERILAIZABLE;`  |  `SET TRANSACTION ISOLATION LEVEL SERILAIZABLE;`  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `INSERT INTO employee VALUES (4, 'D', 40);`  |  없음  |  없음  | 
|  `UPDATE employee SET age =99 WHERE id = 4;`  |  트랜잭션의 유휴 상태  |  트랜잭션 1은 트랜잭션 2가 커밋될 때까지 차단됩니다.  |  트랜잭션 1은 차단 없이 진행됩니다.  | 
|  트랜잭션의 유휴 상태  |  `COMMIT`  |  트랜잭션 2가 성공적으로 커밋됩니다. 이제 트랜잭션 1이 차단 해제됩니다.  |  트랜잭션 2가 성공적으로 커밋됩니다.  | 
|  `COMMIT`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  새로 삽입된 행의 age 값이 99로 표시됩니다.  |  새로 삽입된 행의 age 값이 40으로 표시됩니다.  | 

다음 표는 고유한 제약 조건이 있는 테이블에 `INSERT`하는 경우의 세부 정보를 제공합니다. 이는 `SERIALIZABLE` Babelfish 구현과 비교하여 SQL Server에서 `SERIALIZABLE` 격리 수준을 사용할 때 관찰된 결과를 보여줍니다.


| 트랜잭션 1 | 트랜잭션 2 | SQL Server `SERIALIZABLE` | Babelfish `SERIALIZABLE` | 
| --- | --- | --- | --- | 
|  `BEGIN TRANSACTION`  |  `BEGIN TRANSACTION`  |  없음  |  없음  | 
|  `SET TRANSACTION ISOLATION LEVEL SERILAIZABLE;`  |  `SET TRANSACTION ISOLATION LEVEL SERILAIZABLE;`  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `INSERT INTO employee VALUES (4, 'D', 40);`  |  없음  |  없음  | 
|  `INSERT INTO employee VALUES ((SELECT MAX(id)+1 FROM employee), 'E', 50);`  |  트랜잭션의 유휴 상태  |  트랜잭션 1은 트랜잭션 2가 커밋될 때까지 차단됩니다.  |  트랜잭션 1은 트랜잭션 2가 커밋될 때까지 차단됩니다.  | 
|  트랜잭션의 유휴 상태  |  `COMMIT`  |  트랜잭션 2가 성공적으로 커밋됩니다. 이제 트랜잭션 1이 차단 해제됩니다.  |  트랜잭션 2가 성공적으로 커밋됩니다. 키 값 중복 오류로 인해 트랜잭션 1이 중단되었으며 고유한 제약 조건을 위반했습니다.  | 
|  `COMMIT`  |  트랜잭션의 유휴 상태  |  트랜잭션 1이 성공적으로 커밋됩니다.  |  트랜잭션 간의 읽기 또는 쓰기 종속성으로 인해 액세스를 직렬화할 수 없어 트랜잭션 1 커밋이 실패합니다.  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  행 (5, 'E', 50)이 삽입됩니다.  |  4개의 행만 존재합니다.  | 

Babelfish에서 직렬화 가능(serializable) 격리 수준으로 실행되는 동시 트랜잭션은 이러한 트랜잭션의 실행이 해당 트랜잭션의 가능한 모든 직렬(한 번에 하나씩) 실행과 일치하지 않으면 직렬화 이상 오류가 발생하여 실패합니다.

다음 표에서는 동시 트랜잭션이 실행될 때 직렬화 이상에 대한 세부 정보를 제공합니다. 이는 `SERIALIZABLE` Babelfish 구현과 비교하여 SQL Server에서 `SERIALIZABLE` 격리 수준을 사용할 때 관찰된 결과를 보여줍니다.


| 트랜잭션 1 | 트랜잭션 2 | SQL Server `SERIALIZABLE` | Babelfish `SERIALIZABLE` | 
| --- | --- | --- | --- | 
|  `BEGIN TRANSACTION`  |  `BEGIN TRANSACTION`  |  없음  |  없음  | 
|  `SET TRANSACTION ISOLATION LEVEL SERILAIZABLE;`  |  `SET TRANSACTION ISOLATION LEVEL SERILAIZABLE;`  |  없음  |  없음  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  `UPDATE employee SET age=5 WHERE age=10;`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `SELECT * FROM employee;`  |  트랜잭션 2는 트랜잭션 1이 커밋될 때까지 차단됩니다.  |  트랜잭션 2는 차단 없이 진행됩니다.  | 
|  트랜잭션의 유휴 상태  |  `UPDATE employee SET age=35 WHERE age=30;`  |  없음  |  없음  | 
|  `COMMIT`  |  트랜잭션의 유휴 상태  |  트랜잭션 1이 성공적으로 커밋됩니다.  |  트랜잭션 1이 먼저 커밋되고 커밋을 완료할 수 있습니다.  | 
|  트랜잭션의 유휴 상태  |  `COMMIT`  |  트랜잭션 2가 성공적으로 커밋됩니다.  |  직렬화 오류로 인해 트랜잭션 2 커밋이 실패하고 전체 트랜잭션이 롤백되었습니다. 트랜잭션 2를 재시도합니다.  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  두 트랜잭션의 변경 사항이 모두 표시됩니다.  |  트랜잭션 2가 롤백되었습니다. 트랜잭션 1의 변경 사항만 표시됩니다.  | 

Babelfish에서는 모든 동시 트랜잭션이 `SERIALIZABLE` 격리 수준에서 실행되는 경우에만 직렬화 이상이 발생할 수 있습니다. 다음 표에서는 위 예제를 사용하되 트랜잭션 2를 `REPEATABLE READ` 격리 수준으로 설정해 보겠습니다.


| 트랜잭션 1 | 트랜잭션 2 | SQL Server 격리 수준 | Babelfish 격리 수준 | 
| --- | --- | --- | --- | 
|  `BEGIN TRANSACTION`  |  `BEGIN TRANSACTION`  |  없음  |  없음  | 
|  `SET TRANSACTION ISOLATION LEVEL SERILAIZABLE;`  |  `SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;`  |  없음  |  없음  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  `UPDATE employee SET age=5 WHERE age=10;`  |  트랜잭션의 유휴 상태  |  없음  |  없음  | 
|  트랜잭션의 유휴 상태  |  `SELECT * FROM employee;`  |  트랜잭션 2는 트랜잭션 1이 커밋될 때까지 차단됩니다.  |  트랜잭션 2는 차단 없이 진행됩니다.  | 
|  트랜잭션의 유휴 상태  |  `UPDATE employee SET age=35 WHERE age=30;`  |  없음  |  없음  | 
|  `COMMIT`  |  트랜잭션의 유휴 상태  |  트랜잭션 1이 성공적으로 커밋됩니다.  |  트랜잭션 1이 성공적으로 커밋됩니다.  | 
|  트랜잭션의 유휴 상태  |  `COMMIT`  |  트랜잭션 2가 성공적으로 커밋됩니다.  |  트랜잭션 2가 성공적으로 커밋됩니다.  | 
|  `SELECT * FROM employee;`  |  트랜잭션의 유휴 상태  |  두 트랜잭션의 변경 사항이 모두 표시됩니다.  |  두 트랜잭션의 변경 사항이 모두 표시됩니다.  | 

# 구현이 제한된 Babelfish 기능 사용
<a name="babelfish-compatibility.tsql.limited-implementation"></a>

Babelfish의 새로운 버전이 나올 때마다 T-SQL 기능 및 동작에 잘 맞는 여러 기능이 추가로 지원되고 있습니다. 하지만 현재 구현에는 지원되지 않는 기능 및 차이점이 몇 가지 있습니다. Babelfish와 T-SQL의 기능적 차이에 대한 정보와 일부 해결 방법 또는 사용법 관련 참고 사항을 아래에서 확인할 수 있습니다.

Babelfish 버전 1.2.0의 경우 다음 기능이 현재 제한적으로 구현되어 있습니다.
+ **SQL Server 카탈로그(시스템 뷰)** - 카탈로그 `sys.sysconfigures`,`sys.syscurconfigs` 및 `sys.configurations`에서 단일 읽기 전용 구성만 지원합니다. `sp_configure`는 현재 지원되지 않습니다. Babelfish에서 구현되는 다른 SQL Server 뷰에 대한 자세한 내용은 [Babelfish 시스템 카탈로그에서 정보 얻기](babelfish-query-database.md) 섹션을 참조하세요.
+ **GRANT 권한** - GRANT...TO PUBLIC은 지원되지만 GRANT..TO PUBLIC WITH GRANT OPTION은 현재 지원되지 않습니다.
+ **SQL Server *소유권 체인* 및 권한 메커니즘 제한** - Babelfish에서 SQL Server 소유권 체인은 뷰에 대해 작동하지만 저장 프로시저에 대해서는 작동하지 않습니다. 즉, 프로시저에는 호출 프로시저와 동일한 소유자가 소유한 다른 객체에 대한 명시적 액세스 권한이 부여되어야 합니다. SQL Server에서 호출자에게 프로시저에 대한 EXECUTE 권한을 부여하면 동일한 소유자가 소유한 다른 객체를 호출할 수 있습니다. Babelfish에서는 호출자에게 프로시저에서 액세스하는 객체에 대한 권한을 부여해야 합니다.
+ **정규화되지 않은(스키마 이름 없음) 객체 참조 확인** - SQL 객체(프로시저, 뷰, 함수 또는 트리거)가 스키마 이름으로 한정하지 않고 객체를 참조하는 경우 SQL Server는 참조가 발생하는 SQL 객체의 스키마 이름을 사용하여 객체의 스키마 이름을 확인합니다. 현재 Babelfish는 프로시저를 실행하는 데이터베이스 사용자의 기본 스키마를 사용하여 이를 다르게 해결합니다.
+ **기본 스키마 변경, 세션 및 연결** - 사용자가 `ALTER USER...WITH DEFAULT SCHEMA`를 사용하여 기본 스키마를 변경하면 변경 사항이 해당 세션에서 즉시 적용됩니다. 그러나 동일한 사용자에게 속한 현재 연결된 다른 세션의 경우 타이밍이 다음과 같이 다릅니다.
  + SQL Server의 경우: 변경 사항이 이 사용자의 다른 모든 연결에 즉시 적용됩니다.
  + Babelfish의 경우: 변경 사항이 이 사용자의 새 연결에만 적용됩니다.
+ **ROWVERSION 및 TIMESTAMP 데이터 유형 구현 및 이스케이프 해치 설정** - 이제 Babelfish에서 ROWVERSION 및 TIMESTAMP 데이터 유형이 지원됩니다. Babelfish에서 ROWVERSION 또는 TIMESTAMP를 사용하려면 이스케이프 해치 `babelfishpg_tsql.escape_hatch_rowversion`의 설정을 기본값(strict)에서 `ignore`로 변경해야 합니다. ROWVERSION 및 TIMESTAMP 데이터 유형의 Babelfish 구현은 대부분 SQL Server와 의미상 동일하지만 다음과 같은 예외가 있습니다.
  + 기본 제공 @@DBTS 함수는 SQL Server와 유사하게 동작하지만, 약간의 차이가 있습니다. Babelfish는 마지막으로 사용한 `SELECT @@DBTS` 값을 반환하는 대신 기본 PostgreSQL 데이터베이스 엔진과 다중 버전 동시성 제어(MVCC) 구현으로 인해 새로운 타임스탬프를 생성합니다.
  + SQL Server에서는 삽입되거나 업데이트된 모든 행이 고유한 ROWVERSION/TIMESTAMP 값을 갖습니다. Babelfish에서는 동일한 명령문에 의해 업데이트된 모든 삽입된 행에 동일한 ROWVERSION/TIMESTAMP 값이 할당됩니다.

    예를 들어 UPDATE 문 또는 INSERT-SELECT 문이 여러 행에 영향을 미치는 경우 SQL Server에서는 영향을 받는 행이 모두 ROWVERSION/TIMESTAMP 열에 서로 다른 값을 갖습니다. Babelfish(PostgreSQL)에서는 그러한 행이 동일한 값을 갖습니다.
  + SQL Server에서는 SELECT-INTO를 사용하여 새 테이블을 만들 때 생성되는 ROWVERSION/TIMESTAMP 열에 명시적 값(예: NULL)을 캐스팅할 수 있습니다. Babelfish에서는 동일한 작업을 수행하면 Babelfish에 의해 새 테이블의 각 행에 실제 ROWVERSION/TIMESTAMP 값이 할당됩니다.

  ROWVERSION/TIMESTAMP 데이터 유형의 이러한 사소한 차이점은 Babelfish에서 실행되는 애플리케이션에 부정적인 영향을 미치지 않습니다.
+ **TOP N PERCENT 절** - Babelfish는 TOP N PERCENT 절을 지원하지만 몇 가지 제한 사항이 있습니다. TOP N PERCENT를 사용하여 SELECT 작업은 지원되지만 UPDATE, DELETE 및 INSERT 작업은 지원되지 않습니다. TOP 절 내의 WITH TIES 옵션 및 하위 쿼리도 지원되지 않습니다. 표현식 값이 100을 초과하면 동작이 달라집니다.
  + SQL Server의 경우 - 오류가 발생합니다.
  + Babelfish의 경우 - 값을 유효한 것으로 취급하고 결과를 반환합니다.
+ **스키마 생성, 소유권 및 권한** - 비DBO 사용자가 소유하는 스키마에서 객체를 생성 및 액세스할 수 있는 권한(`CREATE SCHEMA schema name AUTHORIZATION user name` 사용)은 다음 표와 같이 SQL Server와 Babelfish 비DBO 사용자 간에 다릅니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/babelfish-compatibility.tsql.limited-implementation.html)
+ **CREATE OR ALTER VIEW / ALTER VIEW 구문** - Babelfish에서 이러한 구문에 대한 지원에는 다음과 같은 제한 사항이 있습니다.
  + 이러한 문은 INSTEAD-OF 트리거가 연결된 뷰에서 사용할 수 없습니다.
  + 이러한 문은 이 뷰를 기반으로 다른 뷰가 있는 뷰에는 사용할 수 없습니다.

# Babelfish 쿼리 성능 개선
<a name="babelfish-query-performance"></a>

 쿼리 힌트와 PostgreSQL 최적화 프로그램을 사용하여 Babelfish에서 빠르게 쿼리를 처리할 수 있습니다.

**Topics**
+ [설명 계획을 사용하여 Babelfish 쿼리 성능 향상](working-with-babelfish-usage-notes-features.using.explain.md)
+ [T-SQL 쿼리 힌트를 사용하여 Babelfish 쿼리 성능 향상](babelfish-tsql-hints.md)

`sp_babelfish_volatility` 프로시저를 사용하여 쿼리 성능을 개선할 수도 있습니다. 자세한 내용은 [sp\$1babelfish\$1volatility](sp_babelfish_volatility.md) 섹션을 참조하세요.

하위 쿼리 변환 및 하위 쿼리 캐시를 사용하여 쿼리 성능을 개선할 수도 있습니다. 자세한 내용은 [Aurora PostgreSQL에서 상관관계가 있는 하위 쿼리 최적화](apg-correlated-subquery.md) 섹션을 참조하세요.

# 설명 계획을 사용하여 Babelfish 쿼리 성능 향상
<a name="working-with-babelfish-usage-notes-features.using.explain"></a>

버전 2.1.0부터 Babelfish에는 PostgreSQL 옵티마이저를 투명하게 사용하여 TDS 포트에서 T-SQL 쿼리에 대한 예상 및 실제 쿼리 계획을 생성하는 두 함수가 포함됩니다. 이러한 함수는 SQL Server 데이터베이스에서 SET STATISTICS PROFILE 또는 SET SHOWPLAN\$1ALL을 사용하여 실행 속도가 느린 쿼리를 식별하고 개선하는 것과 유사합니다.

**참고**  
함수, 제어 흐름 및 커서에서 쿼리 계획을 가져오는 작업은 현재 지원되지 않습니다.

이 테이블에서는 SQL Server, Babelfish, PostgreSQL의 쿼리 계획 설명 함수 비교 정보를 확인할 수 있습니다.


|  SQL Server  | Babelfish  | PostgreSQL  | 
| --- | --- | --- | 
| SHOWPLAN\$1ALL  | BABELFISH\$1SHOWPLAN\$1ALL  | EXPLAIN  | 
| STATISTICS PROFILE  | BABELFISH\$1STATISTICS PROFILE  | EXPLAIN ANALYZE  | 
| SQL Server 옵티마이저 사용  | PostgreSQL 옵티마이저 사용  | PostgreSQL 옵티마이저 사용  | 
| SQL Server 입력 및 출력 형식  | SQL Server 입력 및 PostgreSQL 출력 형식  | PostgreSQL 입력 및 출력 형식  | 
| 세션에 대해 설정  | 세션에 대해 설정  | 특정 문에 적용  | 
| 다음을 지원합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/working-with-babelfish-usage-notes-features.using.explain.html)  | 다음을 지원합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/working-with-babelfish-usage-notes-features.using.explain.html)  | 다음을 지원합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/working-with-babelfish-usage-notes-features.using.explain.html)  | 

다음과 같이 Babelfish 함수를 사용합니다.
+ SET BABELFISH\$1SHOWPLAN\$1ALL[ON\$1OFF] – 예상 쿼리 실행 계획을 생성하려면 ON으로 설정합니다. 이 함수는 PostgreSQL `EXPLAIN` 명령의 동작을 구현합니다. 이 명령을 사용하여 지정된 쿼리에 대한 설명 계획을 가져옵니다.
+ SET BABELFISH\$1STATISTICS PROFILE[ON\$1OFF] – 실제 쿼리 실행 계획에 대해 ON으로 설정합니다. 이 함수는 PostgreSQL `EXPLAIN ANALYZE` 명령의 동작을 구현합니다.

PostgreSQL `EXPLAIN` 및 `EXPLAIN ANALYZE`에 대한 자세한 내용은 PostgreSQL 설명서의 [EXPLAIN](https://www.postgresql.org/docs/current/sql-explain.html)을 참조하세요.

**참고**  
버전 2.2.0부터 `SHOWPLAN_ALL` 및 `STATISTICS PROFILE` SET 명령에 대한 SQL Server 구문에서 BABELFISH\$1** 접두사를 사용하지 않도록 `escape_hatch_showplan_all` 파라미터를 무시**하도록 설정할 수 있습니다.

예를 들어, 다음 명령 시퀀스는 쿼리 계획을 설정한 다음 쿼리를 실행하지 않고 SELECT 문에 대한 예상 쿼리 실행 계획을 반환합니다. 이 예에서는 `sqlcmd` 명령줄 도구를 통해 SQL Server 샘플 `northwind` 데이터베이스를 사용하여 TDS 포트를 쿼리합니다.

```
1> SET BABELFISH_SHOWPLAN_ALL ON
2> GO
1> SELECT t.territoryid, e.employeeid FROM
2> dbo.employeeterritories e, dbo.territories t
3> WHERE e.territoryid=e.territoryid ORDER BY t.territoryid;
4> GO

QUERY PLAN                                                                                                                                                                                                                                      
------------------------------------------------------------------------------------                                                                                                              
Query Text: SELECT t.territoryid, e.employeeid FROM
dbo.employeeterritories e, dbo.territories t
WHERE e.territoryid=e.territoryid ORDER BY t.territoryid
Sort  (cost=6231.74..6399.22 rows=66992 width=10)
  Sort Key: t.territoryid NULLS FIRST
  ->  Nested Loop  (cost=0.00..861.76 rows=66992 width=10)  
        ->  Seq Scan on employeeterritories e  (cost=0.00..22.70 rows=1264 width=4)
              Filter: ((territoryid)::"varchar" IS NOT NULL)
        ->  Materialize  (cost=0.00..1.79 rows=53 width=6)
              ->  Seq Scan on territories t  (cost=0.00..1.53 rows=53 width=6)
```

쿼리 검토 및 조정을 마치면 다음과 같이 함수를 해제합니다.

```
1> SET BABELFISH_SHOWPLAN_ALL OFF
```

BABELFISH\$1STATISTICS PROFILE을 ON으로 설정하면 실행된 각 쿼리는 일반 결과 세트를 반환한 후 실제 쿼리 실행 계획을 보여주는 추가 결과 세트를 반환합니다. Babelfish는 SELECT 문을 호출할 때 가장 빠른 결과 세트를 제공하는 쿼리 계획을 생성합니다.

```
1> SET BABELFISH_STATISTICS PROFILE ON
1>
2> GO
1> SELECT e.employeeid, t.territoryid FROM
2> dbo.employeeterritories e, dbo.territories t
3> WHERE t.territoryid=e.territoryid ORDER BY t.territoryid;
4> GO
```

결과 세트와 쿼리 계획이 반환되며, 이 예에는 쿼리 계획만 표시되어 있습니다.

```
QUERY PLAN                                                                                                                                                                                                                                
---------------------------------------------------------------------------
Query Text: SELECT e.employeeid, t.territoryid FROM
dbo.employeeterritories e, dbo.territories t
WHERE t.territoryid=e.territoryid ORDER BY t.territoryid
Sort  (cost=42.44..43.28 rows=337 width=10)
  Sort Key: t.territoryid NULLS FIRST                                                                                                                                               
  ->  Hash Join  (cost=2.19..28.29 rows=337 width=10)
       Hash Cond: ((e.territoryid)::"varchar" = (t.territoryid)::"varchar")
        ->  Seq Scan on employeeterritories e  (cost=0.00..22.70 rows=1270 width=36)
        ->  Hash  (cost=1.53..1.53 rows=53 width=6)
             ->  Seq Scan on territories t  (cost=0.00..1.53 rows=53 width=6)
```

PostgreSQL 옵티마이저에서 반환한 쿼리 및 결과를 분석하는 방법에 대한 자세한 내용은 [explain.depesz.com](https://www.depesz.com/2013/04/16/explaining-the-unexplainable/)을 참조하세요. PostgreSQL EXPLAIN 및 EXPLAIN ANALYZE에 대한 자세한 내용은 PostgreSQL 설명서의 [EXPLAIN](https://www.postgresql.org/docs/current/sql-explain.html)을 참조하세요.

## Babelfish 설명 옵션을 제어하는 파라미터
<a name="working-with-babelfish-usage-notes-features.using.explain.parameters"></a>

다음 테이블에 표시된 파라미터를 사용하여 쿼리 계획에 표시되는 정보 유형을 제어할 수 있습니다.


| 파라미터 | 설명 | 
| --- | --- | 
| babelfishpg\$1tsql.explain\$1buffers | 옵티마이저에 대한 버퍼 사용 정보를 표시하거나 숨기는 부울입니다. (기본값: off)(허용: off, on)  | 
| babelfishpg\$1tsql.explain\$1costs | 옵티마이저에 대한 예상 시작 및 총 비용 정보를 표시하거나 숨기는 부울입니다. (기본값: on)(허용: off, on)  | 
| babelfishpg\$1tsql.explain\$1format | `EXPLAIN` 계획에 대한 출력 형식을 지정합니다. (기본값: text)(허용: text, xml, json, yaml)  | 
| babelfishpg\$1tsql.explain\$1settings | EXPLAIN 계획 출력에 구성 파라미터에 대한 정보가 포함되도록 설정하거나 해제하는 부울입니다. (기본값: off)(허용: off, on)  | 
| babelfishpg\$1tsql.explain\$1summary | 쿼리 계획 이후의 총 시간과 같은 요약 정보를 표시하거나 숨기는 부울입니다. (기본값: on)(허용: off, on)  | 
| babelfishpg\$1tsql.explain\$1timing | 실제 시작 시간 및 출력의 각 노드에 소요된 시간을 표시하거나 숨기는 부울입니다. (기본값: on)(허용: off, on)  | 
| babelfishpg\$1tsql.explain\$1verbose | 설명 계획의 가장 상세한 버전을 표시하거나 숨기는 부울입니다. (기본값: off)(허용: off, on)  | 
| babelfishpg\$1tsql.explain\$1wal | 설명 계획의 일부로 WAL 기록 정보의 생성을 설정하거나 해제하는 부울입니다. (기본값: off)(허용: off, on)  | 

PostgreSQL 클라이언트 또는 SQL Server 클라이언트를 사용하여 시스템에서 Babelfish 관련 파라미터 값을 확인할 수 있습니다. 다음 명령을 실행하여 현재 파라미터 값을 가져옵니다.

```
1> execute sp_babelfish_configure '%explain%';
2> GO
```

다음 출력에서 이 특정 Babelfish DB 클러스터의 모든 설정이 기본값임을 알 수 있습니다. 이 예에서는 일부 출력이 표시되지 않습니다.

```
             name                   setting                     short_desc
---------------------------------- -------- --------------------------------------------------------
babelfishpg_tsql.explain_buffers   off      Include information on buffer usage
babelfishpg_tsql.explain_costs     on       Include information on estimated startup and total cost
babelfishpg_tsql.explain_format    text     Specify the output format, which can be TEXT, XML, JSON, or YAML
babelfishpg_tsql.explain_settings  off      Include information on configuration parameters
babelfishpg_tsql.explain_summary   on       Include summary information (e.g.,totaled timing information) after the query plan 
babelfishpg_tsql.explain_timing    on       Include actual startup time and time spent in each node in the output
babelfishpg_tsql.explain_verbose   off      Display additional information regarding the plan
babelfishpg_tsql.explain_wal       off      Include information on WAL record generation

(8 rows affected)
```

다음 예제와 같이 `sp_babelfish_configure`를 사용하여 이러한 파라미터의 설정을 변경할 수 있습니다.

```
1> execute sp_babelfish_configure 'explain_verbose', 'on';
2> GO
```

클러스터 전체 수준에서 설정을 영구적으로 만들려면 다음 예제와 같이 키워드 **server를 포함합니다.

```
1> execute sp_babelfish_configure 'explain_verbose', 'on', 'server';
2> GO
```

# T-SQL 쿼리 힌트를 사용하여 Babelfish 쿼리 성능 향상
<a name="babelfish-tsql-hints"></a>

버전 2.3.0부터 Babelfish는 `pg_hint_plan`을 사용하여 쿼리 힌트 사용을 지원합니다. Aurora PostgreSQL에서는 `pg_hint_plan`이 기본적으로 설치됩니다. PostgreSQL 확장에 `pg_hint_plan`에 대한 자세한 내용은 [https://github.com/ossc-db/pg_hint_plan](https://github.com/ossc-db/pg_hint_plan) 섹션을 참조하세요. Aurora PostgreSQL에서 지원하는 이 확장 버전에 대한 자세한 내용은 **Aurora PostgreSQL 릴리스 정보에서 [Amazon Aurora PostgreSQL의 확장 버전](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html)을 참조하세요.

 쿼리 최적화 프로그램은 SQL 문에 대한 최적의 실행 계획을 찾도록 설계되었습니다. 계획을 선택할 때 쿼리 최적화 프로그램은 엔진의 비용 모델과 열 및 테이블 통계를 모두 고려합니다. 하지만 제안된 계획이 데이터 세트의 요구 사항을 충족하지 못할 수 있습니다. 따라서 쿼리 힌트는 성능 문제를 해결하여 실행 계획을 개선합니다. `query hint`는 쿼리 실행 방법에 대해 데이터베이스 엔진에 지시하는 SQL 표준에 추가된 구문입니다. 예를 들어 힌트는 엔진이 순차 스캔을 따르고 쿼리 최적화 프로그램이 선택한 계획을 재정의하도록 지시할 수 있습니다.

## Babelfish에서 T-SQL 쿼리 힌트 켜기
<a name="babelfish-tsql-hints-turningon"></a>

현재 Babelfish는 기본적으로 모든 T-SQL 힌트를 무시합니다. T-SQL 힌트를 적용하려면 enable\$1pg\$1hint 값을 ON으로 설정하여 `sp_babelfish_configure` 명령을 실행합니다.

```
EXECUTE sp_babelfish_configure 'enable_pg_hint', 'on' [, 'server']
```

*server* 키워드를 포함하여 클러스터 전체 수준에서 설정을 영구적으로 만들 수 있습니다. 현재 세션에 대해서만 설정을 구성하려면 서버를 사용하지 마세요.

`enable_pg_hint`가 ON으로 설정되면 Babelfish는 다음 T-SQL 힌트를 적용합니다.
+ INDEX 힌트
+ JOIN 힌트
+ FORCE ORDER 힌트
+ MAXDOP 힌트

예를 들어, 다음 명령 시퀀스가 `pg_hint_plan`을 켭니다.

```
1> CREATE TABLE t1 (a1 INT PRIMARY KEY, b1 INT);
2> CREATE TABLE t2 (a2 INT PRIMARY KEY, b2 INT);
3> GO    
1> EXECUTE sp_babelfish_configure 'enable_pg_hint', 'on';
2> GO
1> SET BABELFISH_SHOWPLAN_ALL ON;
2> GO
1> SELECT * FROM t1 JOIN t2 ON t1.a1 = t2.a2; --NO HINTS (HASH JOIN)
2> GO
```

SELECT 문에는 힌트가 적용되지 않습니다. 힌트가 없는 쿼리 계획이 반환됩니다.

```
QUERY PLAN                                                                                                                                                                                                                                
---------------------------------------------------------------------------
Query Text: SELECT * FROM t1 JOIN t2 ON t1.a1 = t2.a2
Hash Join (cost=60.85..99.39 rows=2260 width=16)
 Hash Cond: (t1.a1 = t2.a2)
 -> Seq Scan on t1 (cost=0.00..32.60 rows=2260 width=8)
 -> Hash (cost=32.60..32.60 rows=2260 width=8)
 -> Seq Scan on t2 (cost=0.00..32.60 rows=2260 width=8)
```

```
1> SELECT * FROM t1 INNER MERGE JOIN t2 ON t1.a1 = t2.a2;
2> GO
```

쿼리 힌트는 SELECT 문에 적용됩니다. 다음 출력은 병합 조인이 포함된 쿼리 계획이 반환되었음을 보여줍니다.

```
QUERY PLAN                                                                                                                                                                                                                                
---------------------------------------------------------------------------
Query Text: SELECT/*+ MergeJoin(t1 t2) Leading(t1 t2)*/ * FROM t1 INNER JOIN t2 ON t1.a1 = t2.a2
Merge Join (cost=0.31..190.01 rows=2260 width=16)
 Merge Cond: (t1.a1 = t2.a2)
 -> Index Scan using t1_pkey on t1 (cost=0.15..78.06 rows=2260 width=8)
 -> Index Scan using t2_pkey on t2 (cost=0.15..78.06 rows=2260 width=8)
```

```
1> SET BABELFISH_SHOWPLAN_ALL OFF;
2> GO
```

## 제한 사항
<a name="babelfish-tsql-hints-limitations"></a>

쿼리 힌트를 사용하는 동안 다음 제한 사항을 고려하세요.
+ `enable_pg_hint`가 설정되기 전에 쿼리 계획이 캐시되면 동일한 세션에서 힌트가 적용되지 않습니다. 새 세션에 적용됩니다.
+ 스키마 이름이 명시적으로 입력되면 힌트를 적용할 수 없습니다. 해결 방법으로 테이블 별칭을 사용할 수 있습니다.
+ 쿼리 힌트는 뷰 및 하위 쿼리에 적용할 수 없습니다.
+ JOIN이 포함된 UPDATE/DELETE 문에는 힌트가 적용되지 않습니다.
+ 존재하지 않는 인덱스 또는 테이블에 대한 인덱스 힌트는 무시됩니다.
+ FORCE ORDER 힌트는 HASH JOIN 및 비 ANSI JOIN에 적용되지 않습니다.

# Babelfish와 함께 Aurora PostgreSQL 확장 사용
<a name="babelfish-postgres-aws-extensions"></a>

Aurora PostgreSQL은 다른 AWS 서비스와의 작업을 위한 확장을 제공합니다. 이는 데이터 가져오기 또는 내보내기를 위해 DB 클러스터와 함께 Amazon S3를 사용하는 것과 같은 다양한 사용 사례를 지원하는 선택적 확장입니다.
+ Amazon S3 버킷에서 Babelfish DB 클러스터로 데이터를 가져오려면 `aws_s3` Aurora PostgreSQL 확장을 설정합니다. 이 확장을 사용하면 Aurora PostgreSQL DB 클러스터에서 Amazon S3 버킷으로 데이터를 내보낼 수도 있습니다.
+ AWS Lambda은(는) 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. Lambda 함수를 사용하여 DB 인스턴스의 이벤트 알림 처리와 같은 작업을 수행할 수 있습니다. Lambda에 대한 자세한 내용은 *AWS Lambda 개발자 안내서*의 [AWS Lambda란 무엇입니까?](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)를 참조하세요. Babelfish DB 클러스터에서 Lambda 함수를 호출하려면 `aws_lambda` Aurora PostgreSQL 확장을 설정합니다.

Babelfish 클러스터에 대해 이러한 확장을 설정하려면 먼저 내부 Babelfish 사용자에게 확장을 로드할 수 있는 권한을 부여해야 합니다. 권한을 부여한 후 Aurora PostgreSQL 확장을 로드할 수 있습니다.

## Babelfish DB 클러스터에서 Aurora PostgreSQL 확장 사용 설정
<a name="babelfish-postgres-aws-extensions-enabling"></a>

`aws_s3` 또는 `aws_lambda` 확장을 로드하려면 Babelfish DB 클러스터에 필요한 권한을 부여해야 합니다.

다음 절차에서는 `psql` PostgreSQL 명령줄 도구를 사용하여 DB 클러스터에 연결합니다. 자세한 내용은 [psql을 사용하여 DB 클러스터에 연결](babelfish-connect-PostgreSQL.md#babelfish-connect-psql) 섹션을 참조하세요. pgAdmin을 사용할 수도 있습니다. 자세한 내용은 [pgAdmin을 사용하여 DB 클러스터에 연결](babelfish-connect-PostgreSQL.md#babelfish-connect-pgadmin)을 참조하세요.

이 절차는 `aws_s3`과 `aws_lambda`를 차례로 로드합니다. 이러한 확장 중 하나만 사용하려면 둘 다 로드할 필요가 없습니다. `aws_commons` 확장은 각각에 필요하며 출력에 표시된 대로 기본적으로 로드됩니다.

**Aurora PostgreSQL 확장에 대한 권한으로 Babelfish DB 클러스터 설정**

1. Babelfish DB 클러스터에 연결합니다. Babelfish DB 클러스터를 생성할 때 지정한 "마스터" 사용자(-U)의 이름을 사용합니다. 기본값(`postgres`)은 예제에 표시되어 있습니다.

   대상 LinuxmacOS, 또는Unix:

   ```
   psql -h your-Babelfish.cluster.444455556666-us-east-1.rds.amazonaws.com \
   -U postgres \
   -d babelfish_db \
   -p 5432
   ```

   Windows의 경우:

   ```
   psql -h your-Babelfish.cluster.444455556666-us-east-1.rds.amazonaws.com ^
   -U postgres ^
   -d babelfish_db ^
   -p 5432
   ```

   명령은 사용자 이름(-U)의 암호를 입력하라는 프롬프트로 응답합니다.

   ```
   Password:
   ```

   DB 클러스터의 사용자 이름(-U)에 대한 암호를 입력합니다. 성공적으로 연결하면 다음과 비슷한 출력이 표시됩니다.

   ```
   psql (13.4)
   SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
   Type "help" for help.
   
   postgres=>
   ```

1. 내부 Babelfish 사용자에게 확장을 생성하고 로드할 수 있는 권한을 부여합니다.

   ```
   babelfish_db=> GRANT rds_superuser TO master_dbo;
   GRANT ROLE
   ```

1. `aws_s3` 확장 생성 및 로드 `aws_commons` 확장이 필요하며 `aws_s3`이 설치되면 자동으로 설치됩니다.

   ```
   babelfish_db=> create extension aws_s3 cascade;
   NOTICE:  installing required extension "aws_commons"
   CREATE EXTENSION
   ```

1. `aws_lambda` 확장 생성 및 로드

   ```
   babelfish_db=> create extension aws_lambda cascade;
   CREATE EXTENSION
   babelfish_db=>
   ```

## Amazon S3에서 Babelfish 사용
<a name="babelfish-postgres-aws-extensions-using-aws_s3"></a>

Babelfish DB 클러스터에 사용할 Amazon S3 버킷이 아직 없는 경우 하나 생성할 수 있습니다. 사용하려는 Amazon S3 버킷에 대해 액세스 권한을 제공합니다.

Amazon S3 버킷을 사용하여 데이터를 가져오거나 내보내기 전에 다음 일회성 단계를 완료하세요.

**Amazon S3 버킷에 대한 Babelfish DB 인스턴스의 액세스 설정**

1. 필요한 경우 Babelfish 인스턴스용 Amazon S3 버킷을 생성합니다. 이렇게 하려면 *Amazon Simple Storage Service 사용 설명서*의 [Create a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingABucket.htmlurl-s3-user;GetStartedWithS3.html#creating-bucket) 지침을 따르세요.

1. Amazon S3 버킷에 파일을 업로드합니다. 이렇게 하려면 *Amazon Simple Storage Service 사용 설명서*의 [Add an object to a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/PuttingAnObjectInABucket.htmlurl-s3-user;GetStartedWithS3.html#uploading-an-object-bucket) 단계를 따르세요.

1. 필요에 따라 권한을 설정합니다.
   + Amazon S3에서 데이터를 가져오려면 Babelfish DB 클러스터에 버킷 액세스 권한이 필요합니다. AWS Identity and Access Management(IAM) 역할을 사용하고 클러스터의 해당 역할에 IAM 정책을 연결하는 것이 좋습니다. 이렇게 하려면 [IAM 역할을 사용해 Amazon S3 버킷에 액세스](USER_PostgreSQL.S3Import.AccessPermission.md#USER_PostgreSQL.S3Import.ARNRole) 단원의 절차를 따르세요.
   + Babelfish DB 클러스터에서 데이터를 내보내려면 클러스터에 Amazon S3 버킷에 대한 액세스 권한이 부여되어야 합니다. 가져오기와 마찬가지로 IAM 역할 및 정책을 사용하는 것이 좋습니다. 이렇게 하려면 [Amazon S3 버킷에 대한 액세스 권한 설정](postgresql-s3-export-access-bucket.md) 단원의 절차를 따르세요.

이제 Babelfish DB 클러스터에서 `aws_s3` 확장과 함께 Amazon S3를 사용할 수 있습니다.

**Amazon S3에서 Babelfish로 데이터 가져오기 및 Amazon S3로 Babelfish 데이터 내보내기**

1. Babelfish DB 클러스터와 함께 `aws_s3` 확장을 사용합니다.

   이때 PostgreSQL 컨텍스트에 있는 테이블을 참조해야 합니다. 즉, `[database].[schema].[tableA]`라는 Babelfish 테이블로 가져오려면 `aws_s3` 함수에서 해당 테이블을 `database_schema_tableA`로 참조합니다.
   + `aws_s3` 함수를 사용하여 데이터를 가져오는 예는 [Amazon S3에서 Aurora PostgreSQL DB 클러스터 로 데이터 가져오기](USER_PostgreSQL.S3Import.FileFormats.md) 섹션을 참조하세요.
   + `aws_s3` 함수를 사용하여 데이터를 내보내는 예는 [aws\$1s3.query\$1export\$1to\$1s3 함수를 사용하여 쿼리 데이터 내보내기](postgresql-s3-export-examples.md) 섹션을 참조하세요.

1. 다음 표와 같이 `aws_s3` 확장 및 Amazon S3를 사용할 때 PostgreSQL 이름 지정을 사용하여 Babelfish 테이블을 참조해야 합니다.


| Babelfish 테이블 | Aurora PostgreSQL 테이블 | 
| --- | --- | 
| `database.schema.table` | `database_schema_table` | 

Aurora PostgreSQL과 함께 Amazon S3를 사용하는 방법에 대해 자세히 알아보려면 [PostgreSQL DB 인스턴스용 Aurora PostgreSQL DB 클러스터](USER_PostgreSQL.S3Import.md) 및 [Aurora PostgreSQL DB 클러스터에서 Amazon S3로 데이터 내보내기](postgresql-s3-export.md) 섹션을 참조하세요.

## AWS Lambda와 함께 Babelfish 사용
<a name="babelfish-postgres-aws-extensions-using-aws_lambda"></a>

`aws_lambda` 확장이 Babelfish DB 클러스터에 로드된 후 이 절차에 따라 Lambda에 DB 클러스터에 대한 액세스 권한을 부여해야 Lambda 함수를 호출할 수 있습니다.

**Lambda와 작동하도록 Babelfish DB 클러스터에 대한 액세스 설정**

이 절차에서는 AWS CLI를 사용하여 IAM 정책, 역할을 생성하고 이를 Babelfish DB 클러스터와 연결합니다.

1. Babelfish DB 클러스터에서 Lambda에 대한 액세스를 허용하는 IAM 정책을 생성합니다.

   ```
   aws iam create-policy  --policy-name rds-lambda-policy --policy-document '{
   	"Version": "2012-10-17",		 	 	 
       "Statement": [
           {
           "Sid": "AllowAccessToExampleFunction",
           "Effect": "Allow",
           "Action": "lambda:InvokeFunction",
           "Resource": "arn:aws:lambda:aws-region:444455556666:function:my-function"
           }
       ]
   }'
   ```

1. 정책이 런타임에 수임할 수 있는 IAM 역할을 생성합니다.

   ```
   aws iam create-role  --role-name rds-lambda-role --assume-role-policy-document '{
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
           "Effect": "Allow",
           "Principal": {
               "Service": "rds.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
           }
       ]
   }'
   ```

1. 책을 역할에 연결합니다.

   ```
   aws iam attach-role-policy \
       --policy-arn arn:aws:iam::444455556666:policy/rds-lambda-policy \
       --role-name rds-lambda-role --region aws-region
   ```

1. Babelfish DB 클러스터에 역할을 연결합니다.

   ```
   aws rds add-role-to-db-cluster \
          --db-cluster-identifier my-cluster-name \
          --feature-name Lambda \
          --role-arn  arn:aws:iam::444455556666:role/rds-lambda-role   \
          --region aws-region
   ```

이러한 태스크를 완료한 후 Lambda 함수를 호출할 수 있습니다. AWS Lambda를 사용하여 Aurora PostgreSQL DB 클러스터에 대해 AWS Lambda를 설정하는 방법에 대한 자세한 내용과 예는 [2단계: Aurora PostgreSQL DB 클러스터 및 AWS Lambda에 대한 IAM 구성](PostgreSQL-Lambda.md#PostgreSQL-Lambda-access) 섹션을 참조하세요.

**Babelfish DB 클러스터에서 Lambda 함수 호출**

AWS Lambda는 Java, Node.js, Python, Ruby 및 기타 언어로 작성된 기능을 지원합니다. 함수가 호출될 때 텍스트를 반환하면 Babelfish DB 클러스터에서 이를 호출할 수 있습니다. 다음 예는 인사말을 반환하는 자리 표시자 python 함수입니다.

```
lambda_function.py
import json
def lambda_handler(event, context):
    #TODO implement
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
```

현재 Babelfish는 JSON을 지원하지 않습니다. 함수가 JSON을 반환하는 경우 래퍼를 사용하여 JSON을 처리합니다. 예를 들어, 앞에 표시된 `lambda_function.py`가 Lambda에 `my-function`으로 저장되어 있다고 가정해 보겠습니다.

1. `psql` 클라이언트 또는 pgAdmin 클라이언트를 사용하여 Babelfish DB 클러스터에 연결합니다. 자세한 내용은 [psql을 사용하여 DB 클러스터에 연결](babelfish-connect-PostgreSQL.md#babelfish-connect-psql) 섹션을 참조하세요.

1. 래퍼를 생성합니다. 이 예에서는 SQL용 PostgreSQL의 절차적 언어인 `PL/pgSQL`을 사용합니다. 자세한 내용은 [PL/pgSQL–SQL 절차적 언어](https://www.postgresql.org/docs/13/plpgsql.html)를 참조하세요.

   ```
   create or replace function master_dbo.lambda_wrapper()
   returns text
   language plpgsql
   as
   $$
   declare
      r_status_code integer;
      r_payload text;
   begin
      SELECT payload INTO r_payload
        FROM aws_lambda.invoke(  aws_commons.create_lambda_function_arn('my-function', 'us-east-1')
                               ,'{"body": "Hello from Postgres!"}'::json );
      return r_payload ;
   end;
   $$;
   ```

   이제 이 함수는 Babelfish TDS 포트(1433) 또는 PostgreSQL 포트(5433)에서 실행할 수 있습니다.

   1. PostgreSQL 포트에서 이 함수 호출

      ```
      SELECT * from aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function', 'us-east-1'), '{"body": "Hello from Postgres!"}'::json );
      ```

      출력은 다음과 유사합니다.

      ```
      status_code |                        payload                        | executed_version | log_result
      -------------+-------------------------------------------------------+------------------+------------
               200 | {"statusCode": 200, "body": "\"Hello from Lambda!\""} | $LATEST          |
      (1 row)
      ```

   1. TDS 포트에서 이 기능을 호출하려면 SQL Server `sqlcmd` 명령줄 클라이언트를 사용하여 포트에 연결합니다. 자세한 내용은 [SQL Server 클라이언트 도구를 사용하여 DB 클러스터에 연결](babelfish-connect-sqlserver.md)을 참조하세요. 연결되면 다음을 실행합니다.

      ```
      1> select lambda_wrapper();
      2> go
      ```

      이 명령은 다음과 비슷한 출력을 반환합니다.

      ```
      {"statusCode": 200, "body": "\"Hello from Lambda!\""}
      ```

Aurora PostgreSQL과 함께 Lambda를 사용하는 방법에 대해 자세히 알아보려면 [Aurora PostgreSQL DB 클러스터 에서 AWS Lambda 함수 호출](PostgreSQL-Lambda.md) 섹션을 참조하세요. Lambda 함수 작업에 대한 자세한 내용은 *AWS Lambda 개발자 안내서*의 [Lambda 시작하기](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)를 참조하세요.

## Babelfish 에서 pg\$1stat\$1statements 사용
<a name="babelfish-postgres-aws-extensions-using-pgstat"></a>

Babelfish for Aurora PostgreSQL은 3.3.0에서 `pg_stat_statements` 확장을 지원합니다. 자세한 내용은 [pg\$1stat\$1statements](https://www.postgresql.org/docs/current/pgstatstatements.html)를 참조하세요.

Aurora PostgreSQL에서 지원하는 이 확장에 대한 자세한 내용은 [확장 버전](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html)을 참조하세요.

### pg\$1stat\$1statements 확장 만들기
<a name="babelfish-postgres-aws-extensions-using-pgstat-install"></a>

`pg_stat_statements`를 활성화하려면 쿼리 식별자 계산을 켜야 합니다. 이 작업은 파라미터 그룹에서 `compute_query_id`가 `on` 또는 `auto`로 설정되어 있으면 자동으로 수행됩니다. `compute_query_id` 파라미터의 기본값은 `auto`입니다. 이 기능을 켜려면 이 확장도 생성해야 합니다. 다음 명령을 사용하여 T-SQL 엔드포인트에서 확장을 설치하세요.

```
				
1>EXEC sp_execute_postgresql 'CREATE EXTENSION pg_stat_statements WITH SCHEMA sys';
```

다음 쿼리를 사용하여 쿼리 통계에 액세스할 수 있습니다.

```
postgres=>select * from pg_stat_statements; 
```

**참고**  
설치 중에 확장의 스키마 이름을 제공하지 않으면 기본적으로 확장이 퍼블릭 스키마에 생성됩니다. 액세스하려면 아래와 같이 스키마 한정자와 함께 대괄호를 사용해야 합니다.

```
postgres=>select * from [public].pg_stat_statements;
```

PSQL 엔드포인트에서 확장을 생성할 수도 있습니다.

### 확장 승인
<a name="babelfish-postgres-aws-extensions-using-pgstat-authorization"></a>

기본적으로 승인 없이 T-SQL 데이터베이스 내에서 수행된 쿼리의 통계를 볼 수 있습니다.

다른 사람이 만든 쿼리 통계에 액세스하려면 `pg_read_all_stats` PostgreSQL 역할이 있어야 합니다. 아래에 설명된 단계에 따라 GRANT pg\$1read\$1all\$1stats 명령을 생성합니다.

1. T-SQL에서는 내부 PG 역할 이름을 반환하는 다음 쿼리를 사용합니다.

   ```
   SELECT rolname FROM pg_roles WHERE oid = USER_ID();
   ```

1. rds\$1superuser 권한으로 Babelfish for Aurora PostgreSQL 데이터베이스에 연결하고 다음 명령을 사용합니다.

   ```
   GRANT pg_read_all_stats TO <rolname_from_above_query>
   ```

**예제**  
T-SQL 엔드포인트에서:

```
1>SELECT rolname FROM pg_roles WHERE oid = USER_ID();
2>go
```

```
rolname
-------
master_dbo
(1 rows affected)
```

PSQL 엔드포인트에서:

```
babelfish_db=# grant pg_read_all_stats to master_dbo;
```

```
GRANT ROLE
```

pg\$1stat\$1statements 뷰를 사용하여 쿼리 통계에 액세스할 수 있습니다.

```
1>create table t1(cola int);
2>go
1>insert into t1 values (1),(2),(3);
2>go
```

```
(3 rows affected)
```

```
1>select userid, dbid, queryid, query from pg_stat_statements;
2>go
```

```
userid dbid queryid             query
------ ---- -------             -----
37503 34582 6487973085327558478 select * from t1
37503 34582 6284378402749466286 SET QUOTED_IDENTIFIER OFF
37503 34582 2864302298511657420 insert into t1 values ($1),($2),($3)
10    34582 NULL                <insufficient privilege>
37503 34582 5615368793313871642 SET TEXTSIZE 4096
37503 34582 639400815330803392  create table t1(cola int)
(6 rows affected)
```

### 쿼리 통계 재설정
<a name="babelfish-postgres-aws-extensions-using-pgstat-reset"></a>

`pg_stat_statements_reset()`을 사용하여 지금까지 pg\$1stat\$1statements에서 수집한 통계를 재설정할 수 있습니다. 자세한 내용은 [pg\$1stat\$1statements]( https://www.postgresql.org/docs/current/pgstatstatements.html)를 참조하세요. 현재 PSQL 엔드포인트를 통해서만 지원됩니다. `rds_superuser` 권한을 사용하여 Babelfish for Aurora PostgreSQL에 연결하려면 다음 명령을 사용하세요.

```
SELECT pg_stat_statements_reset();
```

### 제한 사항
<a name="babelfish-postgres-aws-extensions-using-pgstat-limitations"></a>
+ 현재 T-SQL 엔드포인트를 통해서는 `pg_stat_statements()`가 지원되지 않습니다. 통계를 수집할 때는 `pg_stat_statements` 뷰를 사용하는 것이 좋습니다.
+ 일부 쿼리는 Aurora PostgreSQL 엔진으로 구현된 T-SQL 파서에 의해 다시 작성될 수 있습니다. `pg_stat_statements` 뷰에는 원래 쿼리가 아닌 다시 작성된 쿼리가 표시됩니다.

  예제

  ```
  select next value for [dbo].[newCounter];
  ```

   위의 쿼리는 pg\$1stat\$1statements 뷰에서 다음과 같이 다시 작성됩니다.

  ```
  select nextval($1);
  ```
+ 문의 실행 흐름에 따라 일부 쿼리는 pg\$1stat\$1statements에서 추적되지 않고 뷰에 표시되지 않을 수 있습니다. 여기에 포함되는 문은 `use dbname`, `goto`, `print`, `raise error`, `set`, `throw`, `declare cursor`입니다.
+ CREATE LOGIN 및 ALTER LOGIN 문의 경우 쿼리 및 쿼리 ID가 표시되지 않습니다. 권한이 충분하지 않다고 표시됩니다.
+ `pg_stat_statements` 뷰에는 항상 아래 두 항목이 포함됩니다. 이 두 항목은 `sqlcmd` 클라이언트가 내부적으로 실행하기 때문입니다.
  + SET QUOTED\$1IDENTIFIER OFF
  + SET TEXTSIZE 4,096

## Babelfish에서 pgvector 사용
<a name="babelfish-postgres-aws-extensions-using-pgvector"></a>

오픈 소스 확장인 pgvector를 사용하면 Postgres 데이터베이스 내에서 직접 유사한 데이터를 검색할 수 있습니다. Babelfish는 이제 버전 15.6 및 16.2부터 이 확장을 지원합니다. 자세한 내용은 [pgvector 오픈 소스 설명서](https://github.com/pgvector/pgvector)를 참조하세요.

### 사전 조건
<a name="babelfish-postgres-aws-extensions-using-pgvector-prereq"></a>

pgvector 기능을 활성화하려면 다음 방법 중 하나를 사용하여 sys 스키마에 확장을 설치하세요.
+ sqlcmd 클라이언트에서 다음 명령을 실행합니다.

  ```
  exec sys.sp_execute_postgresql 'CREATE EXTENSION vector WITH SCHEMA sys';
  ```
+ `babelfish_db`에 연결하고 psql 클라이언트에서 다음 명령을 실행합니다.

  ```
  CREATE EXTENSION vector WITH SCHEMA sys;
  ```

**참고**  
pgvector 확장을 설치한 후에는 설정한 새 데이터베이스 연결에서만 해당 벡터 데이터 유형을 사용할 수 있습니다. 기존 연결에서는 새 데이터 유형을 인식하지 못합니다.

### 지원되는 기능
<a name="babelfish-postgres-aws-extensions-using-pgvector-supported"></a>

Babelfish는 T-SQL 기능을 확장하여 다음을 지원합니다.
+ **저장**

  Babelfish는 이제 벡터 데이터 유형 호환 구문을 지원하여 T-SQL 호환성을 개선합니다. pgvector를 사용하여 데이터를 저장하는 방법에 대한 자세한 내용은 [Storing](https://github.com/pgvector/pgvector?tab=readme-ov-file#storing)을 참조하세요.
+ **쿼리**

   Babelfish는 벡터 유사성 연산자를 포함하도록 T-SQL 표현식 지원을 확장합니다. 그러나 다른 모든 쿼리의 경우 표준 T-SQL 구문이 여전히 필요합니다.
**참고**  
T-SQL은 배열 유형을 지원하지 않으며 데이터베이스 드라이버에는 배열 유형을 처리하는 인터페이스가 없습니다. 해결 방법으로 Babelfish는 텍스트 문자열(varchar/nvarchar)을 사용하여 벡터 데이터를 저장합니다. 예를 들어 벡터 값 [1,2,3]을 요청하면 Babelfish는 '[1,2,3]' 문자열을 응답으로 반환합니다. 필요에 따라 애플리케이션 수준에서 이 문자열을 구문 분석하고 분할할 수 있습니다.

  pgvector를 사용하여 데이터를 쿼리하는 방법에 대한 자세한 내용은 [Querying](https://github.com/pgvector/pgvector?tab=readme-ov-file#querying)을 참조하세요.
+ **인덱싱**

  T-SQL `Create Index`는 이제 `USING INDEX_METHOD` 구문을 지원합니다. 이제 인덱스를 만들 때 특정 열에 사용할 유사성 검색 연산자를 정의할 수 있습니다.

  또한 문법이 필수 열에 대한 벡터 유사성 연산을 지원하도록 확장되었습니다(column\$1name\$1list\$1with\$1order\$1for\$1vector 문법 확인).

  ```
  CREATE [UNIQUE] [clustered] [COLUMNSTORE] INDEX <index_name> ON <table_name> [USING vector_index_method] (<column_name_list_with_order_for_vector>)
  Where column_name_list_with_order_for_vector is:
      <column_name> [ASC | DESC] [VECTOR_COSINE_OPS | VECTOR_IP_OPS | VECTOR_L2_OPS] (COMMA simple_column_name [ASC | DESC] [VECTOR_COSINE_OPS | VECTOR_IP_OPS | VECTOR_L2_OPS])
  ```

  pgvector를 사용하여 데이터를 인덱싱하는 방법에 대한 자세한 내용은 [Indexing](https://github.com/pgvector/pgvector?tab=readme-ov-file#indexing)을 참조하세요.
+ **성능**:
  + T-SQL 엔드포인트에서 쿼리 계획을 디버깅하는 데 `SET BABELFISH_STATISTICS PROFILE ON`을 사용합니다.
  + T-SQL에서 지원되는 `set_config` 함수를 사용하여 `max_parallel_workers_get_gather`를 늘립니다.
  + 대략적인 검색에 `IVFFlat`을 사용합니다. 자세한 내용은 [IVFFlat](https://github.com/pgvector/pgvector?tab=readme-ov-file#ivfflat)을 참조하세요.

  pgvector를 사용하여 성능을 개선하는 방법에 대한 자세한 내용은 [Performance](https://github.com/pgvector/pgvector?tab=readme-ov-file#performance)를 참조하세요.

### 제한 사항
<a name="babelfish-postgres-aws-extensions-using-pgvector-unsupported"></a>
+ Babelfish는 하이브리드 검색에 전체 텍스트 검색을 지원하지 않습니다. 자세한 내용은 [Hybrid Search](https://github.com/pgvector/pgvector?tab=readme-ov-file#hybrid-search)를 참조하세요.
+ Babelfish는 현재 재인덱싱 기능을 지원하지 않습니다. 그러나 여전히 PostgreSQL 엔드포인트를 사용하여 재인덱싱이 가능합니다. 자세한 내용은 [Vacuuming](https://github.com/pgvector/pgvector?tab=readme-ov-file#vacuuming)을 참조하세요.

## Babelfish와 함께 Amazon Aurora 기계 학습 사용
<a name="babelfish-postgres-aws-extensions-using-ml"></a>

Amazon Aurora 기계 학습과 통합하면 Babelfish for Aurora PostgreSQL DB 클러스터의 기능을 확장할 수 있습니다. 이 원활한 통합을 통해 각각 고유한 기계 학습 요구 사항을 해결하도록 맞춤화된 Amazon Comprehend, Amazon SageMaker AI, Amazon Bedrock과 같은 다양하고 강력한 서비스에 액세스할 수 있습니다.

Babelfish 사용자는 Aurora 기계 학습을 사용할 때 T-SQL 구문 및 의미 체계에 대한 기존 지식을 사용할 수 있습니다. Aurora PostgreSQL에 대한 AWS 설명서에 나와 있는 지침을 따르세요. 자세한 내용은 [Aurora PostgreSQL과 함께 Amazon Aurora 기계 학습 사용](postgresql-ml.md) 섹션을 참조하세요.

### 사전 조건
<a name="babelfish-postgres-aws-extensions-using-ml-prereq"></a>
+ Aurora 기계 학습을 사용하도록 Babelfish for Aurora PostgreSQL DB 클러스터를 설정하기 전에 관련 요구 사항과 사전 조건을 이해해야 합니다. 자세한 내용은 [Aurora PostgreSQL과 함께 Aurora 기계 학습을 사용할 때 요구 사항](postgresql-ml.md#postgresql-ml-prereqs) 섹션을 참조하세요.
+ Postgres 엔드포인트 또는 `sp_execute_postgresql` 저장 프로시저를 사용하여 `aws_ml` 확장을 설치해야 합니다.

  ```
  exec sys.sp_execute_postgresql 'Create Extension aws_ml'
  ```
**참고**  
현재 Babelfish는 Babelfish 내에서 `sp_execute_postgresql`을 사용한 캐스케이드 작업을 지원하지 않습니다. `aws_ml`은 `aws_commons`를 사용하기 때문에 Postgres 엔드포인트를 사용하여 별도로 설치해야 합니다.

  ```
  create extension aws_common;
  ```

### `aws_ml` 함수를 사용한 T-SQL 구문 및 의미 체계 처리
<a name="babelfish-postgres-aws-extensions-using-ml-examples"></a>

다음 예시는 T-SQL 구문과 의미 체계가 Amazon ML 서비스에 적용되는 방법을 설명합니다.

**Example : aws\$1bedrock.invoke\$1model - Amazon Bedrock 함수를 사용하는 간단한 쿼리**  

```
aws_bedrock.invoke_model(
   model_id      varchar,
   content_type  text,
   accept_type   text,
   model_input   text)
Returns Varchar(MAX)
```
다음 예제는 invoke\$1model을 사용하여 Bedrock에 대한 Anthropic Claude 2 모델을 간접 호출하는 방법을 보여줍니다.  

```
SELECT aws_bedrock.invoke_model (
    'anthropic.claude-v2', -- model_id
    'application/json', -- content_type
    'application/json', -- accept_type
    '{"prompt": "\n\nHuman:
    You are a helpful assistant that answers questions directly
    and only using the information provided in the context below.
    \nDescribe the answerin detail.\n\nContext: %s \n\nQuestion:
    %s \n\nAssistant:","max_tokens_to_sample":4096,"temperature"
    :0.5,"top_k":250,"top_p":0.5,"stop_sequences":[]}' -- model_input
);
```

**Example : aws\$1comprehend.detect\$1sentiment - Amazon Comprehend 함수를 사용하는 간단한 쿼리**  

```
aws_comprehend.detect_sentiment(
   input_text varchar,
   language_code varchar,
   max_rows_per_batch int)
Returns table (sentiment varchar, confidence real)
```
다음 예시는 Amazon Comprehend 서비스를 간접 호출하는 방법을 보여줍니다.  

```
select sentiment from aws_comprehend.detect_sentiment('This is great', 'en');
```

**Example : aws\$1sagemaker.invoke\$1endpoint - Amazon SageMaker 함수를 사용하는 간단한 쿼리**  

```
aws_sagemaker.invoke_endpoint(
  endpoint_name varchar,   
  max_rows_per_batch int,
  VARIADIC model_input "any") -- Babelfish inherits PG's variadic parameter type
Rerurns Varchar(MAX)
```

model\$1input은 VARIADIC으로 표시되고 유형이 'any'이므로 사용자는 길이 및 데이터 유형과 관계없이 목록을 함수에 전달할 수 있으며, 이 함수는 모델에 대한 입력 역할을 합니다. 다음 예시는 Amazon SageMaker 서비스를 간접 호출하는 방법을 보여줍니다.

```
SELECT CAST (aws_sagemaker.invoke_endpoint(
    'sagemaker_model_endpoint_name',
    NULL,
    arg1, arg2 -- model inputs are separate arguments )
AS INT) -- cast the output to INT
```

Aurora PostgreSQL과 함께 Aurora 기계 학습을 사용하는 방법에 대한 자세한 내용은 [Aurora PostgreSQL과 함께 Amazon Aurora 기계 학습 사용](postgresql-ml.md) 섹션을 참조하세요.

### 제한 사항
<a name="babelfish-postgres-aws-extensions-using-ml-limit"></a>
+ Babelfish는 배열 생성을 허용하지 않지만 배열을 나타내는 데이터는 처리할 수 있습니다. 배열을 반환하는 `aws_bedrock.invoke_model_get_embeddings`와 같은 함수를 사용하면 결과가 배열 요소가 포함된 문자열로 전달됩니다.

# 연결된 서버를 지원하는 Babelfish
<a name="babelfish-postgres-linkedservers"></a>

Babelfish for Aurora PostgreSQL은 버전 3.1.0에서 PostgreSQL `tds_fdw` 확장을 사용하여 연결된 서버를 지원합니다. 연결된 서버로 작업을 수행하려면 `tds_fdw` 확장을 설치해야 합니다. `tds_fdw`에 대한 자세한 내용은 [Amazon Aurora PostgreSQL용 지원되는 외부 데이터 래퍼 작업](Appendix.PostgreSQL.CommonDBATasks.Extensions.foreign-data-wrappers.md)을 참조하세요.

## `tds_fdw` 확장 설치
<a name="babelfish-postgres-linkedservers-tdsfdw"></a>

다음 방법을 사용하여 `tds_fdw` 확장을 설치할 수 있습니다.

**PostgreSQL 엔드포인트에서 CREATE EXTENSION 사용**

1. PostgreSQL 포트에서 Babelfish 데이터베이스의 PostgreSQL DB 인스턴스에 연결합니다. rds\$1superuser 역할이 있는 계정을 사용합니다.

   ```
   psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=test --dbname=babelfish_db --password
   ```

1. `tds_fdw` 확장을 설치합니다. 이는 일회성 설치 프로세스입니다. DB 클러스터가 다시 시작될 때 재설치하지 않아도 됩니다.

   ```
   babelfish_db=> CREATE EXTENSION tds_fdw;
   CREATE EXTENSION
   ```

**TDS 엔드포인트에서 `sp_execute_postgresql` 저장 프로시저 호출**

Babelfish는 버전 3.3.0에서 `sp_execute_postgresql` 프로시저를 호출하여 `tds_fdw` 확장 설치를 지원합니다. T-SQL 포트를 종료하지 않고도 T-SQL 엔드포인트에서 PostgreSQL 문을 실행할 수 있습니다. 자세한 내용은 [Babelfish for Aurora PostgreSQL 작업 절차](Appendix.Babelfish.Functions.md) 섹션을 참조하세요.

1. T-SQL 포트에서 Babelfish 데이터베이스의 PostgreSQL DB 인스턴스에 연결합니다.

   ```
   sqlcmd -S your-DB-instance.aws-region.rds.amazonaws.com -U test -P password
   ```

1. `tds_fdw` 확장을 설치합니다.

   ```
   1>EXEC sp_execute_postgresql N'CREATE EXTENSION tds_fdw';
   2>go
   ```

## 지원되는 기능
<a name="babelfish-postgres-linkedservers-supportfunction"></a>

Babelfish는 원격 RDS for SQL Server 또는 Babelfish for Aurora PostgreSQL 엔드포인트를 연결된 서버로 추가하는 것을 지원합니다. 다른 원격 SQL Server 인스턴스를 연결된 서버로 추가할 수도 있습니다. 그런 다음, `OPENQUERY()`를 사용하여 이러한 연결된 서버에서 데이터를 검색합니다. Babelfish 버전 3.2.0부터 네 부분으로 구성된 이름도 지원됩니다.

연결된 서버를 사용하기 위해 다음과 같은 저장 프로시저 및 카탈로그 보기가 지원됩니다.

**저장 프로시저**
+ **sp\$1addlinkedserver** – Babelfish는 `@provstr` 파라미터를 지원하지 않습니다.
+ **sp\$1addlinkedsrvlogin**
  + 원격 데이터 소스에 연결하려면 명시적인 원격 사용자 이름과 암호를 입력해야 합니다. 사용자의 자체 보안 인증 정보로는 연결할 수 없습니다. Babelfish는 `@useself = false`만 지원합니다.
  + 로컬 로그인과 관련된 원격 서버 액세스 구성은 지원되지 않으므로, Babelfish는 `@locallogin` 파라미터를 지원하지 않습니다.
+ **sp\$1linkedservers**
+ **sp\$1helplinkedsrvlogin**
+ **sp\$1dropserver**
+ **sp\$1droplinkedsrvlogin** – 로컬 로그인과 관련된 원격 서버 액세스 구성은 지원되지 않으므로, Babelfish는 `@locallogin` 파라미터를 지원하지 않습니다.
+ **sp\$1serveroption** - Babelfish는 다음과 같은 서버 옵션을 지원합니다.
  + 쿼리 제한 시간(Babelfish 버전 3.2.0 이상)
  + 연결 제한 시간(Babelfish 버전 3.3.0 이상) 
+ **sp\$1testlinkedserver**(Babelfish 버전 3.3.0 이상)
+ **sp\$1enum\$1oledb\$1providers**(Babelfish 버전 3.3.0 이상)

**카탈로그 보기**
+ **sys.servers**
+ **sys.linked\$1logins**

## 연결에 전송 중 암호화 사용
<a name="babelfish-postgres-linkedservers-encrytion"></a>

소스 Babelfish for Aurora PostgreSQL에서 대상 원격 서버로의 연결은 원격 서버 데이터베이스 구성에 따라 전송 중 암호화(TLS/SSL)를 사용합니다. 원격 서버에 암호화가 구성되지 않은 경우 원격 데이터베이스에 대한 요청을 수행하는 Babelfish 서버는 암호화되지 않은 상태로 폴백됩니다.

**연결 암호화를 적용하려면**
+ 대상 연결 서버가 RDS for SQL Server 인스턴스인 경우 대상 SQL Server 인스턴스에 대해 `rds.force_ssl = on`으로 설정합니다. RDS for SQL Server에 대한 SSL/TLS 구성과 관련된 자세한 내용은 [Microsoft SQL Server DB 인스턴스와 함께 SSL 사용](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.SSL.Using.html)을 참조하세요.
+ 대상 연결 서버가 Babelfish for Aurora PostgreSQL 클러스터인 경우 대상 서버에 대해 `babelfishpg_tds.tds_ssl_encrypt = on` 및 `ssl = on`으로 설정합니다. SSL/TLS 사용에 관한 자세한 내용은 [Babelfish SSL 설정 및 클라이언트 연결](babelfish-configuration.md#babelfish-ssl) 섹션을 참조하세요.

## SQL Server에서 Babelfish를 연결된 서버로 추가
<a name="babelfish-linkedserver-SQLserver"></a>

Babelfish for Aurora PostgreSQL은 SQL Server에서 연결된 서버로 추가할 수 있습니다. SQL Server 데이터베이스에서 ODBC용 Microsoft OLE DB 공급자인 MSDASQL을 사용하여 Babelfish를 연결된 서버로 추가할 수 있습니다.

MSDASQL 공급자를 사용하여 SQL Server에서 Babelfish를 연결된 서버로 구성하는 방법은 2가지가 있습니다.
+ ODBC 연결 문자열을 공급자 문자열로 제공합니다.
+ 연결된 서버를 추가하는 동안 ODBC 데이터 소스의 시스템 DSN을 제공합니다.

## 제한 사항
<a name="babelfish-postgres-linkedservers-limitations"></a>
+ OPENQUERY()는 SELECT에서만 사용할 수 있고 DML에서는 사용할 수 없습니다.
+ 네 부분으로 구성된 객체 이름은 읽기에만 사용할 수 있고 원격 테이블 수정에는 사용할 수 없습니다. UPDATE는 수정하지 않고도 FROM 절의 원격 테이블을 참조할 수 있습니다.
+ Babelfish 연결 서버에 대한 저장 프로시저 실행은 지원되지 않습니다.
+ `OPENQUERY()`에 종속된 객체가 있거나 네 부분으로 구성된 이름을 통해 참조되는 객체가 있는 경우 Babelfish 메이저 버전 업그레이드가 작동하지 않을 수 있습니다. 메이저 버전 업그레이드 전에 `OPENQUERY()` 또는 네 부분으로 구성된 이름을 참조하는 모든 객체가 삭제되었는지 확인해야 합니다.
+ 다음 데이터 유형은 원격 Babelfish 서버(`nvarchar(max)`, `varchar(max)`, `varbinary(max)`, `binary(max)`, `time`)에서 예상대로 작동하지 않습니다. CAST 함수를 사용하여 지원되는 데이터 유형으로 변환하는 것이 좋습니다.

## 예제
<a name="babelfish-postgres-linkedservers-example"></a>

다음은 클라우드에서 RDS for SQL Server의 인스턴스에 Babelfish for Aurora PostgreSQL 인스턴스가 연결된 예시입니다.

```
EXEC master.dbo.sp_addlinkedserver @server=N'rds_sqlserver', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'myserver.CB2XKFSFFMY7.US-WEST-2.RDS.AMAZONAWS.COM';
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'rds_sqlserver',@useself=N'False',@locallogin=NULL,@rmtuser=N'username',@rmtpassword='password';
```

 연결된 서버가 설치되면 T-SQL OPENQUERY() 또는 네 부분으로 구성된 표준 이름 지정을 사용하여 다음의 원격 서버 기반 테이블, 뷰 또는 기타 지원되는 객체를 참조할 수 있습니다.

```
SELECT * FROM OPENQUERY(rds_sqlserver, 'SELECT * FROM TestDB.dbo.t1');
SELECT * FROM rds_sqlserver.TestDB.dbo.t1;
```

연결된 서버 및 모든 관련 로그인을 중단하는 방법:

```
EXEC master.dbo.sp_dropserver @server=N'rds_sqlserver', @droplogins=N'droplogins';
```

## 문제 해결
<a name="babelfish-postgres-linkedservers-troubleshooting"></a>

소스 서버와 원격 서버 모두에 동일한 보안 그룹을 사용하여 서로 통신하도록 허용할 수 있습니다. 보안 그룹은 TDS 포트(기본값 1433)의 인바운드 트래픽만 허용해야 하며 보안 그룹의 소스 IP를 보안 그룹 ID 자체로 설정할 수 있습니다. 보안 그룹이 동일한 다른 인스턴스에서 인스턴스에 연결하는 규칙을 설정하는 방법에 대한 자세한 내용은 [보안 그룹이 동일한 인스턴스에서 인스턴스에 대한 연결 규칙](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-other-instances)을 참조하세요.

액세스 권한이 올바르게 구성되지 않은 경우 원격 서버를 쿼리하려고 할 때 다음 예시와 비슷한 오류 메시지가 나타납니다.

```
TDS client library error: DB #: 20009, DB Msg: Unable to connect: server is unavailable or does not exist (mssql2019.aws-region.rds.amazonaws.com), OS #: 110, OS Msg: Connection timed out, Level: 9                        
```

# Babelfish에서 전체 텍스트 검색 사용
<a name="babelfish-postgres-fulltextsearch"></a>

버전 4.0.0부터 Babelfish는 전체 텍스트 검색(FTS)에 대한 제한된 지원을 제공합니다. FTS는 텍스트가 많은 데이터를 효율적으로 검색하고 인덱싱할 수 있는 관계형 데이터베이스의 강력한 기능입니다. 이를 통해 복잡한 텍스트 검색을 수행하고 관련 결과를 빠르게 찾을 수 있습니다. FTS는 콘텐츠 관리 시스템, 전자 상거래 플랫폼, 문서 아카이브와 같이 대량의 텍스트 데이터를 처리하는 애플리케이션에 특히 유용합니다.

## Babelfish 전체 텍스트 검색에서 지원하는 기능 이해
<a name="babelfish-postgres-fulltextsearch-support"></a>

Babelfish는 다음과 같은 전체 텍스트 검색 기능을 지원합니다.
+ CONTAINS 절:
  + CONTAINS 절에 대한 기본적인 지원.

    ```
    CONTAINS (   
         {   
            column_name
         }   
         , '<contains_search_condition>'
    )
    ```
**참고**  
현재는 영어만 지원됩니다.
  + `simple_term` 검색 문자열의 포괄적인 처리 및 번역.
+ `FULLTEXT INDEX` 절:
  + `CREATE FULLTEXT INDEX ON table_name(column_name [...n]) KEY INDEX index_name` 문만 지원합니다.
  + 전체 `DROP FULLTEXT INDEX` 문을 지원합니다.
**참고**  
전체 텍스트 인덱스를 다시 인덱싱하려면 전체 텍스트 인덱스를 삭제하고 동일한 열에 새 인덱스를 생성해야 합니다.
+ 검색 조건의 특수 문자:
  + Babelfish는 검색 문자열에서 특수 문자가 한 번 발생하는 경우를 효과적으로 처리할 수 있도록 합니다.
**참고**  
Babelfish는 이제 검색 문자열에서 특수 문자를 식별하지만, 얻은 결과는 T-SQL로 얻은 결과와 다를 수 있다는 점을 알아둬야 합니다.
+ column\$1name의 테이블 별칭:
  + 테이블 별칭 지원을 통해 사용자는 전체 텍스트 검색을 위해 더 간결하고 읽기 쉬운 SQL 쿼리를 만들 수 있습니다.

## Babelfish 전체 텍스트 검색의 제한 사항
<a name="babelfish-postgres-fulltextsearch-unsupport"></a>
+ 현재 Babelfish에서는 `CONTAINS` 절에 대해 다음 옵션을 지원하지 않습니다.
  + 영어 이외의 언어 및 특수 문자는 지원되지 않습니다. 지원되지 않는 문자 및 언어를 사용하는 경우 일반 오류 메시지가 표시됩니다.

    ```
    Full-text search conditions with special characters or languages other than English are not currently supported in Babelfish
    ```
  + `column_list`와 같은 여러 열
  + PROPERTY 속성
  + `prefix_term`, `generation_term`, `generic_proximity_term`, `custom_proximity_term` 및 `weighted_term`
  + Boolean 연산자는 지원되지 않으며, 사용할 경우 다음과 같은 오류 메시지가 표시됩니다.

    ```
    boolean operators not supported
    ```
  + 점이 있는 식별자 이름은 지원되지 않습니다.
+ 현재 Babelfish에서는 `CREATE FULLTEXT INDEX` 절에 대해 다음 옵션을 지원하지 않습니다.
  + [ TYPE COLUMN type\$1column\$1name ]
  + [ LANGUAGE language\$1term ]
  + [ STATISTICAL\$1SEMANTICS ]
  + catalog filegroup 옵션
  + with 옵션
+ 전체 텍스트 카탈로그 생성은 지원되지 않습니다. 전체 텍스트 인덱스를 생성할 때는 전체 텍스트 카탈로그가 필요하지 않습니다.
+ `CREATE FULLTEXT INDEX`는 점이 있는 식별자 이름을 지원하지 않습니다.
+ Babelfish는 현재 검색 문자열에서 연속된 특수 문자를 지원하지 않습니다. 사용할 경우 다음과 같은 오류 메시지가 표시됩니다.

  ```
  Consecutive special characters in the full-text search condition are not currently supported in Babelfish
  ```

# Babelfish에서 지리공간 데이터 유형 지원
<a name="babelfish-geospatial"></a>

버전 3.5.0 및 4.1.0부터 Babelfish는 다음 두 가지 공간 데이터 유형에 대한 지원을 포함합니다.
+ **기하학 데이터 유형** - 이 데이터 유형은 평면, 즉 유클리드(평평한 지구) 데이터를 저장하기 위한 것입니다.
+ **지리학 데이터 유형** - 이 데이터 유형은 GPS 위도 및 경도 좌표와 같은 타원체, 즉 둥근 지구 데이터를 저장하는 데 사용됩니다.

이러한 데이터 유형을 사용하면 공간 데이터를 저장하고 조작할 수 있지만 제한이 있습니다.

## Babelfish의 지리공간 데이터 유형 이해
<a name="babelfish-geospatial-overview"></a>
+ 지리공간 데이터 유형은 뷰, 프로시저 및 테이블과 같은 다양한 데이터베이스 객체에서 지원됩니다.
+ 포인트 데이터 유형을 지원하여 위치 데이터를 위도, 경도 및 유효한 공간 참조 시스템 식별자(SRID)로 정의된 포인트로 저장할 수 있습니다. 포인트는 Z(고도), M(측정) 값을 포함할 수 있으며 비어 있을 수 있습니다.
+ 일련의 점과 이들을 연결하는 선분 및 유효한 공간 참조 시스템 식별자(SRID)로 정의되는 라인스트링 데이터 유형(버전 5.4.0부터)을 지원합니다. 라인스트링은 Z(고도), M(측정) 값이 있는 포인트를 포함할 수 있으며 비어 있을 수 있습니다.
+ JDBC, ODBC, DOTNET, PYTHON과 같은 드라이버를 통해 Babelfish에 연결하는 애플리케이션은 이 지리공간 기능을 활용할 수 있습니다.

### Babelfish에서 지원하는 기하학 데이터 유형 함수
<a name="babelfish-geospatial-overview-geometry"></a>
+ **STGeomFromText(*geometry\$1tagged\$1text*, SRID)** - WKT(Well-Known Text) 표현을 사용하여 기하학 인스턴스를 만듭니다.
+ **STPointFromText(*point\$1tagged\$1text*, SRID)** - WKT 표현을 사용하여 포인트 인스턴스를 생성합니다.
+ **Point(X, Y, SRID)** - x 및 y 좌표의 부동 소수점 값을 사용하여 포인트 인스턴스를 만듭니다.
+ **<geometry\$1instance>.STAsText ( )** - 기하학 인스턴스에서 WKT 표현을 추출합니다.
+ **<geometry\$1instance>.STAsBinary ( )** - 기하학 인스턴스에서 WKB 표현을 추출합니다.
+ **<geometry\$1instance>.STArea( )** - 기하학 인스턴스의 총 표면적을 계산합니다.
+ **<geometry\$1instance>.STSrid( )** - 기하학 인스턴스의 공간 참조 식별자(SRID)를 추출합니다.
+ **<geometry\$1instance>.STDimension( )** - 기하학 인스턴스의 공간 차원을 검색합니다.
+ **<geometry\$1instance>.STIsEmpty( )** - 기하학 인스턴스가 비어 있는지 확인합니다.
+ **<geometry\$1instance>.STIsClosed( )** - 기하학 인스턴스가 닫혀 있는지 확인합니다.
+ **<geometry\$1instance>.STIsValid( )** - 기하학 인스턴스가 유효한지 확인합니다.
+ **<geometry\$1instance>.STDistance(other\$1geometry)** - 두 기하학 인스턴스 사이의 거리를 계산합니다.
+ **<geometry\$1instance>.STEquals(other\$1geometry)** - 기하학 인스턴스가 다른 기하학 인스턴스와 동일한 포인트 세트를 나타내는지 확인합니다.
+ **<geometry\$1instance>.STContains(other\$1geometry)** - 기하학 인스턴스에 other\$1geometry 인스턴스가 포함되어 있는지 확인합니다.
+ **<geometry\$1instance>.STDisjoint(other\$1geometry)** - 두 기하학 인스턴스에 공통 포인트가 없는지 확인합니다.
+ **<geometry\$1instance>.STIntersects(other\$1geometry)** - 두 기하학 인스턴스가 공간적으로 교차하는지 확인합니다.
+ **<geometry\$1instance>.STX** - 기하학 인스턴스의 X 좌표(경도)를 추출합니다.
+ **<geometry\$1instance>.STY** - 기하학 인스턴스의 Y 좌표(위도)를 추출합니다.

버전 4.7.0 및 5.3.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
+ **<geometry\$1instance>.M** - 기하학 인스턴스의 M 좌표를 추출합니다.
+ **<geometry\$1instance>.Z** - 기하학 인스턴스의 Z 좌표를 추출합니다.
+ **<geometry\$1instance>.HasM** - 기하학 인스턴스에 M 값이 하나 이상 있는지 확인합니다.
+ **<geometry\$1instance>.HasZ** - 기하학 인스턴스에 Z 값이 하나 이상 있는지 확인합니다.

버전 5.4.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
+ **STLineFromText(*linestring\$1tagged\$1text*, SRID )** - WKT 표현을 사용하여 라인스트링 인스턴스를 생성합니다.

### Babelfish에서 지원하는 지리학 데이터 유형 함수
<a name="babelfish-geospatial-overview-geography"></a>
+ **STGeomFromText(*geography\$1tagged\$1text*, SRID)** - WKT 표현을 사용하여 지리학 인스턴스를 만듭니다.
+ **STPointFromText(*point\$1tagged\$1text*, SRID)** - WKT 표현을 사용하여 포인트 인스턴스를 생성합니다.
+ **Point(Lat, Long, SRID)** - 위도 및 경도의 부동 소수점 값을 사용하여 포인트 인스턴스를 만듭니다.
+ **geography\$1instance>.STAsText( )** - 지리학 인스턴스에서 WKT 표현을 추출합니다.
+ **<geography\$1instance>.STAsBinary( )** - 지리학 인스턴스에서 WKB 표현을 추출합니다.
+ **<geography\$1instance>.STArea( )** - 지리학 인스턴스의 총 표면적을 계산합니다.
+ **<geography\$1instance>.STSrid( )** - 지리학 인스턴스의 공간 참조 식별자(SRID)를 추출합니다.
+ **<geography\$1instance>.STDimension( )** - 지리학 인스턴스의 공간 차원을 검색합니다.
+ **<geography\$1instance>.STIsEmpty( )** - 지리학 인스턴스가 비어 있는지 확인합니다.
+ **<geography\$1instance>.STIsClosed( )** - 지리학 인스턴스가 닫혀 있는지 확인합니다.
+ **<geography\$1instance>.STIsValid( )** - 지리학 인스턴스가 유효한지 확인합니다.
+ **geography\$1instance>.STDistance(other\$1geography)** - 두 지리학 인스턴스 사이의 거리를 계산합니다.
+ **<geography\$1instance>.STEquals(other\$1geography)** - 지리학 인스턴스가 다른 지리학 인스턴스와 동일한 포인트 세트를 나타내는지 확인합니다.
+ **<geography\$1instance>.STContains(other\$1geography)** - 지리학 인스턴스에 other\$1geography 인스턴스가 포함되어 있는지 확인합니다.
+ **<geography\$1instance>.STDisjoint(other\$1geography)** - 두 지리학 인스턴스에 공통 포인트가 없는지 확인합니다.
+ **<geography\$1instance>.STIntersects(other\$1geography)** - 두 지리학 인스턴스가 공간적으로 교차하는지 확인합니다.
+ **<geography\$1instance>.Lat** - 지리학 인스턴스의 위도 값을 추출합니다.
+ **<geography\$1instance>.Long** - 지리학 인스턴스의 경도 값을 추출합니다.

버전 4.7.0 및 5.3.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
+ **<geography\$1instance>.M** - 지리학 인스턴스의 M 좌표를 추출합니다.
+ **<geography\$1instance>.Z** - 지리학 인스턴스의 Z 좌표를 추출합니다.
+ **<geography\$1instance>.HasM** - 지리학 인스턴스에 M 값이 하나 이상 있는지 확인합니다.
+ **<geography\$1instance>.HasZ** - 지리학 인스턴스에 Z 값이 하나 이상 있는지 확인합니다.

버전 5.4.0부터 Babelfish는 다음 공간 데이터 함수에 대한 지원을 포함합니다.
+ **STLineFromText(*linestring\$1tagged\$1text*, SRID )** - WKT 표현을 사용하여 라인스트링 인스턴스를 생성합니다.

## Babelfish에서 지원하는 지리공간 데이터 유형의 한계
<a name="babelfish-geospatial-limitations"></a>
+ 포인트 및 라인스트링 인스턴스 이외에 다음과 같은 기하학 및 지리학 유형은 현재 지원되지 않습니다.
  + CircularString
  + CompoundCurve
  + Polygon
  + CurvePolygon
  + MultiPoint
  + MultiLineString
  + MultiPolygon
  + GeometryCollection
+ 현재 공간 인덱싱은 지리공간 데이터 유형에 지원되지 않습니다.
+ 현재 이러한 데이터 유형에는 나열된 함수만 지원됩니다. 자세한 내용은 [Babelfish에서 지원하는 기하학 데이터 유형 함수](#babelfish-geospatial-overview-geometry) 및 [Babelfish에서 지원하는 지리학 데이터 유형 함수](#babelfish-geospatial-overview-geography)(을)를 참조하세요.
+ 지리학 데이터에 대한 STDistance 함수 출력값은 T-SQL과 비교하여 정밀도 차이가 약간 있을 수 있습니다. 이는 기본 PostGIS 구현 때문입니다. 자세한 내용은 [ST\$1Distance](https://postgis.net/docs/ST_Distance.html)를 참조하세요.
+ 기하학 및 지리학 데이터 모두에서 STIsValid 함수 출력값은 T-SQL과 비교하여 약간의 차이가 있을 수 있습니다. 이로 인해 STDistance, STContains, STInstersects, STDisjoint, STDimension, STArea, STEquals 함수도 경우에 따라 T-SQL과 차이가 날 수 있습니다(오류를 발생시키는 대신 출력을 반환함). 이는 기본 PostGIS 구현 때문입니다. 자세한 내용은 [ST\$1IsValid](https://postgis.net/docs/ST_IsValid.html)를 참조하세요.
+ 성능을 최적화하려면 Babelfish에서 추가 추상화 계층을 만들지 말고 기본 제공되는 지리공간 데이터 유형을 사용하세요.
+ Babelfish에서는 지리공간 함수 이름이 키워드로 사용되며 의도한 방식으로 사용하는 경우에만 공간 연산을 수행합니다.

# Babelfish의 파티셔닝 이해
<a name="babelfish-partition"></a>

버전 4.3.0부터 Babelfish는 제한된 지원으로 테이블 및 인덱스 파티셔닝을 도입합니다. 다음 섹션에서는 Babelfish에서 파티션 함수 생성, 파티션 체계 정의, 파티션된 테이블 및 인덱스 구현에 대한 세부 정보를 제공합니다.

**Topics**
+ [Babelfish 파티셔닝 소개](#babelfish-partition-function-views)
+ [제한 사항 및 해결 방법](#babelfish-partition-limitations)

## Babelfish 파티셔닝 소개
<a name="babelfish-partition-function-views"></a>
+ **파티션 함수:**
  + `CREATE PARTITION FUNCTION:` 분할 열 유형과 각 파티션의 값 범위를 지정하여 테이블 또는 인덱스를 파티셔닝하는 방법을 정의합니다.
  + `DROP PARTITION FUNCTION:` 기존 파티션 함수를 제거합니다.
+ **파티셔닝 체계:**
  + `CREATE PARTITION SCHEME:` 파티션과 파일 그룹 간의 매핑을 정의합니다.
**참고**  
Babelfish에서 파일 그룹은 더미 객체로 취급되며 물리적 스토리지 위치를 나타내지 않습니다.
  + `DROP PARTITION SCHEME:` 기존 파티션 체계를 제거합니다.
+ **시스템 함수:**
  + `$PARTITION:` 이 시스템 함수는 파티셔닝 열의 지정된 값이 지정된 파티셔닝된 테이블에 속하는 파티션 번호를 반환합니다.
+ **파티셔닝된 테이블 및 인덱스:**
  + `CREATE TABLE ... ON partition_scheme_name (partition_column_name):` 지정된 파티션 체계 및 파티셔닝 열을 기반으로 파티셔닝된 테이블을 생성합니다.
  + `CREATE INDEX ... ON partition_scheme_name (partition_column_name):` 지정된 파티션 체계 및 파티셔닝 열을 기반으로 파티셔닝된 인덱스를 생성합니다.
+ **메타데이터 파티셔닝을 위한 시스템 뷰:**

  파티셔닝과 관련된 메타데이터를 제공하기 위해 다음 시스템 뷰가 추가됩니다.
  + `sys.destination_data_spaces`
  + `sys.partitions`
  + `sys.partition_functions`
  + `sys.partition_parameters`
  + `sys.partition_range_values`
  + `sys.partition_schemes`

## 제한 사항 및 해결 방법
<a name="babelfish-partition-limitations"></a>

다음 SQL Server 파티셔닝 기능은 Babelfish에서 아직 지원되지 않습니다.
+ `ALTER PARTITION FUNCTION` 및 `ALTER PARTITION SCHEME`.
**참고**  
Babelfish는 분할 및 병합 작업을 지원하지 않습니다. 나중에 파티션을 추가하거나 제거할 수 없으므로 만드는 중에 파티션 함수의 모든 파티션을 정의합니다.
+ 파티셔닝 열로 계산된 열.
+ 파티셔닝된 테이블에 대한 `INSERT BULK` 및 `BCP` 유틸리티.
+ 파티션 함수의 `LEFT` 경계 옵션.
+ 파티션 함수의 `SQL_VARIANT` 데이터 유형.
+ `TRUNCATE TABLE ... WITH PARTITION`.
+ `ALTER TABLE ... SWITCH PARTITION`.
+ 파티션 체계 및 파티션 테이블과 다른 파티션 열과 같이 정렬되지 않은 파티셔닝된 인덱스.
+ Babelfish 소스에서의 DMS 마이그레이션은 파티셔닝된 테이블의 전체 로드 작업에만 지원됩니다.
+ 파티션 함수의 데이터 정렬 사용.
+ 기본 데이터베이스 데이터 정렬 이외의 데이터 정렬과 함께 파티셔닝 열 사용.
+ Babelfish는 이러한 구문 옵션을 지원하지 않지만 다음의 해결 방법을 제공합니다.
  + CREATE TABLE 문에 제약 조건 또는 인덱스가 있는 파티션 체계를 사용합니다.
  + ALTER TABLE ... ADD CONSTRAINT ... ON partition\$1scheme\$1name (partition\$1column\$1name).
**참고**  
`babelfishpg_tsql.escape_hatch_storage_on_partition` 이스케이프 해치를 무시하도록 설정할 수 있습니다. 이렇게 하면 파서가 제약 조건 또는 인덱스와 함께 사용되는 파티션 체계 옵션을 무시할 수 있으며 백엔드는 각 파티션에 대해 개별 제약 조건 또는 인덱스를 생성합니다.

# Babelfish 문제 해결
<a name="babelfish-troubleshooting"></a>

다음에서 일부 Babelfish DB 클러스터 문제에 대한 문제 해결 아이디어와 해결 방법을 찾아볼 수 있습니다.

**Topics**
+ [연결 실패](#babelfish-troubleshooting-connectivity)

## 연결 실패
<a name="babelfish-troubleshooting-connectivity"></a>

Babelfish가 포함된 새 Aurora DB 클러스터에 공통적으로 발생하는 연결 실패의 원인은 다음과 같습니다.
+ **보안 그룹에서 액세스 허용하지 않음** - Babelfish 연결에 문제가 있는 경우 기본 Amazon EC2 보안 그룹에 IP 주소를 추가했는지 확인합니다. [https://checkip.amazonaws.com/](https://checkip.amazonaws.com/)을 사용하여 IP 주소를 확인한 다음, 해당 주소를 TDS 포트 및 PostgreSQL 포트의 인바운드 규칙에 추가할 수 있습니다. 자세한 내용은 *Amazon EC2 사용 설명서*의 [보안 그룹에 규칙 추가](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/working-with-security-groups.html#adding-security-group-rule.html)를 참조하세요.
+ **SSL 구성 불일치** - Aurora PostgreSQL에서 `rds.force_ssl` 파라미터가 활성화되어 있으면(1로 설정) 클라이언트는 SSL을 통해 Babelfish에 연결해야 합니다. 클라이언트가 올바르게 설정되지 않은 경우 다음과 같은 오류 메시지가 표시됩니다.

  ```
  Cannot connect to your-Babelfish-DB-cluster, 1433
  ---------------------
  ADDITIONAL INFORMATION:
  no pg_hba_conf entry for host "256.256.256.256", user "your-user-name",
  "database babelfish_db", SSL off (Microsoft SQL Server, Error: 33557097)
  ...
  ```

  이 오류는 로컬 클라이언트와 Babelfish DB 클러스터 간에 SSL 구성 문제가 있을 수 있으며 클러스터에서 클라이언트가 SSL을 사용해야 함을 나타냅니다(`rds.force_ssl` 파라미터가 1로 설정됨). SSL 구성에 대한 자세한 내용은 *Amazon RDS 사용 설명서*의 [PostgreSQL DB 인스턴스와 함께 SSL 사용](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html#PostgreSQL.Concepts.General.SSL.Status)을 참조하세요.

  SQL Server Management Studio(SSMS)를 사용하여 Babelfish에 연결할 때 이 오류가 표시되는 경우 연결 속성 창에서 **연결 암호화(Encrypt connection)** 및 **서버 인증서 신뢰(Trust server certificate)** 연결 옵션을 선택하고 다시 시도할 수 있습니다. 이러한 설정은 SSMS에 대한 SSL 연결 요구 사항을 해결합니다.

Aurora 연결 문제 해결에 대한 자세한 내용은 [Amazon RDS DB 인스턴스에 연결할 수 없음](CHAP_Troubleshooting.md#CHAP_Troubleshooting.Connecting) 단원을 참조하세요.

# Babelfish 끄기
<a name="babelfish-remove"></a>

더 이상 Babelfish가 필요 없는 경우 Babelfish 기능을 끌 수 있습니다.

일부 고려 사항을 유의하세요.
+ 경우에 따라 Aurora PostgreSQL로의 마이그레이션을 완료하기 전에 Babelfish를 끌 수 있습니다. DDL이 SQL Server 데이터 형식에 의존하거나 코드에 T-SQL 기능을 사용하는 경우 해당 코드는 실패합니다.
+ Babelfish 인스턴스를 프로비저닝한 후 Babelfish 확장을 끄는 경우 동일한 클러스터에서 동일한 데이터베이스를 다시 프로비저닝할 수 없습니다.

Babelfish를 끄려면 `rds.babelfish_status`를 `OFF`로 설정한 파라미터 그룹을 수정합니다. `rds.babelfish_status`를 `datatypesonly`로 설정하여 Babelfish가 꺼진 상태로 SQL Server 데이터 유형을 계속 사용할 수 있습니다.

파라미터 그룹에서 Babelfish를 끄는 경우 해당 파라미터 그룹을 사용하는 모든 클러스터에서 Babelfish 기능이 사라집니다.

파라미터 그룹 수정에 대한 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요. Babelfish별 파라미터에 대한 자세한 내용은 [Babelfish용 DB 클러스터 파라미터 그룹 설정](babelfish-configuration.md) 섹션을 참조하세요.

# Babelfish for Aurora PostgreSQL 버전 업데이트 관리
<a name="babelfish-information"></a>

Babelfish는 Aurora PostgreSQL 버전 13.4 이상에서 사용할 수 있는 옵션입니다. Babelfish에 대한 업데이트는 Aurora PostgreSQL 데이터베이스 엔진의 특정 새 릴리스로 제공됩니다. 자세한 내용은 [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html)를 참조하세요.

**참고**  
Aurora PostgreSQL 13의 모든 버전에서 실행 중인 Babelfish DB 클러스터는 Aurora PostgreSQL 14.3, 14.4 및 14.5로 업그레이드할 수 없습니다. 또한 Babelfish는 13.x에서 15.x로의 직접 업그레이드를 지원하지 않습니다. 먼저 13.x DB 클러스터를 14.6 이상 버전으로 업그레이드한 다음 15.x 버전으로 업그레이드해야 합니다.

다양한 Babelfish 릴리스에서 지원되는 기능 목록은 [버전별 Babelfish에서 지원되는 기능](babelfish-compatibility.supported-functionality-table.md) 섹션을 참조하세요.

현재 지원되지 않는 기능 목록은 [Babelfish에서 지원되지 않는 기능](babelfish-compatibility.tsql.limitations-unsupported.md) 섹션을 참조하세요.

다음과 같이 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI 명령을 사용해 AWS 리전을 쿼리하여 Babelfish를 지원하는 Aurora PostgreSQL 버전 목록을 가져올 수 있습니다.

대상 LinuxmacOS, 또는Unix:

```
$ aws rds describe-db-engine-versions --region us-east-1 \
    --engine aurora-postgresql \
    --query '*[]|[?SupportsBabelfish==`true`].[EngineVersion]' \
    --output text
```

자세한 정보는 *AWS CLI 명령 참조*의 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) 섹션을 참조하세요.

다음 주제에서는 Aurora PostgreSQL DB 클러스터에서 실행 중인 Babelfish 버전을 식별하는 방법과 새 버전으로 업그레이드하는 방법을 알아볼 수 있습니다.

**Contents**
+ [사용 중인 Babelfish 버전 식별](babelfish-information-identify-version.md)
+ [Babelfish 클러스터를 새 버전으로 업그레이드](babelfish-information-upgrading.md)
  + [Babelfish를 새 마이너 버전으로 업그레이드](babelfish-information-upgrading-minor.md)
  + [Babelfish를 새 메이저 버전으로 업그레이드](babelfish-information-upgrading-major.md)
    + [Babelfish를 새 메이저 버전으로 업그레이드하기 전](babelfish-information-upgrading-major.md#babelfish-information-upgrading-preliminary)
    + [메이저 버전 업그레이드 수행](babelfish-information-upgrading-major.md#babelfish-performing-major-version-upgrade)
    + [새 메이저 버전으로 업그레이드한 후](babelfish-information-upgrading-major.md#babelfish-information-upgrading-post-upgrade)
    + [예: Babelfish DB 클러스터를 메이저 릴리스로 업그레이드](babelfish-information-upgrading-major.md#babelfish-information-upgrading-example)
+ [Babelfish 제품 버전 파라미터 사용](babelfish-guc-version.md)
  + [Babelfish 제품 버전 파라미터 구성](babelfish-guc-version.md#babelfish-guc-version-setvalues)
  + [영향을 받는 쿼리 및 파라미터](babelfish-guc-version.md#babelfish-guc-version-affects)
  + [babelfishpg\$1tsql.version 파라미터가 있는 인터페이스](babelfish-guc-version.md#babelfish-guc-version-tsql)

# 사용 중인 Babelfish 버전 식별
<a name="babelfish-information-identify-version"></a>

Babelfish를 쿼리하여 Babelfish 버전, Aurora PostgreSQL 버전 및 호환되는 Microsoft SQL Server 버전에 대한 세부 정보를 찾을 수 있습니다. TDS 포트 또는 PostgreSQL 포트를 사용할 수 있습니다.
+ [To use the TDS port to query for version information](#apg-version-info-tds)
+ [To use the PostgreSQL port to query for version information](#apg-version-info-psql)

**TDS 포트를 사용하여 버전 정보 쿼리**

1. `sqlcmd` 또는 `ssms`을 사용하여 Babelfish DB 클러스터의 엔드포인트에 연결합니다.

   ```
   sqlcmd -S bfish_db.cluster-123456789012.aws-region.rds.amazonaws.com,1433 -U
       login-id -P password -d db_name
   ```

1. Babelfish 버전을 식별하려면 다음 쿼리를 실행합니다.

   ```
   1> SELECT CAST(serverproperty('babelfishversion') AS VARCHAR)
   2> GO
   ```

   쿼리는 다음과 비슷한 결과를 반환합니다.

   ```
   serverproperty
   ------------------------------
   3.4.0
   
   (1 rows affected)
   ```

1. Aurora PostgreSQL DB 클러스터의 버전을 식별하려면 다음 쿼리를 실행합니다.

   ```
   1> SELECT aurora_version() AS aurora_version
   2> GO
   ```

   쿼리는 다음과 비슷한 결과를 반환합니다.

   ```
   aurora_version                                                                                                                                                                                                                                  
   -------------------------------------------------
   15.5.0
   
   (1 rows affected)
   ```

1. 호환되는 Microsoft SQL Server 버전을 식별하려면 다음 쿼리를 실행합니다.

   ```
   1> SELECT @@VERSION AS version
   2> GO
   ```

   쿼리는 다음과 비슷한 결과를 반환합니다.

   ```
   Babelfish for Aurora PostgreSQL with SQL Server Compatibility - 12.0.2000.8
   Dec 7 2023 09:43:06
   Copyright (c) Amazon Web Services
   PostgreSQL 15.5 on x86_64-pc-linux-gnu (Babelfish 3.4.0)
   
   (1 rows affected)
   ```

다음 쿼리를 실행하면 Babelfish와 Microsoft SQL Server 간의 근소한 차이를 알 수 있습니다. Babelfish에서는 쿼리가 `1`을 반환하지만, Microsoft SQL Server에서는 `NULL`를 반환합니다.

```
SELECT CAST(serverproperty('babelfish') AS VARCHAR) AS runs_on_babelfish
```

다음 절차에서와 같이 PostgreSQL 포트를 사용하여 버전 정보를 확인할 수도 있습니다.

**PostgreSQL 포트를 사용하여 버전 정보 쿼리**

1. `psql` 또는 `pgAdmin`을 사용하여 Babelfish DB 클러스터의 엔드포인트에 연결합니다.

   ```
   psql host=bfish_db.cluster-123456789012.aws-region.rds.amazonaws.com
        port=5432 dbname=babelfish_db user=sa
   ```

1. `psql`의 확장 기능(`\x`)을 켜면 출력이 보다 읽기 편해집니다.

   ```
   babelfish_db=> \x
   babelfish_db=> SELECT
   babelfish_db=> aurora_version() AS aurora_version,
   babelfish_db=> version() AS postgresql_version,
   babelfish_db=> sys.version() AS Babelfish_compatibility,
   babelfish_db=> sys.SERVERPROPERTY('BabelfishVersion') AS Babelfish_Version;
   ```

   이 쿼리는 다음과 비슷한 출력을 반환합니다.

   ```
   -[ RECORD 1 ]-----------+-----------------------------------------------------------------------------------------------
   aurora_version          | 15.5.0
   postgresql_version      | PostgreSQL 15.5 on x86_64-pc-linux-gnu, compiled by x86_64-pc-linux-gnu-gcc (GCC) 9.5.0, 64-bit
   babelfish_compatibility | Babelfish for Aurora Postgres with SQL Server Compatibility - 12.0.2000.8                     +
                           | Dec 7 2023 09:43:06                                                                          +
                           | Copyright (c) Amazon Web Services                                                             +
                           | PostgreSQL 15.5 on x86_64-pc-linux-gnu (Babelfish 3.4.0)
   babelfish_version       | 3.4.0
   ```

# Babelfish 클러스터를 새 버전으로 업그레이드
<a name="babelfish-information-upgrading"></a>

새로운 버전의 Babelfish는 버전 13.4 이후 Aurora PostgreSQL 데이터베이스 엔진의 일부 새 릴리스로 제공됩니다. Babelfish는 새로운 릴리스마다 버전 번호가 고유합니다. Aurora PostgreSQL과 마찬가지로 Babelfish는 버전에 *major*.*minor*.*patch* 명명 체계를 사용합니다. 예를 들어 첫 번째 Babelfish 릴리스인 Babelfish 버전 1.0.0은 Aurora PostgreSQL 13.4.0의 일부로 제공되었습니다.

Babelfish는 별도의 설치 과정이 필요하지 않습니다. [Babelfish for Aurora PostgreSQL DB 클러스터 생성](babelfish-create.md)에서 설명한 것처럼 **Turn on Babelfish**(Babelfish 켜기)는 Aurora PostgreSQL DB 클러스터를 생성할 때 선택하는 옵션입니다.

마찬가지로 Babelfish는 지원하는 Aurora DB 클러스터와 별도로 업그레이드할 수 없습니다. 기존 Babelfish for Aurora PostgreSQL DB 클러스터를 새 버전의 Babelfish로 업그레이드하려면 사용하려는 Babelfish 버전을 지원하는 새 버전으로 ㅣAurora PostgreSQL DB 클러스터를 업그레이드합니다. 업그레이드 절차는 다음과 같이 Babelfish 배포를 지원하는 Aurora PostgreSQL 버전에 따라 달라집니다.

**메이저 버전 업그레이드**  
Aurora PostgreSQL 15.2 버전으로 업그레이드하기 전에 아래의 Aurora PostgreSQL 버전을 Aurora PostgreSQL 14.6 이상 버전으로 업그레이드해야 합니다.  
+ Aurora PostgreSQL 13.8 이상의 모든 버전
+ Aurora PostgreSQL 13.7.1 이상의 모든 마이너 버전
+ Aurora PostgreSQL 13.6.4 이상의 모든 마이너 버전
Aurora PostgreSQL 14.6 이상 버전을 Aurora PostgreSQL 15.2 이상 버전으로 업그레이드할 수 있습니다.  
Aurora PostgreSQL DB 클러스터를 새 메이저 버전으로 업그레이드하려면 몇 가지 예비 작업이 필요합니다. 자세한 내용은 [메이저 버전 업그레이드 수행](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md) 섹션을 참조하세요. Babelfish for Aurora PostgreSQL DB 클러스터를 성공적으로 업그레이드하려면 새 Aurora PostgreSQL 버전에 대한 사용자 지정 DB 클러스터 파라미터 그룹을 생성해야 합니다. 이 새 파라미터 그룹은 업그레이드 중인 클러스터와 Babelfish 파라미터 설정이 동일해야 합니다. 자세한 내용과 메이저 버전 업그레이드 소스 및 대상 테이블은 [Babelfish를 새 메이저 버전으로 업그레이드](babelfish-information-upgrading-major.md)를 참조하세요.

**마이너 버전 업그레이드 및 패치**  
마이너 버전 및 패치는 업그레이드를 위해 새 DB 클러스터 파라미터 그룹을 생성할 필요가 없습니다. 마이너 버전 및 패치는 자동 적용이든 수동 적용이든 마이너 버전 업그레이드 절차를 따르면 됩니다. 자세한 내용과 버전 소스 및 대상 테이블은 [Babelfish를 새 마이너 버전으로 업그레이드](babelfish-information-upgrading-minor.md)를 참조하세요.

**참고**  
메이저 또는 마이너 업그레이드를 수행하기 전에 대기 중인 모든 유지 관리 작업을 Babelfish for Aurora PostgreSQL 클러스터에 적용하세요.

**Topics**
+ [Babelfish를 새 마이너 버전으로 업그레이드](babelfish-information-upgrading-minor.md)
+ [Babelfish를 새 메이저 버전으로 업그레이드](babelfish-information-upgrading-major.md)

# Babelfish를 새 마이너 버전으로 업그레이드
<a name="babelfish-information-upgrading-minor"></a>

마이너 버전 업데이트는 이전 버전과의 호환성을 유지하는 것을 목표로 합니다. 그러나 경우에 따라 중요한 보안 수정 또는 중요한 버그 수정은 이전 버전과 완전히 호환되지 않을 수 있습니다. **패치 버전에는 릴리스 후 마이너 버전에 대한 중요한 수정 사항이 포함되어 있습니다. 예를 들어 Aurora PostgreSQL 13.4의 첫 번째 릴리스에 대한 버전 레이블은 Aurora PostgreSQL 13.4.0이었습니다. Aurora PostgreSQL 13.4.1, 13.4.2 및 13.4.4를 포함하여 현재까지 해당 마이너 버전에 대한 여러 패치가 릴리스되었습니다. 해당 버전의 Aurora PostgreSQL 릴리스 정보 상단에 있는 **Patch releases**(패치 릴리스) 목록에서 각 Aurora PostgreSQL 버전에 사용 가능한 패치를 찾을 수 있습니다. 예는 **Aurora PostgreSQL 릴리스 정보에서 [PostgreSQL 14.3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#AuroraPostgreSQL.Updates.20180305.143X)을 참조하세요.

Aurora PostgreSQL DB 클러스터가 **Auto minor version upgrade**(자동 마이너 버전 업그레이드) 옵션으로 구성된 경우 Babelfish for Aurora PostgreSQL DB 클러스터는 클러스터의 유지 관리 기간 동안 자동으로 업그레이드됩니다. 마이너 버전 자동 업그레이드(AmVU) 및 사용 방법에 대한 자세한 내용은 [Aurora DB 클러스터 마이너 버전 자동 업그레이드](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU) 단원을 참조하세요. 클러스터에서 AmVU를 사용하지 않는 경우 유지 관리 작업에 응답하거나 새 버전을 사용하도록 클러스터를 수정하여 Babelfish for Aurora PostgreSQL DB 클러스터를 새 마이너 버전으로 수동 업그레이드할 수 있습니다.

설치할 Aurora PostgreSQL 버전을 선택하고 AWS Management Console에서 기존 Aurora PostgreSQL DB 클러스터를 보면 버전에 *major*.*minor* 숫자만 표시됩니다. 예를 들어 Aurora PostgreSQL 13.4가 있는 기존 Babelfish for Aurora PostgreSQL DB 클러스터에 대한 콘솔의 다음 이미지는 클러스터를 Aurora PostgreSQL의 새로운 마이너 릴리스인 버전 13.7로 업그레이드하도록 권장합니다.

![\[Babelfish가 실행되는 Aurora PostgreSQL DB 클러스터에 사용할 수 있는 마이너 버전 업그레이드.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-minor-upgrade-available-bfish-cluster.png)


*패치* 수준을 포함한 전체 버전 세부 정보를 얻으려면 `aurora_version` Aurora PostgreSQL 함수를 사용하여 Aurora PostgreSQL DB 클러스터를 쿼리할 수 있습니다. 자세한 내용은 [Aurora PostgreSQL 함수 참조](Appendix.AuroraPostgreSQL.Functions.md)의 [aurora\$1version](aurora_version.md) 섹션을 참조하세요. [사용 중인 Babelfish 버전 식별](babelfish-information-identify-version.md)의 [To use the PostgreSQL port to query for version information](babelfish-information-identify-version.md#apg-version-info-psql) 절차에서 이 함수를 사용하는 예를 찾을 수 있습니다.

다음 표에는 Aurora PostgreSQL 및 Babelfish 버전과 마이너 버전 업그레이드 절차를 지원할 수 있는 사용 가능한 대상 버전이 나와 있습니다.


| 현재 소스 버전 | 최신 업그레이드 대상 | 
| --- | --- | 
| Aurora PostgreSQL(Babelfish)  | Aurora PostgreSQL(Babelfish)  | 
|  17.4(5.1)  |  17.5(5.2)  | 
|  16.8(4.5)  |  16.9(4.6)  | 
|  16.6(4.4.0)  |  16.9(4.6), 16.8(4.5.0)  | 
|  16.4(4.3.0)  |  16.9(4.6), 16.8(4.5.0), 16.6(4.4.0)  | 
|  16.3(4.2.0)  |  16.9(4.6), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0)  | 
|  16.2(4.1.0)  |  16.9(4.6), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0)  | 
|  16.1(4.0.0)  |  16.9(4.6), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0)  | 
|  15.12(3.9.0)  |  15.13(3.10)  | 
|  15.10(3.8.0)  |  15.13(3.10), 15.12(3.9.0)  | 
|  15.8(3.7.0)  |  15.13(3.10), 15.12(3.9.0), 15.10(3.8.0)  | 
|  15.7(3.6.0)  |  15.13(3.10), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0)  | 
|  15.6(3.5.0)  |  15.13(3.10), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0), 15.7(3.6.0)  | 
|  15.5(3.4.0)  |  15.13(3.10), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0)  | 
|  15.4(3.3.0)  |  15.13(3.10), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0)  | 
|  15.12(3.9.0), 15.3(3.2.0)  |  15.13(3.10), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0), 15.4(3.3.0)  | 
|  15.2(3.1.0)  |  15.13(3.10), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0), 15.4(3.3.0), 15.3(3.2.0)  | 
|  14.17(2.12.0)  |  14.18(2.13.0)  | 
|  14.15(2.11.0)  |  14.18(2.13.0), 14.17(2.12.0)  | 
|  14.13(2.10.0)  |  14.18(2.13.0), 14.17(2.12.0), 14.15(2.11.0)  | 
|  14.12(2.9.0)  |  14.18(2.13.0), 14.17(2.12.0), 14.15(2.11.0), 14.13(2.10.0)  | 
|  14.11(2.8.0)  |  14.18(2.13.0), 14.17(2.12.0), 14.15(2.11.0), 14.13(2.10.0), 14.12(2.9.0)  | 
|  14.10(2.7.0)  | 14.18(2.13.0), 14.17(2.12.0), 14.15(2.11.0), 14.13(2.10.0), 14.12(2.9.0), 14.11(2.8.0) | 
|  14.9(2.6.0)  |  14.18(2.13.0), 14.17(2.12.0), 14.15(2.11.0), 14.13(2.10.0), 14.12(2.9.0), 14.11(2.8.0), 14.10(2.7.0)  | 
|  14.8(2.5.0)  |  14.18(2.13.0), 14.17(2.12.0), 14.15(2.11.0), 14.13(2.10.0), 14.12(2.9.0), 14.11(2.8.0), 14.10(2.7.0), 14.9(2.6.0)  | 
|  14.7(2.4.0)  |  14.18(2.13.0), 14.17(2.12.0), 14.15(2.11.0), 14.13(2.10.0), 14.12(2.9.0), 14.11(2.8.0), 14.10(2.7.0), 14.9(2.6.0), 14.8(2.5.0)  | 
|  14.6(2.3.0)  |  14.18(2.13.0), 14.17(2.12.0), 14.15(2.11.0), 14.13(2.10.0), 14.12(2.9.0), 14.11(2.8.0), 14.10(2.7.0), 14.9(2.6.0), 14.8(2.5.0), 14.7(2.4.0)  | 
|  14.5(2.2.0)  |  14.18(2.13.0), 14.17(2.12.0), 14.15(2.11.0), 14.13(2.10.0), 14.12(2.9.0), 14.11(2.8.0), 14.10(2.7.0), 14.9(2.6.0), 14.8(2.5.0), 14.7(2.4.0), 14.6(2.3.0)  | 
|  14.3(2.1.0)  |  14.18(2.13.0), 14.6(2.3.0)  | 
|  13.8(1.4.0)  |  13.9(1.5.0)  | 
|  13.7(1.3.0)  |  13.9(1.5.0), 13.8(1.4.0)  | 

# Babelfish를 새 메이저 버전으로 업그레이드
<a name="babelfish-information-upgrading-major"></a>

메이저 버전 업그레이드에서는 먼저 Babelfish for Aurora PostgreSQL DB 클러스터를 메이저 버전 업그레이드를 지원하는 버전으로 업그레이드해야 합니다. 이를 위해서 패치 업데이트 또는 마이너 버전 업그레이드를 DB 클러스터에 적용하세요. 자세한 내용은 [Babelfish를 새 마이너 버전으로 업그레이드](babelfish-information-upgrading-minor.md)를 참조하세요.

다음 테이블에는 메이저 버전 업그레이드를 지원할 수 있는 Aurora PostgreSQL 버전과 Babelfish 버전이 나와 있습니다.


| 현재 소스 버전 | 최신 업그레이드 대상 | 
| --- | --- | 
| Aurora PostgreSQL(Babelfish)  | Aurora PostgreSQL(Babelfish)  | 
|  16.9(4.6.0)  |  17.5(5.2.0)  | 
|  16.8(4.5.0)  |  17.5(5.2.0), 17.4(5.1.0)  | 
|  16.6(4.4.0)  |  17.5(5.2.0), 17.4(5.1.0)  | 
|  16.4(4.3.0)  |  17.5(5.2.0), 17.4(5.1.0)  | 
|  16.3(4.2.0)  |  17.5(5.2.0), 17.4(5.1.0)  | 
|  16.2(4.1.0)  |  17.5(5.2.0), 17.4(5.1.0)  | 
|  16.1(4.0.0)  |  17.5(5.2.0), 17.4(5.1.0)  | 
|  15.13(3.10)  |  17.5(5.2.0) 16.9(4.6.0)  | 
|  15.12(3.9.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0)  | 
|  15.10(3.8.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0)  | 
|  15.8(3.7.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0)  | 
|  15.7(3.6.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0)  | 
|  15.6(3.5.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0)  | 
|  15.5(3.4.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)  | 
|  15.4(3.3.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)  | 
|  15.3(3.2.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)  | 
|  15.2(3.1.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0)  | 
|  14.18(2.13.0)  |  17.5(5.2.0) 16.9(4.6.0) 15.13(3.10.0)  | 
|  14.17(2.12.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0) 15.13(3.10.0), 15.12(3.9.0)  | 
|  14.15(2.11.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0) 15.13(3.10.0), 15.12(3.9.0), 15.10(3.8.0)  | 
|  14.13(2.10.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0) 15.13(3.10.0), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0)  | 
|  14.12(2.9.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0) 15.13(3.10.0), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0), 15.7(3.6.0)  | 
|  14.11(2.8.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0) 15.13(3.10.0), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0)  | 
|  14.10(2.7.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0) 15.13(3.10.0), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0)  | 
|  14.9(2.6.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0) 15.13(3.10.0), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0), 15.4(3.3.0)  | 
|  14.8(2.5.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0) 15.13(3.10.0), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0), 15.4(3.3.0), 15.3(3.2.0)  | 
|  14.7(2.4.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0) 15.13(3.10.0), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0), 15.4(3.3.0), 15.3(3.2.0), 15.2(3.1.0)  | 
|  14.6(2.3.0)  |  17.5(5.2.0), 17.4(5.1.0) 16.9(4.6.0), 16.8(4.5.0), 16.6(4.4.0), 16.4(4.3.0), 16.3(4.2.0), 16.2(4.1.0), 16.1(4.0.0) 15.13(3.10.0), 15.12(3.9.0), 15.10(3.8.0), 15.8(3.7.0), 15.7(3.6.0), 15.6(3.5.0), 15.5(3.4.0), 15.4(3.3.0), 15.3(3.2.0), 15.2(3.1.0)  | 
|  13.9(1.5.0)  |  14.6(2.3.0)  | 
|  13.8(1.4.0)  | 14.6(2.3.0) | 
|  13.7(1.3.0)  |  14.6(2.3.0)  | 

## Babelfish를 새 메이저 버전으로 업그레이드하기 전
<a name="babelfish-information-upgrading-preliminary"></a>

업그레이드하는 과정에서 일시적인 중단이 발생할 수 있습니다. 따라서 유지 관리 기간 동안 또는 사용량이 많지 않은 기간에 업그레이드를 수행하거나 예약하는 것이 좋습니다.

**메이저 버전 업그레이드를 수행하기 전**

 

1. [사용 중인 Babelfish 버전 식별](babelfish-information-identify-version.md)에 나와 있는 명령을 사용하여 기존 Aurora PostgreSQL DB 클러스터의 Babelfish 버전을 식별합니다. Aurora PostgreSQL 버전 및 Babelfish 버전 정보는 PostgreSQL에서 처리하므로 [To use the PostgreSQL port to query for version information](babelfish-information-identify-version.md#apg-version-info-psql) 절차에 설명된 단계에 따라 세부 정보를 가져옵니다.

1. 사용 중인 버전이 메이저 버전 업그레이드를 지원하는지 확인합니다. 메이저 버전 업그레이드 기능을 지원하는 버전 목록은 [Babelfish를 새 마이너 버전으로 업그레이드](babelfish-information-upgrading-minor.md)를 참조하여 필요한 사전 업그레이드 작업을 수행하세요.

    예를 들어 Babelfish 버전이 Aurora PostgreSQL 13.5 DB 클러스터에서 실행 중이고 Aurora PostgreSQL 15.2로 업그레이드하려는 경우 먼저 모든 마이너 릴리스 및 패치를 적용하여 클러스터를 Aurora PostgreSQL 14.6 이상 버전으로 업그레이드하세요. 클러스터 버전이 14.6 이상이면 메이저 버전 업그레이드 절차를 계속 진행합니다.

1. 현재 Babelfish DB 클러스터의 수동 스냅샷을 백업으로 생성합니다. 백업을 통해 클러스터를 Aurora PostgreSQL 버전, Babelfish 버전으로 복원하고 모든 데이터를 업그레이드 전 상태로 복원할 수 있습니다. 자세한 내용은 [DB 클러스터 스냅샷 생성](USER_CreateSnapshotCluster.md) 섹션을 참조하세요. 이 클러스터를 업그레이드 전 상태로 복원하려면 기존 사용자 지정 DB 클러스터 파라미터 그룹을 다시 사용할 수 있도록 유지해야 합니다. 자세한 내용은 [DB 클러스터 스냅샷에서 복원](aurora-restore-snapshot.md) 및 [파라미터 그룹 고려 사항](aurora-restore-snapshot.md#aurora-restore-snapshot.Parameters)(을)를 참조하세요.

1. 대상 Aurora PostgreSQL DB 버전에 대한 사용자 지정 DB 클러스터 파라미터 그룹을 준비합니다. 현재 Babelfish for Aurora PostgreSQL DB 클러스터에서 Babelfish 파라미터 설정을 복제합니다. 모든 Babelfish 파라미터 목록을 보려면 [Babelfish용 DB 클러스터 파라미터 그룹 설정](babelfish-configuration.md)을 참조하세요. 메이저 버전 업그레이드에서 다음 파라미터에 소스 DB 클러스터와 동일한 설정이 필요합니다. 업그레이드에 성공하려면 모든 설정이 동일해야 합니다.
   + rds.babelfish\$1status
   + babelfishpg\$1tds.tds\$1default\$1numeric\$1precision
   + babelfishpg\$1tds.tds\$1default\$1numeric\$1scale
   + babelfishpg\$1tsql.database\$1name
   + babelfishpg\$1tsql.default\$1locale
   + babelfishpg\$1tsql.migration\$1mode
   + babelfishpg\$1tsql.server\$1collation\$1name
**주의**  
새 Aurora PostgreSQL 버전에 대한 사용자 지정 DB 클러스터 파라미터 그룹의 Babelfish 파라미터 설정이 업그레이드 중인 클러스터의 파라미터 값과 일치하지 않으면 `ModifyDBCluster` 작업이 실패합니다. AWS Management Console 또는 `modify-db-cluster` AWS CLI 명령에서 나온 출력값에 `InvalidParameterCombination` 오류 메시지가 나타납니다.

1. AWS Management Console 또는 AWS CLI에서 사용자 지정 DB 클러스터 파라미터 그룹을 생성합니다. 업그레이드하려는 Aurora PostgreSQL 버전에 해당하는 Aurora PostgreSQL 패밀리를 선택합니다.
**작은 정보**  
파라미터 그룹은 AWS 리전 수준에서 관리됩니다. AWS CLI로 작업할 때 명령에서 `--region`을 지정하는 대신 기본 리전으로 구성할 수 있습니다. AWS CLI 사용에 대한 자세한 내용은 **AWS Command Line Interface사용 설명서의 [빠른 설정](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html)을 참조하세요.

## 메이저 버전 업그레이드 수행
<a name="babelfish-performing-major-version-upgrade"></a>

1. Aurora PostgreSQL DB 클러스터를 새 메이저 버전으로 업그레이드합니다. 자세한 내용은 [Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.Upgrading.Manual) 섹션을 참조하세요.

1. 파라미터 설정을 적용할 수 있도록 클러스터의 라이터 인스턴스를 재부팅합니다.

## 새 메이저 버전으로 업그레이드한 후
<a name="babelfish-information-upgrading-post-upgrade"></a>

새 Aurora PostgreSQL 버전으로 메이저 버전을 업그레이드한 후 `IDENTITY` 열이 있는 테이블의 `IDENTITY` 값은 업그레이드 전 값보다 클 수 있습니다(\$132). 따라서 다음 행이 이러한 테이블에 삽입될 때 생성된 ID 열 값이 \$132 숫자로 이동하고 거기에서 시퀀스를 시작합니다. 이 조건은 Babelfish DB 클러스터의 기능에 부정적인 영향을 미치지 않습니다. 하지만 원하는 경우 열의 최대값을 기준으로 시퀀스 객체를 재설정할 수 있습니다. 그러려면 `sqlcmd` 또는 다른 SQL Server 클라이언트를 사용하여 Babelfish 작성자 인스턴스의 T-SQL 포트에 연결합니다. 자세한 내용은 [SQL Server 클라이언트 도구를 사용하여 DB 클러스터에 연결](babelfish-connect-sqlserver.md) 섹션을 참조하세요.

```
sqlcmd -S bfish-db.cluster-123456789012.aws-region.rds.amazonaws.com,1433 -U
     sa -P ******** -d dbname
```

연결되면 다음 SQL 명령을 사용하여 연결된 시퀀스 객체를 시드하는 데 사용할 수 있는 문을 생성합니다. 이 SQL 명령은 단일 데이터베이스 및 다중 데이터베이스 Babelfish 구성 모두에서 작동합니다. 이러한 두 가지 배포 모델에 대한 자세한 내용은 [단일 데이터베이스 또는 여러 데이터베이스에서 Babelfish 사용](babelfish-architecture.md#babelfish-single_vs_multi_db)을 참조하세요.

```
DECLARE @schema_prefix NVARCHAR(200) = ''
IF current_setting('babelfishpg_tsql.migration_mode') = 'multi-db'
    SET @schema_prefix = db_name() + '_'
SELECT 'SELECT setval(pg_get_serial_sequence(''' + @schema_prefix + schema_name(tables.schema_id)
    + '.' + tables.name + ''', ''' + columns.name + '''),(select max(' + columns.name + ')
    FROM ' + schema_name(tables.schema_id) + '.' + tables.name + '));
    'FROM sys.tables tables JOIN sys.columns
    columns ON tables.object_id = columns.object_id
    WHERE columns.is_identity = 1
GO
```

쿼리는 최대 IDENTITY 값을 재설정하고 간격을 좁히기 위해 실행할 수 있는 일련의 SELECT 문을 생성합니다. 다음은 Babelfish 클러스터에서 실행되는 샘플 SQL Server 데이터베이스인 Northwind를 사용할 때 나오는 출력값을 보여줍니다.

```
--------------------------------------------------------
SELECT setval(pg_get_serial_sequence('northwind_dbo.categories', 'categoryid'),(select max(categoryid)
    FROM dbo.categories));

SELECT setval(pg_get_serial_sequence('northwind_dbo.orders', 'orderid'),(select max(orderid)
    FROM dbo.orders));
                                                                                                                        
SELECT setval(pg_get_serial_sequence('northwind_dbo.products', 'productid'),(select max(productid)
    FROM dbo.products));
                                                                                                                        
SELECT setval(pg_get_serial_sequence('northwind_dbo.shippers', 'shipperid'),(select max(shipperid)
    FROM dbo.shippers));
                                                                                                                        
SELECT setval(pg_get_serial_sequence('northwind_dbo.suppliers', 'supplierid'),(select max(supplierid)
    FROM dbo.suppliers));
                                                                                                                        
(5 rows affected)
```

명령문을 하나씩 실행하여 시퀀스 값을 재설정합니다.

## 예: Babelfish DB 클러스터를 메이저 릴리스로 업그레이드
<a name="babelfish-information-upgrading-example"></a>

 이 예시에서는 Babelfish 버전 1.2.2를 실행하는 Aurora PostgreSQL 13.6.4 DB 클러스터를 Aurora PostgreSQL 14.6으로 업그레이드하는 방법을 설명하는 일련의 AWS CLI 명령을 확인할 수 있습니다. 먼저 Aurora PostgreSQL 14에 사용할 사용자 지정 DB 클러스터 파라미터 그룹을 생성합니다. 다음으로 Aurora PostgreSQL 버전 13 소스의 파라미터 값과 일치하도록 파라미터 값을 수정합니다. 마지막으로 소스 클러스터를 수정하여 업그레이드를 수행합니다. 자세한 내용은 [Babelfish용 DB 클러스터 파라미터 그룹 설정](babelfish-configuration.md) 섹션을 참조하세요. 해당 주제에서는 AWS Management Console에서 업그레이드를 수행하는 방법에 대한 내용도 찾을 수 있습니다.

[create-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster-parameter-group.html) CLI 명령을 사용하여 새 버전에 사용할 DB 클러스터 파라미터 그룹을 생성합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds create-db-cluster-parameter-group \
    --db-cluster-parameter-group-name docs-lab-babelfish-apg-14 \
    --db-parameter-group-family aurora-postgresql14 \
    --description 'New custom parameter group for upgrade to new major version' \
    --region us-west-1
```

이 명령을 실행하면 사용자 지정 DB 클러스터 파라미터 그룹이 AWS 리전에 생성됩니다. 출력은 다음과 비슷합니다.

```
{
    "DBClusterParameterGroup": {
        "DBClusterParameterGroupName": "docs-lab-babelfish-apg-14",
        "DBParameterGroupFamily": "aurora-postgresql14",
        "Description": "New custom parameter group for upgrade to new major version",
        "DBClusterParameterGroupArn": "arn:aws:rds:us-west-1:111122223333:cluster-pg:docs-lab-babelfish-apg-14"
    }
}
```

자세한 내용은 [Amazon Aurora에서 DB 클러스터 파라미터 그룹 생성](USER_WorkingWithParamGroups.CreatingCluster.md) 섹션을 참조하세요.

[modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html) CLI 명령을 사용하여 소스 클러스터와 일치하도록 설정을 수정합니다.

Windows의 경우:

```
aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name docs-lab-babelfish-apg-14 ^
  --parameters "ParameterName=rds.babelfish_status,ParameterValue=on,ApplyMethod=pending-reboot" ^
 "ParameterName=babelfishpg_tds.tds_default_numeric_precision,ParameterValue=38,ApplyMethod=pending-reboot" ^
 "ParameterName=babelfishpg_tds.tds_default_numeric_scale,ParameterValue=8,ApplyMethod=pending-reboot" ^
 "ParameterName=babelfishpg_tsql.database_name,ParameterValue=babelfish_db,ApplyMethod=pending-reboot" ^
 "ParameterName=babelfishpg_tsql.default_locale,ParameterValue=en-US,ApplyMethod=pending-reboot" ^
 "ParameterName=babelfishpg_tsql.migration_mode,ParameterValue=single-db,ApplyMethod=pending-reboot" ^
 "ParameterName=babelfishpg_tsql.server_collation_name,ParameterValue=sql_latin1_general_cp1_ci_as,ApplyMethod=pending-reboot"
```

응답은 다음과 비슷합니다.

```
{
    "DBClusterParameterGroupName": "docs-lab-babelfish-apg-14"
}
```

[modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) CLI 명령을 사용하여 새 버전과 새 사용자 지정 DB 클러스터 파라미터 그룹을 사용하도록 클러스터를 수정합니다. 다음 샘플과 같이 `--allow-major-version-upgrade` 인수도 지정합니다.

```
aws rds modify-db-cluster \
--db-cluster-identifier docs-lab-bfish-apg-14 \
--engine-version 14.6 \
--db-cluster-parameter-group-name docs-lab-babelfish-apg-14 \
--allow-major-version-upgrade \
--region us-west-1 \
--apply-immediately
```

파라미터 설정을 적용할 수 있도록 [reboot-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/reboot-db-instance.html) CLI 명령을 사용하여 클러스터의 라이터 인스턴스를 재부팅합니다.

```
aws rds reboot-db-instance \
--db-instance-identifier docs-lab-bfish-apg-14-instance-1\
--region us-west-1
```

# Babelfish 제품 버전 파라미터 사용
<a name="babelfish-guc-version"></a>

 `babelfishpg_tds.product_version`이라는 새로운 Grand Unified Configuration(GUC) 파라미터가 Babelfish 2.4.0 및 3.1.0 버전에서 도입되었습니다. 이 파라미터를 사용하면 SQL Server 제품 버전 번호를 Babelfish의 출력으로 설정할 수 있습니다.

이 파라미터는 4부분으로 구성된 버전 ID 문자열이며, 각 부분은 “.”로 구분해야 합니다.

구문  

```
Major.Minor.Build.Revision
```
+ 메이저 버전: 11에서 16 사이의 숫자.
+ 메이저 버전: 0에서 255 사이의 숫자.
+ 빌드 버전: 0에서 65535 사이의 숫자.
+ 개정: 0 및 양수.

## Babelfish 제품 버전 파라미터 구성
<a name="babelfish-guc-version-setvalues"></a>

클러스터 파라미터 그룹을 사용하여 콘솔에서 babelfishpg\$1tds.product\$1version 파라미터를 설정해야 합니다. DB 클러스터 파라미터 수정 방법에 대한 자세한 내용은 [Amazon Aurora에서 DB 클러스터 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.ModifyingCluster.md) 섹션을 참조하세요.

제품 버전 파라미터를 잘못된 값으로 설정하면 변경 사항이 적용되지 않습니다. 콘솔에 새 값이 표시되더라도 파라미터는 이전 값을 유지합니다. 오류 메시지의 자세한 내용을 보려면 엔진 로그 파일을 확인하세요.

대상 LinuxmacOS, 또는Unix:

```
aws rds modify-db-cluster-parameter-group \
--db-cluster-parameter-group-name mydbparametergroup \
--parameters "ParameterName=babelfishpg_tds.product_version,ParameterValue=15.2.4000.1,ApplyMethod=immediate"
```

Windows의 경우:

```
aws rds modify-db-cluster-parameter-group ^
--db-cluster-parameter-group-name mydbparametergroup ^
--parameters "ParameterName=babelfishpg_tds.product_version,ParameterValue=15.2.4000.1,ApplyMethod=immediate"
```

## 영향을 받는 쿼리 및 파라미터
<a name="babelfish-guc-version-affects"></a>


|  쿼리/파라미터  |  결과  |  유효 시간  | 
| --- | --- | --- | 
|   SELECT @@VERSION   |   사용자 정의 SQL 서버 버전(babelfishpg\$1tsql.version value = 기본값)을 반환함   |   즉시   | 
|   SELECT SERVERPROPERTY('ProductVersion')   |   사용자 정의 SQL Server 버전을 반환함   |   즉시   | 
|   SELECT SERVERPROPERTY('ProductMajorVersion')   |   사용자 정의 SQL Server 버전의 메이저 버전을 반환함   |   즉시   | 
|   PRELOGIN 응답 메시지의 VERSION 토큰   |   서버가 사용자 정의 SQL Server 버전과 함께 PRELOGIN 메시지를 반환함   |   사용자가 새 세션을 만들 때 적용됨   | 
|   JDBC 사용 시 LoginAck의 SQLServerVersion   |   DatabaseMetaData.getDatabaseProductVersion()은 사용자 정의 SQL Server 버전을 반환함   |   사용자가 새 세션을 만들 때 적용됨   | 

## babelfishpg\$1tsql.version 파라미터가 있는 인터페이스
<a name="babelfish-guc-version-tsql"></a>

babelfishpg\$1tsql.version 및 babelfishpg\$1tds.product\$1version 파라미터를 사용하여 @@VERSION의 출력을 설정할 수 있습니다. 다음 예시는 이 두 가지 파라미터가 어떤 방식으로 상호 작용하는지 보여줍니다.
+ babelfishpg\$1tsql.version 파라미터가 '기본값'이고 babelfishpg\$1tds.product\$1version이 15.0.2000.8인 경우.
  +  @@version의 출력 — 15.0.2000.8.
+ babelfishpg\$1tsql.version 파라미터가 13.0.2000.8로 설정되어 있고 babelfishpg\$1tds.product\$1version 파라미터가 15.0.2000.8로 설정된 경우.
  + @@version의 출력 — 13.0.2000.8.

# Babelfish for Aurora PostgreSQL 참조
<a name="USER_AuroraPostgreSQL_Babelfish_Reference"></a>

**Topics**
+ [버전별 Babelfish에서 지원되는 기능](babelfish-compatibility.supported-functionality-table.md)
+ [Babelfish에서 지원되지 않는 기능](babelfish-compatibility.tsql.limitations-unsupported.md)
+ [Babelfish for Aurora PostgreSQL 작업 절차](Appendix.Babelfish.Functions.md)
+ [Babelfish에서 XML 데이터 유형 메서드 지원](babelfish-xml-datatype-methods.md)

# 버전별 Babelfish에서 지원되는 기능
<a name="babelfish-compatibility.supported-functionality-table"></a>

다음 테이블에서는 다양한 Babelfish 버전에서 지원되는 모든 기능 목록을 찾아볼 수 있습니다. 지원되지 않는 기능 목록은 [Babelfish에서 지원되지 않는 기능](babelfish-compatibility.tsql.limitations-unsupported.md) 단원을 참조하세요. 다양한 Babelfish 릴리스에 대한 내용은 [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html)를 참조하세요.

## Aurora 및 PostgreSQL 기능
<a name="babelfish-compatibility.supported-functionality-table-apg"></a>

다음 테이블에서는 다양한 Babelfish 버전에서 지원되는 Aurora 및 PostgreSQL 기능을 찾아볼 수 있습니다.


| Aurora 및 PostgreSQL 기능 | 5.2.0 | 5.1.0 | 4.6.0 | 4.5.0 | 4.4.0 | 4.3.0 | 4.2.0 | 4.1.0 | 4.0.0 | 3.10.0 | 3.9.0 | 3.8.0 | 3.7.0 | 3.6.0 | 3.5.0 | 3.4.0 | 3.3.0 | 3.2.0 | 3.1.0 | 2.13.0 | 2.12.0 | 2.11.0 | 2.10.0 | 2.9.0 | 2.8.0 | 2.7.0 | 2.6.0 | 2.5.0 | 2.4.0 | 2.3.0 | 2.2.0 | 2.1.0 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| Aurora ML 서비스 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| Directory Service를 사용하여 Kerberos로 데이터베이스 인증 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| 덤프 및 복원 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| pg\$1stat\$1statement 확장으로 데이터베이스를 이동하는 pg\$1dump/pg\$1restore 유틸리티 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| pgvector | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| 제로 가동 중지 패치 적용(ZDP) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 

## T-SQL 기능 또는 구문
<a name="babelfish-compatibility.supported-functionality-table-tsql"></a>

다음 테이블에서는 다양한 Babelfish 버전에서 지원되는 T-SQL 기능 또는 구문을 찾아볼 수 있습니다.


| T-SQL 기능 또는 구문 | 5.2.0 | 5.1.0 | 4.6.0 | 4.5.0 | 4.4.0 | 4.3.0 | 4.2.0 | 4.1.0 | 4.0.0 | 3.10.0 | 3.9.0 | 3.8.0 | 3.7.0 | 3.6.0 | 3.5.0 | 3.4.0 | 3.3.0 | 3.2.0 | 3.1.0 | 2.13.0 | 2.12.0 | 2.11.0 | 2.10.0 | 2.9.0 | 2.8.0 | 2.7.0 | 2.6.0 | 2.5.0 | 2.4.0 | 2.3.0 | 2.2.0 | 2.1.0 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| SELECT 문에 대해 4부분으로 구성된 객체 이름 참조 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| 데이터베이스 소유자를 변경하기 위한 ALTER AUTHORIZATION 구문 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| ALTER DATABASE <db\$1name> MODIFY NAME = <new\$1db\$1name> | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| ALTER FUNCTION | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg) 아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| ALTER PROCEDURE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| 역할 변경 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| ALTER USER...WITH LOGIN | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| ALTER VIEW | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| CREATE FUNCTION의 AS 키워드 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| AT TIME ZONE 절 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| 연결된 서버로서의 Babelfish 인스턴스 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| 비교 연산자 \$1< and \$1> | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| CREATE INDEX ... ON partition\$1scheme\$1name (partition\$1column\$1name) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SQL Server 뷰에서 트리거 대신 생성(DML) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| CREATE PARTITION FUNCTION | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| CREATE PARTITION SCHEME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| CREATE ROLE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| CREATE TABLE ... ON partition\$1scheme\$1name (partition\$1column\$1name) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| CREATE TRIGGER | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| CREATE OR ALTER VIEW | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| 고유 인덱스 생성 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| 데이터베이스 간 프로시저 실행 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| 데이터베이스 간 참조 SELECT, INSERT, UPDATE, DELETE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| 커서로 입력된 파라미터는 입력 파라미터에만 해당(출력은 아님) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| bcp 클라이언트 유틸리티를 사용한 데이터 마이그레이션 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| TIMESTAMP, ROWVERSION 데이터 유형(사용 정보는 구현이 제한된 기능 참조) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| 저장 프로시저 및 함수 직접 호출 시 DEFAULT 키워드 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DBCC CHECKIDENT | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DROP DATABASE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DROP IF EXISTS(SCHEMA, DATABASE, USER 객체의 경우) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| DROP INDEX 인덱스 ON schema.table | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DROP INDEX schema.table.index | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DROP PARTITION FUNCTION | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DROP PARTITION SCHEME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DROP ROLE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| ENABLE/DISABLE TRIGGER | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| FULL TEXT SEARCH | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| CONTAINS 절을 사용한 전체 텍스트 검색 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| 지오메트리 및 지리 공간 데이터 유형 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| GRANT | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| GRANT 권한 [ ,...n ] ON SCHEMA | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| GUC babelfishpg\$1tds.product\$1version | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| 선행 도트 문자가 있는 식별자 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| 테이블의 INSTEAD OF 트리거 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| 뷰의 INSTEAD OF 트리거 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| KILL | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| \$1PARTITION.partition\$1function\$1name(partition\$1column\$1value) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| PIVOT(4.4.0 및 3.8.0의 뷰 정의에서 사용, 3.4.0의 공통 테이블 표현식, 3.4.0의 조인) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| REVOKE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| REVOKE 권한 [ ,...n ] ON SCHEMA | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SELECT...OFFSET...FETCH 절 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SELECT FOR JSON AUTO | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SET BABELFISH\$1SHOWPLAN\$1ALL ON(및 OFF) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| SET BABELFISH\$1STATISTICS PROFILE ON(OFF) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| SET CONTEXT\$1INFO | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SET LOCK\$1TIMEOUT | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| SET NO\$1BROWSETABLE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SET 행 수 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SET SHOWPLAN\$1ALL | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SET STATISTICS IO | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SET TRANSACTION ISOLATION LEVEL REPEATABLE READ | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SET TRANSACTION ISOLATION LEVEL SERIALIZABLE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SET TRANSACTION ISOLATION LEVEL 구문 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SSMS: 객체 탐색기 연결 대화 상자를 사용하여 연결 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| SSMS: 가져오기/내보내기 마법사를 통한 데이터 마이그레이션 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| SSMS: 객체 탐색기에 대한 일부 지원 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| STDEV | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| STDEVP | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| 여러 DML 작업이 있는 트리거는 전환 테이블 참조 가능 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| T-SQL 힌트(조인 메서드, 인덱스 사용, MAXDOP) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| LIKE 조건자를 사용한 T-SQL 대괄호 구문 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| UNPIVOT | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| 저장 프로시저 호출의 따옴표 없는 문자열 값 및 기본값 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| VAR | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| VARP | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 

## T-SQL 기본 제공 함수
<a name="babelfish-compatibility.supported-functionality-table-builtin"></a>

다음 테이블에서는 다양한 Babelfish 버전에서 지원되는 T-SQL 기본 제공 함수를 찾아볼 수 있습니다.


| T-SQL 기본 제공 함수 | 5.2.0 | 5.1.0 | 4.6.0 | 4.5.0 | 4.4.0 | 4.3.0 | 4.2.0 | 4.1.0 | 4.0.0 | 3.10.0 | 3.9.0 | 3.8.0 | 3.7.0 | 3.6.0 | 3.5.0 | 3.4.0 | 3.3.0 | 3.2.0 | 3.1.0 | 2.13.0 | 2.12.0 | 2.11.0 | 2.10.0 | 2.9.0 | 2.8.0 | 2.7.0 | 2.6.0 | 2.5.0 | 2.4.0 | 2.3.0 | 2.2.0 | 2.1.0 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| APP\$1NAME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| ATN2 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| CHARINDEX | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| CHOOSE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| COL\$1LENGTH | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| COL\$1NAME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| COLUMNS\$1UPDATED | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| COLUMNPROPERTY(CharMaxLen, AllowsNull만) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| CONCAT\$1WS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| CONTEXT\$1INFO | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| CURSOR\$1STATUS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| DATABASE\$1PRINCIPAL\$1ID | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DATEADD | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DATEDIFF | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DATEDIFF\$1BIG | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DATEFROMPARTS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| DATENAME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DATEPART | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DATETIMEFROMPARTS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| DATETIME2FROMPARTS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DATETIMEOFFSETFROMPARTS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DATETRUNC | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| DATE\$1BUCKET | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| EOMONTH | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| EXECUTE AS CALLER | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| fn\$1listextendedproperty | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| FOR JSON | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| FULLTEXTSERVICEPROPERTY | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| HAS\$1DBACCESS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| HAS\$1PERMS\$1BY\$1NAME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| HOST\$1NAME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| HOST\$1ID | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| IDENTITY | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| IS\$1MEMBER | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| IS\$1ROLEMEMBER | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| IS\$1SRVROLEMEMBER | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| ISJSON | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| JSON\$1MODIFY | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| JSON\$1QUERY | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| JSON\$1VALUE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| NEXT VALUE FOR | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| OBJECT\$1DEFINITION | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| OBJECT\$1SCHEMA\$1NAME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| OPENJSON | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| OPENQUERY | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| ORIGINAL\$1LOGIN | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| PARSENAME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| PATINDEX | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| ROWCOUNT\$1BIG | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SCHEMA\$1NAME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| SESSION\$1CONTEXT | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SESSION\$1USER | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| SID\$1BINARY(항상 NULL 반환) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SMALLDATETIMEFROMPARTS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SQUARE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| STR | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| STRING\$1AGG | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| STRING\$1SPLIT | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| SUSER\$1SID | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| SUSER\$1SNAME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| SWITCHOFFSET | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| SYSTEM\$1USER | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| TIMEFROMPARTS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| TODATETIMEOFFSET | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| TO\$1CHAR | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| TRIGGER\$1NESTLEVEL(인수 제외 시에만) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| TRY\$1CONVERT | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| TYPE\$1ID | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| TYPE\$1NAME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| UPDATE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 

## T-SQL INFORMATION\$1SCHEMA 카탈로그
<a name="babelfish-compatibility.supported-functionality-table-schema"></a>

다음 테이블에서는 다양한 Babelfish 버전에서 지원되는 SQL INFORMATION\$1SCHEMA 카탈로그를 찾아볼 수 있습니다.


| T-SQL INFORMATION\$1SCHEMA 카탈로그 | 5.2.0 | 5.1.0 | 4.6.0 | 4.5.0 | 4.4.0 | 4.3.0 | 4.2.0 | 4.1.0 | 4.0.0 | 3.10.0 | 3.9.0 | 3.8.0 | 3.7.0 | 3.6.0 | 3.5.0 | 3.4.0 | 3.3.0 | 3.2.0 | 3.1.0 | 2.13.0 | 2.12.0 | 2.11.0 | 2.10.0 | 2.9.0 | 2.8.0 | 2.7.0 | 2.6.0 | 2.5.0 | 2.4.0 | 2.3.0 | 2.2.0 | 2.1.0 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| CHECK\$1CONSTRAINTS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| COLUMN\$1DOMAIN\$1USAGE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| COLUMNS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| CONSTRAINT\$1COLUMN\$1USAGE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| DOMAINS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| KEY\$1COLUMN\$1USAGE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| ROUTINES | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| TABLES | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| TABLE\$1CONSTRAINTS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| VIEWS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 

## T-SQL 시스템 정의 @@ 변수
<a name="babelfish-compatibility.supported-functionality-table-var"></a>

다음 테이블에서는 다양한 Babelfish 버전에서 지원되는 T-SQL 시스템 정의 @@ 변수를 찾아볼 수 있습니다.


| T-SQL 시스템 정의 @@ 변수 | 5.2.0 | 5.1.0 | 4.6.0 | 4.5.0 | 4.4.0 | 4.3.0 | 4.2.0 | 4.1.0 | 4.0.0 | 3.10.0 | 3.9.0 | 3.8.0 | 3.7.0 | 3.6.0 | 3.5.0 | 3.4.0 | 3.3.0 | 3.2.0 | 3.1.0 | 2.13.0 | 2.12.0 | 2.11.0 | 2.10.0 | 2.9.0 | 2.8.0 | 2.7.0 | 2.6.0 | 2.5.0 | 2.4.0 | 2.3.0 | 2.2.0 | 2.1.0 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| @@CURSOR\$1ROWS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@DATEFIRST | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@DBTS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@ERROR | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@ERROR=213 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@FETCH\$1STATUS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@IDENTITY | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@LANGUAGE | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@LOCK\$1TIMEOUT | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@MAX\$1CONNECTIONS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@MAX\$1PRECISION | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@MICROSOFTVERSION | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@NESTLEVEL | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@PROCID | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@ROWCOUNT | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@SERVERNAME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@SERVICENAME | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@SPID | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@TRANCOUNT | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| @@VERSION([Babelfish에서의 T-SQL 차이점](babelfish-compatibility.tsql.limitations.md)에 설명된 형식 차이에 유의) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 

## T-SQL 시스템 저장 프로시저
<a name="babelfish-compatibility.supported-functionality-table-proc"></a>

다음 테이블에서는 다양한 Babelfish 버전에서 지원되는 T-SQL 시스템 저장 프로시저를 찾아볼 수 있습니다.


| T-SQL 시스템 저장 프로시저 | 5.2.0 | 5.1.0 | 4.6.0 | 4.5.0 | 4.4.0 | 4.3.0 | 4.2.0 | 4.1.0 | 4.0.0 | 3.10.0 | 3.9.0 | 3.8.0 | 3.7.0 | 3.6.0 | 3.5.0 | 3.4.0 | 3.3.0 | 3.2.0 | 3.1.0 | 2.13.0 | 2.12.0 | 2.11.0 | 2.10.0 | 2.9.0 | 2.8.0 | 2.7.0 | 2.6.0 | 2.5.0 | 2.4.0 | 2.3.0 | 2.2.0 | 2.1.0 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| sp\$1addextendedproperty | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1addlinkedserver | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1addlinkedsrvlogin | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1addrole | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1addrolemember | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1babelfish\$1volatility | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1column\$1privileges | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1columns | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1columns\$1100 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1columns\$1managed | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1cursor | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1cursor\$1list | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1cursorclose | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1cursorexecute | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1cursorfetch | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1cursoropen | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1cursoroption | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1cursorprepare | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1cursorprepexec | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1cursorunprepare | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1databases | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1datatype\$1info | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1datatype\$1info\$1100 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1describe\$1cursor | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1describe\$1first\$1result\$1set | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1describe\$1undeclared\$1parameters | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1dropextendedproperty | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1droplinkedsrvlogin | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1droprole | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1droprolemember | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1dropserver | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1enum\$1oledb\$1providers | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1execute | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1execute\$1postgresql(CREATE, ALTER, DROP) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1executesql | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1fkeys | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1getapplock | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1helpdb | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1helpdbfixedrole | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1helplinkedsrvlogin | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1helprole | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1helprolemember | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1helpsrvrolemember | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1helpuser | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1linkedservers | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1oledb\$1ro\$1usrname | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1pkeys | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1prefix | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1prepare | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1procedure\$1params\$1100\$1managed | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1releaseapplock | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1rename | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1renamedb | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1rename(object\$1type 'DATABASE'의 경우) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1reset\$1connection | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1serveroption(connect\$1timeout 옵션) | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1set\$1session\$1context | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1special\$1columns | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1sproc\$1columns | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1sproc\$1columns\$1100 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1statistics | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1statistics\$1100 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1stored\$1procedures | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1table\$1privileges | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1tablecollations\$1100 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1tables | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1testlinkedserver | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1unprepare | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sp\$1updateextendedproperty | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sp\$1who | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| xp\$1qv | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 

## CONNECTIONPROPERTY 시스템 함수에서 지원되는 T-SQL 속성
<a name="babelfish-compatibility.supported-functionality-table-connprop"></a>

다음 테이블에서는 다양한 Babelfish 버전에서 사용 가능한 CONNECTIONPROPERTY 시스템 함수에서 지원되는 T-SQL 속성을 찾아볼 수 있습니다.


| CONNECTIONPROPERTY 시스템 함수에서 지원되는 T-SQL 속성 | 5.2.0 | 5.1.0 | 4.6.0 | 4.5.0 | 4.4.0 | 4.3.0 | 4.2.0 | 4.1.0 | 4.0.0 | 3.10.0 | 3.9.0 | 3.8.0 | 3.7.0 | 3.6.0 | 3.5.0 | 3.4.0 | 3.3.0 | 3.2.0 | 3.1.0 | 2.13.0 | 2.12.0 | 2.11.0 | 2.10.0 | 2.9.0 | 2.8.0 | 2.7.0 | 2.6.0 | 2.5.0 | 2.4.0 | 2.3.0 | 2.2.0 | 2.1.0 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| auth\$1scheme | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| client\$1net\$1address | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| local\$1net\$1address | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| local\$1tcp\$1port | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| net\$1transport | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| protocol\$1type | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| physical\$1net\$1transport | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 

## OBJECTPROPERTY 시스템 함수에서 지원되는 T-SQL 속성
<a name="babelfish-compatibility.supported-functionality-table-objprop"></a>

다음 테이블에서는 다양한 Babelfish 버전에서 사용 가능한 OBJECTPROPERTY 시스템 함수에서 지원되는 T-SQL 속성을 찾아볼 수 있습니다.


| OBJECTPROPERTY 시스템 함수에서 지원되는 T-SQL 속성 | 5.2.0 | 5.1.0 | 4.6.0 | 4.5.0 | 4.4.0 | 4.3.0 | 4.2.0 | 4.1.0 | 4.0.0 | 3.10.0 | 3.9.0 | 3.8.0 | 3.7.0 | 3.6.0 | 3.5.0 | 3.4.0 | 3.3.0 | 3.2.0 | 3.1.0 | 2.13.0 | 2.12.0 | 2.11.0 | 2.10.0 | 2.9.0 | 2.8.0 | 2.7.0 | 2.6.0 | 2.5.0 | 2.4.0 | 2.3.0 | 2.2.0 | 2.1.0 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| IsInlineFunction | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| IsScalarFunction | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| IsTableFunction | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 

## SERVERPROPERTY 함수에서 지원되는 T-SQL 속성
<a name="babelfish-compatibility.supported-functionality-table-servprop"></a>

다음 테이블에서는 다양한 Babelfish 버전에서 사용 가능한 SERVERPROPERTY 함수에서 지원되는 T-SQL 속성을 찾아볼 수 있습니다.


| SERVERPROPERTY 함수에서 지원되는 T-SQL 속성 | 5.2.0 | 5.1.0 | 4.6.0 | 4.5.0 | 4.4.0 | 4.3.0 | 4.2.0 | 4.1.0 | 4.0.0 | 3.10.0 | 3.9.0 | 3.8.0 | 3.7.0 | 3.6.0 | 3.5.0 | 3.4.0 | 3.3.0 | 3.2.0 | 3.1.0 | 2.13.0 | 2.12.0 | 2.11.0 | 2.10.0 | 2.9.0 | 2.8.0 | 2.7.0 | 2.6.0 | 2.5.0 | 2.4.0 | 2.3.0 | 2.2.0 | 2.1.0 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| Babelfish | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| 콜레이션 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| CollationID | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| Edition | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| EditionID | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| EngineEdition | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| InstanceName | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| IsAdvancedAnalyticsInstalled | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| IsBigDataCluster | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| IsFullTextInstalled | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| IsIntegratedSecurityOnly | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| IsLocalDB | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| IsPolyBaseInstalled | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| IsSingleUser | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| IsXTPSupported | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| Japanese\$1CI\$1AI | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| Japanese\$1CI\$1AS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| Japanese\$1CS\$1AS | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| LicenseType | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| MachineName | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| ProductLevel | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| ProductMajorVersion | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| ProductMinorVersion | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| ProductUpdateLevel  | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| ProductVersion | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| ServerName | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 

## Babelfish에서 지원하는 SQL Server 뷰
<a name="babelfish-compatibility.supported-functionality-table-sqlserv"></a>

다음 테이블에서는 다양한 Babelfish 버전에서 지원되는 SQL Server 뷰를 찾아볼 수 있습니다.


| Babelfish에서 지원하는 SQL Server 뷰 | 5.2.0 | 5.1.0 | 4.6.0 | 4.5.0 | 4.4.0 | 4.3.0 | 4.2.0 | 4.1.0 | 4.0.0 | 3.10.0 | 3.9.0 | 3.8.0 | 3.7.0 | 3.6.0 | 3.5.0 | 3.4.0 | 3.3.0 | 3.2.0 | 3.1.0 | 2.13.0 | 2.12.0 | 2.11.0 | 2.10.0 | 2.9.0 | 2.8.0 | 2.7.0 | 2.6.0 | 2.5.0 | 2.4.0 | 2.3.0 | 2.2.0 | 2.1.0 | 
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | 
| information\$1schema.key\$1column\$1usage | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| information\$1schema.routines | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| information\$1schema.schemata | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| information\$1schema.sequences | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.all\$1columns | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.all\$1objects | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.all\$1parameters | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.all\$1sql\$1modules | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.all\$1views | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.columns | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.configurations | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.data\$1spaces | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.database\$1files | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.database\$1mirroring | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.database\$1principals | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.database\$1role\$1members | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.databases | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.destination\$1data\$1spaces | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.dm\$1exec\$1connections | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.dm\$1exec\$1sessions | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.dm\$1hadr\$1database\$1replica\$1states | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.dm\$1os\$1host\$1info | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.dm\$1os\$1sys\$1info | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg) 아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.endpoints | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.extended\$1properties | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.indexes | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.partitions | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.partition\$1functions | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.partition\$1parameters | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.partition\$1range\$1values | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.partition\$1schemes | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.schemas | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.server\$1principals | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.server\$1role\$1members | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.sql\$1modules | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.sysconfigures | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.syscurconfigs | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.syslogins | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.sysprocesses  | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.sysusers | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.table\$1types | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.tables | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sys.types | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 
| sys.xml\$1schema\$1collections | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| syslanguages | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | 
| sysobjects.crdate | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/success_icon.svg)예 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | ![\[alt text not found\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/negative_icon.svg)아니요 | 

# Babelfish에서 지원되지 않는 기능
<a name="babelfish-compatibility.tsql.limitations-unsupported"></a>

다음 표와 목록에서 현재 Babelfish에서 지원되지 않는 기능을 확인할 수 있습니다. Babelfish의 업데이트는 Aurora PostgreSQL 버전에 포함되어 있습니다. 자세한 내용은 [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html)를 참조하세요.

**Topics**
+ [현재 지원되지 않는 기능](#babelfish-compatibility.tsql.limitations-unsupported-table)
+ [지원되지 않는 설정](#babelfish-compatibility.tsql.limitations-unsupported-list8)
+ [지원되지 않는 명령](#babelfish-compatibility.tsql.limitations-unsupported-list1)
+ [지원되지 않는 열 이름 또는 속성](#babelfish-compatibility.tsql.limitations-unsupported-list7)
+ [지원되지 않는 데이터 형식](#babelfish-compatibility.tsql.limitations-unsupported-list9)
+ [지원되지 않는 객체 유형](#babelfish-compatibility.tsql.limitations-unsupported-list3)
+ [지원되지 않는 함수](#babelfish-compatibility.tsql.limitations-unsupported-list4)
+ [지원되지 않는 구문](#babelfish-compatibility.tsql.limitations-unsupported-list5)

## 현재 지원되지 않는 기능
<a name="babelfish-compatibility.tsql.limitations-unsupported-table"></a>

이 표에서는 현재 지원되지 않는 특정 기능에 대한 정보를 확인할 수 있습니다.


| 기능 또는 구문 | 설명 | 
| --- | --- | 
| 어셈블리 모듈 및 SQL Common Language Runtime(CLR) 루틴  | 어셈블리 모듈 및 CLR 루틴과 관련된 기능은 지원되지 않습니다. | 
| 열 속성 | ROWGUIDCOL, SPARSE, FILESTREAM 및 MASKED는 지원되지 않습니다. | 
| 포함된 데이터베이스 | 서버 수준이 아닌 데이터베이스 수준에서 인증된 로그인이 포함된 데이터베이스는 지원되지 않습니다. | 
| 데이터베이스 간 DDL | 여러 데이터베이스의 객체를 참조하거나 조작하는 DDL 문을 수행하는 것은 아직 지원되지 않습니다. | 
| 커서(업데이트 가능) | 업데이트 가능한 커서는 지원되지 않습니다. | 
| 커서(전역적) | GLOBAL 커서는 지원되지 않습니다. | 
| 커서(가져오기 동작) | FETCH PRIOR, FIRST, LAST, ABSOLUTE, RELATIVE와 같은 커서 가져오기 동작은 지원되지 않습니다. | 
| 커서 유형 출력 파라미터 | 커서 유형 변수 및 파라미터는 출력 파라미터는 지원되지 않습니다 (오류 발생). | 
| 커서 옵션 | SCROLL, KEYSET, DYNAMIC, FAST\$1FORWARD, SCROLL\$1LOCKS, OPTIMISTIC, TYPE\$1WARNING, FOR UPDATE | 
| 데이터 암호화 | 데이터 암호화는 지원되지 않습니다. | 
| 데이터 계층 애플리케이션(DAC) | DAC 패키지(.dacpac) 또는 DAC 백업(.bacpac) 파일을 사용한 데이터 계층 애플리케이션(DAC) 가져오기 또는 내보내기 작업은 지원되지 않습니다. | 
| DBCC 명령  | Microsoft SQL Server 데이터베이스 콘솔 명령(DBCC)은 지원되지 않습니다. DBCC CHECKIDENT는 Babelfish 3.4.0 이상 릴리스에서 지원됩니다. | 
| DROP IF EXISTS | 이 구문은 USER 및 SCHEMA 객체에는 지원되지 않습니다. TABLE, VIEW, PROCEDURE, FUNCTION 및 DATABASE 객체에 대해 지원됩니다. | 
| 암호화 | 기본 제공 함수 및 명령문은 암호화를 지원하지 않습니다. | 
| ENCRYPT\$1CLIENT\$1CERT 연결 | 클라이언트 인증서 연결은 지원되지 않습니다. | 
| EXECUTE AS 문 | 이 명령문은 지원되지 않습니다. | 
| EXECUTE AS SELF 절 | 이 절은 함수, 프로시저 또는 트리거에는 지원되지 않습니다. | 
| EXECUTE AS USER 절 | 이 절은 함수, 프로시저 또는 트리거에는 지원되지 않습니다. | 
| 데이터베이스 이름을 참조하는 외래 키 제약 조건 | 데이터베이스 이름을 참조하는 외래 키 제약 조건은 지원되지 않습니다. | 
| FORMAT | 사용자 정의 유형은 지원되지 않습니다. | 
| 파라미터가 100개 이상인 함수 선언 | 100개 이상의 파라미터를 포함하는 함수 선언은 지원되지 않습니다. | 
| DEFAULT를 파라미터 값으로 포함하는 함수 호출 | DEFAULT는 함수 호출을 지원하는 파라미터 값이 아닙니다. Babelfish 3.4.0 이상 릴리스에서는 함수 호출을 위한 파라미터 값으로 DEFAULT가 지원됩니다. | 
| 함수, 외부 정의 | SQL CLR 함수를 포함한 외부 함수는 지원되지 않습니다. | 
| 전역 임시 테이블(이름이 \$1\$1으로 시작하는 테이블) | 전역 임시 테이블은 지원되지 않습니다. | 
| 그래프 기능 | 모든 SQL 그래프 기능은 지원되지 않습니다. | 
| 일반 확장 저장 프로시저 | 다양한 유지 관리 작업을 위해 SQL Server 인스턴스에서 외부 프로그램으로 인터페이스를 제공하는 시스템 저장 프로시저는 지원되지 않습니다. 여기에는 `xp_cmdshell` 및 기타 시스템 저장 프로시저가 포함됩니다. 자세한 내용은 [일반 확장 저장 프로시저](https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/general-extended-stored-procedures-transact-sql?view=sql-server-ver16)를 참조하세요. | 
| 여러 개의 선행 @ 문자가 있는 식별자(변수 또는 파라미터) | 둘 이상의 선행 `@`으로 시작하는 식별자는 지원되지 않습니다. | 
| @ 또는]] 문자를 포함하는 식별자, 테이블 또는 열 이름 | `@` 기호 또는 대괄호를 포함하는 테이블 또는 열 이름은 지원되지 않습니다. | 
| 인라인 인덱스 | 인라인 인덱스는 지원되지 않습니다. | 
| 이름이 변수인 프로시저 호출 | 변수를 프로시저 이름으로 사용하는 것은 지원되지 않습니다. | 
| 구체화된 뷰 | 구체화된 뷰는 지원되지 않습니다. | 
| NOT FOR REPLICATION 절 | 이 구문은 허용되고 무시됩니다. | 
| ODBC 이스케이프 함수 | ODBC 이스케이프 함수는 지원되지 않습니다. | 
| DEFAULT를 파라미터 값으로 포함하는 프로시저 호출 | DEFAULT는 지원되는 파라미터 값이 아닙니다. Babelfish 3.4.0 이상 릴리스에서는 함수 호출을 위한 파라미터 값으로 DEFAULT가 지원됩니다. | 
| 파라미터가 100개 이상인 프로시저 선언 | 100개 이상의 파라미터를 포함하는 선언은 지원되지 않습니다. | 
| 프로시저, 외부에서 정의됨 | SQL CLR 프로시저를 포함한 외부에서 정의된 프로시저는 지원되지 않습니다. | 
| 프로시저 버전 관리 | 프로시저 버전 관리는 지원되지 않습니다. | 
| WITH RECOMPILE 프로시저 | WITH RECOMPILE(DECLARE 및 EXECUTE 문과 함께 사용되는 경우)은 지원되지 않습니다. | 
| 원격 객체 참조 | Babelfish 연결 서버에 대한 저장 프로시저 실행은 지원되지 않습니다. 네 부분으로 구성된 객체 이름은 읽기에만 사용할 수 있고 원격 표 수정에는 사용할 수 없습니다. UPDATE는 수정하지 않고도 FROM 절의 원격 테이블을 참조할 수 있습니다. 자세한 내용은 [연결된 서버를 지원하는 Babelfish](babelfish-postgres-linkedservers.md) 섹션을 참조하세요. | 
| 행 수준 보안 | CREATE SECURITY POLICY 및 인라인 테이블 값 함수를 사용한 행 수준 보안은 지원되지 않습니다. | 
| 서비스 브로커 기능 | 서비스 브로커 기능은 지원되지 않습니다. | 
| SESSIONPROPERTY | 지원되지 않는 속성: ANSI\$1NULLS, ANSI\$1PADDING, ANSI\$1WARNINGS, ARITHABORT, CONCAT\$1NULL\$1YIELDS\$1NULL, NUMERIC\$1ROUNDABORT | 
| SET LANGUAGE | 이 구문은 `english` 또는 `us_english` 이외의 값을 통해서는 지원되지 않습니다. | 
| SP\$1CONFIGURE | 이 시스템 저장 프로시저는 지원되지 않습니다. | 
| SQL 키워드 SPARSE | 키워드 SPARSE는 승인되고 무시됩니다. | 
| 테이블 값 생성자 구문(FROM 절) | 지원되지 않는 구문은 FROM 절로 구성된 파생 테이블에 대한 구문입니다. | 
| 임시 테이블 | 임시 테이블은 지원되지 않습니다. | 
| 임시 프로시저는 자동으로 삭제되지 않습니다. | 이 기능은 지원되지 않습니다. | 
| 트리거, 외부 정의 | SQL 공용 언어 런타임(CLR)을 포함하는 이런 트리거는 지원되지 않습니다. | 

## 지원되지 않는 설정
<a name="babelfish-compatibility.tsql.limitations-unsupported-list8"></a>

다음 설정은 지원됩니다.
+ SET ANSI\$1NULL\$1DFLT\$1OFF ON
+ SET ANSI\$1NULL\$1DFLT\$1ON OFF
+ SET ANSI\$1PADDING OFF
+ SET ANSI\$1WARNINGS OFF
+ SET ARITHABORT OFF
+ SET ARITHIGNORE ON
+ SET CURSOR\$1CLOSE\$1ON\$1COMMIT ON
+ SET NUMERIC\$1ROUNDABORT ON
+ SET PARSEONLY ON(명령이 예상대로 작동하지 않을 경우)
+ SET FMTONLY ON(명령이 예상대로 작동하지 않습니다. 다른 문이 아닌 SELECT 문의 실행만 억제합니다.)

## 지원되지 않는 명령
<a name="babelfish-compatibility.tsql.limitations-unsupported-list1"></a>

다음 명령에 대한 특정 기능은 지원되지 않습니다.
+ ADD SIGNATURE
+ ALTER DATABASE, ALTER DATABASE SET
+ 데이터베이스/로그 백업/복원
+ BACPAC 및 DACPAC 파일 복원
+ CREATE, ALTER, DROP AUTHORIZATION. ALTER AUTHORIZATION은 데이터베이스 객체에 대해 지원됩니다.
+ CREATE, ALTER, DROP AVAILABILITY GROUP
+ CREATE, ALTER, DROP BROKER PRIORITY
+ CREATE, ALTER, DROP COLUMN ENCRYPTION KEY
+ CREATE, ALTER, DROP DATABASE ENCRYPTION KEY
+ CREATE, ALTER, DROP, BACKUP CERTIFICATE
+ CREATE AGGREGATE
+ CREATE CONTRACT
+ CHECKPOINT

## 지원되지 않는 열 이름 또는 속성
<a name="babelfish-compatibility.tsql.limitations-unsupported-list7"></a>

다음 열 이름은 지원되지 않습니다.
+ \$1IDENTITY
+ \$1ROWGUID
+ IDENTITYCOL

## 지원되지 않는 데이터 형식
<a name="babelfish-compatibility.tsql.limitations-unsupported-list9"></a>

다음 데이터 형식은 지원됩니다.
+ HIERARCHYID

## 지원되지 않는 객체 유형
<a name="babelfish-compatibility.tsql.limitations-unsupported-list3"></a>

다음 객체 유형은 지원되지 않습니다.
+ COLUMN MASTER KEY
+ CREATE, ALTER EXTERNAL DATA SOURCE
+ CREATE, ALTER, DROP DATABASE AUDIT SPECIFICATION
+ CREATE, ALTER, DROP EXTERNAL LIBRARY
+ CREATE, ALTER, DROP SERVER AUDIT
+ CREATE, ALTER, DROP SERVER AUDIT SPECIFICATION
+ CREATE, ALTER, DROP, OPEN/CLOSE SYMMETRIC KEY
+ CREATE, DROP DEFAULT
+ CREDENTIAL
+ CRYPTOGRAPHIC PROVIDER
+ DIAGNOSTIC SESSION
+ 인덱싱된 뷰
+ SERVICE MASTER KEY
+ SYNONYM

## 지원되지 않는 함수
<a name="babelfish-compatibility.tsql.limitations-unsupported-list4"></a>

다음 내장 함수는 지원되지 않습니다.

**집계 함수**
+ APPROX\$1COUNT\$1DISTINCT
+ CHECKSUM\$1AGG
+ GROUPING\$1ID
+ WITHIN GROUP 절을 사용하는 STRING\$1AGG

**암호화 함수**
+ CERTENCODED 함수
+ CERTID 함수
+ CERTPROPERTY 함수

**메타데이터 함수**
+ COLUMNPROPERTY
+ TYPEPROPERTY
+ SERVERPROPERTY 함수 - 다음 속성은 지원되지 않습니다.
  + BuildClrVersion
  + ComparisonStyle
  + ComputerNamePhysicalNetBIOS
  + HadrManagerStatus
  + InstanceDefaultDataPath
  + InstanceDefaultLogPath
  + IsClustered
  + IsHadrEnabled
  + LCID
  + NumLicenses
  + ProcessID
  + ProductBuild
  + ProductBuildType
  + ProductUpdateReference
  + ResourceLastUpdateDateTime
  + ResourceVersion
  + ServerName
  + SqlCharSet
  + SqlCharSetName
  + SqlSortOrder
  + SqlSortOrderName
  + FilestreamShareName
  + FilestreamConfiguredLevel
  + FilestreamEffectiveLevel

**보안 함수**
+ CERTPRIVATEKEY
+ LOGINPROPERTY

**명령문, 연산자, 기타 함수**
+ EVENTDATA 기능
+ GET\$1TRANSMISSION\$1STATUS
+ OPENXML

## 지원되지 않는 구문
<a name="babelfish-compatibility.tsql.limitations-unsupported-list5"></a>

다음 구문은 지원되지 않습니다.
+ ALTER DATABASE
+ ALTER DATABASE SCOPED CONFIGURATION
+ ALTER DATABASE SCOPED CREDENTIAL
+ ALTER DATABASE SET HADR
+ ALTER INDEX
+ ALTER PARTITION FUNCTION
+ ALTER PARTITION SCHEME
+ ALTER SCHEMA
+ ALTER SERVER CONFIGURATION
+ ALTER SERVICE, BACKUP/RESTORE SERVICE MASTER KEY 절
+ BEGIN CONVERSATION TIMER
+ BEGIN DISTRIBUTED TRANSACTION
+ BEGIN DIALOG CONVERSATION
+ BULK INSERT
+ CREATE COLUMNSTORE INDEX
+ CREATE EXTERNAL FILE FORMAT
+ CREATE EXTERNAL TABLE
+ CREATE, ALTER, DROP APPLICATION ROLE
+ CREATE, ALTER, DROP ASSEMBLY
+ CREATE, ALTER, DROP ASYMMETRIC KEY
+ CREATE, ALTER, DROP CREDENTIAL
+ CREATE, ALTER, DROP CRYPTOGRAPHIC PROVIDER
+ CREATE, ALTER, DROP ENDPOINT
+ CREATE, ALTER, DROP EVENT SESSION
+ CREATE, ALTER, DROP EXTERNAL LANGUAGE
+ CREATE, ALTER, DROP EXTERNAL RESOURCE POOL
+ CREATE, ALTER, DROP FULLTEXT CATALOG
+ CREATE, ALTER, DROP FULLTEXT INDEX
+ CREATE, ALTER, DROP FULLTEXT STOPLIST
+ CREATE, ALTER, DROP MESSAGE TYPE
+ CREATE, ALTER, DROP, OPEN/CLOSE, BACKUP/RESTORE MASTER KEY
+ CREATE, ALTER, DROP QUEUE
+ CREATE, ALTER, DROP RESOURCE GOVERNOR
+ CREATE, ALTER, DROP RESOURCE POOL
+ CREATE, ALTER, DROP ROUTE
+ CREATE, ALTER, DROP SEARCH PROPERTY LIST
+ CREATE, ALTER, DROP SECURITY POLICY
+ CREATE, ALTER, DROP SELECTIVE XML INDEX clause
+ CREATE, ALTER, DROP SERVICE
+ CREATE, ALTER, DROP SPATIAL INDEX
+ CREATE, ALTER, DROP TYPE
+ CREATE, ALTER, DROP XML INDEX
+ CREATE, ALTER, DROP XML SCHEMA COLLECTION
+ CREATE/DROP RULE
+ CREATE, DROP WORKLOAD CLASSIFIER
+ CREATE, ALTER, DROP WORKLOAD GROUP
+ ALTER TRIGGER
+ CREATE TABLE... GRANT 절
+ CREATE TABLE... IDENTY 절
+ CREATE USER - 이 구문은 지원되지 않습니다. PostgreSQL 문 CREATE USER는 SQL Server CREATE USER 구문과 동일한 사용자를 만들지 않습니다. 자세한 내용은 [Babelfish에서의 T-SQL 차이점](babelfish-compatibility.tsql.limitations.md) 섹션을 참조하세요.
+ DENY
+ END, MOVE CONVERSATION
+ EXECUTE with AS LOGIN or AT option
+ GET CONVERSATION GROUP
+ GROUP BY ALL clause
+ GROUP BY CUBE clause
+ GROUP BY ROLLUP clause
+ INSERT... DEFAULT VALUES
+ MERGE
+ READTEXT
+ REVERT
+ SELECT TOP... WITH TIES
+ SELECT... FOR BROWSE
+ SELECT... FOR XML AUTO
+ SELECT... FOR XML EXPLICIT
+ SELECT... FOR XML PATH
+ SEND
+ SET DATEFORMAT
+ SET DEADLOCK\$1PRIORITY
+ SET FMTONLY
+ SET FORCEPLAN
+ SET NUMERIC\$1ROUNDABORT ON
+ SET OFFSETS
+ SET REMOTE\$1PROC\$1TRANSACTIONS
+ SET SHOWPLAN\$1TEXT
+ SET SHOWPLAN\$1XML
+ SET STATISTICS
+ SET STATISTICS PROFILE
+ SET STATISTICS TIME
+ SET STATISTICS XML
+ SHUTDOWN statement
+ UPDATE STATISTICS
+ UPDATETEXT
+ Using EXECUTE to call a SQL function
+ VIEW... CHECK OPTION clause
+ VIEW... VIEW\$1METADATA clause
+ WAITFOR DELAY
+ WAITFOR TIME
+ WAITFOR, RECEIVE
+ WITH XMLNAMESPACES construct
+ WRITETEXT
+ XPATH expressions

# Babelfish for Aurora PostgreSQL 작업 절차
<a name="Appendix.Babelfish.Functions"></a>

## 개요
<a name="Appendix.Babelfish.Functions.Overview"></a>

더 나은 쿼리 성능을 위해 Babelfish for Aurora PostgreSQL을 실행하는 Amazon RDS DB 인스턴스에 다음 프로시저를 사용할 수 있습니다.
+ [sp\$1babelfish\$1volatility](sp_babelfish_volatility.md)
+ [sp\$1execute\$1postgresql](sp_execute_postgresql.md)

# sp\$1babelfish\$1volatility
<a name="sp_babelfish_volatility"></a>

PostgreSQL 함수 변동성은 최적화 프로그램이 특정 절의 일부에 사용될 때 쿼리 성능에 큰 영향을 미치는 더 나은 쿼리 실행을 할 수 있도록 지원합니다.

## 구문
<a name="sp_babelfish_volatility-syntax"></a>

 

```
sp_babelfish_volatility ‘function_name’, ‘volatility’
```

## 인수
<a name="sp_babelfish_volatility-arguments"></a>

 *function\$1name(선택 사항)*   
두 부분으로 구성된 이름으로 이 인수의 값을 `schema_name.function_name`으로 지정하거나 `function_name`으로만 지정할 수 있습니다. `function_name`으로만 지정하는 경우 스키마 이름은 현재 사용자의 기본 스키마입니다.

 *volatility(선택 사항)*   
PostgreSQL의 유효한 변동성 값은 `stable`, `volatile` 또는 `immutable`입니다. 자세한 내용은 [https://www.postgresql.org/docs/current/xfunc-volatility.html](https://www.postgresql.org/docs/current/xfunc-volatility.html) 단원을 참조하세요.

**참고**  
`sp_babelfish_volatility`에서 여러 개의 정의를 가진 `function_name`을 호출하면 오류가 발생합니다.

## 결과 집합
<a name="sp_babelfish_volatility-return-type"></a>

파라미터가 언급되지 않은 경우 결과 집합이 `schemaname`, `functionname`, `volatility` 열 아래에 표시됩니다.

## 사용 노트
<a name="sp_babelfish_volatility-usage-notes"></a>

PostgreSQL 함수 변동성은 최적화 프로그램이 특정 절의 일부에 사용될 때 쿼리 성능에 큰 영향을 미치는 더 나은 쿼리 실행을 할 수 있도록 지원합니다.

## 예시
<a name="sp_babelfish_volatility-examples"></a>

다음 예에서는 간단한 함수를 만드는 방법을 보여 주고 나중에 다른 방법을 사용하여 이러한 함수에서 `sp_babelfish_volatility`를 사용하는 방법을 설명합니다.

```
1> create function f1() returns int as begin return 0 end
2> go
```

```
1> create schema test_schema
2> go
```

```
1> create function test_schema.f1() returns int as begin return 0 end
2> go
```

다음 예제는 함수의 변동성을 표시합니다.

```
1> exec sp_babelfish_volatility
2> go
            
schemaname  functionname volatility
----------- ------------ ----------
dbo         f1           volatile
test_schema f1           volatile
```

다음 예제는 함수의 변동성을 변경하는 방법을 보여줍니다.

```
1> exec sp_babelfish_volatility 'f1','stable'
2> go
1> exec sp_babelfish_volatility 'test_schema.f1','immutable'
2> go
```

function\$1name만 지정하면 해당 함수의 스키마 이름, 함수 이름 및 변동성이 표시됩니다. 다음 예제는 값을 변경한 후 함수의 변동성을 표시합니다.

```
1> exec sp_babelfish_volatility 'test_schema.f1'
2> go
            
schemaname  functionname volatility
----------- ------------ ----------
test_schema f1           immutable
```

```
1> exec sp_babelfish_volatility 'f1'
2> go
            
schemaname  functionname volatility
----------- ------------ ----------
dbo         f1           stable
```

인수를 지정하지 않으면 현재 데이터베이스에 있는 함수 목록(스키마 이름, 함수 이름, 함수 변동성)이 표시됩니다.

```
1> exec sp_babelfish_volatility 
2> go
            
schemaname  functionname volatility
----------- ------------ ----------
dbo         f1           stable
test_schema f1           immutable
```

# sp\$1execute\$1postgresql
<a name="sp_execute_postgresql"></a>

T-SQL 엔드포인트에서 PostgreSQL 문을 실행할 수 있습니다. 이렇게 하면 문을 실행하기 위해 T-SQL 포트를 종료할 필요가 없으므로 애플리케이션이 간소화됩니다.

## 구문
<a name="sp_execute_postgresql-syntax"></a>

 

```
sp_execute_postgresql [ @stmt = ] statement
```

## 인수
<a name="sp_execute_postgresql-arguments"></a>

 *[ @stmt ] 문*   
인수는 데이터 유형 varchar입니다. 이 인수는 PG 방언 문을 허용합니다.

**참고**  
하나의 PG 방언 문만 인수로 전달할 수 있습니다. 여러 개를 전달하면 다음 오류가 발생합니다.

```
1>exec sp_execute_postgresql 'create extension pg_stat_statements; drop extension pg_stat_statements'
2>go
```

```
Msg 33557097, Level 16, State 1, Server BABELFISH, Line 1
expected 1 statement but got 2 statements after parsing
```

## 사용 노트
<a name="sp_execute_postgresql-statements"></a>

### CREATE EXTENSION
<a name="sp_execute_postgresql-statements-create"></a>

새 확장을 만들어 현재 데이터베이스에 로드합니다.

```
1>EXEC sp_execute_postgresql 'create extension [ IF NOT EXISTS ] <extension name> [ WITH ] [SCHEMA schema_name] [VERSION version]';
2>go
```

다음 예시에서는 확장을 생성하는 방법을 보여줍니다.

```
1>EXEC sp_execute_postgresql 'create extension pg_stat_statements with schema sys version "1.10"';
2>go
```

다음 명령을 사용하여 확장 객체에 액세스합니다.

```
1>select * from pg_stat_statements;
2>go
```

**참고**  
 확장 생성 시 스키마 이름을 명시적으로 제공하지 않으면 기본적으로 확장이 퍼블릭 스키마에 설치됩니다. 다음과 같이 확장 객체에 액세스하려면 스키마 한정자를 제공해야 합니다.

```
1>select * from [public].pg_stat_statements;
2>go
```

**지원되는 확장**

Aurora PostgreSQL에서 사용할 수 있는 다음 확장은 Babelfish와 호환됩니다.
+ `pg_stat_statements`
+ `tds_fdw`
+ `fuzzystrmatch`

**제한 사항**
+ 확장을 설치하려면 T-SQL에서는 sysadmin 역할이, postgres에서는 rds\$1superuser 역할이 있어야 합니다.
+ 확장은 사용자가 만든 스키마에는 설치할 수 없으며 마스터, tempdb 및 msdb 데이터베이스의 dbo 및 게스트 스키마에도 설치할 수 없습니다.
+ CASCADE 옵션은 지원되지 않습니다.

## ALTER EXTENSION
<a name="sp_execute_postgresql-alter"></a>

ALTER EXTENSION을 사용하여 새 확장 버전으로 업그레이드할 수 있습니다.

```
1>EXEC sp_execute_postgresql 'alter extension <extension name> UPDATE TO <new_version>';
2>go
```

**제한 사항**
+ ALTER EXTENSION 문을 사용해서만 확장 버전을 업그레이드할 수 있습니다. 다른 작업은 지원되지 않습니다.

## DROP EXTENSION
<a name="sp_execute_postgresql-drop"></a>

지정된 확장을 삭제합니다. `if exists` 또는 `restrict` 옵션을 사용하여 확장을 삭제할 수도 있습니다.

```
1>EXEC sp_execute_postgresql 'drop extension <extension name>';
2>go
```

**제한 사항**
+ CASCADE 옵션은 지원되지 않습니다.

# Babelfish에서 XML 데이터 유형 메서드 지원
<a name="babelfish-xml-datatype-methods"></a>

버전 5.4.0부터 Babelfish는 이제 저장 프로시저 sp\$1xml\$1preparedocument 및 sp\$1xml\$1removedocument, 행 집합 함수 OPENXML() 및 xml dataype 메서드 .VALUE()를 지원합니다. 이러한 함수와 프로시저를 사용하면 XML 데이터를 쿼리하는 것이 훨씬 쉬워집니다.

## XML 프로시저 및 메서드 이해
<a name="babelfish-xml-datatype-methods-overview"></a>
+ **sp\$1xml\$1preparedocument** - 프로시저 sp\$1xml\$1preparedocument는 입력으로 제공된 XML 텍스트를 구문 분석하고 이 문서에 핸들을 반환합니다. 이 핸들은 세션 중에 또는 sp\$1xml\$1removedocument에 의해 제거될 때까지 유효합니다.
+ **sp\$1xml\$1removedocument** – 프로시저 sp\$1xml\$1removedocument는 프로시저 sp\$1xml\$1preparedocument에 의해 생성된 핸들을 무효화합니다.
+ **OPENXML()** - OPENXML은 XML 문서에 대한 행 집합 보기를 제공합니다. OPENXML은 행 집합 공급자이며 행 집합을 반환하므로 다른 테이블, 뷰 또는 테이블 값 함수를 사용할 수 있는 것처럼 FROM 절에서 OPENXML을 사용할 수 있습니다.
+ **VALUE()** - XML 데이터 유형 메서드 VALUE()는 xml 유형 열, 파라미터 또는 변수에 저장된 XML 인스턴스에서 값을 추출하는 데 사용됩니다.

## Babelfish XML 프로시저 및 메서드의 제한 사항
<a name="babelfish-xml-datatype-methods-limitations"></a>
+ Babelfish는 OPENXML()의 두 번째 인수(예: ROWPATTERN)에 대해 XPATH 1.0 구문만 지원합니다.
+ 메타 속성과 플래그 8은 현재 OPENXML()에서 지원되지 않습니다.
+ Babelfish는 VALUE() 데이터 유형 메서드의 첫 번째 인수(예: XQuery)에 대해서만 XPATH 1.0 구문을 지원합니다.

# Amazon Aurora PostgreSQL의 성능 및 규모 조정
<a name="AuroraPostgreSQL.Managing"></a>

다음 섹션에서는 Amazon Aurora PostgreSQL DB 클러스터의 성능 및 크기 조정 관리에 대해 설명합니다. 또한 다른 유지 관리 태스크에 대한 정보도 포함됩니다.

**Topics**
+ [Aurora PostgreSQL DB 인스턴스 조정](#AuroraPostgreSQL.Managing.Performance.InstanceScaling)
+ [Aurora PostgreSQL DB 인스턴스에 대한 최대 연결](#AuroraPostgreSQL.Managing.MaxConnections)
+ [Aurora PostgreSQL에 대한 임시 스토리지 한도](#AuroraPostgreSQL.Managing.TempStorage)
+ [Aurora PostgreSQL의 방대한 페이지](#AuroraPostgreSQL.Managing.HugePages)
+ [오류 삽입 쿼리를 사용하여 Amazon Aurora PostgreSQL 테스트](AuroraPostgreSQL.Managing.FaultInjectionQueries.md)
+ [Aurora PostgreSQL DB 클러스터를 위한 볼륨 상태 표시](AuroraPostgreSQL.Managing.VolumeStatus.md)
+ [stats\$1temp\$1directory에 대한 RAM 디스크 지정](AuroraPostgreSQL.Managing.RamDisk.md)
+ [PostgreSQL을 사용한 임시 파일 관리](PostgreSQL.ManagingTempFiles.md)

## Aurora PostgreSQL DB 인스턴스 조정
<a name="AuroraPostgreSQL.Managing.Performance.InstanceScaling"></a>

Aurora PostgreSQL DB 인스턴스는 인스턴스 조정과 읽기 조정, 이렇게 두 가지 방식으로 조정할 수 있습니다. 읽기 조정에 대한 자세한 내용은 [읽기 확장](Aurora.Managing.Performance.md#Aurora.Managing.Performance.ReadScaling) 단원을 참조하십시오.

DB 클러스터의 DB 인스턴스마다 DB 인스턴스 클래스를 수정하여 Aurora PostgreSQL DB 클러스터의 크기를 조정할 수 있습니다. Aurora PostgreSQL은 Aurora에 최적화된 여러 DB 인스턴스 클래스를 지원합니다. 크기가 40테라바이트(TB)보다 큰 Aurora 클러스터에는 db.t2 또는 db.t3 인스턴스 클래스를 사용하지 마세요.

**참고**  
T DB 인스턴스 클래스는 개발 및 테스트 서버 또는 기타 비프로덕션 서버에만 사용하는 것이 좋습니다. T 인스턴스 클래스에 대한 자세한 내용은 [DB 인스턴스 클래스 유형](Concepts.DBInstanceClass.Types.md) 섹션을 참조하세요.

크기 조정은 즉각적으로 수행되지 않습니다. 다른 DB 인스턴스 클래스에 대한 변경을 완료하는 데 15분 이상 걸릴 수 있습니다. 이 접근 방식을 사용하여 DB 인스턴스 클래스를 수정하는 경우, 사용자에게 영향을 주지 않도록 예약된 다음 유지 관리 기간 동안 수정 사항을 적용합니다.

DB 인스턴스 클래스를 직접 수정하는 대신 Amazon Aurora의 고가용성 기능을 사용하여 다운타임을 최소화할 수 있습니다. 먼저 클러스터에 Aurora 복제본을 추가합니다. 복제본을 생성할 때 클러스터에 사용할 DB 인스턴스 클래스 크기를 선택합니다. Aurora 복제본이 클러스터와 동기화되면 새로 추가된 복제본으로 장애 조치됩니다. 자세한 내용은 [Aurora 복제본](Aurora.Replication.md#Aurora.Replication.Replicas) 및 [Amazon Aurora PostgreSQL를 사용한 빠른 장애 조치](AuroraPostgreSQL.BestPractices.FastFailover.md) 섹션을 참조하세요.

Aurora PostgreSQL에서 지원하는 DB 인스턴스 클래스의 세부 사양은 [DB 인스턴스 클래스에 지원되는 DB 엔진](Concepts.DBInstanceClass.SupportAurora.md) 단원을 참조하십시오.

## Aurora PostgreSQL DB 인스턴스에 대한 최대 연결
<a name="AuroraPostgreSQL.Managing.MaxConnections"></a>

Aurora PostgreSQL DB 클러스터는 DB 인스턴스 클래스와 사용 가능한 메모리를 기준으로 리소스를 할당합니다. DB 클러스터에 대한 각 연결은 메모리 및 CPU와 같은 이러한 리소스의 증분 양을 소비합니다. 연결당 사용된 메모리는 쿼리 유형, 개수 및 임시 테이블 사용 여부에 따라 달라집니다. 유휴 연결조차도 메모리와 CPU를 소비합니다. 쿼리가 연결에서 실행될 때 각 쿼리에 대해 더 많은 메모리가 할당되고 처리가 중지되더라도 완전히 릴리스되지 않기 때문입니다. 따라서 애플리케이션이 유휴 연결을 유지하지 않도록 하는 것이 좋습니다. 이러한 각 연결은 리소스를 낭비하고 성능에 부정적인 영향을 미칩니다. 자세한 내용은 [유휴 PostgreSQL 연결에 의해 소비되는 리소스](https://aws.amazon.com/blogs/database/resources-consumed-by-idle-postgresql-connections/)를 참조하세요.

Aurora PostgreSQL DB 인스턴스에서 허용하는 최대 연결 수는 해당 DB 인스턴스의 파라미터 그룹에 지정된 `max_connections` 파라미터 값에 따라 결정됩니다. `max_connections` 파라미터에 대한 이상적인 설정은 사용하지 않는 연결을 초과하지 않고 애플리케이션에 필요한 모든 클라이언트 연결과 AWS 자동화를 지원하기 위한 추가 연결을 3개 이상 지원하는 것입니다. `max_connections` 파라미터 설정을 수정하기 전에 다음 사항을 고려하는 것이 좋습니다.
+ `max_connections` 값이 너무 낮으면 클라이언트가 연결을 시도할 때 Aurora PostgreSQL DB 인스턴스에 사용 가능한 연결이 충분하지 않을 수 있습니다. 이 경우 `psql`을 사용하여 연결을 시도하면 다음과 같은 오류 메시지나 나타납니다.

  ```
  psql: FATAL: remaining connection slots are reserved for non-replication superuser connections
  ```
+ `max_connections` 값이 실제로 필요한 연결 수를 초과하면 사용하지 않는 연결로 인해 성능이 저하될 수 있습니다.

`max_connections`의 기본값은 다음 Aurora PostgreSQL `LEAST` 함수에서 나옵니다.

`LEAST({DBInstanceClassMemory/9531392},5000)`.

`max_connections`의 값을 변경하려는 경우 사용자 지정 DB 클러스터 파라미터 그룹을 생성하고 거기에서 값을 변경해야 합니다. 사용자 지정 DB 파라미터 그룹을 클러스터에 적용한 후에는 새 값이 적용되도록 기본 인스턴스를 재부팅해야 합니다. 자세한 내용은 [Amazon Aurora PostgreSQL parameters](AuroraPostgreSQL.Reference.ParameterGroups.md) 및 [Amazon Aurora에서 DB 클러스터 파라미터 그룹 생성](USER_WorkingWithParamGroups.CreatingCluster.md)(을)를 참조하세요.

**작은 정보**  
애플리케이션이 연결을 자주 열고 닫거나, 수명이 긴 연결을 많이 열어 두는 경우, Amazon RDS 프록시를 사용하는 것이 좋습니다. RDS 프록시는 데이터베이스 연결을 효율적으로 안전하게 공유하기 위해 연결 풀링을 사용하는 완전관리형 고가용성 데이터베이스 프록시입니다. RDS 프록시에 대한 자세한 내용은 [Aurora용 Amazon RDS Proxy](rds-proxy.md) 섹션을 참조하세요.

 Aurora Serverless v2 인스턴스가 이 파라미터를 처리하는 방법에 대한 자세한 내용은 [Aurora Serverless v2의 최대 연결 수](aurora-serverless-v2.setting-capacity.md#aurora-serverless-v2.max-connections) 섹션을 참조하세요.

## Aurora PostgreSQL에 대한 임시 스토리지 한도
<a name="AuroraPostgreSQL.Managing.TempStorage"></a>

Aurora PostgreSQL은 Aurora 스토리지 하위 시스템에 테이블 및 인덱스를 저장합니다. Aurora PostgreSQL은 비영구 임시 파일에 대해 별도의 임시 스토리지를 사용합니다. 여기에는 쿼리 처리 중 대용량 데이터 세트를 정렬하거나 인덱스 빌드 작업을 위해 사용되는 파일이 포함됩니다. 자세한 내용은 [Aurora PostgreSQL 호환 인스턴스의 로컬 스토리지 문제를 해결하려면 어떻게 해야 합니까?](https://repost.aws/knowledge-center/postgresql-aurora-storage-issue) 문서를 참조하세요. .

이러한 로컬 스토리지 볼륨은 Amazon Elastic Block Store에서 백업하며, 더 큰 D 인스턴스 클래스를 사용하여 확장할 수 있습니다. 스토리지에 대한 자세한 내용은 [Amazon Aurora 스토리지](Aurora.Overview.StorageReliability.md) 섹션을 참조하세요. 또한 NVMe 지원 인스턴스 유형과 Aurora 최적화된 읽기 지원 임시 객체를 사용하여 임시 객체를 위한 로컬 스토리지를 늘릴 수 있습니다. 자세한 내용은 [Aurora 최적화된 읽기로 Aurora PostgreSQL 쿼리 성능 개선](AuroraPostgreSQL.optimized.reads.md) 섹션을 참조하세요.

**참고**  
db.r5.2xlarge에서 db.r5.4xlarge로 변경하는 등 DB 인스턴스 크기를 조정할 때 `storage-optimization` 이벤트가 표시될 수 있습니다.

다음 표에는 각 Aurora PostgreSQL DB 인스턴스 클래스에 사용할 수 있는 임시 스토리지의 최대 용량이 나와 있습니다. Aurora에 대한 DB 인스턴스 클래스 지원의 자세한 내용은 [Amazon AuroraDB 인스턴스 클래스](Concepts.DBInstanceClass.md) 섹션을 참조하세요.


| DB 인스턴스 클래스 | 사용 가능한 최대 임시 스토리지(GiB) | 
| --- | --- | 
| db.x2g.16xlarge | 1829 | 
| db.x2g.12xlarge | 1606 | 
| db.x2g.8xlarge | 1071 | 
| db.x2g.4xlarge | 535 | 
| db.x2g.2xlarge | 268 | 
| db.x2g.xlarge | 134 | 
| db.x2g.large | 67 | 
| db.r8g.48xlarge | 3072 | 
| db.r8g.24xlarge | 1536 | 
| db.r8g.16xlarge | 998 | 
| db.r8g.12xlarge | 749 | 
| db.r8g.8xlarge | 499 | 
| db.r8g.4xlarge | 250 | 
| db.r8g.2xlarge | 125 | 
| db.r8g.xlarge | 63 | 
| db.r8g.large | 31 | 
| db.r7g.16xlarge | 1008 | 
| db.r7g.12xlarge | 756 | 
| db.r7g.8xlarge | 504 | 
| db.r7g.4xlarge | 252 | 
| db.r7g.2xlarge | 126 | 
| db.r7g.xlarge | 63 | 
| db.r7g.large | 32 | 
| db.r7i.48xlarge | 3072 | 
| db.r7i.24xlarge | 1500 | 
| db.r7i.16xlarge | 1008 | 
| db.r7i.12xlarge | 748 | 
| db.r7i.8xlarge | 504 | 
| db.r7i.4xlarge | 249 | 
| db.r7i.2xlarge | 124 | 
| db.r7i.xlarge | 62 | 
| db.r7i.large | 31 | 
| db.r6g.16xlarge | 1008 | 
| db.r6g.12xlarge | 756 | 
| db.r6g.8xlarge | 504 | 
| db.r6g.4xlarge | 252 | 
| db.r6g.2xlarge | 126 | 
| db.r6g.xlarge | 63 | 
| db.r6g.large | 32 | 
| db.r6i.32xlarge | 1829 | 
| db.r6i.24xlarge | 1500 | 
| db.r6i.16xlarge | 1008 | 
| db.r6i.12xlarge | 748 | 
| db.r6i.8xlarge | 504 | 
| db.r6i.4xlarge | 249 | 
| db.r6i.2xlarge | 124 | 
| db.r6i.xlarge | 62 | 
| db.r6i.large | 31 | 
| db.r5.24xlarge | 1500 | 
| db.r5.16xlarge | 1008 | 
| db.r5.12xlarge | 748 | 
| db.r5.8xlarge | 504 | 
| db.r5.4xlarge | 249 | 
| db.r5.2xlarge | 124 | 
| db.r5.xlarge | 62 | 
| db.r5.large | 31 | 
| db.r4.16xlarge | 960 | 
| db.r4.8xlarge | 480 | 
| db.r4.4xlarge | 240 | 
| db.r4.2xlarge | 120 | 
| db.r4.xlarge | 60 | 
| db.r4.large | 30 | 
| db.t4g.large | 16.5 | 
| db.t4g.medium | 8.13 | 
| db.t3.large | 16 | 
| db.t3.medium | 7.5 | 

**참고**  
NVMe 지원 인스턴스 유형은 사용 가능한 임시 공간을 총 NVMe 크기까지 늘릴 수 있습니다. 자세한 내용은 [Aurora 최적화된 읽기로 Aurora PostgreSQL 쿼리 성능 개선](AuroraPostgreSQL.optimized.reads.md) 섹션을 참조하세요.

[Amazon Aurora에 대한 Amazon CloudWatch 지표](Aurora.AuroraMonitoring.Metrics.md)에 설명된 `FreeLocalStorage` CloudWatch 지표를 사용하여 DB 인스턴스에 사용할 수 있는 임시 스토리지를 모니터링할 수 있습니다. (Aurora Serverless v2에는 적용되지 않습니다.)

일부 워크로드의 경우, 작업을 수행 중인 프로세스에 더 많은 메모리를 할당하여 임시 스토리지의 양을 줄일 수 있습니다. 작업에 사용할 수 있는 메모리를 증가시키려면 [work\$1mem](https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-WORK-MEM) 또는 [maintenance\$1work\$1mem](https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-MAINTENANCE-WORK-MEM) PostgreSQL 파라미터의 값을 증가시킵니다.

## Aurora PostgreSQL의 방대한 페이지
<a name="AuroraPostgreSQL.Managing.HugePages"></a>

*방대한 페이지*는 DB 인스턴스가 공유 버퍼에서 사용하는 것과 같은 대규모 연속 메모리 청크로 작업할 때 오버헤드를 줄이는 메모리 관리 기능입니다. 이 PostgreSQL 기능은 현재 사용 가능한 모든 Aurora PostgreSQL 버전에서 지원됩니다.

`Huge_pages` 파라미터는 t3.medium, db.t3.large, db.t4g.medium, db.t4g.large 인스턴스 클래스를 제외한 모든 DB 인스턴스 클래스에서 기본적으로 켜져 있습니다. Aurora PostgreSQL의 지원되는 인스턴스 클래스에서는 `huge_pages` 파라미터 값을 변경하거나 이 기능을 끌 수 없습니다.

방대한 페이지 메모리 기능을 지원하지 않는 Aurora PostgreSQL DB 인스턴스에서는 해당 워크로드 변경 없이 특정 프로세스 메모리 사용량이 증가할 수 있습니다.

시스템은 서버 시작 중에 버퍼 캐시와 같은 공유 메모리 세그먼트를 할당합니다. 방대한 메모리 페이지를 사용할 수 없는 경우 시스템은 이러한 할당을 포스트마스터 프로세스에 청구하지 않습니다. 대신 공유 메모리 세그먼트의 각 4KB 페이지에 처음 액세스한 프로세스의 메모리가 포함됩니다.

**참고**  
활성 연결은 프로세스 간에 공유 메모리 사용량을 추적하는 방법에 관계없이 필요에 따라 할당된 메모리를 공유합니다.

# 오류 삽입 쿼리를 사용하여 Amazon Aurora PostgreSQL 테스트
<a name="AuroraPostgreSQL.Managing.FaultInjectionQueries"></a>

오류 삽입 쿼리를 사용하여 Aurora PostgreSQL DB 클러스터의 내결함성을 테스트할 수 있습니다. 오류 삽입 쿼리는 Amazon Aurora 인스턴스에 SQL 명령으로 발행됩니다. 장애 삽입 쿼리를 사용하면 인스턴스를 중단시켜 장애 조치 및 복구를 테스트할 수 있습니다. 또한 Aurora Replica 장애, 디스크 장애 및 디스크 혼잡을 시뮬레이션할 수 있습니다. 오류 삽입 쿼리는 다음과 같이 사용 가능한 모든 Aurora PostgreSQL 버전에서 지원됩니다.
+ Aurora PostgreSQL 버전 12, 13, 14 이상
+ Aurora PostgreSQL 버전 11.7 이상
+ Aurora PostgreSQL 버전 10.11 이상

**Topics**
+ [인스턴스 충돌 테스트](#AuroraPostgreSQL.Managing.FaultInjectionQueries.Crash)
+ [Aurora 복제본 실패 테스트](#AuroraPostgreSQL.Managing.FaultInjectionQueries.ReplicaFailure)
+ [디스크 실패 테스트](#AuroraPostgreSQL.Managing.FaultInjectionQueries.DiskFailure)
+ [디스크 정체 테스트](#AuroraPostgreSQL.Managing.FaultInjectionQueries.DiskCongestion)

오류 삽입 쿼리가 충돌을 지정하면 Aurora PostgreSQL DB 인스턴스가 강제로 충돌합니다. 다른 오류 삽입 쿼리로 인해서도 오류 이벤트 시뮬레이션이 발생하지만 이 경우 이벤트는 발생하지 않습니다. 오류 삽입 쿼리를 제출할 때 실패 이벤트 시뮬레이션이 발생하는 시간 길이를 지정할 수도 있습니다.

Aurora 복제본의 엔드포인트에 연결하여 오류 삽입 쿼리를 Aurora 복제본 중 하나로 제출할 수 있습니다. 자세한 내용은 [Amazon Aurora 엔드포인트 연결](Aurora.Overview.Endpoints.md) 섹션을 참조하세요.

## 인스턴스 충돌 테스트
<a name="AuroraPostgreSQL.Managing.FaultInjectionQueries.Crash"></a>

`aurora_inject_crash()` 오류 삽입 쿼리 함수를 사용하여 Aurora PostgreSQL 인스턴스의 충돌을 강제로 일으킬 수 있습니다.

이 오류 삽입 쿼리의 경우 장애 조치가 발생하지 않습니다. 장애 조치를 테스트하려면 RDS 콘솔에서 DB 클러스터에 대한 **장애 조치** 인스턴스 작업을 선택하거나 [failover-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/failover-db-cluster.html) AWS CLI 명령 또는 [FailoverDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_FailoverDBCluster.html) RDS API 작업을 사용합니다.

**구문**:

```
1. SELECT aurora_inject_crash ('instance' | 'dispatcher' | 'node');
```옵션

이 오류 삽입 쿼리에는 다음 충돌 유형 중 하나가 사용됩니다. 충돌 유형은 대소문자를 구분하지 않습니다.

*'인스턴스'*  
Amazon Aurora 인스턴스용 PostgreSQL 호환 데이터베이스의 충돌이 시뮬레이션됩니다.

*'dispatcher'*  
Aurora DB 클러스터용 기본 인스턴스에서 디스패처 충돌이 시뮬레이션됩니다. *디스패처*가 Amazon Aurora DB 클러스터용 클러스터 볼륨에 업데이트 쓰기 작업을 합니다.

*'노드'*  
PostgreSQL 호환 데이터베이스 및 Amazon Aurora 인스턴스용 디스패처의 충돌이 모두 시뮬레이션됩니다.

## Aurora 복제본 실패 테스트
<a name="AuroraPostgreSQL.Managing.FaultInjectionQueries.ReplicaFailure"></a>

`aurora_inject_replica_failure()` 오류 삽입 쿼리 함수를 사용하여 Aurora 복제본의 실패를 시뮬레이션할 수 있습니다.

Aurora 복제본이 실패하면 Aurora 복제본 또는 DB 클러스터의 모든 Aurora 복제본으로의 복제가 지정된 시간 간격 동안 지정된 백분율만큼 차단됩니다. 시간 간격이 경과되면 영향을 받는 Aurora 복제본이 자동으로 프라이머리 인스턴스와 동기화됩니다.

**구문**:

```
1. SELECT aurora_inject_replica_failure(
2.    percentage_of_failure, 
3.    time_interval, 
4.    'replica_name'
5. );
```옵션

이 오류 삽입 쿼리에는 다음 파라미터가 사용됩니다.

*percentage\$1of\$1failure*  
실패 이벤트 도중 차단되는 복제의 비율입니다. 이 값은 0 \$1 100의 실수(Double)입니다. 0을 지정하면 복제가 차단되지 않습니다. 100을 지정하면 모든 복제가 차단됩니다.

*time\$1interval*  
Aurora Replica 실패 시뮬레이션 시간 길이. 간격은 초 단위입니다. 예를 들어 값이 20이면 시뮬레이션이 20초 동안 실행됩니다.  
Aurora 복제본 실패 이벤트에 대한 시간 간격을 지정할 때는 각별히 주의하십시오. 시간 간격을 너무 길게 지정하고 라이터 인스턴스가 실패 이벤트 중에 대량의 데이터를 기록하는 경우 Aurora DB 클러스터에서 Aurora 복제본이 충돌했다고 간주하여 해당 복제본을 교체할 수도 있습니다.

*replica\$1name*  
실패 시뮬레이션을 삽입할 Aurora Replica 단일 Aurora 복제본의 실패를 시뮬레이션하려면 Aurora 복제본의 이름을 지정합니다. DB 클러스터의 모든 Aurora 복제본에 대한 오류를 시뮬레이션하려면 빈 문자열을 지정합니다.  
복제본 이름을 식별하려면 `server_id` 함수의 `aurora_replica_status()` 열을 참조하십시오. 예:  

```
postgres=> SELECT server_id FROM aurora_replica_status();
```

## 디스크 실패 테스트
<a name="AuroraPostgreSQL.Managing.FaultInjectionQueries.DiskFailure"></a>

`aurora_inject_disk_failure()` 오류 삽입 쿼리 함수를 사용하여 Aurora PostgreSQL DB 클러스터에 대한 디스크 실패를 시뮬레이션할 수 있습니다.

디스크 실패 시뮬레이션 중에는 Aurora PostgreSQL DB 클러스터에서 임의로 디스크 세그먼트를 오류 상태로 표시합니다. 시뮬레이션 기간 동안 이러한 세그먼트에 대한 요청이 차단됩니다.

**구문**:

```
1. SELECT aurora_inject_disk_failure(
2.    percentage_of_failure, 
3.    index, 
4.    is_disk, 
5.    time_interval
6. );
```옵션

이 오류 삽입 쿼리에는 다음 파라미터가 사용됩니다.

*percentage\$1of\$1failure*  
실패 이벤트 중에 오류 상태로 표시할 디스크의 비율(%). 이 값은 0 \$1 100의 실수(Double)입니다. 0을 지정하면 디스크의 어떤 부분도 오류 상태로 표시되지 않습니다. 100을 지정하면 전체 디스크가 오류 상태로 표시됩니다.

*인덱스를 구축하고 배포할 것입니다*  
실패 이벤트를 시뮬레이션할 특정 논리 데이터 블록. 가용 논리 블록 또는 스토리지 노드 데이터의 범위를 초과하는 경우 지정할 수 있는 최대 인덱스 값을 알려주는 오류가 발생합니다. 이 오류를 방지하려면 [Aurora PostgreSQL DB 클러스터를 위한 볼륨 상태 표시](AuroraPostgreSQL.Managing.VolumeStatus.md) 단원을 참조하십시오.

*is\$1disk*  
삽입 실패가 논리 블록에서 발생했는지 아니면 스토리지 노드에서 발생했는지 여부 표시. true를 지정하면 삽입 실패가 논리 블록에서 발생했음을 의미합니다. false를 지정하면 삽입 실패가 스토리지 노드에서 발생했음을 의미합니다.

*time\$1interval*  
디스크 장애를 시뮬레이션하는 데 걸리는 시간입니다. 간격은 초 단위입니다. 예를 들어 값이 20이면 시뮬레이션이 20초 동안 실행됩니다.

## 디스크 정체 테스트
<a name="AuroraPostgreSQL.Managing.FaultInjectionQueries.DiskCongestion"></a>

`aurora_inject_disk_congestion()` 오류 삽입 쿼리 함수를 사용하여 Aurora PostgreSQL DB 클러스터에 대한 디스크 정체를 시뮬레이션할 수 있습니다.

디스크 정체 시뮬레이션 중에는 Aurora PostgreSQL DB 클러스터에서 임의로 디스크 세그먼트를 정체 상태로 표시합니다. 시뮬레이션 기간 동안 지정된 최소 지연 시간과 최대 지연 시간 사이에서 이러한 세그먼트에 대한 요청이 지연됩니다.

**구문**:

```
1. SELECT aurora_inject_disk_congestion(
2.    percentage_of_failure, 
3.    index, 
4.    is_disk, 
5.    time_interval, 
6.    minimum, 
7.    maximum
8. );
```옵션

이 오류 삽입 쿼리에는 다음 파라미터가 사용됩니다.

*percentage\$1of\$1failure*  
실패 이벤트 중에 정체 상태로 표시할 디스크의 비율(%). 이 값은 0에서 100 사이의 이중 값입니다. 0을 지정하면 디스크의 어떤 부분도 정체 상태로 표시되지 않습니다. 100을 지정하면 전체 디스크가 정체 상태로 표시됩니다.

*인덱스를 구축하고 배포할 것입니다*  
실패 이벤트 시뮬레이션에 사용할 특정 논리 데이터 블록 또는 스토리지 노드.  
가용 논리 블록 또는 스토리지 노드 데이터의 범위를 초과하는 경우 지정할 수 있는 최대 인덱스 값을 알려주는 오류가 발생합니다. 이 오류를 방지하려면 [Aurora PostgreSQL DB 클러스터를 위한 볼륨 상태 표시](AuroraPostgreSQL.Managing.VolumeStatus.md) 단원을 참조하십시오.

*is\$1disk*  
삽입 실패가 논리 블록에서 발생했는지 아니면 스토리지 노드에서 발생했는지 여부 표시. true를 지정하면 삽입 실패가 논리 블록에서 발생했음을 의미합니다. false를 지정하면 삽입 실패가 스토리지 노드에서 발생했음을 의미합니다.

*time\$1interval*  
디스크 정체를 시뮬레이션하는 데 걸리는 시간입니다. 간격은 초 단위입니다. 예를 들어 값이 20이면 시뮬레이션이 20초 동안 실행됩니다.

*최소, 최대*  
최대 및 최소 정체 지연 시간(밀리초). 유효한 값의 범위는 0.0에서 100.0밀리초까지입니다. 정체 상태로 표시된 디스크 세그먼트는 시뮬레이션 기간 동안 최소 및 최대 범위 내에서 임의의 시간 동안 지연됩니다. 최대값은 최소값보다 커야 합니다.

# Aurora PostgreSQL DB 클러스터를 위한 볼륨 상태 표시
<a name="AuroraPostgreSQL.Managing.VolumeStatus"></a>

Amazon Aurora에서 DB 클러스터 볼륨은 논리 블록의 모음으로 구성됩니다. 이 각각은 할당된 스토리지의 10기가바이트를 나타냅니다. 이러한 블록을 *보호 그룹*이라고 합니다.

각 보호 그룹의 데이터는 *스토리지 노드*라고 하는 6개의 물리 스토리지 장치에 두루 복제됩니다. 이러한 스토리지 노드는 DB 클러스터가 상주하는 리전의 3개 가용 영역(AZ)에 할당됩니다. 또한 각 스토리지 노드에는 DB 클러스터 볼륨에 대해 1개 이상의 논리 데이터 블록이 포함됩니다. 보호 그룹 및 스토리지 노드에 대한 자세한 내용은 AWS 데이터베이스 블로그의 [Aurora 스토리지 엔진 소개](https://aws.amazon.com/blogs/database/introducing-the-aurora-storage-engine/)를 참조하세요. 일반적인 Aurora 클러스터 볼륨에 대해 자세히 알아보려면 [Amazon Aurora 스토리지](Aurora.Overview.StorageReliability.md) 섹션에서 참조하세요.

`aurora_show_volume_status()` 함수를 사용하여 다음 서버 상태 변수를 반환합니다.
+ `Disks` — DB 클러스터 볼륨에 대한 데이터의 총 논리 블록 수
+ `Nodes` **-** DB 클러스터 볼륨의 총 스토리지 노드 수입니다.

`aurora_show_volume_status()` 함수를 사용하면 `aurora_inject_disk_failure()` 오류 삽입 기능을 사용할 때 오류를 방지할 수 있습니다. `aurora_inject_disk_failure()` 오류 삽입 기능은 전체 스토리지 노드 또는 스토리지 노드 내에 있는 단일 논리 데이터 블록의 실패를 시뮬레이션합니다. 함수에서 특정 논리 데이터 블록 또는 스토리지 노드의 인덱스 값을 지정합니다. 그러나 DB 클러스터 볼륨이 사용하는 논리 데이터 블록 또는 스토리지 노드의 수보다 큰 인덱스 값을 지정하면 이 명령문은 오류를 반환합니다. 오류 삽입 쿼리에 대한 자세한 내용은 [오류 삽입 쿼리를 사용하여 Amazon Aurora PostgreSQL 테스트](AuroraPostgreSQL.Managing.FaultInjectionQueries.md) 단원을 참조하십시오.

**참고**  
`aurora_show_volume_status()` 함수는 Aurora PostgreSQL 버전 10.11에서 사용할 수 있습니다. Aurora PostgreSQL 버전에 대한 자세한 내용은 [Amazon Aurora PostgreSQL 릴리스 및 엔진 버전](AuroraPostgreSQL.Updates.20180305.md) 단원을 참조하십시오.

**구문**:

```
1. SELECT * FROM aurora_show_volume_status();
```

**예제**

```
customer_database=> SELECT * FROM aurora_show_volume_status();
 disks | nodes 
-------+-------
    96 |    45
```

# stats\$1temp\$1directory에 대한 RAM 디스크 지정
<a name="AuroraPostgreSQL.Managing.RamDisk"></a>

Aurora PostgreSQL 파라미터 `rds.pg_stat_ramdisk_size`을(를) 사용하여 PostgreSQL `stats_temp_directory` 저장용 RAM 디스크에 할당되는 시스템 메모리를 지정합니다. RAM 디스크 파라미터는 Aurora PostgreSQL 14 이하 버전에서만 사용할 수 있습니다.

특정 워크로드에서 이 파라미터를 설정하면 성능이 향상되고 IO 요구 사항이 감소될 수 있습니다. `stats_temp_directory`에 대한 자세한 내용은 PostgreSQL 설명서에서 [런타임 통계](https://www.postgresql.org/docs/current/static/runtime-config-statistics.html#GUC-STATS-TEMP-DIRECTORY)를 참조하세요. PostgreSQL 버전 15부터 PostgreSQL 커뮤니티는 동적 공유 메모리를 사용하도록 전환했습니다. 따라서 `stats_temp_directory`를 설정할 필요가 없습니다.

`stats_temp_directory`에 대한 RAM 디스크를 활성화하려면 DB 클러스터에 사용되는 DB 클러스터 파라미터 그룹에서 `rds.pg_stat_ramdisk_size` 파라미터를 0이 아닌 값으로 설정합니다. 이 파라미터는 MB를 나타내므로 정수 값을 사용해야 합니다. 표현식, 공식 및 함수는 `rds.pg_stat_ramdisk_size` 파라미터에 유효하지 않습니다. 변경 사항을 적용하려면 DB 클러스터를 재시작해야 합니다. 파라미터 설정에 대한 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md)을 참조하세요. DB 클러스터 연결에 대한 자세한 내용은 [Amazon Aurora DB 클러스터 또는 Amazon Aurora DB 인스턴스 재부팅](USER_RebootCluster.md)을 참조하세요.

예를 들어 다음 AWS CLI 명령은 RAM 디스크 파라미터를 256MB로 설정합니다.

```
aws rds modify-db-cluster-parameter-group \
    --db-cluster-parameter-group-name db-cl-pg-ramdisk-testing \
    --parameters "ParameterName=rds.pg_stat_ramdisk_size, ParameterValue=256, ApplyMethod=pending-reboot"
```

DB 클러스터 재시작 후 다음 명령을 실행하여 `stats_temp_directory`의 상태를 확인합니다.

```
postgres=> SHOW stats_temp_directory;
```

명령은 다음을 반환합니다.

```
stats_temp_directory
---------------------------
/rdsdbramdisk/pg_stat_tmp
(1 row)
```

# PostgreSQL을 사용한 임시 파일 관리
<a name="PostgreSQL.ManagingTempFiles"></a>

PostgreSQL에서 복잡한 쿼리는 여러 가지 정렬 또는 해시 연산을 동시에 수행할 수 있으며, 각 연산은 인스턴스 메모리를 사용하여 [https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-WORK-MEM](https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-WORK-MEM) 파라미터에 지정된 값까지 결과를 저장합니다. 인스턴스 메모리가 충분하지 않은 경우 결과를 저장하기 위한 임시 파일이 생성됩니다. 이러한 임시 파일은 쿼리 실행을 완료하기 위해 디스크에 기록됩니다. 나중에 이러한 파일은 쿼리가 완료된 후 자동으로 제거됩니다. Aurora PostgreSQL에서 이러한 파일은 로컬 스토리지를 다른 로그 파일과 함께 공유합니다. `FreeLocalStorage`용 Amazon CloudWatch 지표를 관찰하면 Aurora PostgreSQL DB 클러스터의 로컬 스토리지 공간을 모니터링할 수 있습니다. 자세한 내용은 [ 로컬 스토리지 문제 해결](https://aws.amazon.com/premiumsupport/knowledge-center/postgresql-aurora-storage-issue/)을 참조하세요.

임시 파일 사용량을 늘리는 다중 동시 쿼리가 포함된 워크로드에서는 Aurora 최적화된 읽기 클러스터를 사용하는 것이 좋습니다. 이러한 클러스터는 SSD(Solid State Drive) 블록 스토리지에 기반한 NVMe(Non-Volatile Memory Express)를 사용하여 임시 파일을 배치할 수 있습니다. 자세한 내용은 [Aurora 최적화된 읽기로 Aurora PostgreSQL 쿼리 성능 개선](AuroraPostgreSQL.optimized.reads.md) 섹션을 참조하세요.

다음과 같은 파라미터와 함수를 사용하여 인스턴스의 임시 파일을 관리할 수 있습니다.
+ **[https://www.postgresql.org/docs/current/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-DISK](https://www.postgresql.org/docs/current/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-DISK)** - 이 파라미터는 temp\$1files 크기(KB)를 초과하는 모든 쿼리를 취소합니다. 이러한 한도는 쿼리가 무한으로 실행되어 임시 파일이 디스크 공간을 사용하는 현상을 방지합니다. `log_temp_files` 파라미터의 결과를 사용하여 값을 추정할 수 있습니다. 가장 좋은 방법은 워크로드 동작을 검사하고 추정치에 따라 한도를 설정하는 것입니다. 다음 예는 한도를 초과했을 때 쿼리가 취소되는 방식을 보여줍니다.

  ```
  postgres=>select * from pgbench_accounts, pg_class, big_table;
  ```

  ```
  ERROR: temporary file size exceeds temp_file_limit (64kB)
  ```
+ **[https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-TEMP-FILES](https://www.postgresql.org/docs/current/runtime-config-logging.html#GUC-LOG-TEMP-FILES)** - 이 파라미터는 세션의 임시 파일이 제거될 경우 postgresql.log로 메시지를 보냅니다. 이 파라미터는 쿼리가 성공적으로 완료된 후 로그를 생성합니다. 따라서 활성 상태의 장기 실행 쿼리의 문제를 해결하는 데에는 도움이 되지 않을 수도 있습니다.

  다음 예시에서는 쿼리가 성공적으로 완료되었을 때 임시 파일이 정리되는 동안 항목이 postgresql.log 파일에 기록되는 것을 보여줍니다.

  ```
                      
  2023-02-06 23:48:35 UTC:205.251.233.182(12456):adminuser@postgres:[31236]:LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp31236.5", size 140353536
  2023-02-06 23:48:35 UTC:205.251.233.182(12456):adminuser@postgres:[31236]:STATEMENT:  select a.aid from pgbench_accounts a, pgbench_accounts b where a.bid=b.bid order by a.bid limit 10;
  2023-02-06 23:48:35 UTC:205.251.233.182(12456):adminuser@postgres:[31236]:LOG:  temporary file: path "base/pgsql_tmp/pgsql_tmp31236.4", size 180428800
  2023-02-06 23:48:35 UTC:205.251.233.182(12456):adminuser@postgres:[31236]:STATEMENT:  select a.aid from pgbench_accounts a, pgbench_accounts b where a.bid=b.bid order by a.bid limit 10;
  ```
+ **[https://www.postgresql.org/docs/current/functions-admin.html#FUNCTIONS-ADMIN-GENFILE](https://www.postgresql.org/docs/current/functions-admin.html#FUNCTIONS-ADMIN-GENFILE)** - RDS for PostgreSQL 13 이상에서 제공되는 이 함수를 사용하면 현재 임시 파일 사용량을 확인할 수 있습니다. 완료된 쿼리는 함수 결과에 나타나지 않습니다. 다음 예제에서는 이 함수의 결과를 볼 수 있습니다.

  ```
  postgres=>select * from pg_ls_tmpdir();
  ```

  ```
        name       |    size    |      modification
  -----------------+------------+------------------------
   pgsql_tmp8355.1 | 1072250880 | 2023-02-06 22:54:56+00
   pgsql_tmp8351.0 | 1072250880 | 2023-02-06 22:54:43+00
   pgsql_tmp8327.0 | 1072250880 | 2023-02-06 22:54:56+00
   pgsql_tmp8351.1 |  703168512 | 2023-02-06 22:54:56+00
   pgsql_tmp8355.0 | 1072250880 | 2023-02-06 22:54:00+00
   pgsql_tmp8328.1 |  835031040 | 2023-02-06 22:54:56+00
   pgsql_tmp8328.0 | 1072250880 | 2023-02-06 22:54:40+00
  (7 rows)
  ```

  ```
  postgres=>select query from pg_stat_activity where pid = 8355;
                  
  query
  ----------------------------------------------------------------------------------------
  select a.aid from pgbench_accounts a, pgbench_accounts b where a.bid=b.bid order by a.bid
  (1 row)
  ```

  파일 이름에는 임시 파일을 생성한 세션의 처리 ID(PID)가 포함됩니다. 다음 예와 같은 고급 쿼리는 각 PID에 대한 임시 파일의 합계를 수행합니다.

  ```
  postgres=>select replace(left(name, strpos(name, '.')-1),'pgsql_tmp','') as pid, count(*), sum(size) from pg_ls_tmpdir() group by pid;
  ```

  ```
   pid  | count |   sum
  ------+-------------------
   8355 |     2 | 2144501760
   8351 |     2 | 2090770432
   8327 |     1 | 1072250880
   8328 |     2 | 2144501760
  (4 rows)
  ```
+ **`[ pg\$1stat\$1statements](https://www.postgresql.org/docs/current/pgstatstatements.html)`** - pg\$1stat\$1statements 파라미터를 활성화하면 호출당 평균 임시 파일 사용량을 볼 수 있습니다. 쿼리의 query\$1id를 식별하고 이를 사용하여 다음 예와 같이 임시 파일 사용량을 검사할 수 있습니다.

  ```
  postgres=>select queryid from pg_stat_statements where query like 'select a.aid from pgbench%';
  ```

  ```
         queryid
  ----------------------
   -7170349228837045701
  (1 row)
  ```

  ```
  postgres=>select queryid, substr(query,1,25), calls, temp_blks_read/calls temp_blks_read_per_call, temp_blks_written/calls temp_blks_written_per_call from pg_stat_statements where queryid = -7170349228837045701;
  ```

  ```
         queryid        |          substr           | calls | temp_blks_read_per_call | temp_blks_written_per_call
  ----------------------+---------------------------+-------+-------------------------+----------------------------
   -7170349228837045701 | select a.aid from pgbench |    50 |                  239226 |                     388678
  (1 row)
  ```
+ **`[Performance Insights](https://aws.amazon.com/rds/performance-insights/)`** - 성능 개선 도우미 대시보드에서 **temp\$1bytes** 및 **temp\$1files** 메트릭을 켜서 임시 파일 사용량을 확인할 수 있습니다. 그런 다음, 이 두 지표의 평균을 확인하고 두 지표가 쿼리 워크로드에 어떻게 상응하는지 확인할 수 있습니다. 성능 개선 도우미 내부의 보기에는 임시 파일을 생성 중인 쿼리가 구체적으로 표시되지 않습니다. 그러나 성능 개선 도우미를 `pg_ls_tmpdir`에 대해 표시된 쿼리와 결합하면 쿼리 워크로드의 문제를 해결하고, 분석하고, 변경 사항을 확인할 수 있습니다.

  성능 개선 도우미를 사용하여 지표를 분석하고 쿼리를 분석하는 방법에 대한 자세한 내용은 [성능 개선 도우미 대시보드를 사용한 지표 분석](USER_PerfInsights.UsingDashboard.md) 섹션을 참조하세요.

  성능 개선 도우미를 사용하여 임시 파일 사용량을 보는 예제는 [성능 개선 도우미를 사용하여 임시 파일 사용량 확인](PostgreSQL.ManagingTempFiles.Example.md) 섹션을 참조하세요.

# 성능 개선 도우미를 사용하여 임시 파일 사용량 확인
<a name="PostgreSQL.ManagingTempFiles.Example"></a>

성능 개선 도우미를 통해 지표 **temp\$1bytes** 및 **temp\$1files**를 설정하여 임시 파일 사용량을 볼 수 있습니다. 성능 개선 도우미 보기에는 임시 파일을 생성하는 특정 쿼리가 표시되지 않지만, `pg_ls_tmpdir`에 대해 표시된 쿼리와 성능 개선 도우미를 결합하면 쿼리 워크로드를 분석하고, 변경 사항을 확인하고, 문제를 해결할 수 있습니다.

1. 성능 개선 도우미 대시보드에서 **지표 관리**를 선택합니다.

1. 다음 이미지에 나와 있는 것처럼 **데이터베이스 지표**를 선택하고, **temp\$1bytes** 및 **temp\$1files**를 선택합니다.  
![\[지표가 그래프로 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/rpg_mantempfiles_metrics.png)

1. **상위 SQL** 탭에서 **기본 설정** 아이콘을 선택합니다.

1. **기본 설정** 창에서 **상위 SQL** 탭에 표시할 다음 통계를 켜고 **계속**을 선택합니다.
   + 임시 쓰기/초
   + 임시 읽기/초
   + 임시 대량 쓰기/호출
   + 임시 대량 읽기/호출

1. 다음 예제에 나온 것처럼, 임시 파일은 `pg_ls_tmpdir`에 대해 표시된 쿼리와 함께 통합될 때 분할됩니다.  
![\[임시 파일 사용량을 표시하는 쿼리.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/rpg_mantempfiles_query.png)

`IO:BufFileRead` 및 `IO:BufFileWrite` 이벤트는 대개 워크로드의 상위 쿼리에서 임시 파일이 생성될 때 발생합니다. 데이터베이스 부하 및 상위 SQL 섹션의 AAS(상위 활성 세션)를 검토하여 `IO:BufFileRead` 및 `IO:BufFileWrite`에서 대기 중인 상위 쿼리를 식별하는 데 성능 개선 도우미를 사용할 수 있습니다.

![\[그래프에 IO:BufFileRead 및 IO:BufFileWrite가 표시되어 있습니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/perfinsights_IOBufFile.png)


성능 개선 도우미를 사용하여 상위 쿼리와 대기 이벤트에서 부하를 분석하는 방법에 대한 자세한 내용은 [상위 SQL(Top SQL) 탭 개요](USER_PerfInsights.UsingDashboard.AnalyzeDBLoad.AdditionalMetrics.md#USER_PerfInsights.UsingDashboard.Components.AvgActiveSessions.TopLoadItemsTable.TopSQL) 단원을 참조하세요. 임시 파일 사용량 및 관련 대기 이벤트를 늘리는 쿼리를 식별하고 조정해야 합니다. 이러한 대기 이벤트 및 수정에 대한 자세한 내용은 [IO:BufFileRead 및 IO:BufFileWrite](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/apg-waits.iobuffile.html)를 참조하세요.

**참고**  
이 [https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-WORK-MEM](https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-WORK-MEM) 파라미터는 정렬 작업의 메모리가 부족하여 결과가 임시 파일에 기록되는 시점을 제어합니다. 이 파라미터의 설정을 기본값보다 높게 변경하면 모든 데이터베이스 세션에서 더 많은 메모리를 사용할 수 있으므로 변경하지 않는 것이 좋습니다. 또한 복잡한 조인 및 정렬을 수행하는 단일 세션에서는 각 작업이 메모리를 사용하는 병렬 작업을 수행할 수 있습니다.  
여러 조인 및 정렬이 포함된 대용량 보고서가 있을 경우 `SET work_mem` 명령을 사용하여 세션 수준에서 이 파라미터를 설정하는 것이 가장 좋습니다. 그러면 변경 사항이 현재 세션에만 적용되고 값이 전체적으로 변경되지 않습니다.

# Aurora PostgreSQL의 대기 이벤트를 사용한 튜닝
<a name="AuroraPostgreSQL.Tuning"></a>

대기 이벤트는 Aurora PostgreSQL의 중요한 조정 도구입니다. 세션이 리소스를 기다리는 이유와 어떤 작업을 수행하는지 알 수 있다면 병목 현상을 더 잘 줄일 수 있습니다. 이 섹션의 정보를 통해 가능한 원인과 해결 조치를 찾을 수 있습니다. 이 섹션을 자세히 살펴보기 전에 기본적인 Aurora 개념, 특히 다음 주제를 이해하는 것이 좋습니다.
+ [Amazon Aurora 스토리지](Aurora.Overview.StorageReliability.md)
+ [Aurora DB 클러스터의 성능 및 확장 관리](Aurora.Managing.Performance.md) 

**중요**  
이 섹션에서 다루는 대기 이벤트는 Aurora PostgreSQL에만 해당됩니다. 이 섹션의 정보는 RDS for PostgreSQL이 아닌 Amazon Aurora만 튜닝하는 데 사용하세요.  
이 섹션에서 다루는 일부 대기 이벤트는 이러한 데이터베이스 엔진의 오픈 소스 버전에서는 유사한 것이 없습니다. 다른 대기 이벤트는 오픈 소스 엔진의 이벤트와 이름이 같지만 다르게 동작합니다. 예를 들어, Amazon Aurora 스토리지는 오픈 소스 스토리지와 다르게 작동하므로 스토리지 관련 대기 이벤트는 리소스 상태가 다르다는 것을 나타냅니다.

**Topics**
+ [Aurora PostgreSQL 튜닝을 위한 필수 개념](AuroraPostgreSQL.Tuning.concepts.md)
+ [Aurora PostgreSQL 대기 이벤트](AuroraPostgreSQL.Tuning.concepts.summary.md)
+ [Client:ClientRead](apg-waits.clientread.md)
+ [Client:ClientWrite](apg-waits.clientwrite.md)
+ [CPU](apg-waits.cpu.md)
+ [IO:BufFileRead 및 IO:BufFileWrite](apg-waits.iobuffile.md)
+ [IO:DataFileRead](apg-waits.iodatafileread.md)
+ [IO:XactSync](apg-waits.xactsync.md)
+ [IPC:DamRecordTxAck](apg-waits.ipcdamrecordtxac.md)
+ [IPC:parallel 대기 이벤트](apg-ipc-parallel.md)
+ [IPC:ProcArrayGroupUpdate](apg-rpg-ipcprocarraygroup.md)
+ [Lock:advisory](apg-waits.lockadvisory.md)
+ [Lock:extend](apg-waits.lockextend.md)
+ [Lock:Relation](apg-waits.lockrelation.md)
+ [Lock:transactionid](apg-waits.locktransactionid.md)
+ [Lock:tuple](apg-waits.locktuple.md)
+ [LWLock:buffer\$1content (BufferContent)](apg-waits.lockbuffercontent.md)
+ [LWLock:buffer\$1mapping](apg-waits.lwl-buffer-mapping.md)
+ [LWLock:BufferIO(IPC:BufferIO)](apg-waits.lwlockbufferio.md)
+ [LWLock:lock\$1manager](apg-waits.lw-lock-manager.md)
+ [LWLock:MultiXact](apg-waits.lwlockmultixact.md)
+ [LWLock:pg\$1stat\$1statements](apg-rpg-lwlockpgstat.md)
+ [Timeout:PgSleep](apg-waits.timeoutpgsleep.md)

# Aurora PostgreSQL 튜닝을 위한 필수 개념
<a name="AuroraPostgreSQL.Tuning.concepts"></a>

Aurora PostgreSQL 데이터베이스를 조정하기 전에 대기 이벤트가 무엇인지, 왜 발생하는지 확인해 보세요. 또한 Aurora PostgreSQL의 기본 메모리 및 디스크 아키텍처도 검토하세요. 유용한 아키텍처 다이어그램은 [PostgreSQL](https://en.wikibooks.org/wiki/PostgreSQL/Architecture) 위키북을 참조하세요.

**Topics**
+ [Aurora PostgreSQL 대기 이벤트](#AuroraPostgreSQL.Tuning.concepts.waits)
+ [Aurora PostgreSQL 메모리](#AuroraPostgreSQL.Tuning.concepts.memory)
+ [Aurora PostgreSQL 프로세스](#AuroraPostgreSQL.Tuning.concepts.processes)

## Aurora PostgreSQL 대기 이벤트
<a name="AuroraPostgreSQL.Tuning.concepts.waits"></a>

*대기 이벤트*는 세션이 대기 중인 리소스를 나타냅니다. 예를 들어 대기 이벤트 `Client:ClientRead`는 Aurora PostgreSQL이 클라이언트로부터 데이터를 수신하기 위해 대기 중일 때 발생합니다. 세션이 기다리는 일반적인 리소스는 다음과 같습니다.
+ 버퍼에 대한 단일 스레드 액세스(예: 세션이 버퍼 수정을 시도하는 경우)
+ 현재 다른 세션에 의해 잠겨 있는 행
+ 데이터 파일 읽기
+ 로그 파일 쓰기

예를 들어 쿼리를 충족하기 위해 세션에서 전체 테이블 스캔을 수행할 수 있습니다. 데이터가 아직 메모리에 없는 경우 세션은 디스크 I/O가 완료될 때까지 기다립니다. 버퍼를 메모리로 읽으면 다른 세션이 동일한 버퍼에 액세스하기 때문에 세션을 기다려야 할 수 있습니다. 데이터베이스는 미리 정의된 대기 이벤트를 사용하여 대기를 기록합니다. 이러한 이벤트는 카테고리로 그룹화됩니다.

대기 이벤트 자체가 성능 문제를 나타내지는 않습니다. 예를 들어 요청된 데이터가 메모리에 없으면 디스크에서 데이터를 읽어야 합니다. 한 세션이 업데이트를 위해 행을 잠그면 다른 세션은 해당 행의 잠금이 해제될 때까지 기다려 업데이트할 수 있습니다. 커밋을 수행하려면 로그 파일에 대한 쓰기가 완료될 때까지 대기해야 합니다. 대기는 데이터베이스의 정상적인 기능에 필수적입니다.

많은 수의 대기 이벤트는 일반적으로 성능 문제를 나타냅니다. 이러한 경우 대기 이벤트 데이터를 사용하여 세션이 시간을 소비하는 위치를 결정할 수 있습니다. 예를 들어 일반적으로 몇 분 안에 실행되는 보고서가 몇 시간 동안 실행되는 경우 총 대기 시간에 가장 많이 기여하는 대기 이벤트를 식별할 수 있습니다. 최상위 대기 이벤트의 원인을 확인할 수 있는 경우 성능을 향상시키는 변경 작업을 수행할 수 있습니다. 예를 들어 세션이 다른 세션에 의해 잠긴 행에서 대기 중인 경우 잠금 세션을 종료할 수 있습니다.

## Aurora PostgreSQL 메모리
<a name="AuroraPostgreSQL.Tuning.concepts.memory"></a>

Aurora PostgreSQL 메모리는 공유 메모리와 로컬 메모리로 구분됩니다.

**Topics**
+ [Aurora PostgreSQL의 공유 메모리](#AuroraPostgreSQL.Tuning.concepts.shared)
+ [Aurora PostgreSQL의 로컬 메모리](#AuroraPostgreSQL.Tuning.concepts.local)

### Aurora PostgreSQL의 공유 메모리
<a name="AuroraPostgreSQL.Tuning.concepts.shared"></a>

Aurora PostgreSQL 인스턴스가 시작될 때 공유 메모리를 할당합니다. 공유 메모리는 여러 하위 영역으로 나뉩니다. 다음에서 가장 중요한 사항에 대한 설명을 찾을 수 있습니다.

**Topics**
+ [공유 버퍼](#AuroraPostgreSQL.Tuning.concepts.buffer-pool)
+ [미리 쓰기 로그(WAL) 버퍼](#AuroraPostgreSQL.Tuning.concepts.WAL)

#### 공유 버퍼
<a name="AuroraPostgreSQL.Tuning.concepts.buffer-pool"></a>

*공유 버퍼 풀*은 애플리케이션 연결에서 사용 중이거나 사용 중인 모든 페이지를 보관하는 Aurora PostgreSQL 메모리 영역입니다. *페이지*는 디스크 블록의 메모리 버전입니다. 공유 버퍼 풀은 디스크에서 읽은 데이터 블록을 캐시합니다. 이 풀은 디스크에서 데이터를 다시 읽어야 할 필요성을 줄여 데이터베이스가 더 효율적으로 연산하게 합니다.

모든 테이블과 인덱스는 고정된 크기의 페이지 배열로 저장됩니다. 각 블록에는 행에 해당하는 여러 튜플이 포함되어 있습니다. 튜플은 모든 페이지에 저장할 수 있습니다.

공유 버퍼 풀에는 유한 메모리가 있습니다. 새 요청에 메모리에 없는 페이지가 필요하고 메모리가 더 이상 존재하지 않는 경우 Aurora PostgreSQL은 요청을 수용하기 위해 자주 사용되지 않는 페이지를 삭제합니다. 제거 정책은 클럭 스윕 알고리즘에 의해 구현됩니다.

`shared_buffers` 파라미터는 서버가 데이터 캐싱에 전념하는 메모리 양을 결정합니다.

#### 미리 쓰기 로그(WAL) 버퍼
<a name="AuroraPostgreSQL.Tuning.concepts.WAL"></a>

*미리 쓰기 로그(WAL) 버퍼*는Aurora PostgreSQL이 나중에 영구 스토리지에 쓰는 트랜잭션 데이터를 보유합니다. WAL 메커니즘을 사용하여 Aurora PostgreSQL이 다음을 수행할 수 있습니다.
+ 장애 발생 후 데이터 복구
+ 디스크에 빈번한 쓰기를 방지하여 디스크 I/O 감소

클라이언트가 데이터를 변경하면 Aurora PostgreSQL이 변경 사항을 WAL 버퍼에 기록합니다. 클라이언트가 `COMMIT`을 발행하면 WAL 라이터 프로세스는 트랜잭션 데이터를 WAL 파일에 씁니다.

`wal_level` 파라미터는 WAL에 기록되는 정보의 양을 결정합니다.

### Aurora PostgreSQL의 로컬 메모리
<a name="AuroraPostgreSQL.Tuning.concepts.local"></a>

모든 백엔드 프로세스는 쿼리 처리를 위해 로컬 메모리를 할당합니다.

**Topics**
+ [작업 메모리 영역](#AuroraPostgreSQL.Tuning.concepts.local.work_mem)
+ [유지 관리 작업 메모리 영역](#AuroraPostgreSQL.Tuning.concepts.local.maintenance_work_mem)
+ [임시 버퍼 영역](#AuroraPostgreSQL.Tuning.concepts.temp)

#### 작업 메모리 영역
<a name="AuroraPostgreSQL.Tuning.concepts.local.work_mem"></a>

*작업 메모리 영역*은 정렬 및 해시를 수행하는 쿼리에 대한 임시 데이터를 보유합니다. 예를 들어, 다음을 포함하는 쿼리 `ORDER BY` 절은 정렬을 수행합니다. 쿼리는 해시 조인 및 집계에서 해시 테이블을 사용합니다.

`work_mem` 파라미터는 임시 디스크 파일에 쓰기 전에 내부 정렬 작업 및 해시 테이블에서 사용할 메모리 양입니다. 기본값은 4MB입니다. 여러 세션을 동시에 실행할 수 있으며 각 세션은 유지 관리 작업을 병렬로 실행할 수 있습니다. 이러한 이유로 사용되는 총 작업 메모리는 `work_mem` 설정의 배수가 될 수 있습니다.

#### 유지 관리 작업 메모리 영역
<a name="AuroraPostgreSQL.Tuning.concepts.local.maintenance_work_mem"></a>

*유지 관리 작업 메모리 영역*은 유지 관리 작업을 위해 데이터를 캐시합니다. 이러한 작업에는 베큠, 인덱스 생성 및 외래 키 추가가 포함됩니다.

`maintenance_work_mem` 파라미터는 유지 관리 작업에서 사용할 최대 메모리 양을 지정합니다. 기본값은 64MB입니다. 데이터베이스 세션은 한 번에 하나의 유지 관리 작업만 실행할 수 있습니다.

#### 임시 버퍼 영역
<a name="AuroraPostgreSQL.Tuning.concepts.temp"></a>

*임시 버퍼 영역*에서는 각 데이터베이스 세션에 대한 임시 테이블을 캐시합니다.

각 세션은 사용자가 지정한 한도까지 필요에 따라 임시 버퍼를 할당합니다. 세션이 끝나면 서버는 버퍼를 지웁니다.

`temp_buffers` 파라미터는 각 세션에서 사용하는 임시 버퍼의 최대 수를 설정합니다. 세션 내에서 임시 테이블을 처음 사용하기 전에 `temp_buffers` 값을 변경할 수 있습니다.

## Aurora PostgreSQL 프로세스
<a name="AuroraPostgreSQL.Tuning.concepts.processes"></a>

Aurora PostgreSQL 여러 프로세스를 사용합니다.

**Topics**
+ [Postmaster 프로세스](#AuroraPostgreSQL.Tuning.concepts.postmaster)
+ [백엔드 프로세스](#AuroraPostgreSQL.Tuning.concepts.backend)
+ [백그라운드 프로세스](#AuroraPostgreSQL.Tuning.concepts.vacuum)

### Postmaster 프로세스
<a name="AuroraPostgreSQL.Tuning.concepts.postmaster"></a>

*Postmaster 프로세스*는 Aurora PostgreSQL을 시작할 때 시작되는 첫 번째 프로세스입니다. 포스트마스터 프로세스는 다음과 같은 주요 책임이 있습니다.
+ 백그라운드 프로세스 포크 및 모니터링
+ 클라이언트 프로세스에서 인증 요청을 수신하고 데이터베이스에서 요청을 처리하도록 허용하기 전에 인증 요청을 인증합니다.

### 백엔드 프로세스
<a name="AuroraPostgreSQL.Tuning.concepts.backend"></a>

Postmaster가 클라이언트 요청을 인증하면 postmaster는 postgres 프로세스라고도 하는 새 백엔드 프로세스를 생성합니다. 하나의 클라이언트 프로세스가 정확히 하나의 백엔드 프로세스에 연결됩니다. 클라이언트 프로세스와 백엔드 프로세스는 포스트마스터 프로세스의 개입 없이 직접 통신합니다.

### 백그라운드 프로세스
<a name="AuroraPostgreSQL.Tuning.concepts.vacuum"></a>

Postmaster 프로세스는 서로 다른 백엔드 작업을 수행하는 여러 프로세스를 생성합니다. 몇 가지 중요한 사항은 다음과 같습니다.
+ WAL 라이터

  Aurora PostgreSQL 미리 쓰기 로깅(WAL) 버퍼의 데이터를 로그 파일에 씁니다. 미리 쓰기 로깅의 원칙은 데이터베이스가 변경 사항을 설명하는 로그 레코드를 디스크에 기록하기 전까지는 데이터베이스가 데이터 파일에 변경 사항을 쓸 수 없다는 것입니다. WAL 메커니즘은 디스크 I/O를 줄이고, Aurora PostgreSQL 장애 후 로그를 사용하여 데이터베이스를 복구할 수 있도록 합니다.
+ 백그라운드 라이터

  이 프로세스는 메모리 버퍼에서 데이터 파일로 더티(수정된) 페이지를 주기적으로 씁니다. 백엔드 프로세스가 메모리에서 페이지를 수정하면 페이지가 더티(dirty) 상태가 됩니다.
+ Autovacuum 데몬

  데몬은 다음 구성 요소로 이루어져 있습니다.
  + Autovacuum 시작 관리자
  + Autovacuum 작업자 프로세스

  Autovacuum은 삽입되고 업데이트되거나 삭제된 튜플 수가 많은 테이블이 있는지 확인합니다. 데몬에는 다음과 같은 책임이 있습니다.
  + 업데이트되거나 삭제된 행이 차지하는 디스크 공간 복구 또는 재사용
  + 플래너가 사용하는 통계 업데이트
  + 트랜잭션 ID 랩어라운드로 인해 이전 데이터 손실 방지

  Autovacuum 기능은 `VACUUM`과 `ANALYZE` 명령을 자동화합니다. `VACUUM`에는 다음과 같은 표준 및 전체 변형이 있습니다. 스탠다드 베큠은 다른 데이터베이스 연산과 병행하여 실행됩니다. `VACUUM FULL`에는 작업 중인 테이블에 독점적인 잠금이 필요합니다. 따라서 동일한 테이블에 액세스하는 연산과 병렬로 실행할 수 없습니다. `VACUUM`은 상당한 양의 I/O 트래픽을 생성하여 다른 활성 세션의 성능이 저하될 수 있습니다.

# Aurora PostgreSQL 대기 이벤트
<a name="AuroraPostgreSQL.Tuning.concepts.summary"></a>

다음 표에는 성능 문제를 가장 일반적으로 나타내는 Aurora PostgreSQL에 대한 대기 이벤트가 나열되어 있으며 가장 일반적인 원인과 해결 조치가 요약되어 있습니다. 다음 대기 이벤트는 [Amazon Aurora PostgreSQL 대기 이벤트](AuroraPostgreSQL.Reference.Waitevents.md) 목록의 하위 집합입니다.


| 대기 이벤트 | 정의 | 
| --- | --- | 
|  [Client:ClientRead](apg-waits.clientread.md)  |  이 이벤트는 Aurora PostgreSQL이 클라이언트에서 데이터를 수신하기 위해 대기 중일 때 발생합니다.  | 
|  [Client:ClientWrite](apg-waits.clientwrite.md)  |  이 이벤트는 Aurora PostgreSQL이 클라이언트에 데이터를 쓰기 위해 대기 중일 때 발생합니다.  | 
|  [CPU](apg-waits.cpu.md)  |  이 이벤트는 스레드가 CPU에서 활성 상태이거나 CPU를 대기 중일 때 발생합니다.  | 
|  [IO:BufFileRead 및 IO:BufFileWrite](apg-waits.iobuffile.md)  |  이러한 이벤트는 Aurora PostgreSQL이 임시 파일을 만들 때 발생합니다.  | 
|  [IO:DataFileRead](apg-waits.iodatafileread.md)  |  이 이벤트는 공유 메모리에서 페이지를 사용할 수 없기 때문에 연결이 백엔드 프로세스에서 저장소에서 필요한 페이지를 읽도록 대기할 때 발생합니다.  | 
|  [IO:XactSync](apg-waits.xactsync.md)  |  이 이벤트는 데이터베이스가 Aurora 스토리지 하위 시스템이 일반 트랜잭션의 커밋을 승인하거나 준비된 트랜잭션의 커밋 또는 롤백을 확인할 때까지 대기 중일 때 발생합니다.  | 
|  [IPC:DamRecordTxAck](apg-waits.ipcdamrecordtxac.md)  |  이 이벤트는 데이터베이스 활동 스트림을 사용하는 세션에서 Aurora PostgreSQL이 활동 스트림 이벤트를 생성한 다음 해당 이벤트가 지속될 때까지 기다리는 경우에 발생합니다.  | 
|  [Lock:advisory](apg-waits.lockadvisory.md)  |  이 이벤트는 PostgreSQL 애플리케이션이 잠금을 사용하여 여러 세션에서 활동을 조정할 때 발생합니다.  | 
|  [Lock:extend](apg-waits.lockextend.md) |  이 이벤트는 백엔드 프로세스가 릴레이션을 확장하기 위해 릴레이션을 잠그기를 기다리는 동안 다른 프로세스에서 동일한 목적으로 해당 릴레이션에 대한 잠금이 있는 경우에 발생합니다.  | 
|  [Lock:Relation](apg-waits.lockrelation.md)  |  이 이벤트는 쿼리가 현재 다른 트랜잭션에 의해 잠긴 테이블 또는 뷰에 대한 잠금을 얻기 위해 대기 중일 때 발생합니다.  | 
|  [Lock:transactionid](apg-waits.locktransactionid.md)  | 이 이벤트는 트랜잭션이 행 수준 잠금을 대기 중일 때 발생합니다. | 
|  [Lock:tuple](apg-waits.locktuple.md)  |  이 이벤트는 백엔드 프로세스가 튜플에 대한 잠금 획득을 대기 중일 때 발생합니다.  | 
|  [LWLock:buffer\$1content (BufferContent)](apg-waits.lockbuffercontent.md)  |  이 대기 이벤트는 다른 세션에서 특정 데이터 페이지에 대해 쓰기 잠금을 설정한 동안 세션에서 메모리 내 해당 페이지 읽기 또는 쓰기를 대기 중일 때 발생합니다.  | 
|  [LWLock:buffer\$1mapping](apg-waits.lwl-buffer-mapping.md)  |  이 이벤트는 세션이 데이터 블록을 공유 버퍼 풀의 버퍼와 연결하기 위해 대기 중일 때 발생합니다.  | 
|  [LWLock:BufferIO(IPC:BufferIO)](apg-waits.lwlockbufferio.md)  |  이 이벤트는 Aurora PostgreSQL 또는 RDS for PostgreSQL이 페이지에 동시에 액세스하려고 할 때 다른 프로세스가 입출력(I/O) 작업을 완료할 때까지 기다리는 경우에 발생합니다.  | 
|  [LWLock:lock\$1manager](apg-waits.lw-lock-manager.md)  | 이 이벤트는 Aurora PostgreSQL 엔진이 빠른 경로 잠금이 불가능할 때 잠금을 할당, 확인 및 할당 해제하기 위해 공유 잠금 메모리 영역을 유지 관리하는 경우에 발생합니다. | 
| [LWLock:MultiXact](apg-waits.lwlockmultixact.md)  | 이러한 유형의 이벤트는 테이블의 동일한 행과 관련된 여러 트랜잭션을 완료하기 위해 Aurora PostgreSQL이 세션을 열린 상태로 유지할 때 발생합니다. 대기 이벤트는 다중 트랜잭션 처리의 요소, 즉 LWLock:MultixactOffsetBuffset Buffer, LWlock:MultixactMemberSLRU 또는 LWLock:MultixActMemberBuffer 중 무엇이 대기 이벤트를 생성하는지를 표시합니다. | 
|  [Timeout:PgSleep](apg-waits.timeoutpgsleep.md)  |  이 이벤트는 서버 프로세스가 `pg_sleep` 함수 및 절전 시간 초과가 만료될 때까지 대기할 때 발생합니다.  | 

# Client:ClientRead
<a name="apg-waits.clientread"></a>

`Client:ClientRead` 이벤트는 Aurora PostgreSQL이 클라이언트에서 데이터를 수신하기 위해 대기 중일 때 발생합니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.clientread.context.supported)
+ [컨텍스트](#apg-waits.clientread.context)
+ [대기 증가의 가능한 원인](#apg-waits.clientread.causes)
+ [작업](#apg-waits.clientread.actions)

## 지원되는 엔진 버전
<a name="apg-waits.clientread.context.supported"></a>

이 대기 이벤트 정보는 Aurora PostgreSQL 버전 10 이상에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.clientread.context"></a>

Aurora PostgreSQL DB 클러스터가 클라이언트로부터 데이터를 수신하기 위해 대기 중입니다. Aurora PostgreSQL DB 클러스터는 클라이언트로부터 데이터를 수신해야 클라이언트에 더 많은 데이터를 보낼 수 있습니다. 클라이언트에서 데이터를 수신하기 전에 클러스터가 대기하는 시간은 `Client:ClientRead` 이벤트를 트리거합니다.

## 대기 증가의 가능한 원인
<a name="apg-waits.clientread.causes"></a>

상위 대기에서 나타나는 `Client:ClientRead` 이벤트의 일반적인 원인은 다음을 포함합니다.

**네트워크 대기 시간 증가**  
Aurora PostgreSQL DB 클러스터와 클라이언트 간에 네트워크 지연 시간이 늘어날 수 있습니다. 네트워크 지연 시간이 높을수록 DB 클러스터가 클라이언트에서 데이터를 수신하는 데 필요한 시간이 늘어납니다.

**클라이언트에 대한 로드 증가**  
클라이언트에 CPU 압력 또는 네트워크 포화가 있을 수 있습니다. 클라이언트 로드가 증가하면 클라이언트에서 Aurora PostgreSQL DB 클러스터로의 데이터 전송이 지연될 수 있습니다.

**과도한 네트워크 왕복**  
Aurora PostgreSQL DB 클러스터와 클라이언트 간의 네트워크 왕복 횟수가 많으면 클라이언트에서 Aurora PostgreSQL DB 클러스터로의 데이터 전송을 지연시킬 수 있습니다.

**대량 복사 연산**  
복사 연산 중에 데이터가 클라이언트의 파일 시스템에서 Aurora PostgreSQL DB 클러스터로 전송됩니다. DB 클러스터에 대량의 데이터를 전송하면 클라이언트에서 DB 클러스터로 데이터 전송이 지연될 수 있습니다.

**유휴 클라이언트 연결**  
Aurora PostgreSQL DB 인스턴스에 대한 연결이 트랜잭션 상태에서 유휴 상태이며 클라이언트가 추가 데이터를 전송하거나 명령을 실행하기를 기다리고 있습니다. 이 상태는 `Client:ClientRead` 이벤트 증가로 이어질 수 있습니다.

**연결 풀링에 사용되는 PGBouncer**  
PGBouncer에는 `pkt_buf`와 같은 낮은 수준의 네트워크 구성 설정이 있으며, 기본적으로 4,096으로 설정됩니다. 워크로드가 PGBouncer를 통해 4,096바이트보다 큰 쿼리 패킷을 보내는 경우, `pkt_buf` 설정을 8,192까지 늘리는 것이 좋습니다. 새 설정으로 인해 `Client:ClientRead` 이벤트의 수가 줄어들지 않는 경우 `pkt_buf` 설정을 16,384 또는 32,768과 같이 더 큰 값으로 설정하는 것이 좋습니다. 쿼리 텍스트가 큰 경우 더 큰 설정이 특히 유용할 수 있습니다.

## 작업
<a name="apg-waits.clientread.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

**Topics**
+ [클러스터와 동일한 가용 영역 및 VPC 서브넷에 클라이언트를 배치합니다.](#apg-waits.clientread.actions.az-vpc-subnet)
+ [클라이언트 확장](#apg-waits.clientread.actions.scale-client)
+ [현재 세대 인스턴스 사용](#apg-waits.clientread.actions.db-instance-class)
+ [네트워크 대역폭 향상](#apg-waits.clientread.actions.increase-network-bandwidth)
+ [최대 네트워크 성능 모니터링](#apg-waits.clientread.actions.monitor-network-performance)
+ ['트랜잭션에서 유휴' 상태의 트랜잭션 모니터링](#apg-waits.clientread.actions.check-idle-in-transaction)

### 클러스터와 동일한 가용 영역 및 VPC 서브넷에 클라이언트를 배치합니다.
<a name="apg-waits.clientread.actions.az-vpc-subnet"></a>

네트워크 대기 시간을 줄이고 네트워크 처리량을 늘리려면 Aurora PostgreSQL DB 클러스터와 동일한 가용 영역 및 Virtual Private Cloud(VPC) 서브넷에 클라이언트를 배치합니다. 클라이언트가 가능한 한 DB 클러스터에 지리적으로 가까이 있는지 확인합니다.

### 클라이언트 확장
<a name="apg-waits.clientread.actions.scale-client"></a>

Amazon CloudWatch 또는 기타 호스트 지표를 사용하여 클라이언트가 현재 CPU 또는 네트워크 대역폭 또는 둘 다에 의해 제한되어 있는지 확인합니다. 클라이언트가 제한된 경우 그에 따라 클라이언트를 확장합니다.

### 현재 세대 인스턴스 사용
<a name="apg-waits.clientread.actions.db-instance-class"></a>

점보 프레임을 지원하는 DB 인스턴스 클래스를 사용하지 않는 경우도 있습니다. Amazon EC2 애플리케이션을 실행하는 경우 클라이언트에 현재 세대 인스턴스를 사용하는 것이 좋습니다. 또한 클라이언트 운영 체제에서 최대 전송 단위(MTU)를 구성합니다. 이 기술은 네트워크 왕복 수를 줄이고 네트워크 처리량을 늘릴 수 있습니다. 자세한 내용은 Amazon EC2 사용 설명서**의 [점보 프레임(9001 MTU)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html#jumbo_frame_instances)을 참조하세요.

DB 인스턴스 클래스에 대한 자세한 내용은 [Amazon AuroraDB 인스턴스 클래스](Concepts.DBInstanceClass.md) 섹션을 참조하세요. Amazon EC2 인스턴스 유형과 동일한 DB 인스턴스 클래스를 확인하려면 `db.`가 Amazon EC2 인스턴스 유형 이름 앞에 있어야 합니다. 예를 들어, `r5.8xlarge` Amazon EC2 인스턴스는 `db.r5.8xlarge` DB 인스턴스 클래스입니다.

### 네트워크 대역폭 향상
<a name="apg-waits.clientread.actions.increase-network-bandwidth"></a>

DB 클러스터의 수신 및 발신 네트워크 트래픽을 모니터링하는 `NetworkReceiveThroughput`과 `NetworkTransmitThroughput` Amazon CloudWatch 지표를 사용합니다. 이러한 지표는 네트워크 대역폭이 워크로드에 충분한지 확인하는 데 도움이 될 수 있습니다.

네트워크 대역폭이 충분하지 않으면 늘리세요. 만약 AWS 클라이언트 또는 DB 인스턴스가 네트워크 대역폭 제한에 도달했다면. 대역폭을 늘리는 유일한 방법은 DB 인스턴스 크기를 늘리는 것입니다.

CloudWatch 지표에 대한 자세한 내용은 [Amazon Aurora에 대한 Amazon CloudWatch 지표](Aurora.AuroraMonitoring.Metrics.md) 섹션을 참조하세요.

### 최대 네트워크 성능 모니터링
<a name="apg-waits.clientread.actions.monitor-network-performance"></a>

Amazon EC2 클라이언트를 사용하는 경우 Amazon EC2는 집계 인바운드 및 아웃바운드 네트워크 대역폭을 포함하여 네트워크 성능 지표에 대한 최댓값을 제공합니다. 또한 연결 추적을 제공하여 패킷이 예상대로 반환되고 도메인 이름 시스템(DNS)과 같은 서비스에 대한 링크-로컬 서비스 액세스를 제공합니다. 이러한 최댓값을 모니터링하려면 현재 향상된 네트워킹 드라이버를 사용하고 클라이언트의 네트워크 성능을 모니터링하세요.

자세한 내용은 **Amazon EC2 사용 설명서의 [Amazon EC2 인스턴스의 네트워크 성능 모니터링](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/monitoring-network-performance-ena.html)과 **Amazon EC2 사용 설명서의 [Amazon EC2 인스턴스의 네트워크 성능 모니터링](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/monitoring-network-performance-ena.html)을 참조하세요.

### '트랜잭션에서 유휴' 상태의 트랜잭션 모니터링
<a name="apg-waits.clientread.actions.check-idle-in-transaction"></a>

`idle in transaction` 연결의 수가 점점 늘어나고 있는지 확인하세요. 이를 수행하려면 `state`열의 `pg_stat_activity`테이블을 모니니터링하세요. 다음과 유사한 쿼리를 실행하여 연결 소스를 식별할 수 있습니다.

```
select client_addr, state, count(1) from pg_stat_activity 
where state like 'idle in transaction%' 
group by 1,2 
order by 3 desc
```

# Client:ClientWrite
<a name="apg-waits.clientwrite"></a>

`Client:ClientWrite` 이벤트는 Aurora PostgreSQL이 클라이언트에 데이터를 쓰기 위해 대기 중일 때 발생합니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.clientwrite.context.supported)
+ [컨텍스트](#apg-waits.clientwrite.context)
+ [대기 증가의 가능한 원인](#apg-waits.clientwrite.causes)
+ [작업](#apg-waits.clientwrite.actions)

## 지원되는 엔진 버전
<a name="apg-waits.clientwrite.context.supported"></a>

이 대기 이벤트 정보는 Aurora PostgreSQL 버전 10 이상에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.clientwrite.context"></a>

클라이언트 프로세스는 클러스터가 더 많은 데이터를 보낼 수 있게 되기 전 반드시 Aurora PostgreSQL DB 클러스터로부터 받은 모든 데이터를 읽어야 합니다. 클라이언트에서 데이터를 수신하기 전에 클러스터가 대기하는 시간은 `Client:ClientWrite` 이벤트를 트리거합니다.

Aurora PostgreSQL DB 클러스터와 클라이언트 간의 네트워크 처리량이 감소하면 이 이벤트가 발생할 수 있습니다. 클라이언트에 대한 CPU 압력 및 네트워크 포화 상태시에도 이 이벤트가 발생할 수 있습니다. *CPU 압력*은 CPU가 완전히 활용되고 CPU 시간을 기다리는 작업이 있을 때입니다. *네트워크 포화*는 데이터베이스와 클라이언트 간의 네트워크가 처리할 수 있는 것보다 많은 데이터를 전달하는 경우입니다.

## 대기 증가의 가능한 원인
<a name="apg-waits.clientwrite.causes"></a>

상위 대기에서 나타나는 `Client:ClientWrite` 이벤트의 일반적인 원인은 다음을 포함합니다.

**네트워크 대기 시간 증가**  
Aurora PostgreSQL DB 클러스터와 클라이언트 간에 네트워크 지연 시간이 늘어날 수 있습니다. 네트워크 대기 시간이 높을수록 클라이언트가 데이터를 수신하는 데 필요한 시간이 늘어납니다.

**클라이언트에 대한 로드 증가**  
클라이언트에 CPU 압력 또는 네트워크 포화가 있을 수 있습니다. 클라이언트에 대한 로드가 증가하면 Aurora MySQL DB 클러스터에서 데이터 수신이 지연됩니다.

**클라이언트에 전송되는 대용량 데이터**  
Aurora PostgreSQL DB 클러스터가 많은 양의 데이터를 클라이언트에 전송하고 있을 수 있습니다. 클라이언트는 클러스터가 데이터를 전송하는 만큼 빠르게 데이터를 수신하지 못할 수 있습니다. 큰 테이블 복사와 같은 활동 시 `Client:ClientWrite` 이벤트가 증가할 수 있습니다.

## 작업
<a name="apg-waits.clientwrite.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

**Topics**
+ [클러스터와 동일한 가용 영역 및 VPC 서브넷에 클라이언트를 배치합니다.](#apg-waits.clientwrite.actions.az-vpc-subnet)
+ [현재 세대 인스턴스 사용](#apg-waits.clientwrite.actions.db-instance-class)
+ [클라이언트에 전송해야 하는 데이터 양 감소](#apg-waits.clientwrite.actions.reduce-data)
+ [클라이언트 확장](#apg-waits.clientwrite.actions.scale-client)

### 클러스터와 동일한 가용 영역 및 VPC 서브넷에 클라이언트를 배치합니다.
<a name="apg-waits.clientwrite.actions.az-vpc-subnet"></a>

네트워크 대기 시간을 줄이고 네트워크 처리량을 늘리려면 Aurora PostgreSQL DB 클러스터와 동일한 가용 영역 및 Virtual Private Cloud(VPC) 서브넷에 클라이언트를 배치합니다.

### 현재 세대 인스턴스 사용
<a name="apg-waits.clientwrite.actions.db-instance-class"></a>

점보 프레임을 지원하는 DB 인스턴스 클래스를 사용하지 않는 경우도 있습니다. Amazon EC2 애플리케이션을 실행하는 경우 클라이언트에 현재 세대 인스턴스를 사용하는 것이 좋습니다. 또한 클라이언트 운영 체제에서 최대 전송 단위(MTU)를 구성합니다. 이 기술은 네트워크 왕복 수를 줄이고 네트워크 처리량을 늘릴 수 있습니다. 자세한 내용은 Amazon EC2 사용 설명서**의 [점보 프레임(9001 MTU)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html#jumbo_frame_instances)을 참조하세요.

DB 인스턴스 클래스에 대한 자세한 내용은 [Amazon AuroraDB 인스턴스 클래스](Concepts.DBInstanceClass.md) 섹션을 참조하세요. Amazon EC2 인스턴스 유형과 동일한 DB 인스턴스 클래스를 확인하려면 `db.`가 Amazon EC2 인스턴스 유형 이름 앞에 있어야 합니다. 예를 들어, `r5.8xlarge` Amazon EC2 인스턴스는 `db.r5.8xlarge` DB 인스턴스 클래스입니다.

### 클라이언트에 전송해야 하는 데이터 양 감소
<a name="apg-waits.clientwrite.actions.reduce-data"></a>

가능하면 애플리케이션을 조정하여 Aurora PostgreSQL DB 클러스터가 클라이언트에 보내는 데이터의 양을 줄이세요. 이러한 조정을 수행하면 클라이언트에서 CPU 및 네트워크 경합을 줄일 수 있습니다.

### 클라이언트 확장
<a name="apg-waits.clientwrite.actions.scale-client"></a>

Amazon CloudWatch 또는 기타 호스트 지표를 사용하여 클라이언트가 현재 CPU 또는 네트워크 대역폭 또는 둘 다에 의해 제한되어 있는지 확인합니다. 클라이언트가 제한된 경우 그에 따라 클라이언트를 확장합니다.

# CPU
<a name="apg-waits.cpu"></a>

이 이벤트는 스레드가 CPU에서 활성 상태이거나 CPU를 대기 중일 때 발생합니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.cpu.context.supported)
+ [컨텍스트](#apg-waits.cpu.context)
+ [대기 증가의 가능한 원인](#apg-waits.cpu.causes)
+ [작업](#apg-waits.cpu.actions)

## 지원되는 엔진 버전
<a name="apg-waits.cpu.context.supported"></a>

이 대기 이벤트 정보는 Aurora PostgreSQL 버전 9.6 이상에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.cpu.context"></a>

*중앙 처리 장치*는 명령을 실행하는 컴퓨터의 구성 요소입니다. 예를 들어 CPU 명령은 연산 연산을 수행하고 메모리에서 데이터를 교환합니다. 쿼리가 데이터베이스 엔진을 통해 수행하는 명령 수를 늘리면 쿼리 실행 시간이 늘어납니다. *CPU 스케줄링*은 프로세스에 CPU 시간을 부여합니다. 스케줄링은 운영 체제 커널에 의해 조정됩니다.

**Topics**
+ [이 대기 시간이 언제 발생하는지 확인하는 방법](#apg-waits.cpu.when-it-occurs)
+ [DBloadCPU 지표](#apg-waits.cpu.context.dbloadcpu)
+ [os.cpuUtilization 지표](#apg-waits.cpu.context.osmetrics)
+ [CPU 스케줄링의 원인](#apg-waits.cpu.context.scheduling)

### 이 대기 시간이 언제 발생하는지 확인하는 방법
<a name="apg-waits.cpu.when-it-occurs"></a>

`CPU` 대기 이벤트는 백엔드 프로세스가 CPU에서 활성 상태이거나 CPU를 기다리고 있음을 나타냅니다. 쿼리에 다음 정보가 표시될 때 발생한다는 것을 알고 있습니다.
+ `pg_stat_activity.state` 열이 `active` 값을 갖고 있습니다.
+ `pg_stat_activity`의 `wait_event_type`과 `wait_event` 열은 모두 `null`입니다.

CPU를 사용하거나 대기 중인 백엔드 프로세스를 보려면 다음 쿼리를 실행하세요.

```
SELECT * 
FROM   pg_stat_activity
WHERE  state = 'active'
AND    wait_event_type IS NULL
AND    wait_event IS NULL;
```

### DBloadCPU 지표
<a name="apg-waits.cpu.context.dbloadcpu"></a>

CPU 성능 개선 도우미의 지표는 `DBLoadCPU`입니다. `DBLoadCPU`의 값은 Amazon CloudWatch 지표 `CPUUtilization`의 값과 다를 수 있습니다. 후자의 지표는 데이터베이스 인스턴스에 대한 HyperVisor에서 수집됩니다.

### os.cpuUtilization 지표
<a name="apg-waits.cpu.context.osmetrics"></a>

성능 개선 도우미 운영 시스템 지표는 CPU 사용률에 대한 자세한 정보를 제공합니다. 예를 들어 다음 지표가 표시될 수 있습니다.
+ `os.cpuUtilization.nice.avg`
+ `os.cpuUtilization.total.avg`
+ `os.cpuUtilization.wait.avg`
+ `os.cpuUtilization.idle.avg`

성능 개선 도우미는 데이터베이스 엔진의 CPU 사용량을 `os.cpuUtilization.nice.avg`와 같이 보고합니다.

### CPU 스케줄링의 원인
<a name="apg-waits.cpu.context.scheduling"></a>

운영 체제 관점에서 볼 때 CPU는 유휴 스레드를 실행하지 않을 때 활성화됩니다. CPU는 계산을 수행하는 동안 활성 상태이지만 메모리 I/O에서 대기할 때도 활성화됩니다. 이러한 유형의 I/O는 일반적인 데이터베이스 워크로드를 지배합니다.

다음 조건이 충족되면 프로세스가 CPU에 스케줄링될 때까지 대기할 수 있습니다.
+ CloudWatch `CPUUtilization` 지표가 100%에 가깝습니다.
+ 평균 로드가 vCPU 수보다 크므로 부하가 많음을 나타냅니다. 성능 개선 도우미의 OS 지표 섹션에서 `loadAverageMinute` 지표를 찾을 수 있습니다.

## 대기 증가의 가능한 원인
<a name="apg-waits.cpu.causes"></a>

이 이벤트가 정상 상태보다 많이 발생하여 성능 문제를 나타낼 수 있는 경우 일반적인 원인은 다음과 같습니다.

**Topics**
+ [갑작스러운 스파이크의 원인](#apg-waits.cpu.causes.spikes)
+ [장기 고주파의 원인](#apg-waits.cpu.causes.long-term)
+ [코너 케이스](#apg-waits.cpu.causes.corner-cases)

### 갑작스러운 스파이크의 원인
<a name="apg-waits.cpu.causes.spikes"></a>

갑작스런 스파이크의 가장 큰 원인은 다음과 같습니다.
+ 애플리케이션이 데이터베이스에 대한 동시 연결을 너무 많이 열었습니다. 이 시나리오를 '연결 폭풍'이라고 합니다.
+ 다음 방법 중 하나로 애플리케이션 워크로드가 변경되었습니다.
  + 새 쿼리
  + 데이터 집합 크기 증가
  + 인덱스 유지 관리 또는 생성
  + 새로운 함수
  + 새로운 연산자
  + 병렬 쿼리 실행의 증가
+ 쿼리 실행 계획이 변경되었습니다. 경우에 따라 변경으로 인해 버퍼가 증가할 수 있습니다. 예를 들어, 쿼리는 이전에 인덱스를 사용했을 때의 순차적 스캔을 사용하고 있습니다. 이 경우 쿼리는 동일한 목표를 달성하기 위해 더 많은 CPU가 필요합니다.

### 장기 고주파의 원인
<a name="apg-waits.cpu.causes.long-term"></a>

장기간에 걸쳐 재발하는 이벤트의 가장 큰 원인은 다음과 같습니다.
+ 너무 많은 백엔드 프로세스가 CPU에서 동시에 실행되고 있습니다. 이러한 프로세스는 병렬 작업자가 될 수 있습니다.
+ 쿼리는 많은 수의 버퍼가 필요하기 때문에 차선적으로 수행됩니다.

### 코너 케이스
<a name="apg-waits.cpu.causes.corner-cases"></a>

실제 원인으로 판명될 가능성이 있는 원인이 없다면 다음과 같은 상황이 발생할 수 있습니다.
+ CPU가 프로세스를 안팎으로 교환하고 있습니다.
+ CPU 컨텍스트 전환이 증가했습니다.
+ Aurora PostgreSQL 코드에 대기 이벤트가 누락되었습니다.

## 작업
<a name="apg-waits.cpu.actions"></a>

`CPU` 대기 이벤트가 데이터베이스 활동을 지배하는 경우 반드시 성능 문제를 나타내지는 않습니다. 성능이 저하되는 경우에만 이 이벤트에 응답하세요.

**Topics**
+ [데이터베이스로 인해 CPU 증가가 발생하는지 조사합니다.](#apg-waits.cpu.actions.db-CPU)
+ [연결 수 증가 여부 확인](#apg-waits.cpu.actions.connections)
+ [워크로드 변경에 대응](#apg-waits.cpu.actions.workload)

### 데이터베이스로 인해 CPU 증가가 발생하는지 조사합니다.
<a name="apg-waits.cpu.actions.db-CPU"></a>

성능 개선 도우미의 `os.cpuUtilization.nice.avg` 지표를 검토합니다. 이 값이 CPU 사용량보다 훨씬 작다면 데이터베이스가 아닌 프로세스가 CPU의 주요 기여자입니다.

### 연결 수 증가 여부 확인
<a name="apg-waits.cpu.actions.connections"></a>

Amazon CloudWatch의 `DatabaseConnections` 지표를 검토합니다. 작업은 CPU 대기 이벤트 증가 시기 동안 증가 또는 감소 여부에 따라 달라집니다.

#### 연결이 증가했습니다.
<a name="apg-waits.cpu.actions.connections.increased"></a>

연결 수가 증가했다면, CPU를 사용하는 백엔드 프로세스 수를 vCPU 수와 비교하세요. 가능한 시나리오는 다음과 같습니다.
+ CPU를 사용하는 백엔드 프로세스 수가 vCPU 수보다 적습니다.

  이 경우 연결 수는 문제가 되지 않습니다. 그러나 계속해서 CPU 사용률을 줄이려고 할 수도 있습니다.
+ CPU를 사용하는 백엔드 프로세스 수가 vCPU 수보다 적습니다.

  이 경우에는 다음 옵션을 고려하세요.
  + 데이터베이스에 연결된 백엔드 프로세스 수를 줄입니다. 예를 들어 RDS 프록시와 같은 연결 풀링 솔루션을 구현합니다. 자세한 내용은 [Aurora용 Amazon RDS Proxy](rds-proxy.md) 섹션을 참조하세요.
  + 인스턴스 크기를 업그레이드하여 vCPU 수를 늘립니다.
  + 해당하는 경우 일부 읽기 전용 워크로드를 리더 노드로 리디렉션하세요.

#### 연결이 증가하지 않았습니다.
<a name="apg-waits.cpu.actions.connections.decreased"></a>

성능 개선 도우미의 `blks_hit` 지표를 검토합니다. `blks_hit`의 증가와 CPU 사용량 사이의 상관관계를 찾습니다. 가능한 시나리오는 다음과 같습니다.
+ CPU 사용량 및 `blks_hit`이 상관관계가 있습니다.

  이 경우 CPU 사용량에 연결된 최상위 SQL 문을 찾아 계획 변경을 찾습니다. 다음과 같은 기술을 사용할 수 있습니다.
  + 계획을 수동으로 설명하고 예상 실행 계획과 비교합니다.
  + 초당 블록 히트와 초당 로컬 블록 히트가 증가하는지 확인합니다. 성능 개선 도우미의 대시보드의 **상위 SQL** 섹션에서 **환경설정**을 선택합니다.
+ CPU 사용량 및 `blks_hit`이 상관관계가 없습니다.

  이 경우 다음 중 한 가지라도 발생하는지 확인합니다.
  + 애플리케이션이 데이터베이스에 급속하게 연결되고 데이터베이스와의 연결이 끊어지고 있습니다.

    `log_connections`와 `log_disconnections`를 켜 이 동작을 진단하고, 그런 다음 PostgreSQL 로그를 분석합니다. `pgbadger` 로그 분석기 사용을 고려하세요. 자세한 내용은 [https://github.com/darold/pgbadger](https://github.com/darold/pgbadger) 섹션을 참조하세요.
  + OS에 과부하가 걸렸습니다.

    이 경우 성능 개선 도우미는 백엔드 프로세스가 평소보다 오랜 시간 동안 CPU를 사용하고 있음을 보여줍니다. 성능 개선 도우미 `os.cpuUtilization` 지표 또는 CloudWatch `CPUUtilization` 지표에서 증거를 찾습니다. 운영 체제에 과부하가 걸린 경우 향상된 모니터링 지표를 살펴보고 더 자세히 진단하세요. 특히 프로세스 목록과 각 프로세스에서 소비되는 CPU 비율을 살펴보세요.
  + 상위 SQL 문이 너무 많은 CPU를 소비하고 있습니다.

    CPU 사용량에 연결된 문을 검사하여 CPU를 더 적게 사용할 수 있는지 확인합니다. `EXPLAIN` 명령을 실행하고 가장 큰 영향을 미치는 계획 노드에 중점을 둡니다. PostgreSQL 실행 계획 비주얼라이저를 사용하는 것이 좋습니다. [http://explain.dalibo.com/](http://explain.dalibo.com/) 섹션을 참조해 이 도구를 사용해 보세요.

### 워크로드 변경에 대응
<a name="apg-waits.cpu.actions.workload"></a>

워크로드가 변경된 경우 다음 변경 유형을 찾습니다.

새 쿼리  
새 쿼리가 예상되는지 확인합니다. 그렇다면 실행 계획과 초당 실행 횟수가 예상되는지 확인합니다.

데이터 집합 크기 증가  
파티셔닝이 아직 구현되지 않은 경우 파티셔닝이 도움이 될지 확인합니다. 이 전략은 쿼리가 검색해야 하는 페이지 수를 줄일 수 있습니다.

인덱스 유지 관리 또는 생성  
유지 관리 일정이 예상되는지 확인합니다. 모범 사례는 피크 활동 이외의 유지 관리 활동을 예약하는 것입니다.

새로운 함수  
테스트 중에 이러한 함수가 예상대로 작동하는지 확인합니다. 특히 초당 실행 횟수가 예상되는지 확인합니다.

새로운 연산자  
테스트 중에 이러한 함수가 예상대로 작동하는지 확인합니다.

병렬 쿼리 실행 증가  
다음 상황 중 한 가지라도 발생했는지 확인합니다.  
+ 포함된 관계식 또는 인덱스의 크기가 갑자기 커져 `min_parallel_table_scan_size` 또는 `min_parallel_index_scan_size`와 크게 다릅니다.
+ `parallel_setup_cost` 또는 `parallel_tuple_cost`에 최근 변경 사항이 적용되었습니다.
+ `max_parallel_workers` 또는 `max_parallel_workers_per_gather`에 최근 변경 사항이 적용되었습니다.

# IO:BufFileRead 및 IO:BufFileWrite
<a name="apg-waits.iobuffile"></a>

`IO:BufFileRead`와 `IO:BufFileWrite` 이벤트는 Aurora PostgreSQL이 임시 파일을 만들 때 발생합니다. 연산에 현재 정의된 작업 메모리 파라미터보다 많은 메모리가 필요한 경우 임시 데이터를 영구 스토리지에 씁니다. 이 작업을 *디스크로 유출*이라고도 합니다. 임시 파일 및 사용량에 대한 자세한 내용은 [PostgreSQL을 사용한 임시 파일 관리](PostgreSQL.ManagingTempFiles.md) 섹션을 참조하세요.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.iobuffile.context.supported)
+ [컨텍스트](#apg-waits.iobuffile.context)
+ [대기 증가의 가능한 원인](#apg-waits.iobuffile.causes)
+ [작업](#apg-waits.iobuffile.actions)

## 지원되는 엔진 버전
<a name="apg-waits.iobuffile.context.supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.iobuffile.context"></a>

`IO:BufFileRead`와 `IO:BufFileWrite`는 작업 메모리 영역 및 유지 관리 작업 메모리 영역과 관련이 있습니다. 이러한 로컬 메모리 영역에 대한 자세한 내용은 [작업 메모리 영역](AuroraPostgreSQL.Tuning.concepts.md#AuroraPostgreSQL.Tuning.concepts.local.work_mem) 및 [유지 관리 작업 메모리 영역](AuroraPostgreSQL.Tuning.concepts.md#AuroraPostgreSQL.Tuning.concepts.local.maintenance_work_mem) 섹션을 참조하세요.

기본값은 `work_mem` 또는 4MB입니다. 한 세션이 병렬로 연산을 수행하는 경우 병렬 처리를 처리하는 각 작업자는 4MB의 메모리를 사용합니다. 이런 이유로, `work_mem`을 신중하게 설정하세요. 값을 너무 많이 늘리면 많은 세션을 실행하는 데이터베이스가 너무 많은 메모리를 소비할 수 있습니다. 값을 너무 낮게 설정하면 Aurora PostgreSQL이 로컬 스토리지에 임시 파일을 만듭니다. 이러한 임시 파일의 디스크 I/O는 성능을 저하시킬 수 있습니다.

다음과 같은 일련의 이벤트를 관찰하면 데이터베이스에서 임시 파일이 생성될 수 있습니다.

1. 갑작스럽고 급격한 가용성 감소

1. 여유 공간을 위한 신속한 복구

'체인톱' 패턴도 볼 수 있습니다. 이 패턴은 데이터베이스에서 지속적으로 작은 파일을 생성한다는 것을 의미할 수 있습니다.

## 대기 증가의 가능한 원인
<a name="apg-waits.iobuffile.causes"></a>

일반적으로 이러한 대기 이벤트는 `work_mem` 또는 `maintenance_work_mem` 파라미터가 할당하는 것보다 더 많은 메모리를 소모하는 연산에 의해 발생합니다. 보정을 위해 연산은 임시 파일에 기록합니다. `IO:BufFileRead`와 `IO:BufFileWrite` 이벤트의 일반적인 원인에는 다음이 포함됩니다.

**작업 메모리 영역에 존재하는 것보다 많은 메모리가 필요한 쿼리**  
다음 특성을 가진 쿼리는 작업 메모리 영역을 사용합니다.  
+ 해시 조인.
+ `ORDER BY` 절
+ `GROUP BY` 절
+ `DISTINCT`
+ 윈도 함수
+ `CREATE TABLE AS SELECT`
+ 구체화 뷰 새로고침

**작업 메모리 영역에 존재하는 것보다 많은 메모리가 필요한 명령문**  
다음 명령문에서는 유지 관리 작업 메모리 영역을 사용합니다.  
+ `CREATE INDEX`
+ `CLUSTER`

## 작업
<a name="apg-waits.iobuffile.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

**Topics**
+ [문제 식별](#apg-waits.iobuffile.actions.problem)
+ [조인 쿼리 검토](#apg-waits.iobuffile.actions.joins)
+ [ORDER BY와 GROUP BY 쿼리를 검토합니다.](#apg-waits.iobuffile.actions.order-by)
+ [DISTINCT 연산 사용을 피하세요.](#apg-waits.iobuffile.actions.distinct)
+ [GROUP BY 함수 대신 윈도 함수를 사용하는 것이 좋습니다.](#apg-waits.iobuffile.actions.window)
+ [구체화된 뷰 및 CTAS 명령문 조사](#apg-waits.iobuffile.actions.mv-refresh)
+ [인덱스를 만들 때 pg\$1repack 사용](#apg-waits.iobuffile.actions.pg_repack)
+ [테이블을 클러스터링할 때 maintenance\$1work\$1mem 증가](#apg-waits.iobuffile.actions.cluster)
+ [메모리를 조정하여 IO:BufFileRead 및 IO:BufFileWrite 방지](#apg-waits.iobuffile.actions.tuning-memory)

### 문제 식별
<a name="apg-waits.iobuffile.actions.problem"></a>

Performance Insights에서 직접 임시 파일 사용량을 볼 수 있습니다. 자세한 내용은 [성능 개선 도우미를 사용하여 임시 파일 사용량 확인](PostgreSQL.ManagingTempFiles.Example.md) 섹션을 참조하세요. Performance Insights가 비활성화되면 `IO:BufFileRead` 및 `IO:BufFileWrite` 작업이 증가하는 것을 확인할 수 있습니다. 문제를 해결하려면 다음을 수행합니다.

1. Amazon CloudWatch의 `FreeLocalStorage` 지표를 검토합니다.

1. 톱니 모양의 스파이크 시리즈인 체인톱 패턴을 찾으세요.

체인톱 패턴은 임시 파일과 관련된 스토리지의 빠른 사용 및 릴리스를 나타냅니다. 이 패턴이 발견되면 성능 개선 도우미를 켜세요. 성능 개선 도우미를 사용하면 대기 이벤트가 발생하는 시기와 연관된 쿼리를 식별할 수 있습니다. 솔루션은 이벤트를 유발하는 특정 쿼리에 따라 달라집니다.

또는 `log_temp_files` 파라미터를 설정합니다. 이 파라미터는 임시 파일의 임계값 KB 이상을 생성하는 모든 쿼리를 기록합니다. 값이 `0`이라면, Aurora PostgreSQL이 모든 임시 파일을 기록합니다. 값이 `1024`라면, Aurora PostgreSQL이 1MB보다 큰 임시 파일을 생성하는 모든 쿼리를 기록합니다. `log_temp_files`에 관한 자세한 내용은 PostgreSQL 문서의 [오류 보고 및 로깅](https://www.postgresql.org/docs/10/runtime-config-logging.html)을 참조하세요.

### 조인 쿼리 검토
<a name="apg-waits.iobuffile.actions.joins"></a>

애플리케이션에서 조인을 사용할 수 있습니다. 예를 들어 다음 쿼리는 네 개의 테이블을 조인합니다.

```
SELECT * 
       FROM order 
 INNER JOIN order_item 
       ON (order.id = order_item.order_id)
 INNER JOIN customer 
       ON (customer.id = order.customer_id)
 INNER JOIN customer_address 
       ON (customer_address.customer_id = customer.id AND 
           order.customer_address_id = customer_address.id)
 WHERE customer.id = 1234567890;
```

임시 파일 사용량 스파이크의 원인은 쿼리 자체의 문제입니다. 예를 들어, 끊어진 절은 조인을 제대로 필터링하지 않을 수 있습니다. 다음 예에서 두 번째 내부 조인을 고려해 보겠습니다.

```
SELECT * 
       FROM order
 INNER JOIN order_item 
       ON (order.id = order_item.order_id)
 INNER JOIN customer 
       ON (customer.id = customer.id)
 INNER JOIN customer_address 
       ON (customer_address.customer_id = customer.id AND 
           order.customer_address_id = customer_address.id)
 WHERE customer.id = 1234567890;
```

위의 쿼리가 실수로 `customer.id`를 `customer.id`에 조인하여 모든 고객과 모든 주문 사이에 데카르트 프로덕트를 생성합니다. 이러한 유형의 우발적인 조인은 큰 임시 파일을 생성합니다. 테이블의 크기에 따라 테카르트 쿼리(Cartesian query)는 스토리지를 채울 수도 있습니다. 다음 조건이 충족되면 애플리케이션에 데카르트 조인(Cartesian join)이 있을 수 있습니다.
+ 스토리지 가용성이 급격히, 크게 줄어들고 복구가 빨라집니다.
+ 인덱스가 생성되지 않습니다.
+ `CREATE TABLE FROM SELECT` 문이 발행되고 있지 않습니다.
+ 구체화 뷰가 새로 고침이 되지 않습니다.

적절한 키를 사용하여 테이블이 조인되고 있는지 확인하려면 쿼리 및 객체 관계형 매핑 지시어를 검사합니다. 애플리케이션의 특정 쿼리가 항상 호출되는 것은 아니며 일부 쿼리는 동적으로 생성됩니다.

### ORDER BY와 GROUP BY 쿼리를 검토합니다.
<a name="apg-waits.iobuffile.actions.order-by"></a>

경우에 따라 `ORDER BY` 절에 임시 파일이 과도하게 발생할 수 있습니다. 다음 지침을 참고하세요.
+ 정렬이 필요할 때 `ORDER BY` 절의 열만 포함합니다. 이 지침은 `ORDER BY` 절에서 수천 개의 행을 반환하고 많은 열을 지정하는 쿼리에 특히 중요합니다.
+ 오름차순 또는 내림차순이 동일한 열과 일치할 때 `ORDER BY` 절을 가속하기 위해 인덱스를 생성하는 것이 좋습니다. 부분 인덱스는 작기 때문에 선호됩니다. 작은 인덱스를 더 빠르게 읽고 탐색할 수 있습니다.
+ null 값을 허용할 수 있는 열에 대한 인덱스를 만드는 경우 null 값을 인덱스의 끝에 저장할지 아니면 인덱스의 시작 부분에 저장할지 고려해야 합니다.

  가능한 경우 결과 집합을 필터링하여 정렬해야 하는 행 수를 줄입니다. `WITH` 절의 명령문 또는 하위 쿼리를 사용할 경우, 내부 쿼리가 결과 집합을 생성하여 외부 쿼리로 전달한다는 것을 기억하세요. 쿼리가 필터링할 수 있는 행이 많을수록 쿼리 정렬이 할 일이 줄어듭니다.
+ 전체 결과 집합을 가져올 필요가 없는 경우 `LIMIT` 절을 사용하세요. 예를 들어 상위 5개 행만 원하는 경우 `LIMIT` 절을 사용하는 쿼리는 결과를 계속 생성하지 않습니다. 이렇게 하면 쿼리에 메모리와 임시 파일이 더 적게 필요합니다.

`GROUP BY` 절을 사용하는 쿼리는 임시 파일이 필요할 수도 있습니다. `GROUP BY` 쿼리는 다음과 같은 함수를 사용하여 값을 요약합니다.
+ `COUNT`
+ `AVG`
+ `MIN`
+ `MAX`
+ `SUM`
+ `STDDEV`

`GROUP BY` 쿼리를 튜닝하려면 `ORDER BY` 쿼리의 권장 사항을 따르세요.

### DISTINCT 연산 사용을 피하세요.
<a name="apg-waits.iobuffile.actions.distinct"></a>

가능하면 중복된 행을 제거하기 위해 `DISTINCT` 연산을 사용하지 마세요. 쿼리가 반환하는 불필요하고 중복된 행이 많을수록 `DISTINCT` 연산에 시간이 오래 걸리게 됩니다. 가능하면 `WHERE` 절에 필터를 추가합니다. 다른 테이블에 동일한 필터를 사용하는 경우에도 마찬가지입니다. 쿼리를 필터링하고 조인하면 성능이 향상되고 리소스 사용이 줄어듭니다. 또한 잘못된 보고와 결과를 방지할 수 있습니다.

`DISTINCT`를 동일 테이블의 여러 행에서 사용해야 하는 경우 복합 인덱스를 만드는 것이 좋습니다. 인덱스에서 여러 열을 그룹화하면 고유한 행을 평가하는 시간을 단축할 수 있습니다. 또한 Amazon Aurora PostgreSQL 버전 10 이상을 사용하는 경우, `CREATE STATISTICS` 명령을 통해 다중 열의 통계를 상호 연관시킬 수 있습니다.

### GROUP BY 함수 대신 윈도 함수를 사용하는 것이 좋습니다.
<a name="apg-waits.iobuffile.actions.window"></a>

`GROUP BY`를 사용하여 결과 집합을 변경한 다음 집계된 결과를 검색합니다. 윈도 함수를 사용하면 결과 집합을 변경하지 않고 데이터를 집계할 수 있습니다. 윈도 함수는 `OVER` 절을 통해 다른 행과 상호 연관시키는 쿼리에 의해 정의된 집합에서 계산을 수행합니다. 윈도 함수의 모든 `GROUP BY` 함수를 사용할 수 있으며, 다음과 같은 함수도 사용할 수 있습니다.
+ `RANK`
+ `ARRAY_AGG`
+ `ROW_NUMBER`
+ `LAG`
+ `LEAD`

윈도 함수에 의해 생성된 임시 파일 수를 최소화하려면 두 개의 별개의 집계가 필요할 때 동일한 결과 집합에 대한 중복을 제거합니다. 다음과 같은 쿼리를 가정하겠습니다.

```
SELECT sum(salary) OVER (PARTITION BY dept ORDER BY salary DESC) as sum_salary
     , avg(salary) OVER (PARTITION BY dept ORDER BY salary ASC) as avg_salary
  FROM empsalary;
```

`WINDOW` 절을 사용하여 다음과 같이 쿼리를 다시 작성할 수 있습니다.

```
SELECT sum(salary) OVER w as sum_salary
         , avg(salary) OVER w as_avg_salary
    FROM empsalary
  WINDOW w AS (PARTITION BY dept ORDER BY salary DESC);
```

기본값으로, Aurora PostgreSQL 실행 플래너는 유사한 노드를 통합하여 연산을 복제하지 않습니다. 그러나 윈도 블록에 대한 명시적 선언을 사용하면 쿼리를 보다 쉽게 유지할 수 있습니다. 또한 중복을 방지하여 성능을 향상시킬 수 있습니다.

### 구체화된 뷰 및 CTAS 명령문 조사
<a name="apg-waits.iobuffile.actions.mv-refresh"></a>

구체화된 뷰가 새로 고쳐지면 쿼리가 실행됩니다. 이 쿼리에는 `GROUP BY`, `ORDER BY`, 또는 `DISTINCT` 같은 연산이 포함될 수 있습니다. 새로 고침을 하는 동안 많은 수의 임시 파일과 `IO:BufFileWrite` 및 `IO:BufFileRead` 대기 이벤트를 관찰할 수 있습니다. 마찬가지로, `SELECT` 문을 기반으로 테이블을 생성할 때도 마찬가지입니다. `CREATE TABLE` 문은 쿼리를 실행합니다. 필요한 임시 파일을 줄이려면 쿼리를 최적화하세요.

### 인덱스를 만들 때 pg\$1repack 사용
<a name="apg-waits.iobuffile.actions.pg_repack"></a>

인덱스를 생성하면 엔진이 결과 세트를 정렬합니다. 테이블의 크기가 커지고 인덱싱된 열의 값이 다양해짐에 따라 임시 파일에 더 많은 공간이 필요합니다. 대부분의 경우 유지 관리 작업 메모리 영역을 수정하지 않으면 큰 테이블에 대한 임시 파일이 생성되지 않도록 할 수 없습니다. 자세한 내용은 [유지 관리 작업 메모리 영역](AuroraPostgreSQL.Tuning.concepts.md#AuroraPostgreSQL.Tuning.concepts.local.maintenance_work_mem) 섹션을 참조하세요.

큰 인덱스를 다시 만들 때 가능한 해결 방법은 pg\$1repack 도구를 사용하는 것입니다. 자세한 내용은 pg\$1repack 문서의 [최소한의 잠금으로 PostgreSQL 데이터베이스의 테이블 재구성](https://reorg.github.io/pg_repack/)을 참조하세요.

### 테이블을 클러스터링할 때 maintenance\$1work\$1mem 증가
<a name="apg-waits.iobuffile.actions.cluster"></a>

`CLUSTER` 명령은 *index\$1name*에 의해 지정된 기존 인덱스를 기반으로 하는 *table\$1name*에 의해 지정된 테이블을 클러스터링합니다. Aurora PostgreSQL은 지정된 인덱스의 순서와 일치하도록 테이블을 물리적으로 다시 만듭니다.

마그네틱 스토리지가 널리 보급되었을 때 스토리지 처리량이 제한적이었기 때문에 클러스터링이 일반적이었습니다. SSD 기반 스토리지가 일반적이므로 클러스터링은 인기가 덜합니다. 그러나 테이블을 클러스터링하는 경우에도 테이블 크기, 인덱스, 쿼리 등에 따라 성능이 약간 향상될 수 있습니다.

`CLUSTER` 명령을 실행하거나 `IO:BufFileWrite` 및 `IO:BufFileRead` 대기 이벤트를 관찰할 수 있는 경우, `maintenance_work_mem`을 조정합니다. 메모리 크기를 상당히 크게 늘립니다. 값이 높으면 엔진이 클러스터링 작업에 더 많은 메모리를 사용할 수 있음을 의미합니다.

### 메모리를 조정하여 IO:BufFileRead 및 IO:BufFileWrite 방지
<a name="apg-waits.iobuffile.actions.tuning-memory"></a>

어떤 상황에서는 메모리를 조정해야 합니다. 목표는 다음 요구 사항의 균형을 맞추는 것입니다.
+ `work_mem` 값([작업 메모리 영역](AuroraPostgreSQL.Tuning.concepts.md#AuroraPostgreSQL.Tuning.concepts.local.work_mem) 참조)
+ `shared_buffers` 값 디스카운트 후 남은 메모리([버퍼 풀](AuroraMySQL.Managing.Tuning.concepts.md#AuroraMySQL.Managing.Tuning.concepts.memory.buffer-pool) 참조)
+ 열리고 사용 중인 최대 연결은 `max_connections`로 제한됩니다.

#### 작업 메모리 영역 크기 증가
<a name="apg-waits.iobuffile.actions.tuning-memory.work-mem"></a>

경우에 따라 세션에서 사용하는 메모리를 늘리는 것이 유일한 방법입니다. 쿼리가 올바르게 작성되고 조인에 올바른 키를 사용하는 경우 `work_mem` 값을 증가시키는 것이 좋습니다. 자세한 내용은 [작업 메모리 영역](AuroraPostgreSQL.Tuning.concepts.md#AuroraPostgreSQL.Tuning.concepts.local.work_mem) 섹션을 참조하세요.

쿼리가 생성하는 임시 파일 수를 확인하려면 `log_temp_files`를 `0`에 설정하세요. `work_mem` 값을 로그에서 식별된 최대값으로 늘리면 쿼리가 임시 파일을 생성하지 못하도록 합니다. 하지만 `work_mem`은 각 연결 또는 병렬 워커에 대해 계획 노드당 최대값을 설정합니다. 데이터베이스에 5,000개의 연결이 있고 각 연결이 256MiB 메모리를 사용하는 경우 엔진에 1.2TiB의 RAM이 필요합니다. 따라서 인스턴스의 메모리가 부족할 수 있습니다.

#### 공유 버퍼 풀에 충분한 메모리 예약
<a name="apg-waits.iobuffile.actions.tuning-memory.shared-pool"></a>

데이터베이스는 작업 메모리 영역뿐만 아니라 공유 버퍼 풀과 같은 메모리 영역을 사용합니다. `work_mem`을 늘리기 전에 이러한 추가 메모리 영역의 요구 사항을 고려하는 것이 좋습니다. 버퍼 풀에 대한 자세한 내용은 [버퍼 풀](AuroraMySQL.Managing.Tuning.concepts.md#AuroraMySQL.Managing.Tuning.concepts.memory.buffer-pool) 섹션을 참조하세요.

예를 들어, Aurora PostgreSQL 인스턴스 클래스가 db.r5.2xlarge라고 가정합니다. 이 클래스에는 64GiB의 메모리가 있습니다. 기본적으로 메모리의 75% 가 공유 버퍼 풀에 예약되어 있습니다. 공유 메모리 영역에 할당된 양을 빼면 16,384MB가 남아 있습니다. 운영 체제와 엔진에도 메모리가 필요하므로 나머지 메모리를 작업 메모리 영역에만 할당하지 마세요.

`work_mem`에 할당할 수 있는 메모리는 인스턴스 클래스에 따라 달라집니다. 더 큰 인스턴스 클래스를 사용하는 경우 더 많은 메모리를 사용할 수 있습니다. 하지만 앞의 예에서는 16GiB를 초과하여 사용할 수 없습니다. 그렇지 않으면 메모리가 부족할 때 인스턴스를 사용할 수 없게 됩니다. 인스턴스를 사용할 수 없는 상태에서 복구하기 위해 Aurora PostgreSQL 자동화 서비스가 자동으로 다시 시작됩니다.

#### 연결 수 관리
<a name="apg-waits.iobuffile.actions.tuning-memory.connections"></a>

데이터베이스 인스턴스에 5,000개의 동시 연결이 있다고 가정합니다. 각 연결은 최소 4MiB의 `work_mem`을 사용합니다. 연결의 메모리 소비량이 많으면 성능이 저하될 수 있습니다. 다음과 같은 옵션이 있습니다.
+ vCPU가 더 많은 대규모 인스턴스 클래스로 업그레이드하세요.
+ 연결 프록시 또는 풀러를 사용하여 동시 데이터베이스 연결 수를 줄이세요.

프록시의 경우 Amazon RDS 프록시, PGBouncer 또는 애플리케이션에 기반한 연결 풀러를 고려하세요. 이 솔루션은 CPU 부하를 완화합니다. 또한 모든 연결에 작업 메모리 영역이 필요할 때 위험을 줄일 수 있습니다. 데이터베이스 연결 수가 적으면 `work_mem` 값을 늘릴 수 있습니다. 이런 방법으로 `IO:BufFileRead`와 `IO:BufFileWrite` 대기 이벤트의 발생을 줄일 수 있습니다. 또한 작업 메모리 영역을 기다리는 쿼리의 속도가 크게 향상됩니다.

# IO:DataFileRead
<a name="apg-waits.iodatafileread"></a>

`IO:DataFileRead` 이벤트는 공유 메모리에서 페이지를 사용할 수 없기 때문에 저장소에서 필요한 페이지를 읽기 위해 백엔드 프로세스에서 연결이 대기할 때 발생합니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.iodatafileread.context.supported)
+ [컨텍스트](#apg-waits.iodatafileread.context)
+ [대기 증가의 가능한 원인](#apg-waits.iodatafileread.causes)
+ [작업](#apg-waits.iodatafileread.actions)

## 지원되는 엔진 버전
<a name="apg-waits.iodatafileread.context.supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.iodatafileread.context"></a>

모든 쿼리 및 데이터 조작(DML) 작업은 버퍼 풀의 페이지에 액세스합니다. 읽기를 유도할 수 있는 명령문은 `SELECT`,`UPDATE` 및 `DELETE`가 있습니다. 예를 들어, 하나의 `UPDATE`는 테이블 또는 인덱스에서 페이지를 읽을 수 있습니다. 요청하거나 업데이트되는 페이지가 공유 버퍼 풀에 없는 경우 이 읽기는 `IO:DataFileRead` 이벤트를 생성합니다.

공유 버퍼 풀은 유한하기 때문에 채워질 수 있습니다. 이 경우 메모리에 없는 페이지에 대한 요청은 데이터베이스가 디스크에서 블록을 읽도록 강제로 합니다. 만약 `IO:DataFileRead` 이벤트가 자주 발생한다면 공유 버퍼 풀이 너무 작아서 워크로드를 수용할 수 없는 것일 수도 있습니다. 이 문제는 버퍼 풀에 맞지 않는 많은 수의 행을 읽는 `SELECT` 쿼리에서 극심하게 발생합니다. 버퍼 풀에 대한 자세한 내용은 [버퍼 풀](AuroraMySQL.Managing.Tuning.concepts.md#AuroraMySQL.Managing.Tuning.concepts.memory.buffer-pool) 섹션을 참조하세요.

## 대기 증가의 가능한 원인
<a name="apg-waits.iodatafileread.causes"></a>

`IO:DataFileRead` 이벤트의 일반적인 원인에는 다음이 포함됩니다.

**연결 스파이크**  
동일한 수의 Io:DataFileRead 대기 이벤트를 생성하는 여러 연결을 찾을 수 있습니다. 이 경우 `IO:DataFileRead` 이벤트의 스파이크 갑작스럽고 큰 증가)가 발생할 수 있습니다.

**순차 검사를 수행하는 SELECT 및 DML 문**  
애플리케이션에서 새 작업을 수행하고 있을 수 있습니다. 또는 새 실행 계획으로 인해 기존 작업이 변경될 수 있습니다. 이러한 경우 테이블(특히 큰 테이블)이 더 큰 `seq_scan` 값을 가진 테이블을 찾으세요. `pg_stat_user_tables`를 쿼리하여 탐색 더 많은 읽기 작업을 생성하는 쿼리를 추적하려면 `pg_stat_statements` 확장 프로그램을 사용하세요.

**대용량 데이터 세트를 위한 CTAS 및 CREATE 인덱스**  
*CTAS*는 `CREATE TABLE AS SELECT` 문입니다. 대용량 데이터 세트를 소스로 사용하여 CTAS를 실행하거나 큰 테이블에 인덱스를 만드는 경우 `IO:DataFileRead` 이벤트가 발생할 수 있습니다. 인덱스를 만들 때 데이터베이스는 순차 스캔을 사용하여 전체 객체를 읽어야 할 수 있습니다. CTAS는 페이지가 메모리에 없을 때 `IO:DataFile` 리드를 생성합니다.

**여러 베큠 작업자가 동시에 실행**  
베큠 작업자는 수동 또는 자동으로 트리거될 수 있습니다. 공격적인 베큠 전략을 채택하는 것이 좋습니다. 그러나 테이블에 업데이트되거나 삭제된 행이 많으면 `IO:DataFileRead` 대기가 늘어납니다. 공간을 회수한 후 `IO:DataFileRead`에 소비되는 베큠 시간이 감소합니다.

**대용량 데이터 수집**  
애플리케이션이 대용량 데이터를 수집할 때 `ANALYZE` 연산이 더 자주 발생할 수 있습니다. `ANALYZE` 프로세스는 autovacuum 시작 관리자에 의해 트리거되거나 수동으로 호출될 수 있습니다.  
`ANALYZE` 연산은 테이블의 하위 집합을 읽습니다. 스캔해야 하는 페이지 수는 `default_statistics_target` 값에 30을 곱하여 계산합니다. 자세한 내용은 [PostgreSQL 설명서](https://www.postgresql.org/docs/current/runtime-config-query.html#GUC-DEFAULT-STATISTICS-TARGET)를 참조하세요. `default_statistics_target` 파라미터 1에서 10,000 사이의 값을 허용합니다. 여기서 기본값은 100입니다.

**리소스 부족**  
인스턴스 네트워크 대역폭 또는 CPU가 사용되는 경우 `IO:DataFileRead` 이벤트가 더 자주 발생할 수 있습니다.

## 작업
<a name="apg-waits.iodatafileread.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

**Topics**
+ [대기를 생성하는 쿼리에 대한 술어 필터 확인](#apg-waits.iodatafileread.actions.filters)
+ [유지 보수 작업의 영향 최소화](#apg-waits.iodatafileread.actions.maintenance)
+ [많은 연결 수에 대응](#apg-waits.iodatafileread.actions.connections)

### 대기를 생성하는 쿼리에 대한 술어 필터 확인
<a name="apg-waits.iodatafileread.actions.filters"></a>

`IO:DataFileRead` 대기 이벤트를 생성 중인 특정 쿼리를 식별한다고 가정합니다. 다음 기법을 사용하여 식별할 수 있습니다.
+ 성능 개선 도우미
+ `pg_stat_statements` 확장에서 제공하는 것과 같은 카탈로그 뷰
+ 카탈로그 뷰 `pg_stat_all_tables`, 주기적으로 증가하는 물리적 읽기 횟수가 표시되는 경우
+ `pg_statio_all_tables` 뷰, `_read` 카운터의 증가를 보여주는 경우

이 쿼리의 술어(`WHERE` 절)에 사용되는 필터를 결정하는 것이 좋습니다. 아래 지침을 따르세요.
+ `EXPLAIN` 명령을 실행합니다. 출력에서 어떤 유형의 스캔이 사용되는지 식별합니다. 순차 스캔이 반드시 문제를 의미하지는 않습니다. 순차 스캔을 사용하는 쿼리는 필터를 사용하는 쿼리와 비교할 때 자연스럽게 더 많은 `IO:DataFileRead` 이벤트를 생성합니다.

  `WHERE` 절에 열거된 열이 인덱싱되었는지 확인합니다. 그렇지 않은 경우 이 열에 대한 인덱스를 만드는 것이 좋습니다. 이 접근법은 순차적 스캔을 피하고 `IO:DataFileRead` 이벤트를 줄입니다. 쿼리에 제한적인 필터가 있지만 순차적 스캔을 생성하는 경우 적절한 인덱스가 사용되고 있는지 평가합니다.
+ 쿼리가 매우 큰 테이블에 액세스하고 있는지 확인합니다. 경우에 따라 테이블을 분할하면 성능이 향상되어 쿼리가 필요한 파티션만 읽을 수 있습니다.
+ 조인 작업에서 카디널리티(총 행 수)를 조사합니다. `WHERE` 절을 위해 필터에 전달하는 값이 얼마나 제한적인지 확인하세요. 가능한 경우 쿼리를 조정하여 계획의 각 단계에서 전달되는 행 수를 줄입니다.

### 유지 보수 작업의 영향 최소화
<a name="apg-waits.iodatafileread.actions.maintenance"></a>

`VACUUM`과 `ANALYZE` 같은 유지 관리 작업이 중요합니다. 이러한 유지 관리 작업과 관련된 `IO:DataFileRead` 대기 이벤트를 찾을 수 있으므로 끄지 않는 것이 좋습니다. 다음 방법을 사용하면 이러한 작업의 효과를 최소화할 수 있습니다.
+ 사용량이 적은 시간대에 수동으로 유지 관리 작업을 실행합니다. 이 기술은 데이터베이스가 자동 연산의 임계값에 도달하지 못하도록 합니다.
+ 매우 큰 테이블의 경우 테이블을 분할하는 것이 좋습니다. 이 기술은 유지보수 작업의 오버헤드를 줄여줍니다. 데이터베이스는 유지 관리가 필요한 파티션에만 액세스합니다.
+ 대량의 데이터를 수집할 때는 자동 분석 기능을 사용하지 않도록 설정하는 것이 좋습니다.

다음 공식이 true이면 테이블에 대해 autovacuum 기능이 자동으로 트리거됩니다.

```
pg_stat_user_tables.n_dead_tup > (pg_class.reltuples x autovacuum_vacuum_scale_factor) + autovacuum_vacuum_threshold
```

뷰 `pg_stat_user_tables`와 카탈로그 `pg_class`에는 여러 개의 행이 있습니다. 한 행은 테이블의 한 행에 대응할 수 있습니다. 이 공식은 `reltuples`가 특정 테이블을 위한 것이라고 가정합니다. 파라미터 `autovacuum_vacuum_scale_factor`(기본적으로 0.20)와 `autovacuum_vacuum_threshold`(기본적으로 50개의 튜플)는 일반적으로 전체 인스턴스에 대해 전역으로 설정됩니다. 그러나 특정 테이블에 대해 다른 값을 설정할 수 있습니다.

**Topics**
+ [불필요한 공간을 소비하는 테이블 찾기](#apg-waits.iodatafileread.actions.maintenance.tables)
+ [불필요한 공간을 차지하는 테이블 찾기](#apg-waits.iodatafileread.actions.maintenance.indexes)
+ [Autovacuum이 가능한 테이블 찾기](#apg-waits.iodatafileread.actions.maintenance.autovacuumed)

#### 불필요한 공간을 소비하는 테이블 찾기
<a name="apg-waits.iodatafileread.actions.maintenance.tables"></a>

필요 이상의 공간을 소비하는 테이블을 찾으려면 다음 쿼리를 실행합니다. `rds_superuser` 역할이 없는 데이터베이스 사용자 역할이 이 쿼리를 실행하면, 해당 사용자 역할이 읽기 권한이 있는 테이블에 관한 정보만 반환됩니다. 이 쿼리는 PostgreSQL 버전 12 이상에서 지원됩니다.

```
WITH report AS (
   SELECT   schemaname
           ,tblname
           ,n_dead_tup
           ,n_live_tup
           ,block_size*tblpages AS real_size
           ,(tblpages-est_tblpages)*block_size AS extra_size
           ,CASE WHEN tblpages - est_tblpages > 0
              THEN 100 * (tblpages - est_tblpages)/tblpages::float
              ELSE 0
            END AS extra_ratio, fillfactor, (tblpages-est_tblpages_ff)*block_size AS bloat_size
           ,CASE WHEN tblpages - est_tblpages_ff > 0
              THEN 100 * (tblpages - est_tblpages_ff)/tblpages::float
              ELSE 0
            END AS bloat_ratio
           ,is_na
    FROM (
           SELECT  ceil( reltuples / ( (block_size-page_hdr)/tpl_size ) ) + ceil( toasttuples / 4 ) AS est_tblpages
                  ,ceil( reltuples / ( (block_size-page_hdr)*fillfactor/(tpl_size*100) ) ) + ceil( toasttuples / 4 ) AS est_tblpages_ff
                  ,tblpages
                  ,fillfactor
                  ,block_size
                  ,tblid
                  ,schemaname
                  ,tblname
                  ,n_dead_tup
                  ,n_live_tup
                  ,heappages
                  ,toastpages
                  ,is_na
             FROM (
                    SELECT ( 4 + tpl_hdr_size + tpl_data_size + (2*ma)
                               - CASE WHEN tpl_hdr_size%ma = 0 THEN ma ELSE tpl_hdr_size%ma END
                               - CASE WHEN ceil(tpl_data_size)::int%ma = 0 THEN ma ELSE ceil(tpl_data_size)::int%ma END
                           ) AS tpl_size
                           ,block_size - page_hdr AS size_per_block
                           ,(heappages + toastpages) AS tblpages
                           ,heappages
                           ,toastpages
                           ,reltuples
                           ,toasttuples
                           ,block_size
                           ,page_hdr
                           ,tblid
                           ,schemaname
                           ,tblname
                           ,fillfactor
                           ,is_na
                           ,n_dead_tup
                           ,n_live_tup
                          FROM (
                                SELECT  tbl.oid                       AS tblid
                                       ,ns.nspname                    AS schemaname
                                       ,tbl.relname                   AS tblname
                                       ,tbl.reltuples                 AS reltuples
                                       ,tbl.relpages                  AS heappages
                                       ,coalesce(toast.relpages, 0)   AS toastpages
                                       ,coalesce(toast.reltuples, 0)  AS toasttuples
                                       ,psat.n_dead_tup               AS n_dead_tup
                                       ,psat.n_live_tup               AS n_live_tup
                                       ,24                            AS page_hdr
                                       ,current_setting('block_size')::numeric AS block_size
                                       ,coalesce(substring( array_to_string(tbl.reloptions, ' ') FROM 'fillfactor=([0-9]+)')::smallint, 100) AS fillfactor
                                       ,CASE WHEN version()~'mingw32' OR version()~'64-bit|x86_64|ppc64|ia64|amd64' THEN 8 ELSE 4 END        AS ma
                                       ,23 + CASE WHEN MAX(coalesce(null_frac,0)) > 0 THEN ( 7 + count(*) ) / 8 ELSE 0::int END              AS tpl_hdr_size
                                       ,sum( (1-coalesce(s.null_frac, 0)) * coalesce(s.avg_width, 1024) )                                    AS tpl_data_size
                                       ,bool_or(att.atttypid = 'pg_catalog.name'::regtype) OR count(att.attname) <> count(s.attname)         AS is_na
                                  FROM  pg_attribute       AS att
                                  JOIN  pg_class           AS tbl    ON (att.attrelid = tbl.oid)
                                  JOIN  pg_stat_all_tables AS psat   ON (tbl.oid = psat.relid)
                                  JOIN  pg_namespace       AS ns     ON (ns.oid = tbl.relnamespace)
                             LEFT JOIN  pg_stats           AS s      ON (s.schemaname=ns.nspname AND s.tablename = tbl.relname AND s.inherited=false AND s.attname=att.attname)
                             LEFT JOIN  pg_class           AS toast  ON (tbl.reltoastrelid = toast.oid)
                                 WHERE  att.attnum > 0
                                   AND  NOT att.attisdropped
                                   AND  tbl.relkind = 'r'
                              GROUP BY  tbl.oid, ns.nspname, tbl.relname, tbl.reltuples, tbl.relpages, toastpages, toasttuples, fillfactor, block_size, ma, n_dead_tup, n_live_tup
                              ORDER BY  schemaname, tblname
                           ) AS s
                 ) AS s2
       ) AS s3
 ORDER BY bloat_size DESC
)
  SELECT * 
    FROM report 
   WHERE bloat_ratio != 0
 -- AND schemaname = 'public'
 -- AND tblname = 'pgbench_accounts'
;

-- WHERE NOT is_na
--   AND tblpages*((pst).free_percent + (pst).dead_tuple_percent)::float4/100 >= 1
```

애플리케이션에서 테이블 및 인덱스 팽창을 검사할 수 있습니다. 자세한 내용은 [테이블 및 인덱스 팽창 진단](AuroraPostgreSQL.diag-table-ind-bloat.md) 섹션을 참조하세요.

#### 불필요한 공간을 차지하는 테이블 찾기
<a name="apg-waits.iodatafileread.actions.maintenance.indexes"></a>

불필요한 공간을 차지하는 테이블을 찾으려면 다음 쿼리를 실행합니다.

```
-- WARNING: run with a nonsuperuser role, the query inspects
-- only indexes on tables you have permissions to read.
-- WARNING: rows with is_na = 't' are known to have bad statistics ("name" type is not supported).
-- This query is compatible with PostgreSQL 8.2 and later.

SELECT current_database(), nspname AS schemaname, tblname, idxname, bs*(relpages)::bigint AS real_size,
  bs*(relpages-est_pages)::bigint AS extra_size,
  100 * (relpages-est_pages)::float / relpages AS extra_ratio,
  fillfactor, bs*(relpages-est_pages_ff) AS bloat_size,
  100 * (relpages-est_pages_ff)::float / relpages AS bloat_ratio,
  is_na
  -- , 100-(sub.pst).avg_leaf_density, est_pages, index_tuple_hdr_bm, 
  -- maxalign, pagehdr, nulldatawidth, nulldatahdrwidth, sub.reltuples, sub.relpages 
  -- (DEBUG INFO)
FROM (
  SELECT coalesce(1 +
       ceil(reltuples/floor((bs-pageopqdata-pagehdr)/(4+nulldatahdrwidth)::float)), 0 
       -- ItemIdData size + computed avg size of a tuple (nulldatahdrwidth)
    ) AS est_pages,
    coalesce(1 +
       ceil(reltuples/floor((bs-pageopqdata-pagehdr)*fillfactor/(100*(4+nulldatahdrwidth)::float))), 0
    ) AS est_pages_ff,
    bs, nspname, table_oid, tblname, idxname, relpages, fillfactor, is_na
    -- , stattuple.pgstatindex(quote_ident(nspname)||'.'||quote_ident(idxname)) AS pst, 
    -- index_tuple_hdr_bm, maxalign, pagehdr, nulldatawidth, nulldatahdrwidth, reltuples 
    -- (DEBUG INFO)
  FROM (
    SELECT maxalign, bs, nspname, tblname, idxname, reltuples, relpages, relam, table_oid, fillfactor,
      ( index_tuple_hdr_bm +
          maxalign - CASE -- Add padding to the index tuple header to align on MAXALIGN
            WHEN index_tuple_hdr_bm%maxalign = 0 THEN maxalign
            ELSE index_tuple_hdr_bm%maxalign
          END
        + nulldatawidth + maxalign - CASE -- Add padding to the data to align on MAXALIGN
            WHEN nulldatawidth = 0 THEN 0
            WHEN nulldatawidth::integer%maxalign = 0 THEN maxalign
            ELSE nulldatawidth::integer%maxalign
          END
      )::numeric AS nulldatahdrwidth, pagehdr, pageopqdata, is_na
      -- , index_tuple_hdr_bm, nulldatawidth -- (DEBUG INFO)
    FROM (
      SELECT
        i.nspname, i.tblname, i.idxname, i.reltuples, i.relpages, i.relam, a.attrelid AS table_oid,
        current_setting('block_size')::numeric AS bs, fillfactor,
        CASE -- MAXALIGN: 4 on 32bits, 8 on 64bits (and mingw32 ?)
          WHEN version() ~ 'mingw32' OR version() ~ '64-bit|x86_64|ppc64|ia64|amd64' THEN 8
          ELSE 4
        END AS maxalign,
        /* per page header, fixed size: 20 for 7.X, 24 for others */
        24 AS pagehdr,
        /* per page btree opaque data */
        16 AS pageopqdata,
        /* per tuple header: add IndexAttributeBitMapData if some cols are null-able */
        CASE WHEN max(coalesce(s.null_frac,0)) = 0
          THEN 2 -- IndexTupleData size
          ELSE 2 + (( 32 + 8 - 1 ) / 8) 
          -- IndexTupleData size + IndexAttributeBitMapData size ( max num filed per index + 8 - 1 /8)
        END AS index_tuple_hdr_bm,
        /* data len: we remove null values save space using it fractionnal part from stats */
        sum( (1-coalesce(s.null_frac, 0)) * coalesce(s.avg_width, 1024)) AS nulldatawidth,
        max( CASE WHEN a.atttypid = 'pg_catalog.name'::regtype THEN 1 ELSE 0 END ) > 0 AS is_na
      FROM pg_attribute AS a
        JOIN (
          SELECT nspname, tbl.relname AS tblname, idx.relname AS idxname, 
            idx.reltuples, idx.relpages, idx.relam,
            indrelid, indexrelid, indkey::smallint[] AS attnum,
            coalesce(substring(
              array_to_string(idx.reloptions, ' ')
               from 'fillfactor=([0-9]+)')::smallint, 90) AS fillfactor
          FROM pg_index
            JOIN pg_class idx ON idx.oid=pg_index.indexrelid
            JOIN pg_class tbl ON tbl.oid=pg_index.indrelid
            JOIN pg_namespace ON pg_namespace.oid = idx.relnamespace
          WHERE pg_index.indisvalid AND tbl.relkind = 'r' AND idx.relpages > 0
        ) AS i ON a.attrelid = i.indexrelid
        JOIN pg_stats AS s ON s.schemaname = i.nspname
          AND ((s.tablename = i.tblname AND s.attname = pg_catalog.pg_get_indexdef(a.attrelid, a.attnum, TRUE)) 
          -- stats from tbl
          OR  (s.tablename = i.idxname AND s.attname = a.attname))
          -- stats from functionnal cols
        JOIN pg_type AS t ON a.atttypid = t.oid
      WHERE a.attnum > 0
      GROUP BY 1, 2, 3, 4, 5, 6, 7, 8, 9
    ) AS s1
  ) AS s2
    JOIN pg_am am ON s2.relam = am.oid WHERE am.amname = 'btree'
) AS sub
-- WHERE NOT is_na
ORDER BY 2,3,4;
```

#### Autovacuum이 가능한 테이블 찾기
<a name="apg-waits.iodatafileread.actions.maintenance.autovacuumed"></a>

Autovacuum이 가능한 테이블을 찾으려면 다음 쿼리를 실행합니다.

```
--This query shows tables that need vacuuming and are eligible candidates.
--The following query lists all tables that are due to be processed by autovacuum. 
-- During normal operation, this query should return very little.
WITH  vbt AS (SELECT setting AS autovacuum_vacuum_threshold 
              FROM pg_settings WHERE name = 'autovacuum_vacuum_threshold')
    , vsf AS (SELECT setting AS autovacuum_vacuum_scale_factor 
              FROM pg_settings WHERE name = 'autovacuum_vacuum_scale_factor')
    , fma AS (SELECT setting AS autovacuum_freeze_max_age 
              FROM pg_settings WHERE name = 'autovacuum_freeze_max_age')
    , sto AS (SELECT opt_oid, split_part(setting, '=', 1) as param, 
                split_part(setting, '=', 2) as value 
              FROM (SELECT oid opt_oid, unnest(reloptions) setting FROM pg_class) opt)
SELECT
    '"'||ns.nspname||'"."'||c.relname||'"' as relation
    , pg_size_pretty(pg_table_size(c.oid)) as table_size
    , age(relfrozenxid) as xid_age
    , coalesce(cfma.value::float, autovacuum_freeze_max_age::float) autovacuum_freeze_max_age
    , (coalesce(cvbt.value::float, autovacuum_vacuum_threshold::float) + 
         coalesce(cvsf.value::float,autovacuum_vacuum_scale_factor::float) * c.reltuples) 
         as autovacuum_vacuum_tuples
    , n_dead_tup as dead_tuples
FROM pg_class c 
JOIN pg_namespace ns ON ns.oid = c.relnamespace
JOIN pg_stat_all_tables stat ON stat.relid = c.oid
JOIN vbt on (1=1) 
JOIN vsf ON (1=1) 
JOIN fma on (1=1)
LEFT JOIN sto cvbt ON cvbt.param = 'autovacuum_vacuum_threshold' AND c.oid = cvbt.opt_oid
LEFT JOIN sto cvsf ON cvsf.param = 'autovacuum_vacuum_scale_factor' AND c.oid = cvsf.opt_oid
LEFT JOIN sto cfma ON cfma.param = 'autovacuum_freeze_max_age' AND c.oid = cfma.opt_oid
WHERE c.relkind = 'r' 
AND nspname <> 'pg_catalog'
AND (
    age(relfrozenxid) >= coalesce(cfma.value::float, autovacuum_freeze_max_age::float)
    or
    coalesce(cvbt.value::float, autovacuum_vacuum_threshold::float) + 
      coalesce(cvsf.value::float,autovacuum_vacuum_scale_factor::float) * c.reltuples <= n_dead_tup
    -- or 1 = 1
)
ORDER BY age(relfrozenxid) DESC;
```

### 많은 연결 수에 대응
<a name="apg-waits.iodatafileread.actions.connections"></a>

Amazon CloudWatch를 모니터링할 때 `DatabaseConnections` 지표 스파이크를 확인할 수도 있습니다. 이 증가는 데이터베이스에 대한 연결 수가 증가했음을 나타냅니다. 다음과 같이 하는 것이 좋습니다.
+ 애플리케이션이 각 인스턴스에서 열 수 있는 연결 수를 제한합니다. 애플리케이션에 내장된 연결 풀 기능이 있는 경우 적절한 연결 수를 설정합니다. 인스턴스의 vCPU가 효과적으로 병렬화할 수 있는 항목에 따라 숫자를 기준으로 합니다.

  애플리케이션에서 연결 풀 기능을 사용하지 않는 경우 Amazon RDS 프록시 또는 대안을 사용하는 것이 좋습니다. 이 접근 방식을 사용하면 애플리케이션이 로드 밸런서와 여러 연결을 열 수 있습니다. 그런 다음 밸런서는 데이터베이스와의 제한된 수의 연결을 열 수 있습니다. 병렬로 실행되는 연결 수가 적을수록 DB 인스턴스는 커널에서 컨텍스트 전환을 덜 수행합니다. 쿼리는 더 빠르게 진행되므로 대기 이벤트 수가 줄어듭니다. 자세한 내용은 [Aurora용 Amazon RDS Proxy](rds-proxy.md) 섹션을 참조하세요.
+ 가능하면 Aurora PostgreSQL용 리더 노드와 RDS for PostgreSQL용 읽기 전용 복제본을 활용할 수 있습니다. 애플리케이션이 읽기 전용 작업을 실행하면 이러한 요청을 읽기 전용 엔드포인트로 보냅니다. 이 기술은 애플리케이션 요청을 모든 리더 노드에 분산시켜 작성기 노드의 I/O 부담을 줄입니다.
+ DB 인스턴스를 확장하는 것이 좋습니다. 대용량 인스턴스 클래스는 더 많은 메모리를 제공하므로 Aurora PostgreSQL에 페이지를 저장할 수 있는 더 큰 공유 버퍼 풀이 제공됩니다. 크기가 클수록 DB 인스턴스에 연결을 처리할 수 있는 vCPU가 늘어납니다. 더 많은 vCPU가 `IO:DataFileRead` 대기 이벤트를 생성 중인 연산이 쓰기를 하고 있을 때 특히 유용합니다.

# IO:XactSync
<a name="apg-waits.xactsync"></a>

`IO:XactSync` 이벤트는 데이터베이스가 Aurora 스토리지 하위 시스템이 일반 트랜잭션의 커밋을 승인하거나 준비된 트랜잭션의 커밋 또는 롤백을 확인할 때까지 대기 중일 때 발생합니다. 준비된 트랜잭션은 PostgreSQL의 2단계 커밋 지원의 일부입니다. 또한 이 이벤트는 쿼리가 다른 트랜잭션의 커밋을 기다리고 있을 때, 특히 자동 커밋이 꺼져 있는 경우 발생할 수 있습니다. 이러한 시나리오에서는 업데이트가 아직 커밋되지 않았더라도 XactSync에서 대기 중인 것으로 보일 수 있습니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.xactsync.context.supported)
+ [컨텍스트](#apg-waits.xactsync.context)
+ [대기 증가의 가능한 원인](#apg-waits.xactsync.causes)
+ [작업](#apg-waits.xactsync.actions)

## 지원되는 엔진 버전
<a name="apg-waits.xactsync.context.supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.xactsync.context"></a>

이벤트 `IO:XactSync`는 인스턴스가 Aurora 스토리지 하위 시스템이 트랜잭션 데이터가 처리되었음을 확인하는 것을 기다리는 데 시간을 소비하고 있음을 나타냅니다.

## 대기 증가의 가능한 원인
<a name="apg-waits.xactsync.causes"></a>

`IO:XactSync` 이벤트가 정상보다 많이 나타나 성능 문제를 나타내는 경우 일반적인 원인은 다음과 같습니다.

**네트워크 포화**  
클라이언트와 DB 인스턴스 간 트래픽 또는 스토리지 하위 시스템에 대한 트래픽은 네트워크 대역폭에 비해 너무 무거울 수 있습니다.

**CPU 압력**  
워크로드가 많으면 Aurora 스토리지 데몬이 충분한 CPU 시간을 얻지 못하게 될 수 있습니다.

## 작업
<a name="apg-waits.xactsync.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

**Topics**
+ [리소스 모니터링](#apg-waits.xactsync.actions.monitor)
+ [CPU 확장](#apg-waits.xactsync.actions.scalecpu)
+ [네트워크 대역폭 향상](#apg-waits.xactsync.actions.scalenetwork)
+ [커밋 수 저감](#apg-waits.xactsync.actions.commits)

### 리소스 모니터링
<a name="apg-waits.xactsync.actions.monitor"></a>

`IO:XactSync` 이벤트가 증가한 원인을 파악하려면, 다음 지표를 확인하세요.
+ `WriteThroughput`과 `CommitThroughput` - 쓰기 처리량 또는 커밋 처리량이 변경되면 워크로드가 증가할 수 있습니다.
+ `WriteLatency`와 `CommitLatency` - 쓰기 지연 시간 또는 커밋 대기 시간이 변경되면 스토리지 하위 시스템이 더 많은 작업을 수행해야 한다는 메시지가 표시될 수 있습니다.
+ `CPUUtilization` - 인스턴스의 CPU 사용률이 90%를 초과하면 Aurora 스토리지 데몬이 CPU에서 충분한 시간을 확보하지 못할 수 있습니다. 이 경우 I/O 성능이 저하됩니다.

지표에 대한 자세한 내용은 [Amazon Aurora에 대한 인스턴스 수준 지표](Aurora.AuroraMonitoring.Metrics.md#Aurora.AuroraMySQL.Monitoring.Metrics.instances) 섹션을 참조하세요.

### CPU 확장
<a name="apg-waits.xactsync.actions.scalecpu"></a>

CPU 부족 문제를 해결하려면 CPU 용량이 더 많은 인스턴스 유형으로 변경하는 것이 좋습니다. DB 인스턴스 클래스의 CPU 용량에 대한 자세한 내용은 [Aurora에 대한 DB 인스턴스 클래스의 하드웨어 사양](Concepts.DBInstanceClass.Summary.md) 섹션을 참조하세요.

### 네트워크 대역폭 향상
<a name="apg-waits.xactsync.actions.scalenetwork"></a>

인스턴스가 네트워크 대역폭 제한에 도달하는지 확인하려면 다음과 같은 다른 대기 이벤트를 확인합니다.
+ `IO:DataFileRead`,`IO:BufferRead`,`IO:BufferWrite`, 및 `IO:XactWrite` - 대량의 I/O를 사용하는 쿼리는 이러한 대기 이벤트를 더 많이 생성할 수 있습니다.
+ `Client:ClientRead`와 `Client:ClientWrite` - 클라이언트 통신이 많은 쿼리가 이러한 대기 이벤트를 더 많이 생성할 수 있습니다.

네트워크 대역폭이 문제인 경우 네트워크 대역폭이 더 많은 인스턴스 유형으로 변경하는 것이 좋습니다. DB 인스턴스 클래스의 네트워크 성능에 관한 자세한 내용은 [Aurora에 대한 DB 인스턴스 클래스의 하드웨어 사양](Concepts.DBInstanceClass.Summary.md) 섹션을 참조하세요.

### 커밋 수 저감
<a name="apg-waits.xactsync.actions.commits"></a>

커밋 수를 줄이려면 명령문을 트랜잭션 블록으로 결합하세요.

# IPC:DamRecordTxAck
<a name="apg-waits.ipcdamrecordtxac"></a>

`IPC:DamRecordTxAck` 이벤트는 데이터베이스 활동 스트림을 사용하는 세션에서 Aurora PostgreSQL이 활동 스트림 이벤트를 생성한 다음 해당 이벤트가 지속될 때까지 기다리는 경우에 발생합니다.

**Topics**
+ [관련 엔진 버전](#apg-waits.ipcdamrecordtxac.context.supported)
+ [컨텍스트](#apg-waits.ipcdamrecordtxac.context)
+ [원인](#apg-waits.ipcdamrecordtxac.causes)
+ [작업](#apg-waits.ipcdamrecordtxac.actions)

## 관련 엔진 버전
<a name="apg-waits.ipcdamrecordtxac.context.supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 10.7 이상 10 버전, 11.4 이상 11 버전 및 모든 12 및 13 버전과 관련이 있습니다.

## 컨텍스트
<a name="apg-waits.ipcdamrecordtxac.context"></a>

동기 모드에서는 활동 스트림 이벤트의 내구성이 데이터베이스 성능보다 선호됩니다. 이벤트에 대한 내구성 쓰기를 기다리는 동안 세션은 다른 데이터베이스 작업을 차단하여 `IPC:DamRecordTxAck` 대기 이벤트를 발생시킵니다.

## 원인
<a name="apg-waits.ipcdamrecordtxac.causes"></a>

`IPC:DamRecordTxAck` 이벤트가 최상위 대기에 나타나는 것의 가장 흔한 원인은 데이터베이스 작업 스트림(DAS) 기능이 홀리스틱 감사라는 것입니다. SQL 활동이 높을수록 기록해야 하는 활동 스트림 이벤트가 생성됩니다.

## 작업
<a name="apg-waits.ipcdamrecordtxac.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.
+ SQL 문 수를 줄이거나 데이터베이스 작업 스트림을 끕니다. 이렇게 하면 내구성 있는 쓰기가 필요한 이벤트의 수가 줄어듭니다.
+ 비동기 모드로 변경합니다. 이렇게 하면 `IPC:DamRecordTxAck` 대기 이벤트의 경합을 줄일 수 있습니다.

  그러나 DAS 기능은 비동기 모드에서 모든 이벤트의 내구성을 보장할 수 없습니다.

# IPC:parallel 대기 이벤트
<a name="apg-ipc-parallel"></a>

다음 `IPC:parallel wait events`는 세션이 병렬 쿼리 실행 작업과 관련된 프로세스 간 통신을 기다리고 있음을 나타냅니다.
+ `IPC:BgWorkerStartup` - 병렬 워커 프로세스가 시작 시퀀스를 완료할 때까지 프로세스가 기다리고 있습니다. 병렬 쿼리 실행을 위해 워커를 초기화할 때 발생합니다.
+ `IPC:BgWorkerShutdown` - 병렬 워커 프로세스가 종료 시퀀스를 완료할 때까지 프로세스가 기다리고 있습니다. 병렬 쿼리 실행의 정리 단계에서 발생합니다.
+ `IPC:ExecuteGather` - 프로세스가 쿼리 실행 중에 병렬 워커 프로세스로부터 데이터 수신을 기다리고 있습니다. 리더 프로세스가 워커로부터 결과를 수집해야 할 때 발생합니다.
+ `IPC:ParallelFinish` - 병렬 워커가 실행을 완료하고 최종 결과를 보고할 때까지 프로세스가 기다리고 있습니다. 병렬 쿼리 실행의 완료 단계에서 발생합니다.

**Topics**
+ [지원되는 엔진 버전](#apg-ipc-parallel-context-supported)
+ [컨텍스트](#apg-ipc-parallel-context)
+ [대기 증가의 가능한 원인](#apg-ipc-parallel-causes)
+ [작업](#apg-ipc-parallel-actions)

## 지원되는 엔진 버전
<a name="apg-ipc-parallel-context-supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전에서 지원됩니다.

## 컨텍스트
<a name="apg-ipc-parallel-context"></a>

PostgreSQL에서 병렬 쿼리를 실행할 때는 단일 쿼리를 처리하기 위해 여러 프로세스가 함께 작동합니다. 쿼리가 병렬화에 적합한 것으로 확인되면 리더 프로세스는 `max_parallel_workers_per_gather` 파라미터 설정에 따라 하나 이상의 병렬 워커 프로세스와 조정합니다. 리더 프로세스는 워커들을 대상으로 작업을 나누고, 각 워커는 각자가 맡은 데이터를 독립적으로 처리하며, 결과는 리더 프로세스로 다시 수집됩니다.

**참고**  
각 병렬 워커는 전체 사용자 세션과 유사한 리소스 요구 사항이 있는 별도의 프로세스로 작동합니다. 즉, 워커가 4개인 병렬 쿼리는 비병렬 쿼리에 비해 리소스(CPU, 메모리, I/O 대역폭)를 최대 5배까지 소비할 수 있습니다. 리더 프로세스와 각 워커 프로세스 모두 자체 리소스 할당을 유지하기 때문입니다. 예를 들어, `work_mem`과 같은 설정은 각 워커에게 개별적으로 적용되어 모든 프로세스에서 총 메모리 사용량을 크게 증가시킬 수 있습니다.

병렬 쿼리 아키텍처는 세 가지 주요 구성 요소로 구성됩니다.
+ 리더 프로세스: 병렬 작업을 시작하고, 워크로드를 나누고, 워커 프로세스와 조정하는 주요 프로세스입니다.
+ 워커 프로세스: 쿼리의 일부를 병렬로 실행하는 백그라운드 프로세스입니다.
+ 수집/수집 병합: 여러 워커 프로세스의 결과를 리더에게 다시 결합하는 작업입니다.

병렬 실행 중에 프로세스는 프로세스 간 통신(IPC) 메커니즘을 통해 서로 통신해야 합니다. 이러한 IPC 대기 이벤트는 여러 단계에서 발생합니다.
+ 워커 시작: 병렬 워커가 초기화될 때
+ 데이터 교환: 워커가 데이터를 처리하고 리더에게 결과를 보낼 때
+ 워커 종료: 병렬 실행이 완료되고 워커가 종료될 때
+ 동기화 포인트: 프로세스가 다른 프로세스와 조정하거나 다른 프로세스가 작업을 완료하기를 기다려야 할 때

이러한 대기 이벤트를 이해하는 것은 병렬 쿼리 실행과 관련된 성능 문제를 진단하는 데 매우 중요합니다. 특히 여러 병렬 쿼리가 동시에 실행될 수 있는 동시성이 높은 환경에서는 더욱 그렇습니다.

## 대기 증가의 가능한 원인
<a name="apg-ipc-parallel-causes"></a>

병렬 관련 IPC 대기 이벤트 증가에 여러 요인이 기여할 수 있습니다.

**병렬 쿼리의 높은 동시성**  
많은 병렬 쿼리가 동시에 실행되면 리소스 경합이 발생하고 IPC 작업 대기 시간이 늘어날 수 있습니다. 특히 트랜잭션 볼륨 또는 분석 워크로드가 많은 시스템에서 흔히 발생합니다.

**최적화되지 않은 병렬 쿼리 계획**  
쿼리 플래너가 비효율적인 병렬 계획을 선택하면 불필요한 병렬화 또는 워커 간의 작업 분산 부실이 발생할 수 있습니다. 이로 인해 특히 IPC:ExecuteGather 및 IPC:ParallelFinish 이벤트의 IPC 대기 시간이 늘어날 수 있습니다. 이러한 계획 문제는 오래된 통계 및 테이블/인덱스 팽창으로 인해 발생하는 경우가 많습니다.

**병렬 워커의 빈번한 시작 및 종료**  
병렬 워커를 자주 시작하고 종료하는 수명이 짧은 쿼리는 `IPC:BgWorkerStartup` 및 `IPC:BgWorkerShutdown` 이벤트를 증가시킬 수 있습니다. 이는 작고 병렬화 가능한 쿼리가 많은 OLTP 워크로드에서 흔히 볼 수 있습니다.

**리소스 제약 조건**  
CPU, 메모리 또는 I/O 용량이 제한되면 병렬 실행에서 병목 현상이 발생하여 모든 IPC 이벤트에서 대기 시간이 늘어날 수 있습니다. 예를 들어 CPU가 포화 상태인 경우 워커 프로세스를 시작하거나 할당된 작업을 처리하는 데 시간이 더 오래 걸릴 수 있습니다.

**복잡한 쿼리 구조**  
여러 수준의 병렬 처리(예: 병렬 조인 후 병렬 집계)가 있는 쿼리는 더 복잡한 IPC 패턴을 초래하고 특히 `IPC:ExecuteGather` 이벤트의 경우 대기 시간이 증가할 수 있습니다.

**대규모 결과 세트**  
대규모 결과 세트를 생성하는 쿼리는 리더 프로세스가 워커 프로세스로부터 결과를 수집하고 처리하는 데 더 많은 시간을 소비하므로 `IPC:ExecuteGather` 대기 시간이 늘어날 수 있습니다.

이러한 요인을 이해하면 Aurora PostgreSQL에서 병렬 쿼리 실행과 관련된 성능 문제를 진단하고 해결하는 데 도움이 될 수 있습니다.

## 작업
<a name="apg-ipc-parallel-actions"></a>

병렬 쿼리와 관련하여 대기가 발생하면 일반적으로 백엔드 프로세스가 병렬 워커 프로세스를 조정하거나 대기 중임을 의미합니다. 이러한 대기는 병렬 계획을 실행하는 동안 흔히 발생합니다. 병렬 워커 사용량을 모니터링하고, 파라미터 설정을 검토하고, 쿼리 실행 및 리소스 할당을 조정하여 이러한 대기의 영향을 조사하고 완화할 수 있습니다.

**Topics**
+ [비효율적인 병렬 처리가 있는지 쿼리 계획 분석](#apg-ipc-parallel-analyze-plans)
+ [병렬 쿼리 사용량 모니터링](#apg-ipc-parallel-monitor)
+ [병렬 쿼리 설정 검토 및 조정](#apg-ipc-parallel-adjust-settings)
+ [리소스 할당 최적화](#apg-ipc-parallel-optimize-resources)
+ [연결 관리 조사](#apg-ipc-parallel-connection-management)
+ [유지 관리 작업 검토 및 최적화](#apg-ipc-parallel-maintenance)
+ [쿼리 계획 관리(QPM) 활용](#apg-ipc-parallel-query-plan-management)

### 비효율적인 병렬 처리가 있는지 쿼리 계획 분석
<a name="apg-ipc-parallel-analyze-plans"></a>

병렬 쿼리 실행은 종종 시스템 불안정, CPU 급증 및 예측할 수 없는 쿼리 성능 변동으로 이어질 수 있습니다. 병렬 처리가 실제로 특정 워크로드를 개선하는지를 철저히 분석하는 것이 중요합니다. EXPLAIN ANALYZE를 사용하여 병렬 쿼리 실행 계획을 검토합니다.

세션 수준에서 병렬 처리를 일시적으로 비활성화하여 계획 효율성을 비교합니다.

```
SET max_parallel_workers_per_gather = 0;
EXPLAIN ANALYZE <your_query>;
```

병렬 처리를 다시 활성화하고 비교합니다.

```
RESET max_parallel_workers_per_gather;
EXPLAIN ANALYZE <your_query>;
```

병렬 처리를 비활성화했을 때 결과가 더 좋거나 더 일관된 경우 SET 명령을 사용하여 세션 수준에서 특정 쿼리에 대해 병렬 처리를 비활성화하는 것이 좋습니다. 더 광범위한 영향을 미치려면 클러스터 또는 인스턴스 파라미터 그룹에서 관련 파라미터를 조정하여 인스턴스 수준에서 병렬 처리를 비활성화할 수 있습니다. 자세한 내용은 [Amazon Aurora PostgreSQL parameters](AuroraPostgreSQL.Reference.ParameterGroups.md) 섹션을 참조하세요.

### 병렬 쿼리 사용량 모니터링
<a name="apg-ipc-parallel-monitor"></a>

다음 쿼리를 사용하여 병렬 쿼리 활동 및 용량에 대한 가시성을 확보합니다.

활성 병렬 워커 프로세스를 확인합니다.

```
SELECT
    COUNT(*)
FROM
    pg_stat_activity
WHERE
    backend_type = 'parallel worker';
```

이 쿼리는 활성 병렬 워커 프로세스의 수를 보여줍니다. 값이 크면 `max\$1parallel\$1workers`가 큰 값으로 구성되어 있음을 나타낼 수 있으며 이 값을 줄이는 것이 좋습니다.

동시 병렬 쿼리를 확인합니다.

```
SELECT
    COUNT(DISTINCT leader_pid)
FROM
    pg_stat_activity
WHERE
    leader_pid IS NOT NULL;
```

이 쿼리는 병렬 쿼리를 시작한 고유한 리더 프로세스의 수를 반환합니다. 여기서 숫자가 크면 여러 세션이 병렬 쿼리를 동시에 실행하고 있다는 뜻이며 CPU와 메모리에 대한 수요가 증가할 수 있습니다.

### 병렬 쿼리 설정 검토 및 조정
<a name="apg-ipc-parallel-adjust-settings"></a>

다음 파라미터를 검토하여 워크로드에 적절한지 확인합니다.
+ `max_parallel_workers`: 모든 세션의 총 병렬 워커 수입니다.
+ `max_parallel_workers_per_gather`: 쿼리당 최대 워커 수입니다.

OLAP 워크로드의 경우 이러한 값을 늘리면 성능이 향상될 수 있습니다. OLTP 워크로드의 경우 일반적으로 낮은 값이 선호됩니다.

```
SHOW max_parallel_workers;
SHOW max_parallel_workers_per_gather;
```

### 리소스 할당 최적화
<a name="apg-ipc-parallel-optimize-resources"></a>

CPU 사용률을 모니터링하고, 사용률이 지속적으로 높고 애플리케이션이 병렬 쿼리의 이점을 누릴 수 있는 경우 vCPU 수를 조정하는 것이 좋습니다. 병렬 작업에 적절한 메모리를 사용할 수 있는지 확인합니다.
+ 성능 개선 도우미 지표를 사용하여 시스템이 CPU 바운드인지 확인합니다.
+ 각 병렬 워커는 자체 `work_mem`을 사용합니다. 총 메모리 사용량이 인스턴스 한도 내에 있는지 확인합니다.

병렬 쿼리는 비병렬 쿼리보다 훨씬 많은 리소스를 사용할 수 있습니다. 각 워커 프로세스는 시스템에 추가 사용자 세션과 거의 동일한 영향을 미치는 완전히 별개의 프로세스이기 때문입니다. 이 설정에 대한 값을 선택할 때, 그리고 `work_mem`과 같이 리소스 사용률을 제어하는 다른 설정을 구성할 때 이 점을 고려해야 합니다. 자세한 내용은 [PostgreSQL 설명서](https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-WORK-MEM)를 참조하세요. `work_mem`과 같은 리소스 한도는 각 워커에 개별적으로 적용됩니다. 즉, 전체 사용률이 단일 프로세스보다 모든 프로세스에서 훨씬 높을 수 있습니다.

워크로드가 심하게 병렬화된 경우 vCPU를 늘리거나 메모리 파라미터를 조정하는 것이 좋습니다.

### 연결 관리 조사
<a name="apg-ipc-parallel-connection-management"></a>

연결 소진이 발생하는 경우 애플리케이션 연결 풀링 전략을 검토합니다. 아직 사용하지 않는 경우 애플리케이션 수준에서 연결 풀링을 구현하는 것이 좋습니다.

### 유지 관리 작업 검토 및 최적화
<a name="apg-ipc-parallel-maintenance"></a>

인덱스 생성 및 기타 유지 관리 작업을 조정하여 리소스 경합을 방지합니다. 이러한 작업은 사용량이 적은 시간으로 예약하는 것이 좋습니다. 사용자 쿼리 로드가 많은 기간에는 과도한 유지 관리(예: 병렬 인덱스 빌드)를 예약하지 마세요. 이러한 작업은 병렬 워커를 소비하고 정규 쿼리의 성능에 영향을 미칠 수 있습니다.

### 쿼리 계획 관리(QPM) 활용
<a name="apg-ipc-parallel-query-plan-management"></a>

Aurora PostgreSQL에서 쿼리 계획 관리(QPM) 기능은 쿼리 계획 회귀를 유발할 수 있는 데이터베이스 환경 변경과 관계없이 계획 적응성과 안정성을 보장하도록 설계되었습니다. 자세한 내용은 [Aurora PostgreSQL 쿼리 계획 관리 개요](AuroraPostgreSQL.Optimize.overview.md) 섹션을 참조하세요. QPM에서 옵티마이저에 대한 몇 가지 제어 기능을 제공합니다. QPM에서 승인된 계획을 검토하여 현재 병렬 처리 설정과 일치하는지 확인하세요. 최적화되지 않은 병렬 실행을 강제 적용할 수 있는 오래된 계획을 업데이트하거나 제거하세요.

pg\$1hint\$1plan을 사용하여 계획을 수정할 수도 있습니다. 자세한 내용은 [pg\$1hint\$1plan을 사용하여 계획 수정](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.pg_hint_plan) 섹션을 참조하세요. `Parallel`이라는 힌트를 사용하여 병렬 실행을 강제 적용할 수 있습니다. 자세한 내용은 [Hints for parallel plans](https://github.com/ossc-db/pg_hint_plan/blob/master/docs/hint_table.md#hints-for-parallel-plans)을 참조하세요.

# IPC:ProcArrayGroupUpdate
<a name="apg-rpg-ipcprocarraygroup"></a>

`IPC:ProcArrayGroupUpdate` 이벤트는 세션이 해당 작업의 끝에 그룹 리더가 트랜잭션 상태를 업데이트할 때까지 기다릴 때 발생합니다. PostgreSQL은 일반적으로 IPC 유형 대기 이벤트를 병렬 쿼리 작업과 연결하지만, 이 특정 대기 이벤트는 병렬 쿼리에만 국한되지 않습니다.

**Topics**
+ [지원되는 엔진 버전](#apg-rpg-ipcprocarraygroup.supported)
+ [컨텍스트](#apg-rpg-ipcprocarraygroup.context)
+ [대기 증가의 가능한 원인](#apg-rpg-ipcprocarraygroup.causes)
+ [작업](#apg-rpg-ipcprocarraygroup.actions)

## 지원되는 엔진 버전
<a name="apg-rpg-ipcprocarraygroup.supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전에서 지원됩니다.

## 컨텍스트
<a name="apg-rpg-ipcprocarraygroup.context"></a>

**프로세스 배열 이해** - 프로세스(proc) 배열은 PostgreSQL의 공유 메모리 구조입니다. 트랜잭션 세부 정보를 포함하여 실행 중인 모든 프로세스에 대한 정보가 들어 있습니다. 트랜잭션 완료(`COMMIT` 또는 `ROLLBACK`) 중에 ProcArray를 업데이트하여 변경 사항을 반영하고 어레이에서 transactionID를 지워야 합니다. 트랜잭션을 완료하려는 세션은 ProcArray에서 독점적 잠금을 획득해야 합니다. 이렇게 하면 다른 프로세스가 공유되거나 독점적인 잠금을 얻지 못합니다.

**그룹 업데이트 메커니즘** - COMMIT 또는 ROLLBACK을 수행하는 동안 백엔드 프로세스가 독점 모드에서 ProcArrayLock을 가져올 수 없는 경우, ProcArrayGroupMember라는 특수 필드를 업데이트합니다. 그러면 종료하려는 세션 목록에 트랜잭션이 추가됩니다. 그러면이 백엔드 프로세스가 절전 모드로 전환되고, 절전 모드로 전환되는 시간이 ProcArrayGroupUpdate 대기 이벤트로 계측됩니다. 리더 프로세스라고 하는 ProcArrayprocArrayGroupMember의 첫 번째 프로세스는 ProcArrayLock을 독점 모드로 획득합니다. 그런 다음 그룹 transactionID 지우기를 기다리는 프로세스 목록을 지웁니다. 이 작업이 완료되면 리더는 ProcArrayLock을 해제한 다음, 이 목록의 모든 프로세스를 깨워 트랜잭션이 완료되었음을 알립니다.

## 대기 증가의 가능한 원인
<a name="apg-rpg-ipcprocarraygroup.causes"></a>

실행 중인 프로세스가 많을수록 리더가 독점 모드에서 procArrayLock을 더 오래 유지합니다. 따라서 쓰기 트랜잭션이 많을수록 그룹 업데이트 시나리오로 인해 `ProcArrayGroupUpdate` 대기 이벤트를 기다리는 프로세스가 잠재적으로 쌓일 수 있습니다. Database Insights의 상위 SQL 보기에서 COMMIT이이 대기 이벤트의 대부분을 포함하는 문임을 알 수 있습니다. 이는 예상되지만 실행 중인 특정 쓰기 SQL에 대한 심층 조사를 통해 취해야 할 적절한 조치를 결정해야 합니다.

## 작업
<a name="apg-rpg-ipcprocarraygroup.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다. Amazon RDS Performance Insights를 사용하거나 PostgreSQL 시스템 보기 `pg_stat_activity`를 쿼리하여 `IPC:ProcArrayGroupUpdate` 이벤트를 식별합니다.

**Topics**
+ [트랜잭션 커밋 및 롤백 작업 모니터링](#apg-rpg-ipcprocarraygroup.actions.monitor)
+ [동시성 감소](#apg-rpg-ipcprocarraygroup.actions.concurrency)
+ [연결 풀링 구현](#apg-rpg-ipcprocarraygroup.actions.pooling)

### 트랜잭션 커밋 및 롤백 작업 모니터링
<a name="apg-rpg-ipcprocarraygroup.actions.monitor"></a>

**커밋 및 롤백 모니터링** - 커밋 및 롤백 수가 증가하면 ProcArray에 대한 부담이 증가할 수 있습니다. 예를 들어 중복 키 위반 증가로 인해 SQL 문이 실패하기 시작하면 롤백이 증가하여 ProcArray 경합과 테이블 팽창이 증가할 수 있습니다.

Amazon RDS Database Insights는 PostgreSQL 지표 `xact_commit` 및 `xact_rollback`을 제공하여 초당 커밋 및 롤백 수를 보고합니다.

### 동시성 감소
<a name="apg-rpg-ipcprocarraygroup.actions.concurrency"></a>

**트랜잭션 일괄 처리** - 가능한 경우 커밋/롤백 작업을 줄이기 위해 단일 트랜잭션에서 작업을 일괄 처리합니다.

**동시성 제한** - 동시 활성 트랜잭션 수를 줄여 ProcArray에서 잠금 경합을 완화합니다. 약간의 테스트가 필요하지만 총 동시 연결 수를 줄이면 경합을 줄이고 처리량을 유지할 수 있습니다.

### 연결 풀링 구현
<a name="apg-rpg-ipcprocarraygroup.actions.pooling"></a>

**연결 풀링 솔루션** - 연결 풀링을 사용하여 데이터베이스 연결을 효율적으로 관리함으로써 ProcArray의 총 백엔드 수와 그에 따른 워크로드를 줄입니다. 약간의 테스트가 필요하지만 총 동시 연결 수를 줄이면 경합을 줄이고 처리량을 유지할 수 있습니다.

자세한 내용은 [Aurora PostgreSQL에 대한 연결 풀링](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.BestPractices.connection_pooling.html)을 참조하세요.

**연결 폭주 감소** - 마찬가지로 연결을 자주 생성하고 종료하는 패턴으로 인해 ProcArray에 추가 압력이 발생합니다. 이 패턴을 줄이면 전반적인 경합이 줄어듭니다.

# Lock:advisory
<a name="apg-waits.lockadvisory"></a>

`Lock:advisory` 이벤트는 PostgreSQL 애플리케이션이 잠금을 사용하여 여러 세션에서 활동을 조정할 때 발생합니다.

**Topics**
+ [관련 엔진 버전](#apg-waits.lockadvisory.context.supported)
+ [컨텍스트](#apg-waits.lockadvisory.context)
+ [원인](#apg-waits.lockadvisory.causes)
+ [작업](#apg-waits.lockadvisory.actions)

## 관련 엔진 버전
<a name="apg-waits.lockadvisory.context.supported"></a>

이 대기 이벤트 정보는 Aurora PostgreSQL 버전 9.6 이상과 관련이 있습니다.

## 컨텍스트
<a name="apg-waits.lockadvisory.context"></a>

PostgreSQL 권고 잠금은 사용자의 애플리케이션 코드에 의해 명시적으로 잠기거나 잠금 해제된 애플리케이션 수준의 협력 잠금입니다. 애플리케이션은 PostgreSQL 권고 잠금을 사용하여 여러 세션에서 활동을 조정할 수 있습니다. 일반, 객체 또는 행 레벨 잠금과는 달리 애플리케이션은 잠금 수명을 완벽하게 제어할 수 있습니다. 자세한 내용은 PostgreSQL 설명서의 [권고 잠금](https://www.postgresql.org/docs/12/explicit-locking.html#ADVISORY-LOCKS)을 참조하세요.

권고 잠금은 트랜잭션이 종료되기 전에 해제되거나 트랜잭션 간에 세션에 의해 유지될 수 있습니다. `CREATE INDEX` 문에 의해 획득한 테이블에 대한 액세스 독점 잠금과 같은 암시적 시스템 적용 잠금에는 해당되지 않습니다.

권고 잠금을 획득(잠금) 및 릴리즈(잠금 해제) 하는 데 사용되는 함수에 대한 설명은 PostgreSQL 설명서의 [권고 잠금 함수](https://www.postgresql.org/docs/current/functions-admin.html#FUNCTIONS-ADVISORY-LOCKS)을 참조하세요.

명시적인 잠금은 일반 PostgreSQL 잠금 시스템에 구현되며 `pg_locks` 시스템 뷰에서 볼 수 있습니다.

## 원인
<a name="apg-waits.lockadvisory.causes"></a>

이 잠금 유형은 명시적으로 사용하는 애플리케이션에 의해서만 제어됩니다. 쿼리의 일부로 각 행에 대해 획득된 권고 사항 잠금은 잠금이 급증하거나 장기 축적을 일으킬 수 있습니다.

이러한 효과는 쿼리에서 반환되는 것보다 많은 행에 대한 잠금을 획득하는 방식으로 쿼리가 실행될 때 발생합니다. 애플리케이션은 결국 모든 잠금을 해제해야 하지만 반환되지 않은 행에 잠금을 획득하면 애플리케이션에서 모든 잠금을 찾을 수 없습니다.

다음 예는 PostgreSQL 설명서의 [권고 잠금](https://www.postgresql.org/docs/12/explicit-locking.html#ADVISORY-LOCKS)에 자세히 설명되어 있습니다.

```
SELECT pg_advisory_lock(id) FROM foo WHERE id > 12345 LIMIT 100;
```

이 예에서, `LIMIT` 절은 행이 이미 내부적으로 선택되고 ID 값이 잠긴 후에만 쿼리의 출력을 중지할 수 있습니다. 이는 데이터 볼륨이 증가함에 따라 플래너가 개발 중에 테스트되지 않은 다른 실행 계획을 선택하게 되면 갑자기 발생할 수 있습니다. 이 경우 빌드업은 애플리케이션이 잠긴 모든 ID 값에 대해 `pg_advisory_unlock`을 명시적으로 호출하기 때문에 발생합니다. 그러나 이 경우 반환되지 않은 행에서 획득한 잠금 집합을 찾을 수 없습니다. 잠금은 세션 수준에서 획득되기 때문에 트랜잭션이 끝날 때 자동으로 해제되지 않습니다.

차단된 잠금 시도에서 스파이크가 발생할 수 있는 또 다른 원인은 의도하지 않은 충돌입니다. 이러한 충돌에서 애플리케이션의 관련 없는 부분은 실수로 동일한 잠금 ID 공간을 공유합니다.

## 작업
<a name="apg-waits.lockadvisory.actions"></a>

권고 잠금의 애플리리케이션 사용을 검토하고 애플리케이션 흐름에서 각 유형의 권고 잠금을 획득하고 해제하는 위치와 시기를 자세히 검토합니다.

세션이 너무 많은 잠금을 획득하고 있는지 아니면 장기 실행 세션에서 잠금을 조기에 해제하지 않아 잠금이 느리게 축적되는지 확인합니다. `pg_terminate_backend(pid)`를 사용하는 세션을 종료하여 세션 수준 잠금의 느린 축적을 수정할 수 있습니다.

권고 잠금을 대기하는 클라이언트는 `pg_stat_activity`에서 `wait_event_type=Lock` 및 `wait_event=advisory`와 표시됩니다. `locktype=advisory` 및 `granted=f`를 탐색하며 동일한 `pid`를 위해 `pg_locks` 시스템 뷰를 쿼리하여 특정 잠금 값을 얻을 수 있습니다.

그런 다음, 예에 표시된 대로 `granted=t`를 가진 동일한 명시적인 잠금을 위해 `pg_locks`를 쿼리하여 차단 세션을 식별할 수 있습니다.

```
SELECT blocked_locks.pid AS blocked_pid,
         blocking_locks.pid AS blocking_pid,
         blocked_activity.usename AS blocked_user,
         blocking_activity.usename AS blocking_user,
         now() - blocked_activity.xact_start AS blocked_transaction_duration,
         now() - blocking_activity.xact_start AS blocking_transaction_duration,
         concat(blocked_activity.wait_event_type,':',blocked_activity.wait_event) AS blocked_wait_event,
         concat(blocking_activity.wait_event_type,':',blocking_activity.wait_event) AS blocking_wait_event,
         blocked_activity.state AS blocked_state,
         blocking_activity.state AS blocking_state,
         blocked_locks.locktype AS blocked_locktype,
         blocking_locks.locktype AS blocking_locktype,
         blocked_activity.query AS blocked_statement,
         blocking_activity.query AS blocking_statement
    FROM pg_catalog.pg_locks blocked_locks
    JOIN pg_catalog.pg_stat_activity blocked_activity ON blocked_activity.pid = blocked_locks.pid
    JOIN pg_catalog.pg_locks blocking_locks
        ON blocking_locks.locktype = blocked_locks.locktype
        AND blocking_locks.DATABASE IS NOT DISTINCT FROM blocked_locks.DATABASE
        AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation
        AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page
        AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple
        AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid
        AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid
        AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid
        AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid
        AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid
        AND blocking_locks.pid != blocked_locks.pid
    JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid
    WHERE NOT blocked_locks.GRANTED;
```

모든 명시적인 잠금 API 함수에는 두 개의 인수 집합이 있으며, 하나의 `bigint` 인수 또는 두 개의 `integer` 인수입니다. 
+ 하나의 API 함수의 경우 `bigint` 인수, 상위 32비트는`pg_locks.classid` 인수, 더 낮은 32비트는 `pg_locks.objid` 인수입니다.
+ 두 개가 포함된 API 함수의 경우 `integer` 인수, 첫 번째 인수는 `pg_locks.classid`, 두 번째 인수는 `pg_locks.objid`입니다.

`pg_locks.objsubid` 값은 어떤 API 양식을 사용했는지를 나타냅니다. `1`은 하나의 `bigint` 인수를 의미하며, `2`는 두 개의 `integer` 인수를 의미합니다.

# Lock:extend
<a name="apg-waits.lockextend"></a>

`Lock:extend` 이벤트는 백엔드 프로세스가 릴레이션을 확장하기 위해 릴레이션을 잠그기를 기다리는 동안 다른 프로세스에서 동일한 목적으로 해당 릴레이션에 대한 잠금이 있는 경우에 발생합니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.lockextend.context.supported)
+ [컨텍스트](#apg-waits.lockextend.context)
+ [대기 증가의 가능한 원인](#apg-waits.lockextend.causes)
+ [작업](#apg-waits.lockextend.actions)

## 지원되는 엔진 버전
<a name="apg-waits.lockextend.context.supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.lockextend.context"></a>

이벤트 `Lock:extend`는 백엔드 프로세스가 관계를 확장하는 동안 다른 백엔드 프로세스가 잠금을 유지하는 관계를 확장하기 위해 대기 중임을 나타냅니다. 한 번에 하나의 프로세스만 관계를 확장할 수 있기 때문에 시스템은 `Lock:extend` 대기 이벤트를 생성합니다. `INSERT`,`COPY`, 및 `UPDATE` 연산은 이 이벤트를 생성할 수 있습니다.

## 대기 증가의 가능한 원인
<a name="apg-waits.lockextend.causes"></a>

`Lock:extend` 이벤트가 정상보다 많이 나타나 성능 문제를 나타내는 경우 일반적인 원인은 다음과 같습니다.

**동일한 테이블에 대한 동시 삽입 또는 업데이트 서지 **  
동일한 테이블에 삽입하거나 업데이트하는 쿼리의 동시 세션 수가 증가할 수 있습니다.

**네트워크 대역폭 부족**  
DB 인스턴스의 네트워크 대역폭이 현재 워크로드의 스토리지 통신 요구 사항에 따라 충분하지 않을 수 있습니다. 이로 인해 `Lock:extend` 이벤트에서 스토리지 지연 시간이 증가할 수 있습니다.

## 작업
<a name="apg-waits.lockextend.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

**Topics**
+ [동일한 관계식으로 동시 삽입 및 업데이트 감소](#apg-waits.lockextend.actions.action1)
+ [네트워크 대역폭 향상](#apg-waits.lockextend.actions.increase-network-bandwidth)

### 동일한 관계식으로 동시 삽입 및 업데이트 감소
<a name="apg-waits.lockextend.actions.action1"></a>

먼저, 증가가 있는지 확인합니다. `tup_inserted`와 `tup_updated` 지표 및 이 대기 이벤트의 증가가 수반됩니다. 그렇다면 삽입 및 업데이트 작업에 대한 경합이 높은 관계식을 확인합니다. 이를 확인하려면 `n_tup_ins` 및 `n_tup_upd` 필드의 값을 위한 `pg_stat_all_tables` 뷰를 쿼리하세요. `pg_stat_all_tables` 뷰에 대한 자세한 내용은 PostgreSQL 설명서의 [pg\$1stat\$1statements](https://www.postgresql.org/docs/13/monitoring-stats.html#MONITORING-PG-STAT-ALL-TABLES-VIEW)를 참조하세요.

차단 및 차단된 쿼리에 대한 자세한 정보를 위해서 다음 예와 같이 `pg_stat_activity`를 쿼리하세요.

```
SELECT
    blocked.pid,
    blocked.usename,
    blocked.query,
    blocking.pid AS blocking_id,
    blocking.query AS blocking_query,
    blocking.wait_event AS blocking_wait_event,
    blocking.wait_event_type AS blocking_wait_event_type
FROM pg_stat_activity AS blocked
JOIN pg_stat_activity AS blocking ON blocking.pid = ANY(pg_blocking_pids(blocked.pid))
where
blocked.wait_event = 'extend'
and blocked.wait_event_type = 'Lock';
 
   pid  | usename  |            query             | blocking_id |                         blocking_query                           | blocking_wait_event | blocking_wait_event_type
  ------+----------+------------------------------+-------------+------------------------------------------------------------------+---------------------+--------------------------
   7143 |  myuser  | insert into tab1 values (1); |        4600 | INSERT INTO tab1 (a) SELECT s FROM generate_series(1,1000000) s; | DataFileExtend      | IO
```

`Lock:extend` 이벤트 증가에 기여하는 관계를 파악한 후 다음 기슬을 사용하여 경합을 줄입니다.
+ 파티셔닝을 사용하여 동일한 테이블에 대한 경합을 줄일 수 있는지 확인합니다. 삽입되거나 업데이트된 튜플을 다른 파티션으로 분리하면 경합을 줄일 수 있습니다. 파티셔닝에 대한 자세한 내용은 [pg\$1partman 확장자를 사용하여 PostgreSQL 파티션 관리하기](PostgreSQL_Partitions.md) 섹션을 참조하세요.
+ 대기 이벤트가 주로 업데이트 활동으로 인한 경우 관계식의 채우기 요소 값을 줄이는 것이 좋습니다. 이렇게 하면 업데이트 중에 새 블록에 대한 요청을 줄일 수 있습니다. 필팩터는 테이블 페이지를 포장하기 위한 최대 공간을 결정하는 테이블의 저장 파라미터입니다. 이 값은 페이지의 전체 공간의 백분율로 표시됩니다. 필팩터 파라미터에 대한 자세한 내용은 PostgreSQL 설명서의 [테이블 생성](https://www.postgresql.org/docs/13/sql-createtable.html)을 참조하세요.
**중요**  
필팩터를 변경하는 경우 이 값을 변경하면 워크로드에 따라 성능에 부정적인 영향을 줄 수 있으므로 시스템을 테스트하는 것이 좋습니다.

### 네트워크 대역폭 향상
<a name="apg-waits.lockextend.actions.increase-network-bandwidth"></a>

쓰기 지연 시간이 증가하는지 확인하려면 CloudWatch의 `WriteLatency` 지표를 확인하세요. 그렇다면, `WriteThroughput`과 `ReadThroughput` DB Amazon CloudWatch 지표를 사용하여 DB 클러스터의 스토리지 관련 트래픽을 모니터링하세요. 이러한 지표는 네트워크 대역폭이 워크로드의 스토리지 활동에 충분한지 확인하는 데 도움이 될 수 있습니다.

네트워크 대역폭이 충분하지 않으면 늘리세요. 만약 클라이언트 또는 DB 인스턴스가 네트워크 대역폭 제한에 도달했다면. 대역폭을 늘리는 유일한 방법은 DB 인스턴스 크기를 늘리는 것입니다.

CloudWatch 지표에 대한 자세한 내용은 [Amazon Aurora에 대한 Amazon CloudWatch 지표](Aurora.AuroraMonitoring.Metrics.md) 섹션을 참조하세요. 각 DB 인스턴스 클래스에 대한 네트워크 성능에 관한 자세한 내용은 [Aurora에 대한 DB 인스턴스 클래스의 하드웨어 사양](Concepts.DBInstanceClass.Summary.md) 섹션을 참조하세요.

# Lock:Relation
<a name="apg-waits.lockrelation"></a>

`Lock:Relation` 이벤트는 쿼리가 현재 다른 트랜잭션에 의해 잠긴 테이블 또는 뷰(관계식)에 대한 잠금을 얻기 위해 대기 중일 때 발생합니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.lockrelation.context.supported)
+ [컨텍스트](#apg-waits.lockrelation.context)
+ [대기 증가의 가능한 원인](#apg-waits.lockrelation.causes)
+ [작업](#apg-waits.lockrelation.actions)

## 지원되는 엔진 버전
<a name="apg-waits.lockrelation.context.supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.lockrelation.context"></a>

대부분의 PostgreSQL 명령은 암시적으로 잠금을 사용하여 테이블의 데이터에 대한 동시 액세스를 제어합니다. 애플리리케이션 코드에서 `LOCK` 명령과 함께 이러한 잠금을 명시적으로 사용할 수도 있습니다. 많은 잠금 모드는 서로 호환되지 않으며 동일한 객체에 액세스하려고 할 때 트랜잭션을 차단할 수 있습니다. 이 경우 Aurora PostgreSQL은 `Lock:Relation` 이벤트를 생성합니다. 다음은 몇 가지 일반적인 예입니다.
+ `ACCESS EXCLUSIVE`와 같은 독점 잠금은 모든 동시 액세스를 차단할 수 있습니다. 데이터 정의 언어(DDL) 작업(예: `DROP TABLE`,`TRUNCATE`,`VACUUM FULL`, 및`CLUSTER`)은 명시적으로 `ACCESS EXCLUSIVE` 잠금을 획득합니다. 또한 `ACCESS EXCLUSIVE`는 모드를 명시적으로 식별하지 않는 `LOCK TABLE` 문을 위한 기본 잠금 모드입니다.
+ 데이터 조작 언어(DML) 명령문 `UPDATE`,`DELETE`, 및 `INSERT`와 충돌하는 테이블에 `ROW EXCLUSIVE` 잠금을 획득하는 `CREATE INDEX (without CONCURRENT)`를 사용하세요.

테이블 수준 잠금 및 충돌하는 잠금 모드에 대한 자세한 내용은 PostgreSQL 설명서의 [명시적 잠금](https://www.postgresql.org/docs/13/explicit-locking.html)을 참조하세요.

쿼리 및 트랜잭션 차단은 일반적으로 다음 중 한 가지 방법으로 잠금 해제합니다.
+ 쿼리 차단 - 애플리케이션이 쿼리를 취소하거나 사용자가 프로세스를 종료할 수 있습니다. 세션의 명령문 시간 초과 또는 교착 상태 감지 메커니즘으로 인해 엔진이 쿼리를 강제로 종료할 수도 있습니다.
+ 트랜잭션 차단 - 트랜잭션이 `ROLLBACK`이나 `COMMIT` 문을 실행할 때 차단을 중지합니다. 롤백은 클라이언트 또는 네트워크 문제로 세션의 연결이 끊어지거나 종료된 경우에도 자동으로 수행됩니다. 세션은 데이터베이스 엔진이 종료될 때, 시스템의 메모리가 부족할 때 종료될 수 있습니다.

## 대기 증가의 가능한 원인
<a name="apg-waits.lockrelation.causes"></a>

`Lock:Relation` 이벤트가 평소보다 더 자주 발생하면 성능 문제를 나타낼 수 있습니다. 일반적인 원인은 다음과 같습니다.

**테이블 잠금 충돌로 인한 동시 세션 증가**  
잠금 모드가 충돌하는 동일한 테이블을 하거나 잠그는 쿼리의 동시 세션 수가 증가할 수 있습니다.

**유지 관리 작업**  
`VACUUM`과 `ANALYZE` 같은 상태 유지 관리 작업은 충돌하는 잠금 수를 크게 늘릴 수 있습니다. `VACUUM FULL`은 하나의 `ACCESS EXCLUSIVE` 잠금을, `ANALYZE`는 하나의 `SHARE UPDATE EXCLUSIVE` 잠금을 획득합니다. 두 가지 유형의 잠금은 모두 `Lock:Relation` 대기 이벤트를 발생시킬 수 있습니다. 구체화된 뷰 새로 고침과 같은 애플리케이션 데이터 유지 관리 작업은 차단된 질의 및 트랜잭션을 증가시킬 수도 있습니다.

**리더 인스턴스 잠금**  
라이터와 리더가 보유한 관계 잠금 간에 충돌이 있을 수 있습니다. 현재 `ACCESS EXCLUSIVE` 관계 잠금만 리더 인스턴스에 복제됩니다. 그러나 `ACCESS EXCLUSIVE` 관계 잠금은 리더가 보유한 모든 `ACCESS SHARE` 관계 잠금과 충돌합니다. 이로 인해 리더에서 잠금 관계 대기 이벤트가 증가할 수 있습니다.

## 작업
<a name="apg-waits.lockrelation.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

**Topics**
+ [SQL 문 차단의 영향 감소](#apg-waits.lockrelation.actions.reduce-blocks)
+ [유지 보수 작업의 영향 최소화](#apg-waits.lockrelation.actions.maintenance)
+ [리더 잠금 확인](#apg-waits.lockrelation.actions.readerlocks)

### SQL 문 차단의 영향 감소
<a name="apg-waits.lockrelation.actions.reduce-blocks"></a>

SQL 문 차단의 영향을 줄이려면 가능한 경우 애플리케이션 코드를 수정하세요. 다음은 블록을 줄이기 위한 두 가지 일반적인 기술입니다.
+ `NOWAIT` 옵션 사용 - `SELECT`나 `LOCK` 문 같은 일부 SQL 명령은 이 옵션을 지원합니다. `NOWAIT` 지시어는 잠금을 즉시 획득할 수 없는 경우 잠금 요청 쿼리를 취소합니다. 이 기술은 차단 세션이 그 뒤에 차단된 세션이 쌓이지 않게 하는 데 도움이 될 수 있습니다.

  예: 트랜잭션 A가 트랜잭션 B가 보유한 잠금을 기다리고 있다고 가정합니다. 이제 B가 트랜잭션 C에 의해 잠긴 테이블에 대한 잠금을 요청하면 트랜잭션 C가 완료될 때까지 트랜잭션 A가 차단될 수 있습니다. 그러나 트랜잭션 B가 `NOWAIT`를 사용하는 경우 C에서 잠금을 요청하면 빠르게 실패하고 트랜잭션 A가 계속해서 기다릴 필요가 없도록 할 수 있습니다.
+ `SET lock_timeout` 사용 - SQL 문이 관계식 잠금을 획득하기 위해 대기하는 시간을 제한하는 `lock_timeout` 값을 설정하세요. 지정된 제한 시간 내에 잠금을 획득하지 않으면 잠금을 요청하는 트랜잭션이 취소됩니다. 세션 수준에서 이 값을 설정합니다.

### 유지 보수 작업의 영향 최소화
<a name="apg-waits.lockrelation.actions.maintenance"></a>

`VACUUM`과 `ANALYZE` 같은 유지 관리 작업이 중요합니다. 이러한 유지 관리 작업과 관련된 `Lock:Relation` 대기 이벤트를 찾을 수 있으므로 끄지 않는 것이 좋습니다. 다음 방법을 사용하면 이러한 작업의 효과를 최소화할 수 있습니다.
+ 사용량이 적은 시간대에 수동으로 유지 관리 작업을 실행합니다.
+ Autovacuum 작업으로 인한 `Lock:Relation` 대기를 줄이려면 필요한 autovacuum 튜닝을 수행하세요. Autovacuum 튜닝에 대한 자세한 내용은 [Amazon RDS 사용 설명서](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Autovacuum.html)의 *Amazon RDS에서 PostgreSQL Autovacuum 사용*을 참조하세요.

### 리더 잠금 확인
<a name="apg-waits.lockrelation.actions.readerlocks"></a>

라이터 및 리더의 동시 세션이 서로를 차단하는 잠금을 유지하는 방법을 확인할 수 있습니다. 이를 수행하는 한 가지 방법은 잠금 유형 및 관계를 반환하는 쿼리를 실행하는 것입니다. 테이블에서 두 개의 동시 세션, 즉 라이터 세션과 리더 세션에 대한 쿼리 시퀀스를 찾을 수 있습니다.

재생 프로세스는 리더 쿼리를 취소하기 전에 `max_standby_streaming_delay`의 기간 동안 기다립니다. 예에서 볼 수 있듯이 100ms의 잠금 시간 제한은 기본값 `max_standby_streaming_delay`인 30초보다 훨씬 낮습니다. 문제가 발생하기 전에 잠금 시간이 초과됩니다.


| 시퀀스 이벤트 | 세션 | 명령 또는 출력 | 
| --- | --- | --- | 
|  지정된 값을 사용하여 READER라는 환경 변수를 설정하고 이 엔드포인트를 사용하여 DB 인스턴스에 연결을 시도합니다.  |  리더 세션  |  CLI 명령: <pre>export READER=aurorapg2.12345678910.us-west-1.rds.amazonaws.com<br /><br />psql -h $READER</pre> 출력: 

```
psql (15devel, server 10.14)
Type "help" for help.
```  | 
|  WRITER라는 환경 변수를 설정하고 이 엔드포인트 를 사용하여 DB 인스턴스에 연결을 시도합니다.  |  라이터 세션  |  CLI 명령: <pre>export WRITER=aurorapg1.12345678910.us-west-1.rds.amazonaws.com<br />psql -h $WRITER</pre> 출력: 

```
psql (15devel, server 10.14) 
Type "help" for help.
```  | 
|  라이터 세션은 라이터 인스턴스에서 table t1을 생성합니다.  |  라이터 세션  |  PostgreSQL 쿼리: <pre>postgres=> CREATE TABLE t1(b integer);<br />CREATE TABLE</pre>  | 
|  라이터에 충돌하는 쿼리가 없는 경우 라이터에서 ACCESS EXCLUSIVE 잠금을 즉시 획득합니다.  |  라이터 세션  |  `ACCESS EXCLUSIVE` 잠금 활성화됨  | 
|  리더 세션은 잠금 시간 초과 간격을 100밀리초로 설정합니다.  |  리더 세션  |  PostgreSQL 쿼리: <pre>postgres=> SET lock_timeout=100;<br />SET</pre>  | 
|  리더 세션이 리더 인스턴스의 table t1에서 데이터를 읽으려고 시도합니다.  |  리더 세션  |  PostgreSQL 쿼리: <pre>postgres=> SELECT * FROM t1;</pre> 샘플 출력은 다음과 같습니다. 

```
b
---
(0 rows)
```  | 
|  라이터 세션이 t1을 삭제합니다.  |  라이터 세션  |  PostgreSQL 쿼리: <pre>postgres=> BEGIN;<br />BEGIN<br />postgres=> DROP TABLE t1;<br />DROP TABLE<br />postgres=></pre>  | 
|  쿼리 시간이 초과되고 리더에서 취소됩니다.  |  리더 세션  |  PostgreSQL 쿼리: <pre>postgres=> SELECT * FROM t1;</pre> 샘플 출력은 다음과 같습니다. 

```
ERROR:  canceling statement due to lock timeout
LINE 1: SELECT * FROM t1;
                      ^
```  | 
|  리더 세션이 `pg_locks`와 `pg_stat_activity`를 쿼리하여 오류의 원인을 확인합니다.  |  리더 세션  |  PostgreSQL 쿼리: <pre>postgres=> SELECT locktype, relation, mode, backend_type<br />postgres=> FROM pg_locks l, pg_stat_activity t1<br />postgres=> WHERE l.pid=t1.pid AND relation = 't1'::regclass::oid;</pre>  | 
|  결과는 `aurora wal replay` 프로세스가 table t1의 `ACCESS EXCLUSIVE` 잠금을 유지하고 있습니다.  |  리더 세션  |  쿼리 결과: <pre> locktype | relation |        mode         |   backend_type<br />----------+----------+---------------------+-------------------<br /> relation | 68628525 | AccessExclusiveLock | aurora wal replay<br />(1 row)</pre>  | 

# Lock:transactionid
<a name="apg-waits.locktransactionid"></a>

`Lock:transactionid` 이벤트는 트랜잭션이 행 수준 잠금을 대기 중일 때 발생합니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.locktransactionid.context.supported)
+ [컨텍스트](#apg-waits.locktransactionid.context)
+ [대기 증가의 가능한 원인](#apg-waits.locktransactionid.causes)
+ [작업](#apg-waits.locktransactionid.actions)

## 지원되는 엔진 버전
<a name="apg-waits.locktransactionid.context.supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.locktransactionid.context"></a>

이벤트 `Lock:transactionid` 트랜잭션이 동시에 실행 중인 트랜잭션에 이미 부여된 행 수준 잠금을 획득하려고 할 때 발생합니다. `Lock:transactionid` 대기 이벤트를 보여주는 세션이 이 잠금으로 인해 차단되었습니다. 차단 트랜잭션이 종료된 후 `COMMIT` 또는`ROLLBACK` 문, 차단된 트랜잭션을 진행할 수 있습니다.

Aurora PostgreSQL의 다중 버전 동시성 제어 의미는 리더가 라이터를 차단하지 않으며 라이터는 리더를 차단하지 않는다는 것을 보장합니다. 행 수준 충돌이 발생하려면 차단 및 차단된 트랜잭션이 다음 유형의 충돌하는 명령문을 실행해야 합니다.
+ `UPDATE`
+ `SELECT … FOR UPDATE`
+ `SELECT … FOR KEY SHARE`

명령문 `SELECT … FOR KEY SHARE`는 특별한 경우입니다. 데이터베이스가 `FOR KEY SHARE` 절을 사용해 참조 무결성의 성능을 최적화합니다. 행의 행 수준 잠금은 행을 참조하는 다른 테이블에서 `INSERT`, `UPDATE`, `DELETE` 명령을 차단할 수 있습니다.

## 대기 증가의 가능한 원인
<a name="apg-waits.locktransactionid.causes"></a>

이 이벤트가 정상보다 많이 나타나는 경우 일반적으로 원인은 다음 조건과 결합된 `UPDATE`, `SELECT … FOR UPDATE`, 또는 `SELECT … FOR KEY SHARE` 문입니다.

**Topics**
+ [높은 동시성](#apg-waits.locktransactionid.concurrency)
+ [트랜잭션의 유휴 상태](#apg-waits.locktransactionid.idle)
+ [장기 실행 트랜잭션](#apg-waits.locktransactionid.long-running)

### 높은 동시성
<a name="apg-waits.locktransactionid.concurrency"></a>

Aurora PostgreSQL 세분화된 행 수준 잠금 의미를 사용할 수 있습니다. 다음 조건이 충족되면 행 수준 충돌 확률이 높아집니다.
+ 동일한 행에 대해 높은 동시 워크로드가 경합됩니다.
+ 동시성이 증가합니다.

### 트랜잭션의 유휴 상태
<a name="apg-waits.locktransactionid.idle"></a>

가끔 `pg_stat_activity.state` 열에 `idle in transaction` 값이 표시됩니다. 이 값은 트랜잭션을 시작했지만 아직 `COMMIT` 또는 `ROLLBACK`을 실행하지 않은 세션에 대해 표시됩니다. 만약 `pg_stat_activity.state` 값이 `active`가 아니라면, `pg_stat_activity`에 표시된 쿼리는 실행을 마친 가장 최근의 쿼리입니다. 차단 세션은 열려 있는 트랜잭션이 잠금을 유지하고 있기 때문에 쿼리를 능동적으로 처리하지 않습니다.

유휴 트랜잭션이 행 수준 잠금을 획득한 경우 다른 세션에서 잠금을 획득하지 못할 수 있습니다. 이 조건으로 인해 `Lock:transactionid` 대기 이벤트가 자주 발생합니다. 문제를 진단하려면 `pg_stat_activity`와 `pg_locks`의 출력을 검사하세요.

### 장기 실행 트랜잭션
<a name="apg-waits.locktransactionid.long-running"></a>

오랫동안 실행되는 트랜잭션은 오랜 시간 동안 잠금을 얻습니다. 이러한 장기 잠금은 다른 트랜잭션의 실행을 차단할 수 있습니다.

## 작업
<a name="apg-waits.locktransactionid.actions"></a>

행 잠금은 `UPDATE`, `SELECT … FOR UPDATE`, 또는 `SELECT … FOR KEY SHARE` 문 사이의 충돌입니다. 솔루션을 시도하기 전에 이러한 명령문이 동일한 행에서 실행되는 시점을 확인하세요. 다음 섹션에 설명된 전략을 선택하려면 이 정보를 사용하세요.

**Topics**
+ [동시성에 대응](#apg-waits.locktransactionid.actions.problem)
+ [유휴 트랜잭션에 대응](#apg-waits.locktransactionid.actions.find-blocker)
+ [장기 실행 트랜잭션에 대응](#apg-waits.locktransactionid.actions.concurrency)

### 동시성에 대응
<a name="apg-waits.locktransactionid.actions.problem"></a>

동시성이 문제가 되는 경우 다음 기술 중 하나를 시도해 보세요.
+ 애플리케이션의 동시성을 낮춥니다. 예를 들어 활성 세션 수를 줄일 수 있습니다.
+ 연결 풀을 구현합니다. RDS 프록시로 연결을 풀링하는 방법에 대한 자세한 내용은 [Aurora용 Amazon RDS Proxy](rds-proxy.md) 섹션을 참조하세요.
+ `UPDATE` 문과 `SELECT … FOR UPDATE` 문의 경쟁 방지를 위한 애플리케이션 또는 데이터 모델을 설계하세요. `SELECT … FOR KEY SHARE` 문으로 액세스하는 외래 키 수를 줄일 수도 있습니다.

### 유휴 트랜잭션에 대응
<a name="apg-waits.locktransactionid.actions.find-blocker"></a>

`pg_stat_activity.state`가 `idle in transaction`을 나타낸다면, 다음 전략을 시도해 보세요.
+ 가능하면 자동 커밋을 켭니다. 이 접근 방식은 트랜잭션이 `COMMIT`이나 `ROLLBACK`을 대기하는 동안 다른 트랜잭션을 차단하는 것을 방지합니다.
+ `COMMIT`, `ROLLBACK`, 또는 `END`가 누락된 코드 경로 검색
+ 애플리케이션의 예외 처리 논리에 항상 유효한 `end of transaction`으로 향하는 경로가 있는지 확인하세요.
+ `COMMIT` 및 `ROLLBACK`과의 트랜잭션을 종료한 후 애플리케이션이 쿼리 결과를 처리하는지 확인하세요.

### 장기 실행 트랜잭션에 대응
<a name="apg-waits.locktransactionid.actions.concurrency"></a>

장기 실행 트랜잭션으로 인해 `Lock:transactionid`가 자주 발생하는 경우 다음 전략을 시도해 보세요.
+ 장기 실행 트랜잭션에서 행 잠금을 차단합니다.
+ 가능하면 자동 커밋을 구현하여 쿼리 길이를 제한합니다.

# Lock:tuple
<a name="apg-waits.locktuple"></a>

`Lock:tuple` 이벤트는 백엔드 프로세스가 튜플에 대한 잠금 획득을 대기 중일 때 발생합니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.locktuple.context.supported)
+ [컨텍스트](#apg-waits.locktuple.context)
+ [대기 증가의 가능한 원인](#apg-waits.locktuple.causes)
+ [작업](#apg-waits.locktuple.actions)

## 지원되는 엔진 버전
<a name="apg-waits.locktuple.context.supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.locktuple.context"></a>

이벤트 `Lock:tuple`은 다른 백엔드가 동일한 튜플에서 충돌하는 잠금을 보유하는 동안 백엔드가 튜플에 대한 잠금을 얻기 위해 대기 중임을 나타냅니다. 다음 테이블에서는 세션이 `Lock:tuple` 이벤트를 생성하는 시나리오를 가정합니다.


|  Time  |  세션 1  |  세션 2  |  세션 3  | 
| --- | --- | --- | --- | 
|  t1  |  트랜잭션을 시작합니다.  |    |    | 
|  t2  |  1행을 업데이트합니다.  |    |    | 
|  t3  |    |  1행을 업데이트합니다. 세션은 튜플에 대한 배타적 잠금을 획득한 다음 세션 1이 커밋하거나 롤백하여 잠금을 해제할 때까지 기다립니다.  |    | 
|  t4  |    |    |  1행을 업데이트합니다. 세션은 세션 2가 튜플에서 배타적 잠금을 해제할 때까지 기다립니다.  | 

또는 벤치마킹 도구 `pgbench`를 사용하여 이 대기 이벤트를 시뮬레이션할 수 있습니다. 테이블의 동일한 행을 사용자 정의 SQL 파일로 업데이트하도록 많은 수의 동시 세션을 구성합니다.

충돌하는 잠금 모드에 대한 자세한 내용은 PostgreSQL 설명서의 [명시적 잠금](https://www.postgresql.org/docs/current/explicit-locking.html)을 참조하세요. `pgbench`에 관한 더 자세한 내용은 PostgreSQL 설명서의 [pgbench](https://www.postgresql.org/docs/current/pgbench.html) 섹션을 참조하세요.

## 대기 증가의 가능한 원인
<a name="apg-waits.locktuple.causes"></a>

이 이벤트가 정상보다 많이 발생해 성능 문제를 일으킬 수 있는 경우 일반적인 원인은 다음과 같습니다.
+ 많은 수의 동시 세션이 `UPDATE` 또는 `DELETE` 문을 실행하여 동일한 튜플에 대해 충돌하는 잠금을 얻으려고 시도합니다.
+ 높은 동시 세션이 `FOR UPDATE` 또는 `FOR NO KEY UPDATE` 잠금 모드를 통해 `SELECT` 문을 실행하고 있습니다.
+ 다양한 요인으로 인해 애플리케이션이나 연결 풀이 더 많은 세션을 열어 동일한 작업을 실행할 수 있습니다. 새 세션이 동일한 행을 수정하려고 하면 DB 로드가 급증할 수 있으며, `Lock:tuple`이 표시될 수 있습니다.

자세한 내용은 PostgreSQL 설명서의 [행 수준 잠금](https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-ROWS)을 참조하세요.

## 작업
<a name="apg-waits.locktuple.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

**Topics**
+ [애플리케이션 로직 조사](#apg-waits.locktuple.actions.problem)
+ [차단 세션 찾기](#apg-waits.locktuple.actions.find-blocker)
+ [높은 동시성 저감](#apg-waits.locktuple.actions.concurrency)
+ [병목 현상 해결](#apg-waits.locktuple.actions.bottlenecks)

### 애플리케이션 로직 조사
<a name="apg-waits.locktuple.actions.problem"></a>

차단 세션이 오랜 시간 동안 `idle in transaction` 상태인지 확인하세요. 그렇다면 차단 세션을 단기 솔루션으로 종료하는 것이 좋습니다. `pg_terminate_backend` 함수를 사용할 수 있습니다. 이 함수에 대한 자세한 내용은 PostgreSQL 설명서의 [서버 신호 전송 함수](https://www.postgresql.org/docs/13/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL)를 참조하세요.

장기 솔루션의 경우 다음을 수행합니다.
+ 애플리케이션 로직을 조정합니다.
+ `idle_in_transaction_session_timeout` 파라미터를 사용합니다. 이 파라미터는 지정된 시간보다 오랫동안 유휴 상태인 열린 트랜잭션으로 세션을 종료합니다. 자세한 내용은 PostgreSQL 설명서의 [클라이언트 인증](https://www.postgresql.org/docs/current/runtime-config-client.html#GUC-IDLE-IN-TRANSACTION-SESSION-TIMEOUT)을 참조하세요.
+ autocommit을 최대한 많이 사용합니다. 자세한 내용은 PostgreSQL 설명서의 [AUTOCOMMIT 설정](https://www.postgresql.org/docs/current/ecpg-sql-set-autocommit.html)을 참조하세요.

### 차단 세션 찾기
<a name="apg-waits.locktuple.actions.find-blocker"></a>

`Lock:tuple` 대기 이벤트가 발생하는 동안 어떤 잠금이 서로 의존하는지 파악하여 차단 및 차단된 세션을 식별합니다. 자세한 내용은 PostgreSQL 위키의 [잠금 종속성 정보](https://wiki.postgresql.org/wiki/Lock_dependency_information)를 참조하세요. 과거의 `Lock:tuple` 이벤트를 분석하려면, Aurora 함수 `aurora_stat_backend_waits`를 사용하세요.

다음 예에서는 `tuple` 필터링과 `wait_time` 정렬을 통해 모든 세션을 쿼리합니다.

```
--AURORA_STAT_BACKEND_WAITS
      SELECT a.pid, 
             a.usename, 
             a.app_name, 
             a.current_query,
             a.current_wait_type, 
             a.current_wait_event, 
             a.current_state, 
             wt.type_name AS wait_type, 
             we.event_name AS wait_event, 
             a.waits, 
             a.wait_time
        FROM (SELECT pid, 
                     usename, 
                     left(application_name,16) AS app_name,
                     coalesce(wait_event_type,'CPU') AS current_wait_type,
                     coalesce(wait_event,'CPU') AS current_wait_event, 
                     state AS current_state,
                     left(query,80) as current_query,
                     (aurora_stat_backend_waits(pid)).* 
                FROM pg_stat_activity 
               WHERE pid <> pg_backend_pid()
                 AND usename<>'rdsadmin') a
NATURAL JOIN aurora_stat_wait_type() wt 
NATURAL JOIN aurora_stat_wait_event() we
WHERE we.event_name = 'tuple'
    ORDER BY a.wait_time;

  pid  | usename | app_name |                 current_query                  | current_wait_type | current_wait_event | current_state | wait_type | wait_event | waits | wait_time
-------+---------+----------+------------------------------------------------+-------------------+--------------------+---------------+-----------+------------+-------+-----------
 32136 | sys     | psql     | /*session3*/ update tab set col=1 where col=1; | Lock              | tuple              | active        | Lock      | tuple      |     1 |   1000018
 11999 | sys     | psql     | /*session4*/ update tab set col=1 where col=1; | Lock              | tuple              | active        | Lock      | tuple      |     1 |   1000024
```

### 높은 동시성 저감
<a name="apg-waits.locktuple.actions.concurrency"></a>

`Lock:tuple` 이벤트는 지속적으로 발생할 수 있으며, 특히 작업 부하가 많은 시간에 발생할 수 있습니다. 이 경우 매우 바쁜 행에 대해 높은 동시성을 줄이는 것이 좋습니다. 종종 몇 개의 행만 대기열이나 불리언 로직을 제어하므로 이러한 행을 매우 바쁘게 만듭니다.

비즈니스 요구 사항, 애플리케이션 로직 및 워크로드 유형에 따라 다양한 접근 방식을 사용하여 동시성을 줄일 수 있습니다. 예를 들면, 다음을 수행할 수 있습니다.
+ 테이블 및 데이터 로직을 재설계하여 높은 동시성을 줄입니다.
+ 행 수준에서 높은 동시성을 줄이기 위해 애플리케이션 로직을 변경합니다.
+ 행 수준 잠금으로 쿼리를 활용하고 재설계합니다.
+ `NOWAIT` 절을 사용해 연산을 재시도합니다.
+ 낙관적 및 하이브리드 잠금 로직 동시성 제어를 사용하는 것이 좋습니다.
+ 데이터베이스 격리 수준을 변경하는 것이 좋습니다.

### 병목 현상 해결
<a name="apg-waits.locktuple.actions.bottlenecks"></a>

`Lock:tuple`은 CPU 부족 또는 Amazon EBS 대역폭의 최대 사용량과 같은 병목 현상이 발생시킬 수 있습니다. 병목 현상을 줄이려면 다음 방법을 고려하세요.
+ 인스턴스 클래스 유형을 확장하세요.
+ 리소스 집약적인 쿼리를 최적화하세요.
+ 애플리케이션 로직을 변경하세요.
+ 거의 액세스하지 않는 데이터를 아카이브하세요.

# LWLock:buffer\$1content (BufferContent)
<a name="apg-waits.lockbuffercontent"></a>

`LWLock:buffer_content` 이벤트는 다른 세션에서 특정 데이터 페이지에 대해 쓰기 잠금을 설정한 동안 세션에서 메모리 내 해당 페이지 읽기 또는 쓰기를 대기 중일 때 발생합니다. Aurora PostgreSQL 13 이상에서는 `BufferContent` 대기 이벤트가 호출됩니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.lockbuffercontent.context.supported)
+ [컨텍스트](#apg-waits.lockbuffercontent.context)
+ [대기 증가의 가능한 원인](#apg-waits.lockbuffercontent.causes)
+ [작업](#apg-waits.lockbuffercontent.actions)

## 지원되는 엔진 버전
<a name="apg-waits.lockbuffercontent.context.supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.lockbuffercontent.context"></a>

데이터를 읽거나 조작하기 위해 PostgreSQL 공유 메모리 버퍼를 통해 데이터에 액세스합니다. 버퍼에서 읽기 위해 프로세스는 공유 모드에서 버퍼 콘텐츠에 대한 경량 잠금(LWLock) 을 가져옵니다. 버퍼에 쓰려면 배타적 모드에서 해당 잠금을 가져옵니다. 공유 잠금을 사용하면 다른 프로세스가 동시에 해당 콘텐츠에 대한 공유 잠금을 획득할 수 있습니다. 배타적 잠금은 다른 프로세스에서 모든 유형의 잠금을 얻지 못하게 합니다.

`LWLock:buffer_content`(`BufferContent`) 이벤트는 여러 프로세스가 특정 버퍼의 내용에 대해 경량 잠금(LWLocks)을 가져오려고 시도하고 있음을 나타냅니다.

## 대기 증가의 가능한 원인
<a name="apg-waits.lockbuffercontent.causes"></a>

`LWLock:buffer_content`(`BufferContent`) 이벤트가 정상보다 많이 나타나 성능 문제를 나타내는 경우 일반적인 원인은 다음과 같습니다.

**동일한 데이터에 대한 동시 업데이트 증가**  
동일한 테이블에 삽입하거나 업데이트하는 쿼리의 동시 세션 수가 증가할 수 있습니다. 이 경합은 인덱스가 많은 테이블에서 더 두드러질 수 있습니다.

**워크로드 데이터가 메모리에 없습니다.**  
활성 워크로드에서 처리 중인 데이터가 메모리에 없으면 이러한 대기 이벤트가 증가할 수 있습니다. 이 효과는 잠금을 유지하는 프로세스가 디스크 I/O 작업을 수행하는 동안 더 오래 유지할 수 있기 때문입니다.

**외래 키 제약 조건을 과도하게 사용**  
외래 키 제약 조건은 프로세스가 버퍼 콘텐츠 잠금에 보관하는 시간을 늘릴 수 있습니다. 이 효과는 해당 키가 업데이트되는 동안 읽기 작업에서 참조된 키에 대해 공유 버퍼 콘텐츠 잠금이 필요하기 때문입니다.

## 작업
<a name="apg-waits.lockbuffercontent.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다. Amazon RDS 성능 개선 도우미를 사용하거나 `pg_stat_activity` 뷰를 쿼리하여 `LWLock:buffer_content`(`BufferContent`) 이벤트를 식별할 수 있습니다.

**Topics**
+ [인메모리 효율성 향상](#apg-waits.lockbuffercontent.actions.in-memory)
+ [외래 키 제약 조건 사용 감소](#apg-waits.lockbuffercontent.actions.foreignkey)
+ [사용되지 않는 인덱스 삭제](#apg-waits.lockbuffercontent.actions.indexes)
+ [중복 인덱스 제거](#apg-waits.lockbuffercontent.actions.duplicate-indexes)
+ [잘못된 인덱스 삭제 또는 REINDEX](#apg-waits.lockbuffercontent.actions.invalid-indexes)
+ [부분 인덱스 사용](#apg-waits.lockbuffercontent.actions.partial-indexes)
+ [테이블 및 인덱스 팽창 제거](#apg-waits.lockbuffercontent.actions.bloat)

### 인메모리 효율성 향상
<a name="apg-waits.lockbuffercontent.actions.in-memory"></a>

활성 워크로드 데이터가 메모리에 있을 확률을 높이려면 테이블을 분할하거나 인스턴스 클래스를 확장하세요. DB 인스턴스 클래스에 대한 자세한 내용은 [Amazon AuroraDB 인스턴스 클래스](Concepts.DBInstanceClass.md) 섹션을 참조하세요.

DB 클러스터에서 DB 인스턴스의 버퍼 캐시가 제공하는 요청 백분율을 측정하는 `BufferCacheHitRatio` 지표를 모니터링합니다. 이 지표는 메모리에서 제공되는 데이터의 양에 대한 인사이트를 제공합니다. 적중률이 높으면 DB 인스턴스에 작업 데이터 세트에 사용할 수 있는 메모리가 충분하다는 의미이고, 낮으면 쿼리가 스토리지에서 데이터에 자주 액세스하고 있다는 의미입니다.

[PG Collector](https://github.com/awslabs/pg-collector) 보고서의 메모리 설정 섹션에 있는 테이블당 캐시 읽기 적중 및 인덱스당 캐시 읽기 적중은 테이블 및 인덱스 캐시 적중률에 대한 인사이트를 제공할 수 있습니다.

### 외래 키 제약 조건 사용 감소
<a name="apg-waits.lockbuffercontent.actions.foreignkey"></a>

외래 키 제약 조건을 사용을 위해 많은 수의 `LWLock:buffer_content`(`BufferContent`) 대기 이벤트를 경험하는 워크로드를 조사합니다. 불필요한 외래 키 제약 조건을 제거합니다.

### 사용되지 않는 인덱스 삭제
<a name="apg-waits.lockbuffercontent.actions.indexes"></a>

많은 수의 `LWLock:buffer_content`(`BufferContent`) 대기 이벤트를 경험하는 워크로드를 위해 사용하지 않는 인덱스를 식별하고 제거합니다.

[PG Collector](https://github.com/awslabs/pg-collector) 보고서의 미사용 인덱스 섹션은 데이터베이스의 미사용 인덱스에 대한 인사이트를 제공할 수 있습니다.

### 중복 인덱스 제거
<a name="apg-waits.lockbuffercontent.actions.duplicate-indexes"></a>

중복 인덱스를 식별하고 제거합니다.

[PG Collector](https://github.com/awslabs/pg-collector) 보고서의 중복 인덱스 섹션은 데이터베이스의 중복 인덱스에 대한 인사이트를 제공할 수 있습니다.

### 잘못된 인덱스 삭제 또는 REINDEX
<a name="apg-waits.lockbuffercontent.actions.invalid-indexes"></a>

잘못된 인덱스는 일반적으로 `CREATE INDEX CONCURRENTLY` 또는 `REINDEX CONCURRENTLY`를 사용하고 명령이 실패하거나 중단될 때 발생합니다.

잘못된 인덱스는 여전히 업데이트되고 디스크 공간을 차지하지만, 쿼리에 사용할 수 없습니다.

[PG Collector](https://github.com/awslabs/pg-collector) 보고서의 잘못된 인덱스 섹션은 데이터베이스의 잘못된 인덱스에 대한 인사이트를 제공할 수 있습니다.

### 부분 인덱스 사용
<a name="apg-waits.lockbuffercontent.actions.partial-indexes"></a>

부분 인덱스를 활용하여 쿼리 성능을 개선하고 인덱스 크기를 줄일 수 있습니다. 부분 인덱스는 조건식으로 정의된 하위 집합을 사용하여 테이블의 하위 집합을 통해 빌드된 인덱스입니다. [부분 인덱스](https://www.postgresql.org/docs/current/indexes-partial.html) 설명서에 설명된 대로 부분 인덱스는 인덱스 유지 관리 오버헤드를 줄일 수 있습니다. PostgreSQL은 모든 경우에 인덱스를 업데이트할 필요가 없기 때문입니다.

### 테이블 및 인덱스 팽창 제거
<a name="apg-waits.lockbuffercontent.actions.bloat"></a>

과도한 테이블 및 인덱스 팽창은 데이터베이스 성능에 부정적인 영향을 미칠 수 있습니다. 테이블과 인덱스가 팽창하면 활성 작업 세트 크기가 증가하여 인 메모리 효율성이 저하됩니다. 또한 팽창은 스토리지 비용을 늘리고 쿼리 실행 속도를 늦춥니다. 팽창을 진단하려면 [테이블 및 인덱스 팽창 진단](AuroraPostgreSQL.diag-table-ind-bloat.md) 섹션을 참조하세요. 또한 [PG Collector](https://github.com/awslabs/pg-collector) 보고서의 조각화(팽창) 섹션은 테이블 및 인덱스 팽창에 대한 인사이트를 제공할 수 있습니다.

테이블 및 인덱스 팽창을 해결하기 위한 몇 가지 옵션이 있습니다.

**VACUUM FULL**  
`VACUUM FULL`은 라이브 튜플만 복사하여 테이블의 새 복사본을 만든 다음, `ACCESS EXCLUSIVE` 잠금을 유지하는 동안 이전 테이블을 새 테이블로 바꿉니다. 이렇게 하면 테이블에 대한 읽기 또는 쓰기가 방지되어 중단이 발생할 수 있습니다. 또한 테이블이 크면 `VACUUM FULL`에 더 오래 걸립니다.

** pg\$1repack **  
`pg_repack`은 `VACUUM FULL`이 적합하지 않은 상황에서 유용합니다. 팽창된 테이블의 데이터가 포함된 새 테이블을 만들고 원본 테이블의 변경 사항을 추적한 다음 원본 테이블을 새 테이블로 바꿉니다. 새 테이블을 빌드하는 동안 읽기 또는 쓰기 작업을 위해 원본 테이블을 잠그지 않습니다. `pg_repack`을 사용하는 방법에 대한 자세한 내용은 [pg\$1repack](https://reorg.github.io/pg_repack/) 및 [Removing bloat with pg\$1repack](https://docs.aws.amazon.com/prescriptive-guidance/latest/postgresql-maintenance-rds-aurora/pg-repack.html)을 참조하세요.

**REINDEX**  
`REINDEX` 명령을 활용하여 인덱스 팽창을 해결할 수 있습니다. `REINDEX`는 데드 페이지 또는 비어 있거나 거의 비어 있는 페이지 없이 인덱스의 새 버전을 작성하여 인덱스의 공간 소비를 줄입니다. [https://www.postgresql.org/docs/current/sql-reindex.html](https://www.postgresql.org/docs/current/sql-reindex.html) 명령에 대한 자세한 내용은 REINDEX 설명서를 참조하세요.

테이블 및 인덱스에서 팽창을 제거한 후 해당 테이블의 autovacuum 빈도를 늘려야 할 수 있습니다. 테이블 수준에서 적극적인 autovacuum 설정을 구현하면 향후 팽창이 발생하지 않도록 방지할 수 있습니다. 자세한 내용은 [https://docs.aws.amazon.com/prescriptive-guidance/latest/postgresql-maintenance-rds-aurora/autovacuum.html](https://docs.aws.amazon.com/prescriptive-guidance/latest/postgresql-maintenance-rds-aurora/autovacuum.html)의 설명서를 참조하세요.

# LWLock:buffer\$1mapping
<a name="apg-waits.lwl-buffer-mapping"></a>

이 이벤트는 세션이 데이터 블록을 공유 버퍼 풀의 버퍼와 연결하기 위해 대기 중일 때 발생합니다.

**참고**  
이 이벤트는 Aurora PostgreSQL 버전 12 이하에서는 `LWLock:buffer_mapping`으로 나타나며, 13 버전 이상에서는 `LWLock:BufferMapping`으로 표시됩니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.lwl-buffer-mapping.context.supported)
+ [컨텍스트](#apg-waits.lwl-buffer-mapping.context)
+ [원인](#apg-waits.lwl-buffer-mapping.causes)
+ [작업](#apg-waits.lwl-buffer-mapping.actions)

## 지원되는 엔진 버전
<a name="apg-waits.lwl-buffer-mapping.context.supported"></a>

이 대기 이벤트 정보는 Aurora PostgreSQL 버전 9.6 이상에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.lwl-buffer-mapping.context"></a>

*공유 버퍼 풀*은 애플리케이션에서 사용 중이거나 사용 중인 모든 페이지를 보관하는 Aurora PostgreSQL 메모리 영역입니다. 프로세스에 페이지가 필요한 경우 페이지를 공유 버퍼 풀로 읽습니다. `shared_buffers` 파라미터는 공유 버퍼 크기를 설정하고 테이블 및 인덱스 페이지를 저장할 메모리 영역을 예약합니다. 이 파라미터를 변경하는 경우 데이터베이스를 다시 시작해야 합니다. 자세한 내용은 [공유 버퍼](AuroraPostgreSQL.Tuning.concepts.md#AuroraPostgreSQL.Tuning.concepts.buffer-pool) 섹션을 참조하세요.

`LWLock:buffer_mapping` 대기 이벤트는 다음 시나리오에서 발생합니다.
+ 프로세스가 버퍼 테이블에서 페이지를 검색하고 공유 버퍼 매핑 잠금을 획득합니다.
+ 프로세스가 페이지를 버퍼 풀로 로드하고 배타적 버퍼 매핑 잠금을 획득합니다.
+ 프로세스가 페이지를 버퍼 풀로 로드하고 배타적 버퍼 매핑 잠금을 획득합니다.

## 원인
<a name="apg-waits.lwl-buffer-mapping.causes"></a>

이 이벤트가 정상보다 많이 발생하여 성능 문제가 발생할 수 있는 경우 데이터베이스가 공유 버퍼 풀에 페이징 및 페이징 중입니다. 일반적인 원인은 다음과 같습니다.
+ 대규모 쿼리
+ 부풀린 인덱스 및 테이블
+ 전체 테이블 스캔
+ 작업 세트보다 작은 공유 풀 크기

## 작업
<a name="apg-waits.lwl-buffer-mapping.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

**Topics**
+ [버퍼 관련 지표 모니터링](#apg-waits.lwl-buffer-mapping.actions.monitor-metrics)
+ [인덱싱 전략 평가](#apg-waits.lwl-buffer-mapping.actions.indexes)
+ [신속하게 할당해야 하는 버퍼 수 저감](#apg-waits.lwl-buffer-mapping.actions.buffers)

### 버퍼 관련 지표 모니터링
<a name="apg-waits.lwl-buffer-mapping.actions.monitor-metrics"></a>

`LWLock:buffer_mapping`이 스파이크를 기다렸다가 버퍼 적중률을 조사합니다. 이러한 지표를 사용하여 버퍼 캐시에서 발생하는 상황을 더 잘 이해할 수 있습니다. 다음 지표를 검토합니다.

`BufferCacheHitRatio`  
이 Amazon CloudWatch 지표는 DB 클러스터에서 DB 인스턴스의 버퍼 캐시가 제공하는 요청 백분율을 측정합니다. 이 지표가 `LWLock:buffer_mapping` 대기 이벤트의 리드 업에서 감소하는 것을 볼 수 있습니다.

`blks_hit`  
이 성능 개선 도우미 카운터 지표는 공유 버퍼 풀에서 검색된 블록 수를 나타냅니다. `LWLock:buffer_mapping` 대기 이벤트가 발생하면 `blks_hit`에서 스파이크가 발생할 수 있습니다.

`blks_read`  
이 성능 개선 도우미 카운터 지표는 공유 버퍼 풀에서 I/O를 읽어야 하는 블록 수를 나타냅니다. `LWLock:buffer_mapping` 대기 이벤트의 리드업에서 `blks_read`의 스파이크가 발생할 수 있습니다.

### 인덱싱 전략 평가
<a name="apg-waits.lwl-buffer-mapping.actions.indexes"></a>

인덱싱 전략의 성능 저하가 아닌지 확인하려면 다음을 알아보세요.

인덱스 팽창  
인덱스와 테이블 팽창으로 인해 불필요한 페이지가 공유 버퍼로 읽히지 않는지 확인합니다. 테이블에 사용되지 않는 행이 포함된 경우 데이터를 보관하고 테이블에서 행을 제거하는 것이 좋습니다. 그런 다음 크기가 조정된 테이블의 인덱스를 다시 작성할 수 있습니다.

자주 사용하는 쿼리의 인덱스  
최적의 인덱스가 있는지 확인하려면 성능 개선 도우미에서 DB 엔진 지표를 모니터링하세요. `tup_returned` 지표는 읽은 행의 수를 보여줍니다. `tup_fetched` 지표는 클라이언트에게 반환되는 행 수를 보여줍니다 `tup_returned`가 `tup_fetched`보다 훨씬 큰 경우, 데이터가 제대로 인덱스화되지 않을 수 있습니다. 또한 테이블 통계가 최신 상태가 아닐 수도 있습니다.

### 신속하게 할당해야 하는 버퍼 수 저감
<a name="apg-waits.lwl-buffer-mapping.actions.buffers"></a>

`LWLock:buffer_mapping` 대기 이벤트를 줄이려면, 신속하게 할당해야 하는 버퍼 수를 줄이세요. 한 가지 전략은 소규모 배치 작업을 수행하는 것입니다. 테이블을 분할하여 더 작은 배치를 달성할 수 있습니다.

# LWLock:BufferIO(IPC:BufferIO)
<a name="apg-waits.lwlockbufferio"></a>

`LWLock:BufferIO` 이벤트는 Aurora PostgreSQL 또는 RDS for PostgreSQL이 페이지에 동시에 액세스하려고 할 때 다른 프로세스가 입출력 (I/O) 작업을 완료할 때까지 기다리는 경우에 발생합니다. 그 목적은 동일한 페이지를 공유 버퍼로 읽는 것입니다.

**Topics**
+ [관련 엔진 버전](#apg-waits.lwlockbufferio.context.supported)
+ [컨텍스트](#apg-waits.lwlockbufferio.context)
+ [원인](#apg-waits.lwlockbufferio.causes)
+ [작업](#apg-waits.lwlockbufferio.actions)

## 관련 엔진 버전
<a name="apg-waits.lwlockbufferio.context.supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전과 관련이 있습니다. Aurora PostgreSQL 12 이하 버전의 경우 이 대기 이벤트의 이름이 lwlock:buffer\$1io인 반면, Aurora PostgreSQL 13 버전에서는 lwlock:bufferio로 이름이 지정됩니다. Aurora PostgreSQL 14 버전부터는 BufferIO 대기 이벤트가 `LWLock`에서 `IPC` 대기 이벤트 유형(IPC:BufferIO)으로 변경되었습니다.

## 컨텍스트
<a name="apg-waits.lwlockbufferio.context"></a>

각 공유 버퍼에는 매번 블록(또는 페이지)이 공유 버퍼 풀 외부에서 회수되야 하는 `LWLock:BufferIO` 대기 이벤트와 연결된 I/O 잠금이 있습니다.

이 잠금은 모두 동일한 블록에 액세스해야 하는 여러 세션을 처리하는 데 사용됩니다. 이 블록은 `shared_buffers` 파라미터로 정의된 공유 버퍼 풀 외부에서 읽어야 합니다.

공유 버퍼 풀 내에서 페이지를 읽는 즉시 `LWLock:BufferIO` 잠금은 해제됩니다.

**참고**  
`LWLock:BufferIO` 대기 이벤트는 [IO:DataFileRead](apg-waits.iodatafileread.md) 대기 이벤트에 선행됩니다. `IO:DataFileRead` 대기 이벤트는 스토리지에서 데이터를 읽는 동안 발생합니다.

경량 잠금에 대한 자세한 내용은 [잠금 개요](https://github.com/postgres/postgres/blob/65dc30ced64cd17f3800ff1b73ab1d358e92efd8/src/backend/storage/lmgr/README#L20)를 참조하세요.

## 원인
<a name="apg-waits.lwlockbufferio.causes"></a>

상위 대기에서 나타나는 `LWLock:BufferIO` 이벤트의 일반적인 원인은 다음을 포함합니다.
+ I/O 작업이 보류 중인 동일한 페이지에 액세스하려고 시도하는 여러 백엔드 또는 연결
+ 공유 버퍼 풀의 크기 간의 비율(`shared_buffers` 파라미터로 정의됨) 및 현재 워크로드에 필요한 버퍼 수
+ 공유 버퍼 풀의 크기가 다른 작업에서 제거되는 페이지 수와 균형이 맞지 않습니다.
+ 엔진이 공유 버퍼 풀에 필요한 것보다 많은 페이지를 읽어야 하는 크거나 부풀린 인덱스
+ DB 엔진이 테이블에서 필요한 것보다 더 많은 페이지를 읽도록 하는 인덱스의 부족
+ 같은 페이지에서 작업을 수행하려고 시도하는 데이터베이스 연결의 갑작스러운 급증

## 작업
<a name="apg-waits.lwlockbufferio.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.
+ `BufferCacheHitRatio` 및 `LWLock:BufferIO` 대기 이벤트의 급격한 감소 간의 상관관계에 대한 Amazon CloudWatch 지표가 관찰됩니다. 이 효과는 공유 버퍼 설정이 작음을 의미할 수 있습니다. DB 인스턴스 클래스를 늘리거나 확장해야 할 수 있습니다. 워크로드를 더 많은 리더 노드로 분할할 수 있습니다.
+ 사용되지 않는 인덱스가 있는지 확인한 다음 제거합니다.
+ 분할된 테이블(분할된 인덱스도 있음)을 사용합니다. 이렇게 하면 인덱스 재정렬을 낮게 유지하고 영향을 줄일 수 있습니다.
+ 불필요하게 열을 인덱싱하지 마세요.
+ 연결 풀을 사용하여 갑작스러운 데이터베이스 연결 스파이크를 방지합니다.
+ 데이터베이스에 대한 최대 연결 수를 모범 사례로 제한합니다.

# LWLock:lock\$1manager
<a name="apg-waits.lw-lock-manager"></a>

이 이벤트는 Aurora PostgreSQL 엔진이 빠른 경로 잠금이 불가능할 때 잠금을 할당, 확인 및 할당 해제하기 위해 공유 잠금 메모리 영역을 유지 관리하는 경우에 발생합니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.lw-lock-manager.context.supported)
+ [컨텍스트](#apg-waits.lw-lock-manager.context)
+ [대기 증가의 가능한 원인](#apg-waits.lw-lock-manager.causes)
+ [작업](#apg-waits.lw-lock-manager.actions)

## 지원되는 엔진 버전
<a name="apg-waits.lw-lock-manager.context.supported"></a>

이 대기 이벤트 정보는 Aurora PostgreSQL 버전 9.6 이상에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.lw-lock-manager.context"></a>

SQL 문을 실행하면 Aurora PostgreSQL 동시 작업 중에 데이터베이스의 구조, 데이터 및 무결성을 보호하기 위해 잠금을 기록합니다. 엔진은 빠른 경로 잠금 또는 빠르지 않은 경로 잠금을 사용하여 이 목표를 달성할 수 있습니다. 빠르지 않은 경로 잠금은 빠른 경로 잠금보다 비용이 많이 들고 오버헤드가 더 많이 발생합니다.

### 빠른 경로 잠금
<a name="apg-waits.lw-lock-manager.context.fast-path"></a>

자주 수행되고 해제되지만 충돌이 거의 발생하지 않는 잠금의 오버헤드를 줄이기 위해 백엔드 프로세스에서 빠른 경로 잠금을 사용할 수 있습니다. 데이터베이스는 다음 기준을 충족하는 잠금에 대해 이 메커니즘을 사용합니다.
+ DEFAULT 잠금 방법을 사용합니다.
+ 공유 관계가 아닌 데이터베이스 관계에 대한 잠금을 나타냅니다.
+ 그들은 충돌할 가능성이 없는 약한 잠금입니다.
+ 엔진은 충돌하는 잠금이 존재하지 않을 수 있는지 신속하게 확인할 수 있습니다.

다음 조건 중 하나에 부합할 때 엔진은 빠른 경로 잠금을 사용할 수 없습니다.
+ 이 잠금이 이전 기준을 충족하지 않습니다.
+ 백엔드 프로세스에 사용할 수 있는 슬롯이 더 이상 없습니다.

고속 경로 잠금에 대한 자세한 내용은 잠금 관리자 README의 [빠른 경로](https://github.com/postgres/postgres/blob/master/src/backend/storage/lmgr/README#L70-L76)와 PostgreSQL 설명서의 [pg-locks](https://www.postgresql.org/docs/15/view-pg-locks.html)를 참조하세요.

### 잠금 관리자의 배율 조정 문제 예
<a name="apg-waits.lw-lock-manager.context.lock-manager"></a>

이 예에서는 이름이 `purchases`인 테이블이 매일로 분할된 5년짜리 데이터를 저장합니다. 각 파티션에는 두 개의 인덱스가 있습니다. 다음과 같은 일련의 이벤트가 발생합니다.

1. 며칠 분량의 데이터를 쿼리하면 데이터베이스가 많은 파티션을 읽어야 합니다.

1. 데이터베이스는 각 파티션에 대한 잠금 항목을 만듭니다. 파티션 인덱스가 최적기 액세스 경로의 일부인 경우 데이터베이스도 해당 인덱스에 대한 잠금 항목을 만듭니다.

1. 동일한 백엔드 프로세스에 대해 요청된 잠금 항목 수가 `FP_LOCK_SLOTS_PER_BACKEND`의 값인 16보다 높은 경우 잠금 관리자는 비고속 경로 잠금 방법을 사용합니다.

최신 애플리케이션에는 수백 개의 세션이 있을 수 있습니다. 동시 세션이 적절한 파티션 정리 없이 부모를 쿼리하는 경우 데이터베이스는 수백 또는 수천 개의 고속 경로 잠금을 생성할 수 있습니다. 일반적으로 이 동시성이 vCPU 수보다 높으면 `LWLock:lock_manager` 대기 이벤트가 표시됩니다.

**참고**  
`LWLock:lock_manager` 대기 이벤트는 데이터베이스 스키마의 파티션 또는 인덱스 수와 관련이 없습니다. 대신 데이터베이스가 제어해야 하는 비고속 경로 잠금 수와 관련이 있습니다.

## 대기 증가의 가능한 원인
<a name="apg-waits.lw-lock-manager.causes"></a>

`LWLock:lock_manager` 대기 이벤트가 정상보다 더 발생하여 성능 문제를 나타낼 수 있으며 갑작스런 스파이크의 가장 큰 원인은 다음과 같습니다.
+ 동시 활성 세션은 빠른 경로 잠금을 사용하지 않는 쿼리를 실행하고 있습니다. 이러한 세션도 최대 vCPU를 초과합니다.
+ 많은 수의 동시 활성 세션이 심하게 분할된 테이블에 액세스하고 있습니다. 각 파티션에는 여러 개의 인덱스가 있습니다.
+ 데이터베이스에 연결 폭풍이 발생합니다. 기본적으로 일부 애플리케이션 및 연결 풀 소프트웨어는 데이터베이스 속도가 느릴 때 더 많은 연결을 만듭니다. 이 관행은 문제를 악화시킵니다. 연결 스톰이 발생하지 않도록 연결 풀 소프트웨어를 튜닝합니다.
+ 많은 수의 세션이 파티션을 정리하지 않고 상위 테이블을 쿼리합니다.
+ 데이터 정의 언어 (DDL), 유지 관리 명령은 자주 액세스하거나 수정되는 사용 중인 관계식 또는 튜플을 독점적으로 잠급니다.

## 작업
<a name="apg-waits.lw-lock-manager.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.

**Topics**
+ [파티션 정리 사용](#apg-waits.lw-lock-manager.actions.pruning)
+ [불필요한 인덱스 삭제](#apg-waits.lw-lock-manager.actions.indexes)
+ [빠른 경로 잠금을 위한 쿼리 조정](#apg-waits.lw-lock-manager.actions.tuning)
+ [다른 대기 이벤트 조정](#apg-waits.lw-lock-manager.actions.other-waits)
+ [하드웨어 병목 현상 저감](#apg-waits.lw-lock-manager.actions.hw-bottlenecks)
+ [연결 풀러 사용](#apg-waits.lw-lock-manager.actions.pooler)
+ [Aurora PostgreSQL 버전 업그레이드](#apg-waits.lw-lock-manager.actions.pg-version)

### 파티션 정리 사용
<a name="apg-waits.lw-lock-manager.actions.pruning"></a>

*파티션 정리*는 테이블 검색에서 불필요한 파티션을 제외하여 성능을 향상시키는 쿼리 최적화 전략입니다. 파티션 정리는 기본적으로 활성화되어 있습니다. 꺼져 있으면 다음과 같이 켭니다.

```
SET enable_partition_pruning = on;
```

`WHERE` 절에 파티셔닝에 사용되는 열이 들어 있으면 쿼리는 파티션 정리를 활용할 수 있습니다. 더 자세한 내용은 PostgreSQL 설명서의 [파티션 정리](https://www.postgresql.org/docs/current/ddl-partitioning.html#DDL-PARTITION-PRUNING)를 참조하세요.

### 불필요한 인덱스 삭제
<a name="apg-waits.lw-lock-manager.actions.indexes"></a>

데이터베이스에 사용되지 않거나 거의 사용되지 않는 인덱스가 포함되어 있을 수 있습니다. 이 경우 삭제하는 것이 좋습니다. 다음 중 하나를 수행하세요.
+ 불필요한 인덱스를 찾아내려면, PostgreSQL 위키의 [사용되지 않는 인덱스](https://wiki.postgresql.org/wiki/Index_Maintenance#Unused_Indexes)를 읽어보세요.
+ PG 컬렉터를 실행합니다. 이 SQL 스크립트는 데이터베이스 정보를 수집하여 통합 HTML 보고서로 표시합니다. '사용되지 않은 인덱스' 섹션을 확인하세요. 자세한 내용은 AWS Labs GitHub 리포지토리의 [pg-collector](https://github.com/awslabs/pg-collector)를 참조하세요.

### 빠른 경로 잠금을 위한 쿼리 조정
<a name="apg-waits.lw-lock-manager.actions.tuning"></a>

쿼리에서 빠른 경로 잠금을 사용하는지 확인하려면 `pg_locks` 테이블의 `fastpath` 열을 쿼리하세요. 쿼리에서 빠른 경로 잠금을 사용하지 않는 경우 쿼리당 관계 수를 16 미만으로 줄이세요.

### 다른 대기 이벤트 조정
<a name="apg-waits.lw-lock-manager.actions.other-waits"></a>

`LWLock:lock_manager`가 최상위 대기 목록에서 첫 번째 또는 두 번째일 경우, 다음 대기 이벤트도 목록에 나타나는지 확인합니다.
+ `Lock:Relation`
+ `Lock:transactionid`
+ `Lock:tuple`

위의 이벤트가 목록에서 높게 표시되는 경우 이러한 대기 이벤트를 먼저 조정하는 것이 좋습니다. 이러한 이벤트는 `LWLock:lock_manager` 드라이버가 될 수 있습니다.

### 하드웨어 병목 현상 저감
<a name="apg-waits.lw-lock-manager.actions.hw-bottlenecks"></a>

CPU 부족 또는 Amazon EBS 대역폭의 최대 사용량과 같은 하드웨어 병목 현상이 발생할 수 있습니다. 이 경우에는 하드웨어 병목 현상을 줄이는 것이 좋습니다. 다음 조치를 고려해 보세요.
+ 인스턴스 클래스를 확장하세요.
+ 대량의 CPU와 메모리를 사용하는 쿼리를 최적화하세요.
+ 애플리케이션 로직을 변경하세요.
+ 데이터를 아카이빙하세요.

CPU, 메모리 및 EBS 네트워크 대역폭에 대한 자세한 내용은 [Amazon RDS 인스턴스 유형](https://aws.amazon.com/rds/instance-types/)을 참조하세요.

### 연결 풀러 사용
<a name="apg-waits.lw-lock-manager.actions.pooler"></a>

총 활성 연결 수가 최대 vCPU를 초과하는 경우 인스턴스 유형이 지원할 수 있는 것보다 많은 OS 프로세스에 CPU가 필요합니다. 이 경우에는 연결 풀을 사용하거나 튜닝하는 것이 좋습니다. 인스턴스 유형별 vCPU 수에 대한 자세한 내용은 [Amazon RDS 인스턴스 유형](https://aws.amazon.com/rds/instance-types/)을 참조하세요.

연결 풀링에 대한 자세한 내용은 다음 리소스를 참조하세요.
+ [Aurora용 Amazon RDS Proxy](rds-proxy.md)
+ [pgbouncer](http://www.pgbouncer.org/usage.html)
+ *PostgreSQL 설명서*의 [연결 풀 및 데이터 원본](https://www.postgresql.org/docs/7.4/jdbc-datasource.html)

### Aurora PostgreSQL 버전 업그레이드
<a name="apg-waits.lw-lock-manager.actions.pg-version"></a>

현재 버전의 Aurora PostgreSQL이 12보다 낮은 경우 버전 12 이상으로 업그레이드하세요. PostgreSQL 버전 12 및 13에는 향상된 파티션 메커니즘이 있습니다. 버전 12의 더 자세한 정보는 [PostgreSQL 릴리스 12.0]( https://www.postgresql.org/docs/release/12.0/)을 참조하세요. Aurora PostgreSQL 업그레이드에 대한 자세한 내용은 [Amazon Aurora PostgreSQL에 대한 데이터베이스 엔진 업데이트](AuroraPostgreSQL.Updates.md) 섹션을 참조하세요.

# LWLock:MultiXact
<a name="apg-waits.lwlockmultixact"></a>

`LWLock:MultiXactMemberBuffer`, `LWLock:MultiXactOffsetBuffer`, `LWLock:MultiXactMemberSLRU` 및 `LWLock:MultiXactOffsetSLRU` 대기 이벤트는 세션이 지정된 테이블에 있는 동일한 행을 수정하는 트랜잭션 목록을 검색하기 위해 대기 중임을 나타냅니다.
+ `LWLock:MultiXactMemberBuffer` – 프로세스가 multixact 멤버를 위해 가장 오래전에 사용된 단순(SLRU) 버퍼에서 I/O를 기다리고 있습니다.
+ `LWLock:MultiXactMemberSLRU` – 프로세스가 multixact 멤버를 위해 가장 오래전에 사용된 단순(SLRU) 캐시에 액세스하기 위해 대기 중입니다.
+ `LWLock:MultiXactOffsetBuffer` – 프로세스가 multixact 오프셋을 위해 가장 오래전에 사용된 단순(SLRU) 버퍼에서 I/O를 기다리고 있습니다.
+ `LWLock:MultiXactOffsetSLRU` – 프로세스가 multixact 오프셋을 위해 가장 오래전에 사용된 단순(SLRU) 캐시에 액세스하기 위해 대기 중입니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.xactsync.context.supported)
+ [컨텍스트](#apg-waits.lwlockmultixact.context)
+ [대기 증가의 가능한 원인](#apg-waits.lwlockmultixact.causes)
+ [작업](#apg-waits.lwlockmultixact.actions)

## 지원되는 엔진 버전
<a name="apg-waits.xactsync.context.supported"></a>

이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전에서 지원됩니다.

## 컨텍스트
<a name="apg-waits.lwlockmultixact.context"></a>

**multixact는 동일한 테이블 행을 수정하는 트랜잭션 ID(XID) 목록을 저장하는 데이터 구조입니다. 단일 트랜잭션이 특정 테이블의 행을 참조하는 경우 트랜잭션 ID가 해당 테이블의 헤더 행에 저장됩니다. 여러 트랜잭션이 특정 테이블의 동일한 행을 참조하는 경우 트랜잭션 ID 목록이 multixact 데이터 구조에 저장됩니다. multixact 대기 이벤트는 세션이 데이터 구조에서 테이블의 지정된 행을 참조하는 트랜잭션 목록을 검색하고 있음을 나타냅니다.

## 대기 증가의 가능한 원인
<a name="apg-waits.lwlockmultixact.causes"></a>

multixact를 사용하는 세 가지 일반적인 원인은 다음과 같습니다.
+ **명시적 세이브 포인트의 하위 트랜잭션** – 트랜잭션에서 명시적으로 저장점을 생성하면 동일한 행에 대한 새 트랜잭션이 생성됩니다. 예를 들자면 `SELECT FOR UPDATE`를 사용한 다음 `SAVEPOINT`와 `UPDATE`를 차례대로 사용하는 식입니다.

  일부 드라이버, ORM(객체 관계 매퍼) 및 추상화 계층에는 모든 작업을 저장점으로 자동 래핑하는 구성 옵션이 있습니다. 이 옵션 때문에 일부 워크로드에서 multixact 대기 이벤트가 많이 생성될 수 있습니다. PostgreSQL JDBC 드라이버의 `autosave` 옵션이 대표적인 예입니다. 자세한 내용은 PostgreSQL JDBC 설명서의 [pgJDBC](https://jdbc.postgresql.org/)를 참조하세요. 또 다른 예는 PostgreSQL ODBC 드라이버와 이 드라이버의 `protocol` 옵션입니다. 자세한 내용은 PostgreSQL ODBC 드라이버 설명서의 [psqlODBC 구성 옵션](https://odbc.postgresql.org/docs/config.html)을 참조하세요.
+ **PL/pgSQL EXCEPTION 조항의 하위 트랜잭션** - PL/pgSQL 함수 또는 프로시저에서 작성한 각 `EXCEPTION` 절은 `SAVEPOINT`를 내부에서 생성합니다.
+ **외래 키** - 여러 트랜잭션이 상위 행에 대한 공유 잠금을 획득합니다.

지정된 행이 다중 트랜잭션 작업에 포함된 경우, 행을 처리하려면 `multixact` 목록에서 트랜잭션 ID를 검색해야 합니다. 조회 시 메모리 캐시에서 multixact를 가져올 수 없는 경우, Aurora 스토리지 계층에서 데이터 구조를 읽어야 합니다. 스토리지의 이 I/O에서는 SQL 쿼리가 더 오래 걸릴 수 있습니다. 다중 트랜잭션이 너무 많아 사용량이 많아지만 메모리 캐시 누락이 발생할 수 있습니다. 이러한 모든 요인은 이 대기 이벤트의 증가를 유발합니다.

## 작업
<a name="apg-waits.lwlockmultixact.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다. 이러한 작업 중 일부는 대기 이벤트를 즉시 줄이는 데 도움이 될 수 있습니다. 하지만 워크로드의 규모를 조정하기 위해 조사 및 수정이 필요한 경우도 있습니다.

**Topics**
+ [이 대기 이벤트가 발생한 테이블에서 vacuum freeze 수행](#apg-waits.lwlockmultixact.actions.vacuumfreeze)
+ [이 대기 이벤트가 있는 테이블의 autovacuum 빈도 상향](#apg-waits.lwlockmultixact.actions.autovacuum)
+ [메모리 파라미터 상향](#apg-waits.lwlockmultixact.actions.memoryparam)
+ [장기 실행 트랜잭션 저감](#apg-waits.lwlockmultixact.actions.longtransactions)
+ [장기적인 조치](#apg-waits.lwlockmultixact.actions.longactions)

### 이 대기 이벤트가 발생한 테이블에서 vacuum freeze 수행
<a name="apg-waits.lwlockmultixact.actions.vacuumfreeze"></a>

이 대기 이벤트가 급증하여 프로덕션 환경에 영향을 미치는 경우, 다음과 같은 임시 방법 중 하나를 사용하여 이벤트 수를 줄일 수 있습니다.
+ 영향을 받는 테이블 또는 테이블 파티션에서 VACUUM FREEZE를 사용하여 문제를 즉시 해결합니다.** 자세한 내용은 [VACUUM](https://www.postgresql.org/docs/current/sql-vacuum.html)을 참조하세요.
+ VACUUM(FREEZE, INDEX\$1CLEANUP FALSE) 절을 사용하여 인덱스를 건너뛰고 빠르게 vacuum을 수행합니다. 자세한 내용은 [테이블에 최대한 신속하게 vacuum 실행](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Autovacuum.LargeIndexes.html#Appendix.PostgreSQL.CommonDBATasks.Autovacuum.LargeIndexes.Executing)을 참조하세요.

### 이 대기 이벤트가 있는 테이블의 autovacuum 빈도 상향
<a name="apg-waits.lwlockmultixact.actions.autovacuum"></a>

모든 데이터베이스의 모든 테이블을 스캔한 후 VACUUM은 multixact를 제거하며, 가장 오래된 multixact 값이 승격됩니다. 자세한 내용은 [Multixacts 및 랩어라운드](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-MULTIXACT-WRAPAROUND)를 참조하세요. LWLock:MultiXact 대기 이벤트를 최소화하려면 VACUUM을 필요한 만큼 자주 실행해야 합니다. 이렇게 하려면 Aurora PostgreSQL DB 클러스터의 VACUUM이 최적으로 구성되어 있어야 합니다.

영향을 받는 테이블 또는 테이블 파티션에서 VACUUM FREEZE를 사용하여 대기 이벤트 문제가 해결되면 인스턴스 수준에서 autovacuum을 조정하는 대신 VACUUM을 수행할 수 있도록 `pg_cron` 등의 스케줄러를 사용하는 것이 좋습니다.

autovacuum이 더 자주 실행되도록 하려면 영향을 받는 테이블의 스토리지 파라미터 `autovacuum_multixact_freeze_max_age`의 값을 줄일 수 있습니다. 자세한 내용은 [autovacuum\$1multixact\$1freeze\$1max\$1age](https://www.postgresql.org/docs/current/runtime-config-autovacuum.html#GUC-AUTOVACUUM-MULTIXACT-FREEZE-MAX-AGE)를 참조하세요.

### 메모리 파라미터 상향
<a name="apg-waits.lwlockmultixact.actions.memoryparam"></a>

다음 파라미터를 조정하여 multixact 캐시의 메모리 사용량을 최적화할 수 있습니다. 이러한 설정은 이러한 캐시에 예약되는 메모리의 양을 제어하므로 워크로드의 multixact 대기 이벤트를 줄이는 데 도움이 될 수 있습니다. 다음 값으로 시작하는 것이 좋습니다.

Aurora PostgreSQL 17 이상의 경우:  
+ `multixact_offset_buffers` = 128
+ `multixact_member_buffers` = 256

Aurora PostgreSQL 16 이하의 경우:  
+ `multixact_offsets_cache_size` = 128
+ `multixact_members_cache_size` = 256

**참고**  
Aurora PostgreSQL 17에서는 커뮤니티 PostgreSQL 17에 맞게 파라미터 이름이 `multixact_offsets_cache_size`에서 `multixact_offset_buffers`로, `multixact_members_cache_size`에서 `multixact_member_buffers`로 변경되었습니다.

클러스터의 모든 인스턴스가 일관되게 유지되도록 클러스터 수준에서 이러한 파라미터를 설정할 수 있습니다. 특정 워크로드 요구 사항 및 인스턴스 클래스에 가장 적합하도록 값을 테스트하고 조정하는 것이 좋습니다. 파라미터 변경 사항을 적용하려면 인스턴스를 재부팅해야 합니다.

파라미터는 multixact 캐시 항목으로 표시됩니다. 각 캐시 항목은 `8 KB`의 메모리를 사용합니다. 예약된 총 메모리를 계산하려면 각 파라미터 값에 `8 KB`를 곱합니다. 예를 들어 파라미터를 128로 설정하면 총 예약 메모리는 `128 * 8 KB = 1 MB`입니다.

### 장기 실행 트랜잭션 저감
<a name="apg-waits.lwlockmultixact.actions.longtransactions"></a>

장기 실행 트랜잭션은 트랜잭션이 커밋되거나 읽기 전용 트랜잭션이 종료될 때까지 vacuum이 트랜잭션 정보를 유지합니다. 장기 실행 트랜잭션을 사전에 모니터링하고 관리하는 것이 좋습니다. 자세한 내용은 [데이터베이스가 트랜잭션 연결 시 오랫동안 유휴 상태로 실행됨](PostgreSQL.Tuning_proactive_insights.md#proactive-insights.idle-txn) 섹션을 참조하세요. 장기 실행 트랜잭션의 사용을 방지하거나 최소화하도록 애플리케이션을 수정해 보세요.

### 장기적인 조치
<a name="apg-waits.lwlockmultixact.actions.longactions"></a>

워크로드를 검사하여 multixact 스필오버의 원인을 찾아내세요. 워크로드의 규모를 조정하고 대기 이벤트를 줄이려면 문제를 해결해야 합니다.
+ 테이블을 만드는 데 사용한 DDL(데이터 정의 언어)을 분석해야 합니다. 테이블 구조와 인덱스가 제대로 설계되었는지 확인하세요.
+ 영향을 받는 테이블에 외래 키가 있는 경우, 외래 키가 필요한지 또는 참조 무결성을 적용할 다른 방법이 있는지 파악하세요.
+ 테이블에 사용되지 않은 대용량 인덱스가 있으면 autovacuum이 워크로드에 맞지 않아 실행이 차단될 수 있습니다. 이를 방지하려면 사용되지 않은 인덱스가 있는지 확인하고, 있는 경우 이를 완전히 제거하세요. 자세한 내용은 [대용량 인덱스가 있는 autovacuum 관리](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Autovacuum.LargeIndexes.html)를 참조하세요.
+ 트랜잭션에서 세이브 포인트 사용을 줄이세요.

# LWLock:pg\$1stat\$1statements
<a name="apg-rpg-lwlockpgstat"></a>

LWLock:pg\$1stat\$1statements 대기 이벤트는 `pg_stat_statements` 확장이 SQL 문을 추적하는 해시 테이블에서 배타적 잠금을 수행할 때 발생합니다. 다음 시나리오에서 발생할 수 있습니다.
+ 추적된 문 수가 구성된 `pg_stat_statements.max` 파라미터 값에 도달하고 더 많은 항목을 위한 공간을 확보해야 하는 경우, 확장은 직접 호출 수를 기준으로 정렬을 수행하고 가장 적게 실행된 문 중 5%를 제거한 다음 해시를 나머지 항목으로 다시 채웁니다.
+ `pg_stat_statements`가 디스크의 `pgss_query_texts.stat` 파일에 대해 `garbage collection` 작업을 수행하고 파일을 다시 쓰는 경우

**Topics**
+ [지원되는 엔진 버전](#apg-rpg-lwlockpgstat.supported)
+ [컨텍스트](#apg-rpg-lwlockpgstat.context)
+ [대기 증가의 가능한 원인](#apg-rpg-lwlockpgstat.causes)
+ [작업](#apg-rpg-lwlockpgstat.actions)

## 지원되는 엔진 버전
<a name="apg-rpg-lwlockpgstat.supported"></a>

 이 대기 이벤트 정보는 모든 Aurora PostgreSQL 버전에서 지원됩니다.

## 컨텍스트
<a name="apg-rpg-lwlockpgstat.context"></a>

**pg\$1stat\$1statements 확장 이해** - pg\$1stat\$1statements 확장은 해시 테이블에서 SQL 문 실행 통계를 추적합니다. 이 확장은 `pg_stat_statements.max` 파라미터에서 정의된 한도까지 SQL 문을 추적합니다. 이 파라미터는 추적할 수 있는 문의 최대 수를 결정하며, 이는 pg\$1stat\$1statements 뷰의 최대 행 수에 해당합니다.

**문 통계 지속성** - 이 확장은 다음을 통해 인스턴스 재시작 시 문 통계를 유지합니다.
+ pg\$1stat\$1statements.stat라는 파일에 데이터 쓰기
+ pg\$1stat\$1statements.save 파라미터를 사용하여 지속성 동작 제어

pg\$1stat\$1statements.save가 다음과 같이 설정된 경우:
+ on(기본값): 통계는 종료 시 저장되고 서버 시작 시 다시 로드됩니다.
+ off: 통계는 종료 시 저장되지 않으며 서버 시작 시 다시 로드되지 않습니다.

**쿼리 텍스트 저장소** - 이 확장은 추적된 쿼리의 텍스트를 `pgss_query_texts.stat`라는 파일에 저장합니다. 이 파일은 폐영역 회수가 발생하기 전에 추적된 모든 SQL 문의 평균 크기의 두 배까지 늘어날 수 있습니다. 이 확장에는 정리 작업 및 `pgss_query_texts.stat` 파일 재작성 중에 해시 테이블에 대한 배타적 잠금이 필요합니다.

**문 할당 취소 프로세스** - 추적된 문 수가 `pg_stat_statements.max` 한도에 도달하고 새 문을 추적해야 하는 경우 확장은 다음을 수행합니다.
+ 해시 테이블에서 배타적 잠금(LWLock:pg\$1stat\$1statements)을 수행합니다.
+ 기존 데이터를 로컬 메모리에 로드합니다.
+ 직접 호출 수를 기반으로 빠른 정렬을 수행합니다.
+ 가장 적게 호출된 문(하위 5%)을 제거합니다.
+ 해시 테이블을 나머지 항목으로 다시 채웁니다.

**문 할당 취소 모니터링** - PostgreSQL 14 이상에서는 pg\$1stat\$1statements\$1info 뷰를 사용하여 문 할당 취소를 모니터링할 수 있습니다. 이 뷰에는 새 문을 위한 공간을 마련하기 위해 문을 할당 취소한 횟수를 보여주는 dealloc 열이 포함되어 있습니다.

문의 할당 취소가 자주 발생하면 디스크에서 `pgss_query_texts.stat` 파일의 폐영역 회수가 더 자주 발생합니다.

## 대기 증가의 가능한 원인
<a name="apg-rpg-lwlockpgstat.causes"></a>

`LWLock:pg_stat_statements` 대기 시간 증가의 일반적인 원인은 다음과 같습니다.
+ 애플리케이션에서 사용하는 고유 쿼리 수가 증가함
+ 사용되는 고유 쿼리 수 대비 `pg_stat_statements.max` 파라미터 값이 작음

## 작업
<a name="apg-rpg-lwlockpgstat.actions"></a>

대기 이벤트의 원인에 따라 다른 작업을 권장합니다. Amazon RDS Performance Insights를 사용하거나 `pg_stat_activity` 뷰를 쿼리하여 `LWLock:pg_stat_statements` 이벤트를 식별할 수 있습니다.

다음 `pg_stat_statements` 파라미터를 조정하여 추적 동작을 제어하고 LWLock:pg\$1stat\$1 문 대기 이벤트를 줄입니다.

**Topics**
+ [pg\$1stat\$1statements.track 파라미터 비활성화](#apg-rpg-lwlockpgstat.actions.disabletrack)
+ [pg\$1stat\$1statements.max 파라미터 증가](#apg-rpg-lwlockpgstat.actions.increasemax)
+ [pg\$1stat\$1statements.track\$1utility 파라미터 비활성화](#apg-rpg-lwlockpgstat.actions.disableutility)

### pg\$1stat\$1statements.track 파라미터 비활성화
<a name="apg-rpg-lwlockpgstat.actions.disabletrack"></a>

LWLock:pg\$1stat\$1statements 대기 이벤트가 데이터베이스 성능에 부정적인 영향을 미치고 근본 원인을 식별하기 위해 `pg_stat_statements` 뷰를 추가로 분석하기 전에 신속한 솔루션이 필요한 경우 `pg_stat_statements.track` 파라미터를 `none`으로 설정하여 파라미터를 비활성화할 수 있습니다. 그러면 문 통계 수집이 비활성화됩니다.

### pg\$1stat\$1statements.max 파라미터 증가
<a name="apg-rpg-lwlockpgstat.actions.increasemax"></a>

할당 취소를 줄이고 디스크에서 `pgss_query_texts.stat` 파일의 폐영역 회수를 최소화하려면 `pg_stat_statements.max` 파라미터 값을 늘립니다. 기본값은 `5,000`입니다.

**참고**  
`pg_stat_statements.max` 파라미터는 정적입니다. 이 파라미터에 변경 사항을 적용하려면 DB 인스턴스를 다시 시작해야 합니다.

### pg\$1stat\$1statements.track\$1utility 파라미터 비활성화
<a name="apg-rpg-lwlockpgstat.actions.disableutility"></a>

pg\$1stat\$1statements 뷰를 분석하여 `pg_stat_statements`에서 추적하는 리소스를 가장 많이 소비하는 유틸리티 명령을 확인할 수 있습니다.

`pg_stat_statements.track_utility` 파라미터는 모듈이 SELECT, INSERT, UPDATE, DELETE 및 MERGE를 제외한 모든 명령을 포함하는 유틸리티 명령을 추적하는지를 제어합니다. 이 파라미터는 기본적으로 `on`로 설정되어 있습니다.

예를 들어 애플리케이션이 본질적으로 고유한 많은 저장점 쿼리를 사용하는 경우 문 할당 취소가 증가할 수 있습니다. 이를 해결하기 위해 `pg_stat_statements.track_utility` 파라미터를 비활성화하여 `pg_stat_statements`가 저장점 쿼리를 추적하지 않도록 할 수 있습니다.

**참고**  
`pg_stat_statements.track_utility` 파라미터는 동적 파라미터입니다. 데이터베이스 인스턴스를 다시 시작하지 않고도 값을 변경할 수 있습니다.

**Example pg\$1stat\$1statements의 고유한 저장점 쿼리 예시**  <a name="savepoint-queries"></a>

```
                     query                       |       queryid       
-------------------------------------------------+---------------------
 SAVEPOINT JDBC_SAVEPOINT_495701                 | -7249565344517699703
 SAVEPOINT JDBC_SAVEPOINT_1320                   | -1572997038849006629
 SAVEPOINT JDBC_SAVEPOINT_26739                  |  54791337410474486
 SAVEPOINT JDBC_SAVEPOINT_1294466                |  8170064357463507593
 ROLLBACK TO SAVEPOINT JDBC_SAVEPOINT_65016      | -33608214779996400
 SAVEPOINT JDBC_SAVEPOINT_14185                  | -2175035613806809562
 SAVEPOINT JDBC_SAVEPOINT_45837                  | -6201592986750645383
 SAVEPOINT JDBC_SAVEPOINT_1324                   |  6388797791882029332
```

PostgreSQL 17에는 유틸리티 명령 추적을 위한 몇 가지 향상된 기능이 도입되었습니다.
+ 이제 Savepoint 이름이 상수로 표시됩니다.
+ 이제 두 단계 커밋 명령의 글로벌 트랜잭션 ID(GID)가 상수로 표시됩니다.
+ DEALLOCATE 문의 이름이 상수로 표시됩니다.
+ 이제 CALL 파라미터가 상수로 표시됩니다.

# Timeout:PgSleep
<a name="apg-waits.timeoutpgsleep"></a>

`Timeout:PgSleep` 이벤트는 서버 프로세스가 `pg_sleep` 함수를 가리키고 및 절전 시간 초과가 만료될 때까지 대기할 때 발생합니다.

**Topics**
+ [지원되는 엔진 버전](#apg-waits.timeoutpgsleep.context.supported)
+ [대기 증가의 가능한 원인](#apg-waits.timeoutpgsleep.causes)
+ [작업](#apg-waits.timeoutpgsleep.actions)

## 지원되는 엔진 버전
<a name="apg-waits.timeoutpgsleep.context.supported"></a>

이 대기 이벤트 정보는 모든 버전의 Aurora PostgreSQL에서 지원됩니다.

## 대기 증가의 가능한 원인
<a name="apg-waits.timeoutpgsleep.causes"></a>

이 대기 이벤트는 애플리리케이션, 저장된 함수 또는 사용자가 다음 함수 중 하나를 호출하는 SQL 문을 실행할 때 발생합니다.
+ `pg_sleep`
+ `pg_sleep_for`
+ `pg_sleep_until`

위의 함수는 지정된 시간(초)이 경과할 때까지 실행을 지연시킵니다. 예를 들어, `SELECT pg_sleep(1)`은 1초 동안 일시 중지됩니다. 자세한 내용은 PostgreSQL 설명서의 [실행 지연](https://www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-DELAY)을 참조하세요.

## 작업
<a name="apg-waits.timeoutpgsleep.actions"></a>

`pg_sleep` 함수를 실행 중인 명령문을 식별합니다. 함수의 사용이 적절한지 확인합니다.

# Amazon DevOps Guru의 사전 예방 인사이트를 활용하여 Aurora PostgreSQL 튜닝
<a name="PostgreSQL.Tuning_proactive_insights"></a>

DevOps Guru의 사전 예방 인사이트는 Aurora PostgreSQL DB 클러스터에서 문제를 일으킬 수 있는 조건을 감지하여 문제가 발생하기 전에 이를 알려줍니다. 사전 예방적 인사이트를 통해 트랜잭션 연결의 장기 유휴 상태를 경고할 수 있습니다. 트랜잭션 연결에서 유휴 상태로 오래 실행되는 문제 해결에 대한 자세한 내용은 [데이터베이스가 트랜잭션 연결 시 오랫동안 유휴 상태로 실행됨](#proactive-insights.idle-txn) 섹션을 참조하세요.

DevOps Guru는 다음과 같은 작업을 수행할 수 있습니다.
+ 데이터베이스 구성을 일반적인 권장 설정과 교차 검사하여 여러 가지 일반적인 데이터베이스 문제를 방지합니다.
+ 확인하지 않은 상태로 두면 나중에 더 큰 문제로 이어질 수 있는 플릿의 심각한 문제를 알려줍니다.
+ 새로 발견된 문제를 알려줍니다.

모든 사전 예방 인사이트에는 문제의 원인에 대한 분석과 수정 조치를 위한 권장 사항이 포함됩니다.

Amazon DevOps Guru for Amazon RDS에 대한 자세한 내용은 [Amazon DevOps Guru for Amazon RDS로 Aurora 성능 이상 분석](devops-guru-for-rds.md) 섹션을 참조하세요.

## 데이터베이스가 트랜잭션 연결 시 오랫동안 유휴 상태로 실행됨
<a name="proactive-insights.idle-txn"></a>

데이터베이스에 대한 연결이 1,800초 이상 `idle in transaction` 상태로 지속되었습니다.

**Topics**
+ [지원되는 엔진 버전](#proactive-insights.idle-txn.context.supported)
+ [컨텍스트](#proactive-insights.idle-txn.context)
+ [이 문제의 잠재적 원인](#proactive-insights.idle-txn.causes)
+ [작업](#proactive-insights.idle-txn.actions)
+ [관련 지표](#proactive-insights.idle-txn.metrics)

### 지원되는 엔진 버전
<a name="proactive-insights.idle-txn.context.supported"></a>

이 인사이트 정보는 Aurora PostgreSQL의 모든 버전에서 지원됩니다.

### 컨텍스트
<a name="proactive-insights.idle-txn.context"></a>

해당 `idle in transaction` 상태의 트랜잭션은 다른 쿼리를 차단하는 잠금을 유지할 수 있습니다. 또한 `VACUUM`(autovacuum 포함)이 잘못된 행을 정리하여 인덱스 또는 테이블 팽창 또는 트랜잭션 ID 랩어라운드로 이어지는 것을 방지할 수 있습니다.

### 이 문제의 잠재적 원인
<a name="proactive-insights.idle-txn.causes"></a>

BEGIN 또는 START TRANSACTION을 사용하여 대화형 세션에서 시작된 트랜잭션이 COMMIT, ROLLBACK 또는 END 명령을 사용하여 종료되지 않았습니다. 이 경우 트랜잭션이 `idle in transaction` 상태로 이동합니다.

### 작업
<a name="proactive-insights.idle-txn.actions"></a>

`pg_stat_activity` 쿼리를 통해 유휴 트랜잭션을 찾을 수 있습니다.

SQL 클라이언트에서 다음 쿼리를 실행하여 `idle in transaction` 상태의 모든 연결을 나열하고 기간별로 정렬합니다.

```
SELECT now() - state_change as idle_in_transaction_duration, now() - xact_start as xact_duration,* 
FROM  pg_stat_activity 
WHERE state  = 'idle in transaction'
AND   xact_start is not null
ORDER BY 1 DESC;
```

인사이트의 원인에 따라 다른 조치를 취할 것을 권장합니다.

**Topics**
+ [트랜잭션 종료](#proactive-insights.idle-txn.actions.end-txn)
+ [연결 종료](#proactive-insights.idle-txn.actions.end-connection)
+ [idle\$1in\$1transaction\$1session\$1timeout 파라미터 구성](#proactive-insights.idle-txn.actions.parameter)
+ [AUTOCOMMIT 상태 확인](#proactive-insights.idle-txn.actions.autocommit)
+ [애플리케이션 코드에서 트랜잭션 로직 확인](#proactive-insights.idle-txn.actions.app-logic)

#### 트랜잭션 종료
<a name="proactive-insights.idle-txn.actions.end-txn"></a>

BEGIN 또는 START TRANSACTION을 사용하여 대화형 세션에서 트랜잭션을 시작하면 트랜잭션이 `idle in transaction` 상태로 이동합니다. COMMIT, ROLLBACK, END 명령을 실행하여 트랜잭션을 종료하거나 연결을 완전히 끊어 트랜잭션을 롤백할 때까지 이 상태로 유지됩니다.

#### 연결 종료
<a name="proactive-insights.idle-txn.actions.end-connection"></a>

다음 쿼리를 사용하여 유휴 트랜잭션과의 연결을 종료합니다.

```
SELECT pg_terminate_backend(pid);
```

pid는 연결의 프로세스 ID입니다.

#### idle\$1in\$1transaction\$1session\$1timeout 파라미터 구성
<a name="proactive-insights.idle-txn.actions.parameter"></a>

파라미터 그룹에서 `idle_in_transaction_session_timeout` 파라미터를 구성합니다. 이 파라미터를 구성하면 트랜잭션의 오랜 유휴 상태를 종료하기 위해 수동 개입이 필요하지 않다는 이점이 있습니다. 이 파라미터에 대한 자세한 내용은 [PostgreSQL 설명서](https://www.postgresql.org/docs/current/runtime-config-client.html)를 참조하세요.

트랜잭션이 idle\$1in\$1transaction 상태로 지정된 시간보다 오래 열려 있는 경우 연결이 종료된 후 PostgreSQL 로그 파일에 다음 메시지가 보고됩니다.

```
FATAL: terminating connection due to idle in transaction timeout
```

#### AUTOCOMMIT 상태 확인
<a name="proactive-insights.idle-txn.actions.autocommit"></a>

AUTOCOMMIT은 기본적으로 활성화되어 있습니다. 하지만 클라이언트에서 실수로 비화성화된 경우에는 반드시 다시 활성화해야 합니다.
+ psql 클라이언트에서 다음 명령을 실행합니다.

  ```
  postgres=> \set AUTOCOMMIT on
  ```
+ pgadmin에서 아래쪽 화살표에서 AUTOCOMMIT 옵션을 선택하여 활성화합니다.  
![\[pgadmin에서 AUTOCOMMIT을 선택하여 활성화합니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-insight-pgadmin-autocommit.png)

#### 애플리케이션 코드에서 트랜잭션 로직 확인
<a name="proactive-insights.idle-txn.actions.app-logic"></a>

애플리케이션 로직에 문제가 있는지 조사합니다. 다음 조치를 고려해 보세요.
+ JDBC 자동 커밋이 애플리케이션에서 참으로 설정되어 있는지 확인합니다. 또한 코드에 명시적 `COMMIT` 명령을 사용하는 것도 고려해 보세요.
+ 오류 처리 로직을 확인하여 오류 발생 후 트랜잭션이 종료되는지 확인합니다.
+ 트랜잭션이 열려 있는 동안 애플리케이션이 쿼리에서 반환된 행을 처리하는 데 시간이 오래 걸리는지 확인합니다. 그렇다면 행을 처리하기 전에 트랜잭션을 닫도록 애플리케이션을 코딩하는 것을 고려해 보세요.
+ 트랜잭션에 장기 실행 작업이 많이 포함되어 있는지 확인합니다. 그렇다면 단일 트랜잭션을 여러 트랜잭션으로 나누세요.

### 관련 지표
<a name="proactive-insights.idle-txn.metrics"></a>

이 인사이트와 관련된 PI 지표는 다음과 같습니다.
+ idle\$1in\$1transaction\$1count - `idle in transaction` 상태에 있는 세션 수입니다.
+ idle\$1in\$1transaction\$1max\$1time - `idle in transaction` 상태에서 가장 오래 실행되는 트랜잭션의 지속 시간입니다.

# Amazon Aurora PostgreSQL 모범 사례
<a name="AuroraPostgreSQL.BestPractices"></a>

다음에서는 Amazon Aurora PostgreSQL DB 클러스터를 관리하기 위한 몇 가지 모범 사례를 찾을 수 있습니다. 기본적인 유지 관리 작업도 검토하세요. 자세한 내용은 [Amazon Aurora PostgreSQL의 성능 및 규모 조정](AuroraPostgreSQL.Managing.md) 섹션을 참조하세요.

**Topics**
+ [Aurora PostgreSQL DB 인스턴스의 성능 저하, 자동 재시작 및 장애 조치 방지](#AuroraPostgreSQL.BestPractices.Avoiding)
+ [테이블 및 인덱스 팽창 진단](AuroraPostgreSQL.diag-table-ind-bloat.md)
+ [Amazon Aurora PostgreSQL에서 다수의 객체 관리](PostgreSQL.HighObjectCount.md)
+ [Aurora PostgreSQL의 향상된 메모리 관리](AuroraPostgreSQL.BestPractices.memory.management.md)
+ [Amazon Aurora PostgreSQL를 사용한 빠른 장애 조치](AuroraPostgreSQL.BestPractices.FastFailover.md)
+ [장애 조치 후 Aurora PostgreSQL용 클러스터 캐시 관리를 통한 신속한 복구](AuroraPostgreSQL.cluster-cache-mgmt.md)
+ [풀링으로 Aurora PostgreSQL 연결 이탈 관리](AuroraPostgreSQL.BestPractices.connection_pooling.md)
+ [PostgreSQL에서 연결 중단 처리](Appendix.PostgreSQL.CommonDBATasks.DeadConnectionHandling.md)
+ [Aurora PostgreSQL의 메모리 파라미터 조정](AuroraPostgreSQL.BestPractices.Tuning-memory-parameters.md)
+ [Amazon CloudWatch 지표를 사용한 Aurora PostgreSQL의 리소스 사용량 분석](AuroraPostgreSQL_AnayzeResourceUsage.md)
+ [논리적 복제를 사용하여 Aurora PostgreSQL에 대한 메이저 버전 업그레이드 수행](AuroraPostgreSQL.MajorVersionUpgrade.md)
+ [Aurora PostgreSQL에서 사용자 지정 캐스트 관리](PostgreSQL.CustomCasts.md)
+ [Aurora PostgreSQL의 병렬 쿼리 모범 사례](PostgreSQL.ParallelQueries.md)
+ [Aurora PostgreSQL의 스토리지 문제 해결](AuroraPostgreSQL.BestPractices.TroubleshootingStorage.md)

## Aurora PostgreSQL DB 인스턴스의 성능 저하, 자동 재시작 및 장애 조치 방지
<a name="AuroraPostgreSQL.BestPractices.Avoiding"></a>

워크로드가 많거나 워크로드가 DB 인스턴스의 할당된 리소스 이상으로 급증하는 경우 애플리케이션과 Aurora 데이터베이스를 실행하는 데 사용되는 리소스가 소진될 수 있습니다. CPU 사용률, 메모리 사용량, 사용된 데이터베이스 연결 수와 같은 데이터베이스 인스턴스에 대한 지표를 얻으려면 Amazon CloudWatch, 성능 개선 도우미 및 향상된 모니터링에서 제공하는 지표를 참조할 수 있습니다. DB 인스턴스 모니터링에 대한 자세한 내용은 [Amazon Aurora 클러스터에서 지표 모니터링](MonitoringAurora.md) 섹션을 참조하세요.

워크로드가 사용 중인 리소스를 소진하면 DB 인스턴스가 느려지거나, 다시 시작되거나, 다른 DB 인스턴스로 장애 조치될 수 있습니다. 이를 방지하려면 리소스 사용률을 모니터링하고, DB 인스턴스에서 실행되는 워크로드를 검사하고, 필요한 경우 최적화하세요. 최적화가 인스턴스 지표를 개선하지 못하고 리소스 소진을 완화할 수 없다면 한도에 도달하기 전에 DB 인스턴스를 스케일 업하는 것을 고려해 보세요. 사용 가능한 DB 인스턴스 클래스 및 사양에 대한 자세한 내용은 [Amazon AuroraDB 인스턴스 클래스](Concepts.DBInstanceClass.md) 섹션을 참조하세요.

# 테이블 및 인덱스 팽창 진단
<a name="AuroraPostgreSQL.diag-table-ind-bloat"></a>

PostgreSQL 다중 버전 동시성 제어(MVCC)를 사용하여 데이터 무결성을 유지할 수 있습니다. PostgreSQL MVCC는 트랜잭션이 커밋되거나 롤백될 때까지 업데이트 또는 삭제된 행(*튜플*이라고도 함)의 내부 복사본을 저장하는 방식으로 작동합니다. 이 저장된 내부 복사본은 사용자에게 표시되지 않습니다. 그러나 VACUUM 또는 AUTOVACUUM 유틸리티를 사용해 이러한 보이지 않는 복사본을 주기적으로 정리하지 않으면 테이블 팽창이 발생할 수 있습니다. 테이블 팽창을 확인하지 않으면 스토리지 비용이 증가하고 처리 속도가 저하될 수 있습니다.

대부분의 경우 Aurora의 VACUUUM 또는 AUTOVACUUM에 대한 기본 설정만으로도 원치 않는 테이블 팽창을 충분히 처리할 수 있습니다. 하지만 애플리케이션에서 다음과 같은 상황이 발생할 경우에는 팽창 여부를 확인하는 것이 좋습니다.
+ 비교적 짧은 시간에 여러 VACUUM 프로세스 간에 많은 수의 트랜잭션을 처리하는 경우.
+ 성능이 저하되고 스토리지 용량이 부족한 경우.

시작하려면 죽은 튜플이 얼마나 많은 공간을 사용하고 있는지, 그리고 테이블 및 인덱스 팽창을 정리하면 어느 정도의 공간을 복구할 수 있는지에 대한 가장 정확한 정보를 수집하세요. 이를 수행하려면 `pgstattuple` 확장을 사용하여 Aurora 클러스터에서 통계를 수집합니다. 자세한 내용은 [pgstattuple](https://www.postgresql.org/docs/current/pgstattuple.html)을 참조하세요. `pgstattuple` 확장을 사용할 수 있는 권한은 `pg_stat_scan_tables` 역할 및 데이터베이스 수퍼유저로 제한됩니다.

Aurora에서 `pgstattuple` 확장을 생성하려면 클라이언트 세션을 클러스터(예: psql 또는 pgAdmin)에 연결하고 다음 명령을 사용하세요.

```
CREATE EXTENSION pgstattuple;
```

프로파일링하려는 각 데이터베이스에서 확장을 생성합니다. 확장을 생성한 후 명령줄 인터페이스(CLI)를 사용하여 회수할 수 있는 사용 불가 공간이 얼마인지 측정하세요. 통계를 수집하기 전에 AUTOVACUUM을 0으로 설정하여 클러스터 파라미터 그룹을 수정합니다. 0으로 설정하면 Aurora가 애플리케이션에서 남긴 죽은 튜플을 자동으로 정리할 수 없으므로, 결과의 정확도에 영향을 미칠 수 있습니다. 다음 명령을 입력하여 간단한 테이블을 생성합니다.

```
postgres=> CREATE TABLE lab AS SELECT generate_series (0,100000);
SELECT 100001
```

다음 예에서는 DB 클러스터에 대해 AUTOVACUUM이 켜진 상태에서 쿼리를 실행합니다. `dead_tuple_count`는 0이며, 이는 AUTOVACUUM이 사용되지 않는 데이터나 튜플을 PostgreSQL 데이터베이스에서 삭제했음을 나타냅니다.

`pgstattuple`을 사용하여 테이블에 대한 정보를 수집하려면 쿼리에 테이블 이름 또는 객체 식별자(OID)를 지정합니다.

```
postgres=> SELECT * FROM pgstattuple('lab');
```

```
    
    
table_len  | tuple_count | tuple_len | tuple_percent | dead_tuple_count | dead_tuple_len | dead_tuple_percent | free_space | free_percent
-----------+-------------+-----------+---------------+------------------+----------------+--------------------+------------+--------------
3629056    | 100001      | 2800028   | 77.16         | 0                | 0              | 0                  | 16616      | 0.46
(1 row)
```

다음 쿼리에서는 AUTOVACUUM을 끄고 테이블에서 25,000개의 행을 삭제하는 명령을 입력합니다. 그 결과, `dead_tuple_count`가 25000으로 증가합니다.

```
postgres=> DELETE FROM lab WHERE generate_series < 25000;    

DELETE 25000
```

```
SELECT * FROM pgstattuple('lab');
```

```
        
table_len | tuple_count | tuple_len | tuple_percent | dead_tuple_count | dead_tuple_len | dead_tuple_percent | free_space | free_percent
-----------+-------------+-----------+---------------+------------------+----------------+--------------------+------------+--------------
3629056 | 75001 | 2100028 | 57.87 | 25000 | 700000 | 19.29 | 16616 | 0.46
(1 row)
```

죽은 튜플을 회수하려면 VACUUM 프로세스를 시작합니다.

## 애플리케이션 중단 없이 팽창 관찰
<a name="AuroraPostgreSQL.diag-table-ind-bloat.Observing"></a>

Aurora 클러스터의 설정은 대부분의 워크로드에 대한 모범 사례를 제공하도록 최적화되어 있습니다. 하지만 사용자의 애플리케이션 및 사용 패턴에 더 잘 맞도록 클러스터를 최적화할 수도 있습니다. 이 경우 사용량이 많은 애플리케이션을 중단하지 않고 `pgstattuple` 확장을 사용하면 됩니다. 이렇게 하려면 다음 단계를 수행합니다.

1. Aurora 인스턴스를 복제합니다.

1. 파라미터 파일을 수정하여 클론에서 AUTOVACUUM을 끕니다.

1. 샘플 워크로드 또는 pgbench(PostgreSQL에서 벤치마크 테스트를 실행하기 위한 프로그램)를 사용하여 클론을 테스트하는 동안 `pgstattuple` 쿼리를 수행합니다. 자세한 내용은 [pgbench](https://www.postgresql.org/docs/current/pgbench.html) 섹션을 참조하세요.

애플리케이션을 실행하고 결과를 확인한 후, 복원된 사본에서 pg\$1repack 또는 VACUUM FULL을 사용하여 차이점을 비교해 봅니다. dead\$1tuple\$1count, dead\$1tuple\$1len 또는 dead\$1tuple\$1percent가 크게 감소한 경우 프로덕션 클러스터의 정리 일정을 조정하여 팽창을 최소화하세요.

## 임시 테이블의 팽창 방지
<a name="AuroraPostgreSQL.diag-table-ind-bloat.AvoidinginTables"></a>

애플리케이션에서 임시 테이블을 생성할 경우, 이러한 임시 테이블이 더 이상 필요하지 않을 때는 애플리케이션에서 해당 임시 테이블을 제거해야 합니다. 자동 정리 프로세스에서는 임시 테이블을 찾지 않습니다. 임시 테이블을 확인하지 않은 상태로 두면 데이터베이스 팽창이 빠르게 발생할 수 있습니다. 또한 팽창 현상은 시스템 테이블로 확장될 수 있습니다. 시스템 테이블은 pg\$1attribute 및 pg\$1depend와 같은 PostgreSQL 객체 및 속성을 추적하는 내부 테이블입니다.

임시 테이블이 더 이상 필요하지 않은 경우 TRUNCATE 문을 사용하여 테이블을 비우고 공간을 확보할 수 있습니다. 그런 다음, pg\$1attribute 및 pg\$1depend 테이블을 수동으로 정리합니다. 이러한 테이블을 정리하면 임시 테이블을 생성하고 잘라내거나 삭제해도 계속해서 튜플이 추가되거나 시스템 팽창이 발생하지 않습니다.

콘텐츠가 커밋될 때 새 행을 삭제하는 다음 구문을 포함하면 임시 테이블을 생성하는 동안 이러한 문제를 방지할 수 있습니다.

```
CREATE TEMP TABLE IF NOT EXISTS table_name(table_description) ON COMMIT DELETE ROWS;
```

이 `ON COMMIT DELETE ROWS` 절은 트랜잭션이 커밋될 때 임시 테이블을 잘라냅니다.

## 인덱스의 팽창 방지
<a name="AuroraPostgreSQL.diag-table-ind-bloat.AvoidinginIndexes"></a>

테이블에서 인덱싱된 필드를 변경하면 인덱스 업데이트로 인해 해당 인덱스에 하나 이상의 죽은 튜플이 생성됩니다. 기본적으로 autovacuum 프로세스는 인덱스의 팽창을 정리하지만, 이러한 정리에는 상당히 많은 시간과 리소스가 사용됩니다. 테이블을 생성할 때 인덱스 정리 기본 설정을 지정하려면 vacuum\$1index\$1cleanup 절을 포함하세요. 기본적으로 테이블 생성 시 해당 절은 AUTO로 설정됩니다. 즉, 테이블을 정리할 때 서버가 인덱스 정리가 필요한지 여부를 결정합니다. 이 절을 ON으로 설정하면 특정 테이블에 대한 인덱스 정리를 켤 수 있고, OFF로 설정하면 해당 테이블에 대한 인덱스 정리를 끌 수 있습니다. 인덱스 정리를 끄면 시간이 절약될 수 있지만 인덱스가 팽창할 수 있다는 점을 유의하세요.

명령줄에서 테이블에 VACUUM을 실행할 때 인덱스 정리를 수동으로 제어할 수 있습니다. 테이블을 정리하고 인덱스에서 죽은 튜플을 제거하려면 값이 ON이고 테이블 이름이 있는 INDEX\$1CLEANUP 절을 포함하세요.

```
acctg=> VACUUM (INDEX_CLEANUP ON) receivables;
        
INFO: aggressively vacuuming "public.receivables"
VACUUM
```

인덱스를 지우지 않고 테이블을 정리하려면 값을 OFF로 지정합니다.

```
acctg=> VACUUM (INDEX_CLEANUP OFF) receivables;
        
INFO: aggressively vacuuming "public.receivables"
VACUUM
```

# Amazon Aurora PostgreSQL에서 다수의 객체 관리
<a name="PostgreSQL.HighObjectCount"></a>

PostgreSQL 제한은 이론적이지만 데이터베이스의 객체 수가 매우 많으면 다양한 작업에서 성능에 상당한 영향을 미칠 수 있습니다. 이 설명서에서는 총 객체 수가 많을 때 여러 가지 영향을 미칠 수 있는 몇 가지 일반적인 객체 유형을 다룹니다.

다음 표에는 객체 유형과 그 잠재적 영향에 대한 요약이 있습니다.


**객체 유형 및 잠재적 영향**  

| 객체 유형 | AUTOVACUUM | 논리적 복제 | 메이저 버전 업그레이드 | pg\$1dump/pg\$1restore | 일반 성능 | 인스턴스 재시작 | 
| --- | --- | --- | --- | --- | --- | --- | 
| [관계](#PostgreSQL.HighObjectCount.Relations) | x |  | x | x | x |  | 
| [임시 테이블](#PostgreSQL.HighObjectCount.TempTables). | x |  |  |  | x |  | 
| [로깅되지 않은 테이블](#PostgreSQL.HighObjectCount.UnloggedTables) |  | x |  |  |  | x | 
| [파티션](#PostgreSQL.HighObjectCount.Partitions) |  |  |  |  | x |  | 
| [임시 파일](#PostgreSQL.HighObjectCount.TempFiles) |  |  |  |  | x |  | 
| [시퀀스](#PostgreSQL.HighObjectCount.Sequences) |  | x |  |  |  |  | 
| [대형 객체](#PostgreSQL.HighObjectCount.LargeObjects) |  | x | x |  |  |  | 

## 관계
<a name="PostgreSQL.HighObjectCount.Relations"></a>

PostgreSQL 데이터베이스의 테이블 수에는 구체적인 하드 제한이 없습니다. 이론적인 한도는 매우 높지만 데이터베이스 설계 중에 염두에 두어야 할 다른 실제 한도가 있습니다.

**영향: Autovacuum이 뒤처짐**  
Autovacuum이 작업량에 비해 작업자가 부족하여 트랜잭션 ID 증가 또는 테이블 팽창을 따라잡는 데 어려움을 겪을 수 있습니다.  
**권장 작업:** Autovacuum을 조정하여 지정된 수의 테이블과 지정된 워크로드를 제대로 따라잡기 위한 몇 가지 요소가 있습니다. 적절한 Autovacuum 설정을 결정하는 방법에 대한 제안은 [PostgreSQL Autovacuum 작업 모범 사례](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.BestPractices.html#AuroraPostgreSQL.BestPractices.Autovacuum)를 참조하세요. [postgres\$1get\$1av\$1diag 유틸리티](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.Functions.html)를 사용하여 트랜잭션 ID 증가 문제를 모니터링합니다.

**영향: 메이저 버전 업그레이드/pg\$1dump 및 복원**  
Amazon RDS는 pg\$1upgrade 실행 중에 "--link" 옵션을 사용하여 데이터 파일을 복사할 필요가 없습니다. 스키마 메타데이터는 여전히 데이터베이스의 새 버전으로 복원해야 합니다. 병렬 pg\$1restore를 사용하더라도 관계의 수가 많으면 가동 중지 시간이 늘어납니다.

**영향: 일반 성능 저하**  
카탈로그 크기로 인해 일반적인 성능이 저하됩니다. 각 테이블과 연결된 열은 일반 데이터베이스 작업에 자주 사용되는 `pg_attribute`, `pg_class` 및 `pg_depend` 테이블에 추가됩니다. 특정 대기 이벤트는 표시되지 않지만 공유 버퍼 효율성은 영향을 받습니다.  
**권장 작업:** 이러한 특정 테이블에 대한 테이블 팽창을 정기적으로 확인하고 가끔 이러한 특정 테이블에 대해 `VACUUM FULL`을 수행합니다. 카탈로그 테이블에서 `VACUUM FULL`에는 `ACCESS EXCLUSIVE` 잠금이 필요합니다. 즉, 작업이 완료될 때까지 다른 쿼리는 액세스할 수 없습니다.

**대략적인 임계값:** [수백만](#PostgreSQL.HighObjectCount.Note)

## 임시 테이블
<a name="PostgreSQL.HighObjectCount.TempTables"></a>

임시 테이블 사용은 테스트 데이터 또는 중간 결과에 유용하며 많은 데이터베이스 엔진에서 볼 수 있는 일반적인 패턴입니다. 일부 위험을 방지하려면 PostgreSQL에서 과도한 사용의 영향을 이해해야 합니다. 각 임시 테이블 생성 및 삭제는 시스템 카탈로그 테이블에 행을 추가하며, 테이블이 팽창하면 일반적인 성능 문제가 발생합니다.

**영향: Autovacuum이 뒤처짐**  
임시 테이블은 autovacuum에 의해 vacuum되지 않지만, 존재하는 동안 트랜잭션 ID를 유지하고 제거하지 않으면 랩어라운드로 이어질 수 있습니다.  
**권장 작업:** 임시 테이블은 테이블을 생성한 세션 기간 동안 유지되거나 수동으로 삭제할 수 있습니다. 임시 테이블을 사용하여 장기 실행 트랜잭션을 방지하는 모범 사례는 이러한 테이블이 최대 사용 트랜잭션 ID 증가에 기여하지 못하게 합니다.

**영향: 일반 성능 저하**  
카탈로그 크기로 인해 일반적인 성능이 저하됩니다. 세션이 임시 테이블을 지속적으로 생성하고 삭제할 때, 일반 데이터베이스 작업에 자주 사용되는 `pg_attribute`, `pg_class` 및 `pg_depend` 테이블에 추가됩니다. 특정 대기 이벤트는 표시되지 않지만 공유 버퍼 효율성은 영향을 받습니다.  
**권장 조치:**  
+ 이러한 특정 테이블에 대한 테이블 팽창을 정기적으로 확인하고 가끔 이러한 특정 테이블에 대해 `VACUUM FULL`을 수행합니다. 카탈로그 테이블에서 `VACUUM FULL`에는 `ACCESS EXCLUSIVE` 잠금이 필요합니다. 즉, 작업이 완료될 때까지 다른 쿼리는 액세스할 수 없습니다.
+ 임시 테이블이 많이 사용되는 경우 메이저 버전 업그레이드 전에 가동 중지 시간을 줄이기 위해 이러한 특정 카탈로그 테이블의 `VACUUM FULL`을 사용하는 것이 좋습니다.

**일반 모범 사례:**
+ 일반적인 테이블 표현식을 사용해 중간 결과를 생성하여 임시 테이블 사용을 줄입니다. 이렇게 하면 필요한 쿼리를 복잡해질 수 있지만 위에 나열된 영향이 제거됩니다.
+ 삭제/생성 단계를 수행하는 대신 `TRUNCATE` 명령을 사용하여 콘텐츠를 지워 임시 테이블을 재사용합니다. 이렇게 하면 임시 테이블로 인한 트랜잭션 ID 증가 문제도 제거됩니다.

**대략적인 임계값:** [수만](#PostgreSQL.HighObjectCount.Note)

## 로깅되지 않은 테이블
<a name="PostgreSQL.HighObjectCount.UnloggedTables"></a>

로깅되지 않은 테이블은 WAL 정보를 생성하지 않으므로 성능 향상을 제공할 수 있습니다. 데이터베이스 충돌 복구 중에는 잘릴 것이므로 내구성을 제공하지 않으므로 신중하게 사용해야 합니다. PostgreSQL에서는 로깅되지 않은 각 테이블이 순차적으로 잘리기 때문에 작업에 비용이 많이 듭니다. 이 작업은 로깅되지 않은 테이블 수가 적은 경우에는 속도가 빠르지만, 수천 개 단위로 계산되면 시작 중에 눈에 띄는 지연을 추가되기 시작할 수 있습니다.

**영향: 논리적 복제**  
[블루/그린 배포](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html)를 포함한 논리적 복제는 WAL을 사용하여 변경 사항을 캡처하고 전송하기 때문에 로깅되지 않은 테이블은 일반적으로 논리적 복제에 포함되지 않습니다. [로깅되지 않은 테이블을 복제](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-postgresql-unlogged-tables.html#aurora-postgresql-unlogged-tables-logicalrep)하도록 Aurora PostgreSQL을 구성하는 방법에 대해 자세히 알아보세요.

**영향: 리더 노드**  
로깅되지 않은 테이블은 Aurora DB 클러스터의 라이터 노드에서만 액세스할 수 있습니다. 자세한 내용은 [Aurora PostgreSQL에서 로깅되지 않은 테이블 작업](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-postgresql-unlogged-tables.html)을 확인하세요.

**일반 모범 사례:**
+ 로깅되지 않은 테이블은 표준 PostgreSQL에 비해 Aurora PostgreSQL에서 제한된 성능 이점을 제공하므로 일반 테이블이 더 적절한지 평가합니다.

**대략적인 임계값:** [수천](#PostgreSQL.HighObjectCount.Note)

## 파티션
<a name="PostgreSQL.HighObjectCount.Partitions"></a>

파티셔닝은 쿼리 성능을 높이고 데이터의 논리적 구성을 제공할 수 있습니다. 이상적인 시나리오에서는 파티셔닝이 구성되어 쿼리 계획 및 실행 중에 파티션 정리를 사용할 수 있습니다. 파티션을 너무 많이 사용하면 쿼리 성능 및 데이터베이스 유지 관리에 부정적인 영향을 미칠 수 있습니다. 잘못된 설계로 인해 쿼리 계획 및 실행 성능이 부정적인 영향을 받을 수 있으므로 테이블을 분할하는 방법을 신중하게 선택해야 합니다. 파티셔닝에 대한 자세한 내용은 [PostgreSQL 설명서](https://www.postgresql.org/docs/current/ddl-partitioning.html)를 참조하세요.

**영향: 일반 성능 저하**  
간혹 시간 계획 오버헤드가 증가하고 쿼리에 대한 계획이 더 복잡해져 튜닝 기회를 식별하기가 어려워집니다. PostgreSQL 18 이전 버전의 경우 워크로드가 많은 여러 파티션에 `LWLock:LockManager` 대기가 발생할 수 있습니다.  
**권장 작업:** 성능 있는 쿼리 실행을 제공하는 동시에 데이터 구성을 모두 완료할 수 있는 최소 파티션 수를 결정합니다.

**영향: 유지 관리 복잡성**  
파티션 수가 매우 많으면 사전 생성 및 제거와 같은 유지 관리 문제가 발생합니다. Autovacuum은 파티션을 일반적인 관계로 취급하며, 정기적인 정리를 수행해야 하므로 작업을 완료하는 데 충분한 작업자가 필요합니다.  
**권장 조치:**  
+ 새 파티션이 필요하고(예: 월별 기반 파티션) 이전 파티션이 롤오프될 때 워크로드가 차단되지 않도록 파티션을 미리 생성해야 합니다.
+ 모든 파티션의 일반적인 정리 유지 관리를 수행할 수 있는 Autovacuum 작업자가 충분한지 확인합니다.

**대략적인 임계값:** [수백](#PostgreSQL.HighObjectCount.Note)

## 임시 파일
<a name="PostgreSQL.HighObjectCount.TempFiles"></a>

위에서 언급한 임시 테이블과는 다르게 임시 파일은 복잡한 쿼리가 여러 가지 정렬 또는 해시 연산을 동시에 수행할 때 PostgreSQL에서 생성되며, 각 연산은 인스턴스 메모리를 사용하여 `work_mem` 파라미터에 지정된 값까지 결과를 저장합니다. 인스턴스 메모리가 충분하지 않은 경우 결과를 저장하기 위한 임시 파일이 생성됩니다. 임시 파일에 대한 자세한 내용은 [임시 파일 관리](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/PostgreSQL.ManagingTempFiles.html)를 참조하세요. 워크로드에서 이러한 파일을 다수 생성하면 여러 가지 영향이 있을 수 있습니다.

**영향: FreeLocalStorage 소비**  
임시 파일은 쿼리 결과가 work\$1mem에 맞지 않는 경우 PostgreSQL의 필수 부분입니다. 일반적으로 이는 문제가 없습니다. 그러나 워크로드가 이를 광범위하게 사용하는 경우 대규모 쿼리가 지속적으로 실행되고 있음을 나타내며 FreeLocalStorage가 감소하는 것을 확인할 수 있습니다. 자세한 내용은 [임시 파일 관리](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/PostgreSQL.ManagingTempFiles.html)를 참조하세요.

**일반 모범 사례:**
+ [성능 개선 도우미](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_PerfInsights.html)를 사용하여 임시 파일 사용량을 모니터링합니다.
+ 중요한 임시 파일을 생성하는 쿼리를 조정하여 임시 파일의 총 수를 줄일 수 있는지 확인합니다.

**대략적인 임계값:** [수천](#PostgreSQL.HighObjectCount.Note)

## 시퀀스
<a name="PostgreSQL.HighObjectCount.Sequences"></a>

시퀀스는 PostgreSQL에서 열을 자동 증분하는 데 사용되는 기본 객체이며 데이터의 고유성과 키를 제공합니다. 논리적 복제를 제외하고 정상 작업 중에는 결과 없이 개별 테이블에서 사용할 수 있습니다.

PostgreSQL에서 논리적 복제는 현재 시퀀스의 현재 값을 구독자에게 복제하지 않습니다. 자세한 내용은 [PostgreSQL 설명서의 등록 페이지](https://www.postgresql.org/docs/current/logical-replication-restrictions.html)를 참조하세요.

**영향: 전환 시간 연장**  
모든 유형의 구성 변경 또는 업그레이드에 [블루/그린 배포](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html)를 사용하려는 경우 많은 시퀀스가 전환에 미치는 영향을 이해하는 것이 중요합니다. 전환의 마지막 단계 중 하나는 시퀀스의 현재 값을 동기화하며, 수천 개가 있는 경우 전체 전환 시간이 늘어납니다.  
**권장 작업:** 데이터베이스 워크로드에서 테이블당 시퀀스 접근 방식 대신 공유 UUID를 사용할 수 있는 경우, 전환 중에 동기화 단계가 중단됩니다.

**대략적인 임계값:** [수천](#PostgreSQL.HighObjectCount.Note)

## 대형 객체
<a name="PostgreSQL.HighObjectCount.LargeObjects"></a>

큰 객체는 pg\$1largeobject라는 단일 시스템 테이블에 저장됩니다. 또한 각 대형 객체에는 시스템 테이블 pg\$1largeobject\$1metadata에 항목이 있습니다. 이러한 객체는 표준 관계와 크게 다르게 생성, 수정 및 정리됩니다. 대형 객체는 autovacuum에서 처리하지 않으며 vacuumlo라는 별도의 프로세스를 통해 주기적으로 정리해야 합니다. 대형 객체 관리에 대한 예제는 lo 모듈을 사용한 대형 객체 관리를 참조하세요.

**영향: 논리적 복제**  
큰 객체는 현재 논리적 복제 중에 PostgreSQL에 복제되지 않습니다. 자세한 내용은 [PostgreSQL 설명서의 등록 페이지](https://www.postgresql.org/docs/current/logical-replication-restrictions.html)를 참조하세요. [블루/그린](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) 구성에서는 블루 환경의 큰 객체가 그린 환경에 복제되지 않습니다.

**영향: 메이저 버전 업그레이드**  
대형 객체가 수백만 개이고 인스턴스가 업그레이드 중에 이를 처리할 수 없는 경우 메모리 부족이 발생하여 업그레이드가 실패할 수 있습니다. PostgreSQL 메이저 버전 업그레이드 프로세스는 크게 두 단계로 구성됩니다. pg\$1dump를 통해 스키마를 덤프하는 단계와 pg\$1restore를 통해 스키마를 복원하는 단계입니다. 데이터베이스에 수백만 개의 대형 객체가 있는 경우 업그레이드 중에 pg\$1dump 및 pg\$1restore를 처리할 수 있도록 인스턴스에 충분한 메모리가 있는지 확인하고 더 큰 인스턴스 유형으로 규모를 조정해야 합니다.

**일반 모범 사례:**
+ vacuumlo 유틸리티를 정기적으로 사용하여 고립된 큰 객체를 제거합니다.
+ 데이터베이스에 대용량 객체를 저장하려면 BYTEA 데이터 유형을 사용하는 것이 좋습니다.

**대략적인 임계값:** [수백만](#PostgreSQL.HighObjectCount.Note)

## 대략적인 임계값
<a name="PostgreSQL.HighObjectCount.Note"></a>

이 주제에 언급된 대략적인 임계값은 특정 리소스의 규모를 추정하는 데만 사용됩니다. 설명된 영향이 발생할 가능성이 더 높은 일반적인 범위를 나타내지만 실제 동작은 구체적인 워크로드, 인스턴스 크기 및 구성에 따라 달라집니다. 이러한 추정치를 초과할 수 있지만 나열된 영향을 방지하기 위해 주의 및 유지 관리를 준수해야 합니다.

# Aurora PostgreSQL의 향상된 메모리 관리
<a name="AuroraPostgreSQL.BestPractices.memory.management"></a>

Aurora PostgreSQL에는 이제 다양한 워크로드에서 데이터베이스 성능과 복원력을 최적화하는 고급 메모리 관리 기능이 포함되어 있습니다. 이러한 개선 사항을 통해 Aurora PostgreSQL은 메모리 수요가 높은 기간에도 일관된 가용성과 응답성을 유지할 수 있습니다.

이 기능은 다음 Aurora PostgreSQL 버전에서 프로비저닝된 인스턴스에 대해 사용할 수 있으며 기본적으로 활성화되어 있습니다.
+ 15.3 이상의 모든 마이너 버전
+ 14.8 이상의 마이너 버전
+ 13.11 이상의 마이너 버전
+ 12.15 이상의 마이너 버전
+ 11.20 이상의 마이너 버전

이 기능은 다음 Aurora PostgreSQL 버전에서 Aurora Serverless 인스턴스에 대해 사용할 수 있으며 기본적으로 활성화되어 있습니다.
+ 16.3 이상의 모든 마이너 버전
+ 15.7 이상의 모든 마이너 버전
+ 14.12 이상의 마이너 버전
+ 13.15 이상의 마이너 버전

 고객 워크로드가 사용 가능한 여유 메모리를 모두 사용하는 경우 운영 체제는 리소스를 보호하기 위해 데이터베이스를 다시 시작하여 일시적으로 사용할 수 없게 될 수 있습니다. Aurora PostgreSQL의 새로운 메모리 관리 개선 사항은 시스템에 메모리 압박이 높을 때 특정 트랜잭션을 사전에 취소하여 데이터베이스 안정성을 유지하는 데 도움이 됩니다.

개선된 메모리 관리의 주요 기능은 다음과 같습니다.
+ 시스템의 메모리 사용량이 한계에 다다랐을 때 더 많은 메모리를 요청하는 데이터베이스 트랜잭션을 취소합니다.
+ 시스템이 물리적 메모리를 모두 소진하고 스왑을 소진하려고 할 때 메모리 사용량이 한계에 다다랐다고 합니다. 이러한 상황에서는 DB 인스턴스의 메모리 사용량을 즉시 줄이기 위해 메모리를 요청하는 모든 트랜잭션이 취소됩니다.
+ 필수 PostgreSQL 시작 관리자 및 Autovacuum 작업자 등의 백그라운드 작업자는 항상 보호됩니다.

## 메모리 관리 파라미터 취급
<a name="AuroraPostgreSQL.BestPractices.memory.management.configuring"></a>

**메모리 관리를 사용 설정하는 방법**  
이 옵션은 기본적으로 켜져 있습니다. 다음 예제와 같이 메모리 부족으로 트랜잭션이 취소되면 오류 메시지가 표시됩니다.

```
ERROR: out of memory Detail: Failed on request of size 16777216.
```

**메모리 관리를 사용 해제하는 방법**  
이 기능을 해제하려면 아래와 같이 psql로 Aurora PostgreSQL DB 클러스터에 연결하고 파라미터 값에 SET 문을 사용합니다.

**참고**  
메모리 관리는 활성화된 상태로 유지하는 것이 좋습니다. 이렇게 하면 메모리 소진으로 인해 워크로드에서 유발되는 데이터베이스 재시작으로 이어질 수 있는 메모리 부족 오류를 방지할 수 있습니다.

다음 표는 다양한 Aurora PostgreSQL 버전에서 메모리 관리 기능을 끄는 방법을 보여줍니다.


| Aurora PostgreSQL 버전 | 파라미터 | 기본값 | 세션 수준에서 메모리 관리를 끄는 명령 | 
| --- | --- | --- | --- | 
| 11.20, 11.21, 12.15, 12.16, 13.11, 13.12, 14.8, 14.9, 15.3, 15.4 | `rds.memory_allocation_guard` | `false` | `SET rds.memory_allocation_guard = true;` | 
| 12.17, 13.13, 14.10, 15.5 이상 버전 | `rds.enable_memory_management` | `true` | `SET rds.enable_memory_management = false;` | 

**참고**  
Aurora PostgreSQL 12.17, 13.13, 14.10, 15.5 이상 버전에서는 `rds.memory_allocation_guard` 파라미터가 더 이상 사용되지 않습니다.

DB 클러스터 파라미터 그룹의 이러한 파라미터 값을 설정하면 쿼리가 취소되지 않습니다. DB 클러스터 파라미터 그룹에 대한 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.

## 제한 사항
<a name="AuroraPostgreSQL.BestPractices.memory.management.limitations"></a>
+ 이 기능은 db.t3.medium 인스턴스 클래스에서는 지원되지 않습니다.

# Amazon Aurora PostgreSQL를 사용한 빠른 장애 조치
<a name="AuroraPostgreSQL.BestPractices.FastFailover"></a>

다음에서는 장애 조치가 가능한 한 빨리 발생하도록 하는 방법을 배울 수 있습니다. 장애 조치 후 신속하게 복구하기 위해 Aurora PostgreSQL DB 클러스터에 대한 클러스터 캐시 관리를 사용할 수 있습니다. 자세한 내용은 [장애 조치 후 Aurora PostgreSQL용 클러스터 캐시 관리를 통한 신속한 복구](AuroraPostgreSQL.cluster-cache-mgmt.md) 섹션을 참조하세요.

장애 조치가 빠르게 이루어지도록 하기 위해 수행할 수 있는 몇 가지 단계는 다음과 같습니다.
+ 장애가 있는 경우 읽기 제한 시간이 만료되기 전에 더 긴 실행 쿼리를 중지하려면 짧은 시간 프레임으로 전송 제어 프로토콜(TCP) Keepalives를 설정합니다.
+ Java 도메인 이름 시스템(DNS) 캐싱에 대한 제한 시간을 적극적으로 설정합니다. 이를 통해 Aurora 읽기 전용 엔드포인트가 나중에 연결을 시도할 때 읽기 전용 노드를 적절히 순환할 수 있습니다.
+ JDBC 연결 문자열에 사용되는 제한 시간 변수를 가능한 낮게 설정합니다. 단기 및 장기 실행 중인 쿼리에 별도의 연결 객체를 사용합니다.
+ 읽기 및 쓰기 Aurora 엔드포인트를 사용하여 클러스터에 연결합니다.
+ RDS API 작업을 사용하여 서버 측 장애에 대한 애플리케이션 응답을 테스트합니다. 또한 패킷 삭제 도구를 사용하여 클라이언트 측 장애에 대한 애플리케이션 응답을 테스트합니다.
+ AWS JDBC 드라이버를 사용하여 Aurora PostgreSQL의 장애 조치 기능을 최대한 활용합니다. AWS JDBC 드라이버에 대한 자세한 내용 및 사용 방법에 대한 전체 지침은 [Amazon Web Services (AWS) JDBC Driver GitHub repository](https://github.com/aws/aws-advanced-jdbc-wrapper)를 참조하세요.

이에 대해서는 다음에 이어지는 섹션에서 자세히 설명합니다.

**Topics**
+ [TCP Keepalives 파라미터 설정](#AuroraPostgreSQL.BestPractices.FastFailover.TCPKeepalives)
+ [애플리케이션에 빠른 장애 조치 구성](#AuroraPostgreSQL.BestPractices.FastFailover.Configuring)
+ [장애 조치 테스트](#AuroraPostgreSQL.BestPracticesFastFailover.Testing)
+ [Java의 빠른 장애 조치 예](#AuroraPostgreSQL.BestPractices.FastFailover.Example)

## TCP Keepalives 파라미터 설정
<a name="AuroraPostgreSQL.BestPractices.FastFailover.TCPKeepalives"></a>

TCP 연결을 설정하면 타이머 집합이 연결과 연결됩니다. keepalive 타이머가 0에 도달하면 keepalive 프로브 패킷을 연결 엔드포인트로 전송합니다. 프로브가 응답을 수신하면 연결이 계속 유지되는 것으로 가정할 수 있습니다.

TCP keepalive 파라미터를 활성화하고 적극적으로 설정하면 클라이언트가 더 이상 데이터베이스에 연결할 수 없을 경우 활성 연결이 빠르게 종료됩니다. 그러면 애플리케이션이 새 엔드포인트에 연결할 수 있습니다.

다음 TCP keepalive 파라미터를 설정해야 합니다.
+ `tcp_keepalives_idle`은 시간을 초 단위로 제어하며, 이후 소켓으로부터 데이터가 전송되지 않을 경우 keepalive 패킷이 전송됩니다. ACK는 데이터로 간주되지 않습니다. 다음 설정을 권장합니다.

   `tcp_keepalives_idle = 1`
+ `tcp_keepalives_interval`은 초기 패킷이 전송된 후 후속 keepalive 패킷을 전송하는 시간 주기를 초 단위로 제어합니다. `tcp_keepalives_idle` 파라미터를 사용하여 이 시간을 설정합니다. 다음 설정을 권장합니다.

  `tcp_keepalives_interval = 1`
+ `tcp_keepalives_count`는 애플리케이션에 알림이 전달되기 전 발생하는 승인되지 않은 keepalive 프로브의 개수입니다. 다음 설정을 권장합니다.

  `tcp_keepalives_count = 5`

이러한 설정은 데이터베이스가 응답을 중단하고 5초 안에 애플리케이션에 알려야 합니다. keepalive 패킷이 애플리케이션의 네트워크 내에서 자주 삭제되는 경우 `tcp_keepalives_count` 값을 높게 설정할 수 있습니다. 이렇게 하면 실제 장애를 탐지하는 데 걸리는 시간이 늘어나지만 덜 안정적인 네트워크에서 더 많은 버퍼를 허용합니다.

**Linux에서 TCP keepalive 파라미터를 설정하려면**

1. TCP keepalive 파라미터가 어떻게 구성되어 있는지 테스트합니다.

   명령줄에서 다음 명령을 사용하여 이 작업을 수행하는 것이 좋습니다. 이 권장 구성은 시스템 전체에 적용됩니다. 즉, `SO_KEEPALIVE` 옵션이 켜진 상태에서 소켓을 생성하는 다른 모든 애플리케이션에도 영향을 미칩니다.

   ```
   sudo sysctl net.ipv4.tcp_keepalive_time=1
   sudo sysctl net.ipv4.tcp_keepalive_intvl=1
   sudo sysctl net.ipv4.tcp_keepalive_probes=5
   ```

1. 애플리케이션에 적합한 구성을 찾은 경우, 사용자가 변경한 내용을 포함해 `/etc/sysctl.conf`에 다음 줄을 추가하여 이러한 설정을 유지합니다.

   ```
   tcp_keepalive_time = 1
   tcp_keepalive_intvl = 1
   tcp_keepalive_probes = 5
   ```

## 애플리케이션에 빠른 장애 조치 구성
<a name="AuroraPostgreSQL.BestPractices.FastFailover.Configuring"></a>

다음에서는 빠른 장애 조치를 위해 수행할 수 있는 Aurora PostgreSQL의 여러 구성 변경 사항에 대한 설명을 찾을 수 있습니다. PostgreSQL JDBC 드라이버 설정 및 구성에 대한 자세한 내용은 [PostgreSQL JDBC Driver](https://jdbc.postgresql.org/documentation/head/index.html)를 방문하여 확인하세요.

**Topics**
+ [DNS 캐시 제한 시간 축소](#AuroraPostgreSQL.BestPractices.FastFailover.Configuring.Timeouts)
+ [빠른 장애 조치를 위한 Aurora PostgreSQL 연결 문자열 설정](#AuroraPostgreSQL.BestPractices.FastFailover.Configuring.ConnectionString)
+ [호스트 문자열을 가져올 수 있는 다른 옵션](#AuroraPostgreSQL.BestPractices.FastFailover.Configuring.HostString)

### DNS 캐시 제한 시간 축소
<a name="AuroraPostgreSQL.BestPractices.FastFailover.Configuring.Timeouts"></a>

애플리케이션이 장애 조치 이후 연결을 설정할 때는 이전 리더가 새로운 Aurora PostgreSQL 라이터로 사용됩니다. 이전 리더는 DNS 업데이트가 완전히 전파되기 전에 Aurora 읽기 전용 엔드포인트를 사용해 찾을 수 있습니다. java DNS 유지 시간(TTL) 값을 30초 미만과 같이 낮게 설정하면 후속 연결 시도 시 리더 노드 사이에 순환이 이루어집니다.

```
// Sets internal TTL to match the Aurora RO Endpoint TTL
java.security.Security.setProperty("networkaddress.cache.ttl" , "1");
// If the lookup fails, default to something like small to retry
java.security.Security.setProperty("networkaddress.cache.negative.ttl" , "3");
```

### 빠른 장애 조치를 위한 Aurora PostgreSQL 연결 문자열 설정
<a name="AuroraPostgreSQL.BestPractices.FastFailover.Configuring.ConnectionString"></a>

Aurora PostgreSQL 빠른 장애 조치를 사용하려면 애플리케이션의 연결 문자열에 단일 호스트가 아닌 호스트 목록이 있어야 합니다. 다음은 Aurora PostgreSQL 클러스터에 연결하는 데 사용할 수 있는 연결 문자열의 예입니다. 이 예에서는 호스트가 굵게 표시됩니다.

```
jdbc:postgresql://myauroracluster.cluster-c9bfei4hjlrd.us-east-1-beta.rds.amazonaws.com:5432,
myauroracluster.cluster-ro-c9bfei4hjlrd.us-east-1-beta.rds.amazonaws.com:5432
/postgres?user=<primaryuser>&password=<primarypw>&loginTimeout=2
&connectTimeout=2&cancelSignalTimeout=2&socketTimeout=60
&tcpKeepAlive=true&targetServerType=primary
```

최상의 가용성과 RDS API에 대한 종속성을 피하기 위해 연결할 파일을 유지 관리하는 것이 좋습니다. 이 파일에는 데이터베이스에 연결할 때 애플리케이션이 읽는 호스트 문자열이 포함되어 있습니다. 이 호스트 문자열에는 클러스터에 제공된 모든 Aurora 엔드포인트가 있습니다. Aurora 엔드포인트에 대한 자세한 내용은 [Amazon Aurora 엔드포인트 연결](Aurora.Overview.Endpoints.md) 섹션을 참조하세요.

예를 들어, 다음과 같이 로컬 파일에 엔드포인트를 저장할 수 있습니다.

```
myauroracluster.cluster-c9bfei4hjlrd.us-east-1-beta.rds.amazonaws.com:5432,
myauroracluster.cluster-ro-c9bfei4hjlrd.us-east-1-beta.rds.amazonaws.com:5432
```

애플리케이션이 이 파일에서 읽어 들여 JDBC 연결 문자열의 호스트 섹션을 채웁니다. DB 클러스터 이름을 바꾸면 이러한 엔드포인트가 변경됩니다. 이벤트가 발생할 경우 애플리케이션이 이 이벤트를 처리하는지 확인하세요.

다른 방법은 다음과 같이 DB 인스턴스 노드 목록을 사용하는 것입니다.

```
my-node1.cksc6xlmwcyw.us-east-1-beta.rds.amazonaws.com:5432,
my-node2.cksc6xlmwcyw.us-east-1-beta.rds.amazonaws.com:5432,
my-node3.cksc6xlmwcyw.us-east-1-beta.rds.amazonaws.com:5432,
my-node4.cksc6xlmwcyw.us-east-1-beta.rds.amazonaws.com:5432
```

이 방식의 장점은 PostgreSQL JDBC 연결 드라이버가 이 목록에서 모든 노드를 통해 순환하며 유효한 연결을 찾는다는 것입니다. 이와는 반대로 Aurora 엔드포인트를 사용하는 경우 각 연결 시도에서 두 개의 노드만 시도됩니다. 하지만 DB 인스턴스 노드를 사용하는 데에는 단점이 있습니다. 사용자가 클러스터에 노드를 추가하거나 제거하고 인스턴스 엔드포인트 목록이 무효로 되면 연결 드라이버가 연결할 올바른 호스트를 찾을 수 없다는 것입니다.

애플리케이션이 한 호스트에 연결하기 위해 너무 오래 기다리지 않도록 하려면 다음 파라미터를 적극적으로 설정합니다.
+ `targetServerType` – 드라이버가 쓰기 노드에 연결되는지 아니면 읽기 노드에 연결되는지를 제어합니다. 애플리케이션이 쓰기 노드에만 다시 연결되도록 하려면 `targetServerType` 값을 `primary`로 설정합니다.

  `targetServerType` 파라미터에 사용할 수 있는 값에는 `primary`, `secondary`, `any`, `preferSecondary`가 있습니다. 이 `preferSecondary` 값은 먼저 리더와의 연결 설정을 시도합니다. 리더 연결을 설정할 수 없는 경우 라이터에 연결합니다.
+ `loginTimeout` – 소켓 연결이 설정된 후 애플리케이션이 데이터베이스에 로그인하기까지 대기하는 시간을 제어합니다.
+ `connectTimeout` – 소켓이 데이터베이스에 연결을 설정하기까지 대기하는 시간을 제어합니다.

애플리케이션을 얼마나 적극적으로 설정하고 싶은지에 따라, 다른 애플리케이션 파라미터를 수정하여 연결 프로세스의 속도를 높일 수 있습니다.
+ `cancelSignalTimeout` – 일부 애플리케이션에서는 시간 초과 쿼리에 "최대한" 취소 신호를 보내야 할 수 있습니다. 이 취소 신호가 장애 조치 경로에 있는 경우, 잘못된 호스트로 이 신호가 전달되지 않도록 적극적으로 설정하는 것이 좋습니다.
+ `socketTimeout` – 이 파라미터는 소켓이 읽기 작업을 대기하는 시간을 제어합니다. 쿼리가 이 값보다 길게 대기하지 않도록 이 파라미터를 글로벌 "쿼리 제한 시간"으로 사용할 수 있습니다. 연결 핸들러를 두 개 사용하는 것이 좋습니다. 하나의 연결 핸들러는 수명이 짧은 쿼리를 실행하고 이 값을 낮게 설정합니다. 장기 실행 쿼리를 위한 또 다른 연결 핸들러에서는 이 값이 훨씬 더 높게 설정되어 있습니다. 이 방식으로는 서버가 다운될 경우 TCP keepalive 파라미터를 이용해 장기 실행 쿼리를 중단할 수 있습니다.
+ `tcpKeepAlive` – 이 파라미터를 켜면 사용자가 설정한 TCP keepalive 파라미터가 적용되도록 합니다.
+ `loadBalanceHosts` – 이 파라미터를 `true`로 설정하면 애플리케이션을 후보 호스트 목록에서 선택한 임의의 호스트에 연결합니다.

### 호스트 문자열을 가져올 수 있는 다른 옵션
<a name="AuroraPostgreSQL.BestPractices.FastFailover.Configuring.HostString"></a>

`aurora_replica_status` 함수 및 Amazon RDS API 사용을 비롯해 여러 소스로부터 호스트 문자열을 가져올 수 있습니다.

대부분의 경우 클러스터 라이터를 확인하거나 클러스터의 다른 리더 노드를 찾아야 합니다. 이를 위해 애플리케이션에서 DB 클러스터의 DB 인스턴스에 연결하고 `aurora_replica_status` 함수를 쿼리할 수 있습니다. 이 함수를 사용하면 연결할 호스트를 찾는 데 걸리는 시간을 줄일 수 있습니다. 그러나 특정 네트워크 장애 시나리오에서는 `aurora_replica_status` 기능이 오래되었거나 불완전한 정보를 표시할 수 있습니다.

애플리케이션이 연결할 노드를 찾도록 보장하는 좋은 방법 중 하나는클러스터 라이터 엔드포인트에 연결한 다음 클러스터 리더 엔드포인트에 연결을 시도하는 것입니다. 읽기 가능한 연결을 설정할 때까지 이 작업을 수행합니다. 이러한 엔드포인트는 DB 클러스터의 이름을 변경하지 않는 한 변경되지 않습니다. 따라서 일반적으로 이들을 애플리케이션의 정적 멤버로 남겨두거나 애플리케이션이 읽는 리소스 파일에 저장할 수 있습니다.

이러한 엔드포인트 중 하나를 사용하여 연결을 설정한 후 클러스터의 나머지 부분에 대한 정보를 얻을 수 있습니다. 이렇게 하려면 `aurora_replica_status` 함수를 호출합니다. 예를 들어 다음 명령은 `aurora_replica_status`로 정보를 검색합니다.

```
postgres=> SELECT server_id, session_id, highest_lsn_rcvd, cur_replay_latency_in_usec, now(), last_update_timestamp
FROM aurora_replica_status();

server_id | session_id | highest_lsn_rcvd | cur_replay_latency_in_usec | now | last_update_timestamp
-----------+--------------------------------------+------------------+----------------------------+-------------------------------+------------------------
mynode-1 | 3e3c5044-02e2-11e7-b70d-95172646d6ca | 594221001 | 201421 | 2017-03-07 19:50:24.695322+00 | 2017-03-07 19:50:23+00
mynode-2 | 1efdd188-02e4-11e7-becd-f12d7c88a28a | 594221001 | 201350 | 2017-03-07 19:50:24.695322+00 | 2017-03-07 19:50:23+00
mynode-3 | MASTER_SESSION_ID | | | 2017-03-07 19:50:24.695322+00 | 2017-03-07 19:50:23+00
(3 rows)
```

이를테면 연결 문자열의 호스트 섹션은 라이터와 리더 클러스터 엔드포인트 모두로 시작할 수 있습니다.

```
myauroracluster.cluster-c9bfei4hjlrd.us-east-1-beta.rds.amazonaws.com:5432,
myauroracluster.cluster-ro-c9bfei4hjlrd.us-east-1-beta.rds.amazonaws.com:5432
```

이 시나리오에서 애플리케이션은 기본 또는 보조 노드 유형에 연결을 설정하려 할 것입니다. 애플리케이션이 연결되면 먼저 명령 의 결과를 쿼리하여 노드의 읽기/쓰기 상태를 검사하는 것이 좋습니다. 이렇게 하려면 `SHOW transaction_read_only` 명령 결과를 쿼리해야 합니다.

쿼리의 반환 값이 `OFF`인 경우 프라이머리 노드에 성공적으로 연결된 것입니다. 그러나 반환 값이 `ON`이고 애플리케이션에 읽기/쓰기 연결이 필요하다고 가정합니다. 이 경우 `aurora_replica_status` 함수를 호출하여 `session_id='MASTER_SESSION_ID'`인 `server_id`를 확인할 수 있습니다. 이 함수는 프라이머리 노드의 이름을 반환합니다. 다음에 설명하는 `endpointPostfix`와 함께 사용할 수 있습니다.

단, 오래된 데이터가 있는 복제본에 연결하는 경우에는 주의해야 합니다. 이 경우 `aurora_replica_status` 함수에 오래된 정보가 표시될 수 있습니다. 애플리케이션 수준에서 부실 임계값을 설정할 수 있습니다. 이를 확인하기 위해 서버 시간과 `last_update_timestamp` 값의 차이를 확인할 수 있습니다. 일반적으로 애플리케이션은 `aurora_replica_status` 함수에 의해 반환된 충돌 정보로 인한 두 호스트 사이의 대칭 이동을 방지해야 합니다. 애플리케이션은 `aurora_replica_status`에서 반환된 데이터를 따르는 대신 알려진 모든 호스트를 먼저 시도해야 합니다.

#### DescribeDBClusters API 작업을 사용하여 인스턴스를 나열(Java 예제)
<a name="AuroraPostgreSQL.BestPractices.FastFailover.Configuring.HostString.API"></a>

[AWS SDK for Java](https://aws.amazon.com/sdk-for-java/), 특히 [DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html) API 작업을 사용하여 프로그래밍 방식으로 인스턴스 목록을 찾을 수 있습니다.

다음은 java 8에서 이와 같이 검색하는 방법에 대한 작은 예입니다.

```
AmazonRDS client = AmazonRDSClientBuilder.defaultClient();
DescribeDBClustersRequest request = new DescribeDBClustersRequest()
   .withDBClusterIdentifier(clusterName);
DescribeDBClustersResult result = 
rdsClient.describeDBClusters(request);

DBCluster singleClusterResult = result.getDBClusters().get(0);

String pgJDBCEndpointStr = 
singleClusterResult.getDBClusterMembers().stream()
   .sorted(Comparator.comparing(DBClusterMember::getIsClusterWriter)
   .reversed()) // This puts the writer at the front of the list
   .map(m -> m.getDBInstanceIdentifier() + endpointPostfix + ":" + singleClusterResult.getPort()))
   .collect(Collectors.joining(","));
```

여기에서 `pgJDBCEndpointStr`은 다음과 같이 형식이 지정된 끝점 목록을 포함합니다.

```
my-node1.cksc6xlmwcyw.us-east-1-beta.rds.amazonaws.com:5432,
my-node2.cksc6xlmwcyw.us-east-1-beta.rds.amazonaws.com:5432
```

변수 `endpointPostfix`는 애플리케이션이 설정하는 상수일 수 있습니다. 또는 클러스터의 단일 인스턴스에 대해 `DescribeDBInstances` API 작업을 쿼리하여 애플리케이션에서 이를 가져올 수 있습니다. 이 값은 AWS 리전 내에서 그리고 개별 고객에 대해 일정하게 유지됩니다. 따라서 API 호출을 저장하여 애플리케이션이 읽어 들이는 리소스 파일에서 이 상수를 유지합니다. 앞의 예에서는 다음과 같이 설정됩니다.

```
.cksc6xlmwcyw.us-east-1-beta.rds.amazonaws.com
```

API가 응답하지 않거나 응답하는 데 너무 오래 걸리는 경우 가용성을 위해 기본적으로 DB 클러스터의 Aurora 엔드포인트를 사용하는 것이 좋습니다. 엔드포인트는 DNS 레코드를 업데이트하는 데 걸리는 시간 내에 최신 상태가 됩니다. DNS 레코드를 엔드포인트로 업데이트하는 데 보통 30초도 걸리지 않습니다. 이는 애플리케이션이 사용하는 리소스 파일에 저장할 수 있습니다.

## 장애 조치 테스트
<a name="AuroraPostgreSQL.BestPracticesFastFailover.Testing"></a>

모든 경우에 두 개 이상의 DB 인스턴스를 포함한 DB 클러스터가 있어야 합니다.

서버 측에서 특정 API가 애플리케이션의 응답 방식을 테스트하는 데 사용할 수 있는 중단을 유발할 수 있습니다.
+ [FailoverDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_FailoverDBCluster.html) - 이 작업은 DB 클러스터의 새 DB 인스턴스를 기록기로 승격하려고 시도합니다.

  다음 코드 예에서는 `failoverDBCluster`를 사용하여 중단을 일으키는 방법을 보여줍니다. Amazon RDS 클라이언트 설정에 대한 자세한 내용은 [AWS SDK for Java 사용](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/basics.html)을 참조하세요.

  ```
  public void causeFailover() {
      
      final AmazonRDS rdsClient = AmazonRDSClientBuilder.defaultClient();
     
      FailoverDBClusterRequest request = new FailoverDBClusterRequest();
      request.setDBClusterIdentifier("cluster-identifier");
  
      rdsClient.failoverDBCluster(request);
  }
  ```
+ [RebootDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RebootDBInstance.html) – 이 API 작업에서는 장애 조치가 보장되지 않습니다. 하지만 라이터의 데이터베이스는 종료됩니다. 이를 사용하여 애플리케이션이 연결 끊기에 어떻게 반응하는지 테스트할 수 있습니다. `ForceFailover` 파라미터는 Aurora 엔진에 적용되지 않습니다. 대신 `FailoverDBCluster` API 작업을 사용합니다.
+ [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) – `Port` 파라미터를 변경하면 클러스터의 노드가 새 포트에서 수신을 시작할 경우 중단을 유발합니다. 일반적으로 애플리케이션만 포트 변경을 제어하도록 하여 이 실패에 먼저 응답할 수 있습니다. 또한 종속된 엔드포인트를 적절하게 업데이트할 수 있는지 확인하세요. 이렇게 하려면 API 수준에서 수정한 사람이 포트를 수동으로 업데이트하도록 하면 됩니다. 또는 애플리케이션의 RDS API를 사용하여 포트가 변경되었는지 확인할 수 있습니다.
+ [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) - `DBInstanceClass` 파라미터를 수정하면 중단이 발생합니다.
+ [DeleteDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeleteDBInstance.html) – 기본(라이터)을 삭제하면 새 DB 인스턴스가 DB 클러스터의 라이터로 승격됩니다.

애플리케이션 또는 클라이언트 측에서 Linux를 사용하는 경우 애플리케이션이 갑작스러운 패킷 드롭에 응답하는 방식을 테스트할 수 있습니다. 포트, 호스트 또는 iptables 명령을 사용하여 TCP keepalive 패킷을 보내거나 받는지 여부에 따라 이 작업을 수행할 수 있습니다.

## Java의 빠른 장애 조치 예
<a name="AuroraPostgreSQL.BestPractices.FastFailover.Example"></a>

다음 코드 예는 애플리케이션이 Aurora PostgreSQL 드라이버 관리자를 설정하는 방식을 보여줍니다.

애플리케이션이 연결해야 할 때 `getConnection` 함수를 호출합니다. `getConnection` 호출은 유효한 호스트를 찾지 못할 수 있습니다. 라이터를 찾을 수 없지만 `targetServerType` 파라미터가 `primary`로 설정된 경우를 예로 들 수 있습니다. 이 경우 호출 애플리케이션에서 함수 호출을 다시 시도해야 합니다.

재시도 동작을 애플리케이션에 푸시하지 않으려면 이 재시도 호출을 연결 풀러로 래핑할 수 있습니다. 대부분의 연결 풀러에서는 JDBC 연결 문자열을 지정할 수 있습니다. 따라서 애플리케이션은 `getJdbcConnectionString`을 호출하고 이를 연결 풀러에 전달할 수 있습니다. 이렇게 하면 Aurora PostgreSQL에서 더 빠른 장애 조치를 사용할 수 있습니다.

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

import org.joda.time.Duration;

public class FastFailoverDriverManager {
   private static Duration LOGIN_TIMEOUT = Duration.standardSeconds(2);
   private static Duration CONNECT_TIMEOUT = Duration.standardSeconds(2);
   private static Duration CANCEL_SIGNAL_TIMEOUT = Duration.standardSeconds(1);
   private static Duration DEFAULT_SOCKET_TIMEOUT = Duration.standardSeconds(5);

   public FastFailoverDriverManager() {
       try {
            Class.forName("org.postgresql.Driver");
       } catch (ClassNotFoundException e) {
            e.printStackTrace();
       }

       /*
         * RO endpoint has a TTL of 1s, we should honor that here. Setting this aggressively makes sure that when
         * the PG JDBC driver creates a new connection, it will resolve a new different RO endpoint on subsequent attempts
         * (assuming there is > 1 read node in your cluster)
         */
        java.security.Security.setProperty("networkaddress.cache.ttl" , "1");
       // If the lookup fails, default to something like small to retry
       java.security.Security.setProperty("networkaddress.cache.negative.ttl" , "3");
   }

   public Connection getConnection(String targetServerType) throws SQLException {
       return getConnection(targetServerType, DEFAULT_SOCKET_TIMEOUT);
   }

   public Connection getConnection(String targetServerType, Duration queryTimeout) throws SQLException {
        Connection conn = DriverManager.getConnection(getJdbcConnectionString(targetServerType, queryTimeout));

       /*
         * A good practice is to set socket and statement timeout to be the same thing since both 
         * the client AND server will stop the query at the same time, leaving no running queries 
         * on the backend
         */
        Statement st = conn.createStatement();
        st.execute("set statement_timeout to " + queryTimeout.getMillis());
        st.close();

       return conn;
   }

   private static String urlFormat = "jdbc:postgresql://%s"
           + "/postgres"
           + "?user=%s"
           + "&password=%s"
           + "&loginTimeout=%d"
           + "&connectTimeout=%d"
           + "&cancelSignalTimeout=%d"
           + "&socketTimeout=%d"
           + "&targetServerType=%s"
           + "&tcpKeepAlive=true"
           + "&ssl=true"
           + "&loadBalanceHosts=true";
   public String getJdbcConnectionString(String targetServerType, Duration queryTimeout) {
       return String.format(urlFormat, 
                getFormattedEndpointList(getLocalEndpointList()),
                CredentialManager.getUsername(),
                CredentialManager.getPassword(),
                LOGIN_TIMEOUT.getStandardSeconds(),
                CONNECT_TIMEOUT.getStandardSeconds(),
                CANCEL_SIGNAL_TIMEOUT.getStandardSeconds(),
                queryTimeout.getStandardSeconds(),
                targetServerType
       );
   }

   private List<String> getLocalEndpointList() {
       /*
         * As mentioned in the best practices doc, a good idea is to read a local resource file and parse the cluster endpoints. 
         * For illustration purposes, the endpoint list is hardcoded here
         */
        List<String> newEndpointList = new ArrayList<>();
        newEndpointList.add("myauroracluster.cluster-c9bfei4hjlrd.us-east-1-beta.rds.amazonaws.com:5432");
        newEndpointList.add("myauroracluster.cluster-ro-c9bfei4hjlrd.us-east-1-beta.rds.amazonaws.com:5432");

       return newEndpointList;
   }

   private static String getFormattedEndpointList(List<String> endpoints) {
       return IntStream.range(0, endpoints.size())
               .mapToObj(i -> endpoints.get(i).toString())
               .collect(Collectors.joining(","));
   }
}
```

# 장애 조치 후 Aurora PostgreSQL용 클러스터 캐시 관리를 통한 신속한 복구
<a name="AuroraPostgreSQL.cluster-cache-mgmt"></a>

장애 조치가 발생한 경우 Aurora PostgreSQL 클러스터에 라이터 DB 인스턴스를 신속하게 복구하려면 Amazon Aurora PostgreSQL용 클러스터 캐시 관리를 사용하십시오. 장애 조치가 발생한 경우 클러스터 캐시 관리를 통해 애플리케이션 성능을 유지할 수 있습니다.

일반적인 장애 조치 상황에서는 장애 조치 후 일시적이지만 큰 성능 저하를 겪을 수 있습니다. 이러한 현상이 일어나는 이유는 장애 조치 DB 인스턴스가 시작될 때 버퍼 캐시가 비어 있기 때문입니다. 빈 캐시는 *콜드 캐시*라고도 합니다. 콜드 캐시로 인해 성능이 저하되는 이유는 DB 인스턴스가 버커 캐시에 저장된 값을 이용하는 대신에 속도가 느려진 디스크에서 읽어야 하기 때문입니다.

클러스터 캐시 관리를 통해 특정 리더 DB 인스턴스를 장애 조치 대상으로 설정하십시오. 클러스터 캐시 관리는 지정된 리더의 캐시가 라이터 DB 인스턴스의 캐시에 있는 데이터와 동기화된 상태를 유지하도록 보장합니다. 미리 채워진 값이 있는 지정된 리더의 캐시는 *웜 캐시*라고도 합니다. 장애 조치가 발생하면 지정된 리더는 새로운 라이터 DB 인스턴스로 승격될 때 즉시 웜 캐시에 있는 값을 사용합니다. 이러한 접근 방식을 통해 애플리케이션의 복구 성능이 대폭 향상됩니다.

클러스터 캐시 관리를 사용하려면 지정된 리더 인스턴스의 인스턴스 클래스 유형 및 크기(예: `db.r5.2xlarge` 또는 `db.r5.xlarge`)가 라이터와 같아야 합니다. Aurora PostgreSQL DB 클러스터를 생성할 때 이 점을 염두에 두어 장애 조치 중에 클러스터가 복구될 수 있도록 해야 합니다. 인스턴스 클래스 유형 및 크기 목록은 [Aurora용 DB 인스턴스 클래스의 하드웨어 사양](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Concepts.DBInstanceClass.html#Concepts.DBInstanceClass.Summary)을 참조하세요.

**참고**  
Aurora 글로벌 데이터베이스의 일부인 Aurora PostgreSQL 보조 DB 클러스터에는 클러스터 캐시 관리가 지원되지 않습니다. 이 기능이 지원되는 프라이머리 클러스터의 경우 지정된 tier-0 리더에서 워크로드를 실행해서는 안 됩니다.

**Contents**
+ [클러스터 캐시 관리 구성](#AuroraPostgreSQL.cluster-cache-mgmt.Configure)
  + [클러스터 캐시 관리 활성화](#AuroraPostgreSQL.cluster-cache-mgmt.Enable)
  + [라이터 DB 인스턴스에 대한 승격 티어 우선 순위 설정](#AuroraPostgreSQL.cluster-cache-mgmt.Writer)
  + [리더 DB 인스턴스에 대한 승격 티어 우선 순위 설정](#AuroraPostgreSQL.cluster-cache-mgmt.Reader)
+ [버퍼 캐시 모니터링](#AuroraPostgreSQL.cluster-cache-mgmt.Monitoring)
+ [CCM 구성 문제 해결](#AuroraPostgreSQL.cluster-cache-mgmt.Troubleshooting)

## 클러스터 캐시 관리 구성
<a name="AuroraPostgreSQL.cluster-cache-mgmt.Configure"></a>

클러스터 캐시 관리를 구성하려면 다음 프로세스를 순서대로 수행합니다.

**Topics**
+ [클러스터 캐시 관리 활성화](#AuroraPostgreSQL.cluster-cache-mgmt.Enable)
+ [라이터 DB 인스턴스에 대한 승격 티어 우선 순위 설정](#AuroraPostgreSQL.cluster-cache-mgmt.Writer)
+ [리더 DB 인스턴스에 대한 승격 티어 우선 순위 설정](#AuroraPostgreSQL.cluster-cache-mgmt.Reader)

**참고**  
구성 절차를 마친 후 클러스터 캐시 관리 기능이 완전하게 실행되려면 최소 1분이 지나야 합니다.

### 클러스터 캐시 관리 활성화
<a name="AuroraPostgreSQL.cluster-cache-mgmt.Enable"></a>

클러스터 캐시 관리를 활성화하려면 아래 설명된 단계를 수행합니다.

#### 콘솔
<a name="AuroraPostgreSQL.cluster-cache-mgmt.Enable.CON"></a>

**클러스터 캐시 관리를 활성화하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **파라미터 그룹**을 선택합니다.

1. 목록에서 Aurora PostgreSQL DB 클러스터의 파라미터 그룹을 선택합니다.

   DB 클러스터에서는 기본값이 아닌 파라미터 그룹을 사용해야 합니다. 기본 파라미터 그룹에서는 값을 변경할 수 없기 때문입니다.

1. **파라미터 그룹 작업**에서 **편집**을 선택합니다.

1. `apg_ccm_enabled` 클러스터 파라미터의 값을 **1**로 설정합니다.

1. [**변경 사항 저장(Save changes)**]을 선택합니다.

#### AWS CLI
<a name="AuroraPostgreSQL.cluster-cache-mgmt.Enable.CLI"></a>

Aurora PostgreSQL DB 클러스터에 대해 클러스터 캐시 관리를 사용 설정하려면 다음 필수 파라미터와 함께 AWS CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html) 명령을 사용합니다.
+ `--db-cluster-parameter-group-name`
+ `--parameters`

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-cluster-parameter-group \
    --db-cluster-parameter-group-name my-db-cluster-parameter-group \
    --parameters "ParameterName=apg_ccm_enabled,ParameterValue=1,ApplyMethod=immediate"
```
Windows의 경우:  

```
aws rds modify-db-cluster-parameter-group ^
    --db-cluster-parameter-group-name my-db-cluster-parameter-group ^
    --parameters "ParameterName=apg_ccm_enabled,ParameterValue=1,ApplyMethod=immediate"
```

### 라이터 DB 인스턴스에 대한 승격 티어 우선 순위 설정
<a name="AuroraPostgreSQL.cluster-cache-mgmt.Writer"></a>

클러스터 캐시 관리를 위해 Aurora PostgreSQL DB 클러스터의 라이터 DB 인스턴스에 대한 승격 우선 순위는 **tier-0**이어야 합니다. *승격 티어 우선 순위*는 장애 조치 후 Aurora 리더가 라이터 DB 인스턴스로 승격할 순서를 지정하는 값입니다. 유효한 값은 0–15이며, 여기에서 0은 최우선 순위이고 15는 마지막 우선 순위입니다. 승격 티어에 대한 자세한 내용은 [Aurora DB 클러스터의 내결함성](Concepts.AuroraHighAvailability.md#Aurora.Managing.FaultTolerance) 단원을 참조하십시오.

#### 콘솔
<a name="AuroraPostgreSQL.cluster-cache-mgmt.Writer.Console"></a>

**라이터 DB 인스턴스에 대해 승격 우선 순위를 설정하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택합니다.

1. Aurora PostgreSQL DB 클러스터의 **쓰기** DB 인스턴스를 선택합니다.

1. **수정**을 선택합니다. [**Modify DB Instance**] 페이지가 나타납니다.

1. **추가 구성** 패널에서 **장애 조치 우선 순위**로 **tier-0**을 선택합니다.

1. [**Continue**]를 수정 사항을 요약한 내용을 확인합니다.

1. 변경 사항을 저장한 후 즉시 적용하려면 **즉시 적용**을 선택합니다.

1. **DB 인스턴스 수정**을 선택하여 변경 사항을 저장합니다.

#### AWS CLI
<a name="AuroraPostgreSQL.cluster-cache-mgmt.Writer.CLI"></a>

AWS CLI를 사용해 라이터 DB 인스턴스에 대한 승격 티어 우선 순위를 0으로 설정하려면 다음 필수 파라미터와 함께 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 호출하십시오.
+ `--db-instance-identifier`
+ `--promotion-tier`
+ `--apply-immediately`



**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier writer-db-instance \
    --promotion-tier 0 \
    --apply-immediately
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier writer-db-instance ^
    ---promotion-tier 0  ^
    --apply-immediately
```

 

### 리더 DB 인스턴스에 대한 승격 티어 우선 순위 설정
<a name="AuroraPostgreSQL.cluster-cache-mgmt.Reader"></a>

클러스터 캐시 관리에 대해 리더 DB 인스턴스를 하나만 설정합니다. 이를 위해서는 라이터 DB 인스턴스와 동일한 인스턴스 클래스와 크기인 Aurora PostgreSQL 클러스터에서 리더를 선택해야 합니다. 예를 들어, 라이터에서 `db.r5.xlarge`을(를) 사용하면 동일한 인스턴스 클래스 유형 및 크기를 사용하는 리더를 선택합니다. 그런 다음 리더의 승격 티어 우선 순위를 0으로 설정합니다.

*승격 티어 우선 순위*는 장애 조치 후 Aurora 리더가 라이터 DB 인스턴스로 승격할 순서를 지정하는 값입니다. 유효한 값은 0–15이며, 여기에서 0은 최우선순위이고 15는 마지막 우선순위입니다.

#### 콘솔
<a name="AuroraPostgreSQL.cluster-cache-mgmt.Reader.Console"></a>

**라이터 DB 인스턴스의 승격 우선 순위를 tier-0으로 설정하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택합니다.

1. 라이터 DB 인스턴스와 동일한 인스턴스 클래스인 Aurora PostgreSQL DB 클러스터의 **읽기** DB 인스턴스를 선택합니다.

1. **수정**을 선택합니다. [**Modify DB Instance**] 페이지가 나타납니다.

1. **추가 구성** 패널에서 **장애 조치 우선 순위**로 **tier-0**을 선택합니다.

1. [**Continue**]를 수정 사항을 요약한 내용을 확인합니다.

1. 변경 사항을 저장한 후 즉시 적용하려면 **즉시 적용**을 선택합니다.

1. **DB 인스턴스 수정**을 선택하여 변경 사항을 저장합니다.

#### AWS CLI
<a name="AuroraPostgreSQL.cluster-cache-mgmt.Reader.CLI"></a>

AWS CLI를 사용해 리더 DB 인스턴스에 대한 승격 티어 우선 순위를 0으로 설정하려면 다음 필수 파라미터와 함께 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 호출하십시오.
+ `--db-instance-identifier`
+ `--promotion-tier`
+ `--apply-immediately`



**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier reader-db-instance \
    --promotion-tier 0 \
    --apply-immediately
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier reader-db-instance ^
    ---promotion-tier 0  ^
    --apply-immediately
```

 

## 버퍼 캐시 모니터링
<a name="AuroraPostgreSQL.cluster-cache-mgmt.Monitoring"></a>

클러스터 캐시 관리를 설정하였으면 이제 라이터 DB 인스턴스의 버퍼 캐시와 지정된 리더의 웜 버퍼 캐시 사이의 동기화 상태를 모니터링할 수 있습니다. 라이터 DB 인스턴스와 지정된 리더 DB 인스턴스에 있는 버퍼 캐시 콘텐츠를 검토하려면 PostgreSQL `pg_buffercache` 모듈을 사용하십시오. 자세한 내용은 [PostgreSQL `pg_buffercache` 설명서](https://www.postgresql.org/docs/current/pgbuffercache.html)를 참조하십시오.

**`aurora_ccm_status` 함수 사용**  
클러스터 캐시 관리는 `aurora_ccm_status` 함수도 제공합니다. 라이터 DB 인스턴스에서 `aurora_ccm_status` 함수를 사용해 지정된 리더에서 캐시 워밍이 진행되는 과정에 대해 다음과 같은 정보를 얻으십시오.
+ `buffers_sent_last_minute` – 마지막 순간에 지정된 리더로 전송된 버퍼의 수.
+ `buffers_found_last_minute` - 지난 1분 동안 식별된 자주 액세스된 버퍼 수입니다.
+ `buffers_sent_last_scan` – 버퍼 캐시에 대한 마지막 전체 스캔 중에 지정된 리더로 전송된 버퍼의 수.
+ `buffers_found_last_scan` – 자주 액세스되는 것으로 식별되어 버퍼 캐시에 대한 마지막 전체 스캔 중에 전송되어야 했던 버퍼의 수. 지정된 리더에 이미 캐시된 버퍼는 전송되지 않습니다.
+ `buffers_sent_current_scan` – 현재 스캔 중에 지금까지 전송된 버퍼의 수.
+ `buffers_found_current_scan` – 현재 스캔 중에 자주 액세스되는 것으로 식별된 버퍼의 수.
+ `current_scan_progress` – 현재 스캔 중에 지금까지 방문을 받은 버퍼의 수.

다음 예에서는 `aurora_ccm_status` 함수를 사용해 출력 중 일부를 웜 속도 및 웜 비율로 변환하는 방법을 보여줍니다.

```
SELECT buffers_sent_last_minute*8/60 AS warm_rate_kbps, 
   100*(1.0-buffers_sent_last_scan::float/buffers_found_last_scan) AS warm_percent 
   FROM aurora_ccm_status();
```

## CCM 구성 문제 해결
<a name="AuroraPostgreSQL.cluster-cache-mgmt.Troubleshooting"></a>

 `apg_ccm_enabled` 클러스터 파라미터를 활성화하면 라이터 DB 인스턴스의 인스턴스 수준 및 Aurora PostgreSQL DB 클러스터의 리더 DB 인스턴스 1개에서 클러스터 캐시 관리가 자동으로 설정됩니다. 라이터 및 리더 인스턴스는 동일한 인스턴스 클래스 유형과 크기를 사용해야 합니다. 프로모션 티어 우선 순위는 `0`으로 설정되어 있습니다. DB 클러스터의 다른 리더 인스턴스는 0이 아닌 승격 티어가 있어야 하며 해당 인스턴스에 대해서는 클러스터 캐시 관리가 비활성화되어 있습니다.

다음과 같은 이유로 구성 문제가 발생하고 클러스터 캐시 관리가 비활성화될 수 있습니다.
+ 승격 티어가 0으로 설정된 리더 DB 인스턴스가 하나도 없는 경우
+ 라이터 DB 인스턴스의 승격 티어가 0으로 설정되지 않은 경우
+ 2개 이상의 리더 DB 인스턴스에서 승격 티어가 0으로 설정된 경우
+ 승격 티어가 0인 라이터와 리더 DB 인스턴스 1개의 인스턴스 크기가 같지 않은 경우

# 풀링으로 Aurora PostgreSQL 연결 이탈 관리
<a name="AuroraPostgreSQL.BestPractices.connection_pooling"></a>

클라이언트 애플리케이션이 너무 자주 연결 및 연결 해제되어 Aurora PostgreSQL DB 클러스터 응답 시간이 느려지면 클러스터에 *연결 이탈*이 발생한다고 합니다. Aurora PostgreSQL DB 클러스터 엔드포인트에 대한 각각의 새로운 연결은 리소스를 소비하므로 실제 워크로드를 처리하는 데 사용할 수 있는 리소스가 줄어듭니다. 연결 이탈은 다음에 설명하는 모범 사례 중 일부를 따라 관리하는 것이 좋습니다.

우선 연결 이탈률이 높은 Aurora PostgreSQL DB 클러스터에서 응답 시간을 개선할 수 있습니다. 이렇게 하려면 RDS 프록시와 같은 연결 풀을 사용할 수 있습니다. *연결 풀러*는 클라이언트에 사용할 수 있는 연결 캐시를 제공합니다. Aurora PostgreSQL에서는 거의 모든 버전이 RDS 프록시를 지원합니다. 자세한 내용은 [Aurora PostgreSQL과 Amazon RDS 프록시](Concepts.Aurora_Fea_Regions_DB-eng.Feature.RDS_Proxy.md#Concepts.Aurora_Fea_Regions_DB-eng.Feature.RDS_Proxy.apg) 섹션을 참조하세요.

특정 버전의 Aurora PostgreSQL에서 RDS 프록시를 지원하지 않는 경우 PGBouncer와 같은 다른 PostgreSQL 호환 연결 풀러를 사용할 수 있습니다. 자세히 알아보려면 [PgBouncer](https://www.pgbouncer.org/) 웹 사이트를 참조하세요.

Aurora PostgreSQL DB 클러스터가 연결 풀링의 이점을 누릴 수 있는지 알아보려면 `postgresql.log` 파일에서 연결 및 연결 해제를 확인하면 됩니다. 또한 성능 개선 도우미를 사용하여 Aurora PostgreSQL DB 클러스터에서 발생하는 연결 이탈의 정도를 확인할 수 있습니다. 아래에서 두 주제에 대한 정보를 확인할 수 있습니다.

## 로깅 연결 및 연결 해제
<a name="AuroraPostgreSQL.BestPractices.connection_pooling.log_connections"></a>

PostgreSQL `log_connections` 및 `log_disconnections` 파라미터는 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 대한 연결 및 연결 해제를 캡처할 수 있습니다. 기본적으로 이 파라미터는 해제되어 있습니다. 이러한 파라미터를 설정하려면 사용자 지정 파라미터 그룹을 사용하고 값을 1로 변경하여 설정합니다. 사용자 지정 파라미터 그룹에 대한 자세한 내용은 [Amazon Aurora DB 클러스터의 DB 클러스터 파라미터 그룹](USER_WorkingWithDBClusterParamGroups.md) 단원을 참조하세요. 설정을 확인하려면 psql을 사용하여 Aurora PostgreSQL용 DB 클러스터 엔드포인트에 연결하고 다음과 같이 쿼리합니다.

```
labdb=> SELECT setting FROM pg_settings
  WHERE name = 'log_connections';
 setting
---------
on
(1 row)
labdb=> SELECT setting FROM pg_settings
  WHERE name = 'log_disconnections';
setting
---------
on
(1 row)
```

이 두 파라미터가 모두 설정되어 있으면 로그가 모든 새 연결 및 연결 해제를 캡처합니다. 인증된 각 연결의 사용자 및 데이터베이스를 볼 수 있습니다. 연결이 끊기면 다음 예와 같이 세션 기간도 기록됩니다.

```
2022-03-07 21:44:53.978 UTC [16641] LOG: connection authorized: user=labtek database=labdb application_name=psql
2022-03-07 21:44:55.718 UTC [16641] LOG: disconnection: session time: 0:00:01.740 user=labtek database=labdb host=[local]
```

애플리케이션의 연결 이탈을 확인하기 위해 해당 파라미터가 아직 설정되어 있지 않다면 설정하세요. 그런 다음 실제 워크로드 및 기간으로 애플리케이션을 실행하여 분석을 위해 PostgreSQL 로그에 데이터를 수집합니다. RDS 콘솔에서 로그 파일을 볼 수 있습니다. Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 선택한 다음 **Logs & events**(로그 및 이벤트) 탭을 선택합니다. 자세한 내용은 [데이터베이스 로그 파일 보기 및 나열](USER_LogAccess.Procedural.Viewing.md) 섹션을 참조하세요.

또는 콘솔에서 로그 파일을 다운로드하고 다음 명령 순서를 사용할 수 있습니다. 이 시퀀스는 분당 인증되거나 삭제된 총 연결 수를 찾습니다.

```
grep "connection authorized\|disconnection: session time:" postgresql.log.2022-03-21-16|\
awk {'print $1,$2}' |\
sort |\
uniq -c |\
sort -n -k1
```

예제 출력에서는 인증된 연결이 급증한 후 16:12:10 부터 연결이 끊기는 것을 볼 수 있습니다.

```
.....
,......
.........
5 2022-03-21 16:11:55 connection authorized:
9 2022-03-21 16:11:55 disconnection: session
5 2022-03-21 16:11:56 connection authorized:
5 2022-03-21 16:11:57 connection authorized:
5 2022-03-21 16:11:57 disconnection: session
32 2022-03-21 16:12:10 connection authorized:
30 2022-03-21 16:12:10 disconnection: session
31 2022-03-21 16:12:11 connection authorized:
27 2022-03-21 16:12:11 disconnection: session
27 2022-03-21 16:12:12 connection authorized:
27 2022-03-21 16:12:12 disconnection: session
41 2022-03-21 16:12:13 connection authorized:
47 2022-03-21 16:12:13 disconnection: session
46 2022-03-21 16:12:14 connection authorized:
41 2022-03-21 16:12:14 disconnection: session
24 2022-03-21 16:12:15 connection authorized:
29 2022-03-21 16:12:15 disconnection: session
28 2022-03-21 16:12:16 connection authorized:
24 2022-03-21 16:12:16 disconnection: session
40 2022-03-21 16:12:17 connection authorized:
42 2022-03-21 16:12:17 disconnection: session
40 2022-03-21 16:12:18 connection authorized:
40 2022-03-21 16:12:18 disconnection: session
.....
,......
.........
1 2022-03-21 16:14:10 connection authorized:
1 2022-03-21 16:14:10 disconnection: session
1 2022-03-21 16:15:00 connection authorized:
1 2022-03-21 16:16:00 connection authorized:
```

이 정보를 바탕으로 워크로드가 연결 풀러의 이점을 누릴 수 있는지 여부를 결정할 수 있습니다. 자세한 분석을 위해 성능 개선 도우미를 사용할 수 있습니다.

## 성능 개선 도우미로 연결 이탈 감지
<a name="AuroraPostgreSQL.BestPractices.connection_pooling.detect-churn"></a>

성능 개선 도우미를 사용하여 Aurora PostgreSQL 호환 에디션 DB 클러스터의 연결 변동 정도를 평가할 수 있습니다. Aurora PostgreSQL DB 클러스터를 생성하면 성능 개선 도우미에 대한 설정이 기본적으로 켜져 있습니다. DB 클러스터를 생성할 때 이 선택을 취소했다면 클러스터를 수정하여 기능을 켜세요. 자세한 내용은 [Amazon Aurora DB 클러스터 수정](Aurora.Modifying.md) 섹션을 참조하세요.

Aurora PostgreSQL DB 클러스터에서 성능 개선 도우미를 실행하면 모니터링할 지표를 선택할 수 있습니다. 콘솔의 탐색 창에서 성능 개선 도우미에 액세스할 수 있습니다. 다음 이미지와 같이 Aurora PostgreSQL DB 클러스터에 대한 라이터 인스턴스의 **Monitoring**(모니터링) 탭에서 성능 개선 도우미에 액세스할 수도 있습니다.

![\[RDS 콘솔 및 선택한 Aurora PostgreSQL DB 클러스터 내에서 성능 개선 도우미 인사이트에 액세스하는 이미지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/postgres_connection_pooling_PI_1.png)


성능 개선 도우미 콘솔에서 **Manage metrics**(지표 관리)를 선택합니다. Aurora PostgreSQL DB 클러스터의 연결 및 연결 해제 활동을 분석하려면 다음 지표를 선택하세요. 다음은 모두 PostgreSQL의 지표입니다.
+ `xact_commit` - 커밋된 트랜잭션의 수입니다.
+ `total_auth_attempts` - 분당 인증된 사용자 연결 시도 횟수입니다.
+ `numbackends` - 현재 데이터베이스에 연결된 백엔드 수입니다.

![\[RDS 콘솔 및 선택한 Aurora PostgreSQL DB 클러스터 내에서 성능 개선 도우미 인사이트에 액세스하는 이미지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/postgres_connection_churn_PI_4.png)


설정을 저장하고 연결 활동을 표시하려 면**그래프 업데이트**를 선택합니다.

다음 이미지에서 100명의 사용자와 함께 pgbench를 실행할 때의 영향을 확인할 수 있습니다. 연결을 나타내는 선은 일정한 상향 경사면에 있습니다. pgbench 및 사용 방법에 대한 자세한 내용은 PostgreSQL 설명서의 [pgbench](https://www.postgresql.org/docs/current/pgbench.html)를 참조하세요.

![\[연결 풀링의 필요성을 보여주는 성능 개선 도우미 이미지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/postgres_connection_pooling_PI_2.png)


이 이미지는 연결 풀러 없이 100명 정도의 사용자로 워크로드를 실행하면 워크로드 처리 기간 동안 `total_auth_attempts` 수가 크게 증가할 수 있음을 보여줍니다. `total_auth_attempts`가 가능한 한 0에 가깝게 유지되도록 하는 것이 좋습니다.

RDS 프록시 연결 풀링을 사용하면 워크로드가 시작될 때 연결 시도 횟수가 늘어납니다. 연결 풀을 설정한 후에는 평균이 감소합니다. 트랜잭션과 백엔드 사용에 사용되는 리소스는 워크로드 처리 전반에 걸쳐 일관되게 유지됩니다.

![\[연결 풀링을 위한 RDS 프록시의 이점을 보여주는 성능 개선 도우미 이미지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/postgres_connection_pooling_PI_3.png)


Aurora PostgreSQL DB 클러스터에서 성능 개선 도우미를 사용하는 방법에 대한 자세한 내용은 [성능 개선 도우미를 통한 Amazon Aurora 모니터링](USER_PerfInsights.md) 단원을 참조하세요. 지표를 분석하려면 [성능 개선 도우미 대시보드를 사용한 지표 분석](USER_PerfInsights.UsingDashboard.md) 단원을 참조하세요.

## 연결 풀링의 이점 시연
<a name="AuroraPostgreSQL.BestPractices.connection_pooling.demo-benefit-pooling"></a>

앞서 설명한 것처럼 Aurora PostgreSQL DB 클러스터에 연결 이탈 문제가 있다고 판단되면 RDS 프록시를 사용하여 성능을 개선할 수 있습니다. 다음에서는 연결이 풀링된 경우와 연결되지 않은 경우의 워크로드 처리 차이점을 보여주는 예를 확인할 수 있습니다. 이 예에서는 pgbench를 사용하여 트랜잭션 워크로드를 모델링합니다.

psql과 마찬가지로 pgbench는 로컬 클라이언트 컴퓨터에서 설치하고 실행할 수 있는 PostgreSQL 클라이언트 애플리케이션입니다. Aurora PostgreSQL DB 클러스터를 관리하는 데 사용하는 Amazon EC2 인스턴스에서 설치하고 실행할 수도 있습니다. 자세한 내용은 PostgreSQL 설명서의 [pgbench](https://www.postgresql.org/docs/current/pgbench.html)를 참조하세요.

이 예를 단계별로 진행하려면 먼저 데이터베이스에 pgbench 환경을 만들어야 합니다. 다음 명령은 지정된 데이터베이스에서 pgbench 테이블을 초기화하기 위한 기본 템플릿입니다. 이 예에서는 로그인에 기본 주 사용자 계정인 `postgres`를 사용합니다. Aurora PostgreSQL DB 클러스터에서 필요에 따라 변경합니다. 클러스터의 라이터 인스턴스에 있는 데이터베이스에 pgbench 환경을 생성합니다.

**참고**  
pgbench 초기화 프로세스는 `pgbench_accounts`,`pgbench_branches`,`pgbench_history`, 및 `pgbench_tellers`라는 테이블을 삭제하고 다시 만듭니다. pgbench를 초기화할 때 `dbname`에 대해 선택한 데이터베이스가 이러한 이름을 사용하지 않는지 확인합니다.

```
pgbench -U postgres -h db-cluster-instance-1.111122223333.aws-region.rds.amazonaws.com -p 5432 -d -i -s 50 dbname
```

pgbench의 경우 다음 파라미터를 지정합니다.

**-d**  
pgbench 실행 시 디버깅 보고서를 출력합니다.

**-h**  
Aurora PostgreSQL DB 클러스터의 라이터 인스턴스의 엔드포인트를 지정합니다.

**-i**  
벤치마크 테스트를 위해 데이터베이스에서 pgbench 환경을 초기화합니다.

**-p**  
데이터베이스 연결에 사용되는 포트를 식별합니다. Aurora PostgreSQL 기본값은 일반적으로 5432 또는 5433입니다.

**-s**  
테이블을 행으로 채우는 데 사용할 배율 인수를 지정합니다. 기본 배율 인수는 1이며, `pgbench_branches` 테이블에 1개 행, `pgbench_tellers` 테이블에 10개 행, `pgbench_accounts` 테이블에 100000개 행을 생성합니다.

**-U**  
Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 대한 사용자 계정을 지정합니다.

pgbench 환경이 설정되면 연결 풀링을 사용하거나 사용하지 않고 벤치마킹 테스트를 실행할 수 있습니다. 기본 테스트는 지정된 시간 동안 반복적으로 실행되는 트랜잭션당 5개의 SELECT, UPDATE 및 INSERT 명령 시리즈로 구성됩니다. 배율 인수, 클라이언트 수 및 기타 세부 정보를 지정하여 고유한 사용 사례를 모델링할 수 있습니다.

예를 들어 다음 명령은 20개의 동시 연결(-c 옵션)로 60초(-T 옵션, 시간을 나타냄) 동안 벤치마크를 실행합니다. -C 옵션은 클라이언트 세션당 한 번이 아니라 매번 새로운 연결을 사용하여 테스트를 실행합니다. 이 설정은 연결 오버헤드를 나타냅니다.

```
pgbench -h docs-lab-apg-133-test-instance-1.c3zr2auzukpa.us-west-1.rds.amazonaws.com -U postgres -p 5432 -T 60 -c 20 -C labdb
Password:**********
pgbench (14.3, server 13.3)
  starting vacuum...end.
  transaction type: <builtin: TPC-B (sort of)>
    scaling factor: 50
    query mode: simple
    number of clients: 20
    number of threads: 1
    duration: 60 s
    number of transactions actually processed: 495
    latency average = 2430.798 ms
    average connection time = 120.330 ms
    tps = 8.227750 (including reconnection times)
```

연결을 재사용하지 않고 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에서 pgbench를 실행하면 초당 약 8개의 트랜잭션만 처리됨을 알 수 있습니다. 이는 1분 테스트 동안 총 495건의 트랜잭션을 제공합니다.

연결을 재사용하면 사용자 수에 대한 Aurora PostgreSQL DB 클러스터의 응답이 거의 20배 빨라집니다. 재사용을 통해 동일한 시간 및 동일한 수의 사용자 연결에 대해 495개에 비해 총 9,042개의 트랜잭션이 처리됩니다. 차이점은 다음에서는 각 연결이 재사용된다는 것입니다.

```
pgbench -h docs-lab-apg-133-test-instance-1.c3zr2auzukpa.us-west-1.rds.amazonaws.com -U postgres -p 5432 -T 60 -c 20 labdb
Password:*********
pgbench (14.3, server 13.3)
      starting vacuum...end.
      transaction type: <builtin: TPC-B (sort of)>
      scaling factor: 50
      query mode: simple
      number of clients: 20
      number of threads: 1
      duration: 60 s
      number of transactions actually processed: 9042
      latency average = 127.880 ms
      initial connection time = 2311.188 ms
      tps = 156.396765 (without initial connection time)
```

이 예에서는 연결 풀링이 응답 시간을 크게 개선할 수 있음을 보여줍니다. Aurora PostgreSQL DB 클러스터용 RDS 프록시 설정에 대한 자세한 내용은 [Aurora용 Amazon RDS Proxy](rds-proxy.md) 단원을 참조하세요.

# PostgreSQL에서 연결 중단 처리
<a name="Appendix.PostgreSQL.CommonDBATasks.DeadConnectionHandling"></a>

클라이언트 애플리케이션이 중단되거나 비정상적으로 종료된 경우에도 서버에서 데이터베이스 세션이 활성 상태로 유지될 때 연결 중단이 발생합니다. 이 상황은 일반적으로 클라이언트가 데이터베이스 연결을 제대로 닫거나 진행 중인 요청을 취소하지 않고 충돌을 처리하거나 예기치 않게 종료할 때 발생합니다.

PostgreSQL은 서버 프로세스가 유휴 상태이거나 클라이언트로 데이터를 전송하려고 할 때 연결 중단을 효율적으로 식별하고 정리합니다. 그러나 유휴 상태이거나 클라이언트 입력을 기다리거나 쿼리를 적극적으로 실행하는 세션의 경우 감지가 어렵습니다. 이러한 시나리오를 처리하기 위해 PostgreSQL은 `tcp_keepalives_*`, `tcp_user_timeout` 및 `client_connection_check_interval` 파라미터를 제공합니다.

**Topics**
+ [TCP 킵얼라이브 이해](#Appendix.PostgreSQL.CommonDBATasks.DeadConnectionHandling.Understanding)
+ [Aurora PostgreSQL의 주요 TCP 킵얼라이브 파라미터](#Appendix.PostgreSQL.CommonDBATasks.DeadConnectionHandling.Parameters)
+ [TCP 킵얼라이브 설정 사용 사례](#Appendix.PostgreSQL.CommonDBATasks.DeadConnectionHandling.UseCases)
+ [모범 사례](#Appendix.PostgreSQL.CommonDBATasks.DeadConnectionHandling.BestPractices)

## TCP 킵얼라이브 이해
<a name="Appendix.PostgreSQL.CommonDBATasks.DeadConnectionHandling.Understanding"></a>

TCP 킵얼라이브는 연결 무결성을 유지하고 확인하는 데 도움이 되는 프로토콜 수준 메커니즘입니다. 각 TCP 연결은 킵얼라이브 동작을 제어하는 커널 수준 설정을 유지 관리합니다. 킵얼라이브 타이머가 만료되면 시스템은 다음을 수행합니다.
+ 데이터 및 ACK 플래그 세트가 없는 프로브 패킷을 전송합니다.
+ TCP/IP 사양에 따라 원격 엔드포인트에서 응답을 예상합니다.
+ 응답 또는 응답 없음을 기반으로 연결 상태를 관리합니다.

## Aurora PostgreSQL의 주요 TCP 킵얼라이브 파라미터
<a name="Appendix.PostgreSQL.CommonDBATasks.DeadConnectionHandling.Parameters"></a>


| 파라미터 | 설명 | 기본값 | 
| --- |--- |--- |
| tcp\$1keepalives\$1idle | Specifies number of seconds of inactivity before sending keepalive message. | 300 | 
| tcp\$1keepalives\$1interval | Specifies number of seconds between retransmissions of unacknowledged keepalive messages. | 30 | 
| tcp\$1keepalives\$1count | Maximum lost keepalive messages before declaring connection dead | 2 | 
| tcp\$1user\$1timeout | Specifies how long (in Milliseconds) unacknowledged data can remain before forcibly closing the connection. | 0 | 
| client\$1connection\$1check\$1interval | Sets the interval (in Milliseconds) for checking client connection status during long-running queries. This ensures quicker detection of closed connections. | 0 | 

## TCP 킵얼라이브 설정 사용 사례
<a name="Appendix.PostgreSQL.CommonDBATasks.DeadConnectionHandling.UseCases"></a>

### 유휴 세션 연결 유지
<a name="Appendix.PostgreSQL.CommonDBATasks.DeadConnectionHandling.UseCases.KeepingAlive"></a>

활동이 없어 방화벽 또는 라우터에 의해 유휴 연결이 종료되지 않도록 하는 방법:
+ 정기적으로 킵얼라이브 패킷을 전송하도록 `tcp_keepalives_idle`을 구성합니다.

### 연결 중단 감지
<a name="Appendix.PostgreSQL.CommonDBATasks.DeadConnectionHandling.UseCases.DetectingDead"></a>

연결 중단을 즉시 감지하는 방법:
+ `tcp_keepalives_idle`, `tcp_keepalives_interval` 및 `tcp_keepalives_count`를 조정합니다. 예를 들어 Aurora PostgreSQL 기본값을 사용하면 연결 중단을 감지하는 데 약 1분(프로브 2개 × 30초)이 걸립니다. 이러한 값을 낮추면 감지 속도가 빨라질 수 있습니다.
+ `tcp_user_timeout`을 사용하여 확인의 최대 대기 시간을 지정합니다.

TCP 킵얼라이브 설정은 커널이 연결 중단을 감지하는 데 도움이 되지만 소켓을 사용할 때까지 PostgreSQL이 작동하지 않을 수 있습니다. 세션이 긴 쿼리를 실행하는 경우 쿼리가 완료된 후에야 연결 중단이 감지될 수 있습니다. PostgreSQL 14 이상 버전에서는 `client_connection_check_interval`이 쿼리 실행 중에 소켓을 주기적으로 폴링하여 연결 중단 감지를 가속화할 수 있습니다.

## 모범 사례
<a name="Appendix.PostgreSQL.CommonDBATasks.DeadConnectionHandling.BestPractices"></a>
+ **적절한 킵얼라이브 간격 설정:** `tcp_user_timeout`, `tcp_keepalives_idle`, `tcp_keepalives_count` 및 `tcp_keepalives_interval`을 조정하여 감지 속도와 리소스 사용의 균형을 맞춥니다.
+ **환경에 최적화:** 네트워크 동작, 방화벽 정책 및 세션 요구 사항에 맞게 설정을 조정합니다.
+ **PostgreSQL 기능 활용:** 효율적인 연결 확인을 위해 PostgreSQL 14 이상 버전에서 `client_connection_check_interval`을 사용합니다.

# Aurora PostgreSQL의 메모리 파라미터 조정
<a name="AuroraPostgreSQL.BestPractices.Tuning-memory-parameters"></a>

Amazon Aurora PostgreSQL에서는 다양한 처리 작업에 사용되는 메모리 양을 제어하는 여러 파라미터를 사용할 수 있습니다. 작업에서 지정된 파라미터에 설정된 양보다 많은 메모리를 사용하는 경우 Aurora PostgreSQLdms 다른 리소스를 사용하여 처리합니다(예: 디스크에 쓰기). 이로 인해 Aurora PostgreSQL DB 클러스터가 느려지거나 중단될 수 있으며 메모리 부족 오류가 발생할 수 있습니다.

각 메모리 파라미터의 기본 설정은 일반적으로 의도한 처리 작업을 취급할 수 있습니다. 그러나 Aurora PostgreSQL DB 클러스터의 의 메모리 관련 파라미터를 조정할 수도 있습니다. 이렇게 조정하여 특정 워크로드를 처리하기에 충분한 메모리가 할당되도록 합니다.

다음에서 메모리 관리를 제어하는 파라미터에 관한 정보를 확인할 수 있습니다. 메모리 사용률을 평가하는 방법도 알아볼 수 있습니다.

## 파라미터 값 확인 및 설정
<a name="AuroraPostgreSQL.BestPractices.Tuning-memory-parameters.get-parameter-values"></a>

메모리를 관리하고 Aurora PostgreSQL DB 클러스터의 메모리 사용량을 평가하기 위해 설정할 수 있는 파라미터는 다음과 같습니다.
+ `work_mem` - Aurora PostgreSQL DB 클러스터가 임시 디스크 파일에 쓰기 전에 내부 정렬 작업 및 해시 테이블에 사용하는 메모리 양을 지정합니다.
+ `log_temp_files` - 임시 파일 생성, 파일 이름 및 크기를 기록합니다. 이 파라미터가 켜져 있으면 생성되는 각 임시 파일에 대해 로그 항목이 저장됩니다. 이 기능을 켜면 Aurora PostgreSQL DB 클러스터가 디스크에 써야 하는 빈도를 확인할 수 있습니다. 과도한 로깅을 방지하려면 Aurora PostgreSQL DB 클러스터의 임시 파일 생성에 대한 정보를 수집한 후 다시 끄세요.
+ `logical_decoding_work_mem` – 디스크로 유출되기 전에 각 내부 재정렬 버퍼에서 사용할 메모리 양(KB)을 지정합니다. 이 메모리는 복제본을 만드는 프로세스인 *논리적 디코딩*에 사용됩니다. 이는 미리 쓰기 로그(WAL) 파일의 데이터를 대상에 필요한 논리적 스트리밍 출력으로 변환하여 수행됩니다.

  이 파라미터의 값은 각 복제 연결에 지정된 크기의 단일 버퍼를 생성합니다. 기본값은 65,536KB입니다. 이 버퍼가 채워지면 초과분은 디스크에 파일로 기록됩니다. 디스크 활동을 최소화하기 위해 이 파라미터의 값을 `work_mem`보다 훨씬 높게 설정할 수 있습니다.

이러한 파라미터는 모두 동적 파라미터이므로 현재 세션에 맞게 변경할 수 있습니다. 이렇게 하려면 다음과 같이 psql과 `SET` 문을 사용하여 Aurora PostgreSQL DB 클러스터 에 연결합니다.

```
SET parameter_name TO parameter_value;
```

세션 설정은 세션 기간 동안만 지속됩니다. 세션이 끝나면 파라미터는 DB 클러스터 파라미터 그룹의 설정으로 되돌아갑니다. 파라미터를 변경하려면 먼저 다음과 같이 `pg_settings` 테이블을 쿼리하여 현재 값을 확인해야 합니다.

```
SELECT unit, setting, max_val
   FROM pg_settings WHERE name='parameter_name';
```

예를 들어 `work_mem` 파라미터의 값을 찾으려면 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결하고 다음 쿼리를 실행합니다.

```
SELECT unit, setting, max_val, pg_size_pretty(max_val::numeric)
  FROM pg_settings WHERE name='work_mem';
unit  | setting  | max_val   | pg_size_pretty
------+----------+-----------+----------------
 kB   | 1024     | 2147483647| 2048 MB
(1 row)
```

파라미터 설정이 유지되도록 변경하려면 사용자 지정 DB 클러스터 파라미터 그룹을 사용해야 합니다. `SET` 문을 사용하여 이러한 파라미터에 대해 다른 값으로 Aurora PostgreSQL DB 클러스터 를 실행한 후 사용자 지정 파라미터 그룹을 생성하고 Aurora PostgreSQL DB 클러스터에 적용할 수 있습니다. 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 단원을 참조하세요.

## 작업 메모리 파라미터 이해
<a name="AuroraPostgreSQL.BestPractices.Tuning-memory-parameters-work_mem"></a>

작업 메모리 파라미터(`work_mem`)는 Aurora PostgreSQL이 복잡한 쿼리를 처리하는 데 사용할 수 있는 최대 메모리 양을 지정합니다. 복잡한 쿼리에는 정렬 또는 그룹화 작업, 즉 다음 절을 사용하는 쿼리가 포함됩니다.
+ ORDER BY
+ DISTINCT
+ GROUP BY
+ JOIN(MERGE 및 HASH)

쿼리 플래너는 Aurora PostgreSQL DB 클러스터가 작업 메모리를 사용하는 방식에 간접적으로 영향을 미칩니다. 쿼리 플래너는 SQL 문을 처리하기 위한 실행 계획을 생성합니다. 주어진 계획을 따르면 복잡한 쿼리를 병렬로 실행할 수 있는 여러 작업 단위로 분할할 수 있습니다. 가능한 경우 Aurora PostgreSQL은 각 병렬 프로세스에서 디스크에 쓰기 전에 각 세션에 대해 `work_mem` 파라미터에 지정된 메모리 양을 사용합니다.

여러 데이터베이스 사용자가 동시에 여러 작업을 실행하고 여러 작업 단위를 병렬로 생성하면 Aurora PostgreSQL DB 클러스터에 할당된 작업 메모리가 소진될 수 있습니다. 이로 인해 임시 파일 생성 및 디스크 I/O가 과도하게 발생하거나 더 심각한 경우 메모리 부족 오류가 발생할 수 있습니다.

### 임시 파일 사용 확인
<a name="AuroraPostgreSQL.BestPractices.Tuning-memory-parameters.tempfile"></a>

쿼리 처리에 필요한 메모리가 `work_mem` 파라미터에 지정된 값을 초과할 때마다 작업 데이터가 임시 파일의 디스크에 오프로드됩니다. `log_temp_files` 파라미터를 켜면 발생하는 빈도를 파악할 수 있습니다. 기본적으로 이 파라미터는 해제(-1로 설정됨)되어 있습니다. 모든 임시 파일 정보를 캡처하려면 이 파라미터를 0으로 설정합니다. `log_temp_files`를 다른 양의 정수로 설정하여 해당 데이터 양(KB) 이상인 파일의 임시 파일 정보를 캡처하세요. 다음 이미지에서는 AWS Management Console의 예를 볼 수 있습니다.

![\[log_temp_file이 1024kB로 설정된 사용자 지정 파라미터 그룹의 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/postgres_tuning_custom_parameter.png)


임시 파일 로깅을 구성한 후 자체 워크로드로 테스트하여 작업 메모리 설정이 충분한지 확인할 수 있습니다. PostgreSQL 커뮤니티의 간단한 벤치마킹 애플리케이션인 pgbench를 사용하여 워크로드를 시뮬레이션할 수도 있습니다.

다음 예제는 테스트를 실행하는 데 필요한 테이블과 행을 생성하여 `pgbench`를 초기화합니다(`-i`). 이 예에서 배율 인수(`-s` 50)는 `labdb` 데이터베이스의 `pgbench_branches` 테이블에 50개 행, `pgbench_tellers`에 500개 행, `pgbench_accounts` 테이블에 5,000,000개 행을 생성합니다.

```
pgbench -U postgres -h your-cluster-instance-1.111122223333.aws-regionrds.amazonaws.com -p 5432 -i -s 50 labdb
Password:
dropping old tables...
NOTICE:  table "pgbench_accounts" does not exist, skipping
NOTICE:  table "pgbench_branches" does not exist, skipping
NOTICE:  table "pgbench_history" does not exist, skipping
NOTICE:  table "pgbench_tellers" does not exist, skipping
creating tables...
generating data (client-side)...
5000000 of 5000000 tuples (100%) done (elapsed 15.46 s, remaining 0.00 s)
vacuuming...
creating primary keys...
done in 61.13 s (drop tables 0.08 s, create tables 0.39 s, client-side generate 54.85 s, vacuum 2.30 s, primary keys 3.51 s)
```

환경을 초기화한 후 특정 시간(`-T`) 동안 특정 클라이언트 수(`-c`)에 대해 벤치마크를 실행할 수 있습니다. 또한 이 예에서는 `-d` 옵션을 사용하여 Aurora PostgreSQL DB 클러스터에서 트랜잭션을 처리할 때 디버깅 정보를 출력합니다.

```
pgbench -h -U postgres your-cluster-instance-1.111122223333.aws-regionrds.amazonaws.com -p 5432 -d -T 60 -c 10 labdb
Password:*******
pgbench (14.3)
starting vacuum...end.
transaction type: <builtin: TPC-B (sort of)>
scaling factor: 50
query mode: simple
number of clients: 10
number of threads: 1
duration: 60 s
number of transactions actually processed: 1408
latency average = 398.467 ms
initial connection time = 4280.846 ms
tps = 25.096201 (without initial connection time)
```

[pgbench](https://www.postgresql.org/docs/current/pgbench.html)에 대한 자세한 내용은 PostgreSQL 설명서를 참조하세요.

psql metacommand 명령(`\d`)을 사용하여 pgbench에서 생성한 테이블, 뷰 및 인덱스와 같은 관계를 나열할 수 있습니다.

```
labdb=>  \d pgbench_accounts
 Table "public.pgbench_accounts"
  Column  |     Type      | Collation | Nullable | Default
----------+---------------+-----------+----------+---------
 aid      | integer       |           | not null |
 bid      | integer       |           |          |
 abalance | integer       |           |          |
 filler   | character(84) |           |          |
Indexes:
    "pgbench_accounts_pkey" PRIMARY KEY, btree (aid)
```

출력에 표시된 대로 `pgbench_accounts` 테이블은 `aid` 열에서 인덱싱됩니다. 이 다음 쿼리가 작업 메모리를 사용하도록 하려면 다음 예에 표시된 것과 같이 인덱싱되지 않은 열을 쿼리합니다.

```
postgres=> SELECT * FROM pgbench_accounts ORDER BY bid;
```

로그에서 임시 파일을 확인합니다. 이렇게 하려면 AWS Management Console을 열고 Aurora PostgreSQL DB 클러스터 인스턴스를 선택한 다음 **로그 및 이벤트** 탭을 선택합니다. 로그는 콘솔에서 확인하거나 다운로드하여 추가 분석을 수행할 수 있습니다. 다음 이미지에 표시된 것처럼 쿼리를 처리하는 데 필요한 임시 파일의 크기는 `work_mem` 파라미터에 지정된 양을 늘려야 함을 나타냅니다.

![\[임시 파일을 표시하는 AWS Management Console 로그 파일의 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/postgres_tuning_log_temp_files.png)


운영상의 필요에 따라 개인 및 그룹에 대해 이 파라미터를 다르게 구성할 수 있습니다. 예를 들어 `dev_team`이라는 역할에 대해 `work_mem` 파라미터를 8GB로 설정할 수 있습니다.

```
postgres=> ALTER ROLE dev_team SET work_mem=‘8GB';
```

`work_mem`에 대한 이 설정을 사용하면 `dev_team` 역할의 구성원인 역할에 최대 8GB의 작업 메모리가 할당됩니다.

## 응답 시간 단축을 위한 인덱스 사용
<a name="AuroraPostgreSQL.BestPractices.Tuning-memory-parameters.indexing-and-performance"></a>

쿼리가 결과를 반환하는 데 너무 오래 걸리는 경우 인덱스가 예상대로 사용되고 있는지 확인할 수 있습니다. 먼저 다음과 같이 psql 메타 명령인 `\timing`을 켭니다.

```
postgres=>  \timing on
```

타이밍을 켠 후 간단한 SELECT 문을 사용합니다.

```
postgres=> SELECT COUNT(*) FROM
  (SELECT * FROM pgbench_accounts
  ORDER BY bid)
  AS accounts;
count 
-------
5000000
(1 row)
Time: 3119.049 ms (00:03.119)
```

출력에 표시된 대로 이 쿼리를 완료하는 데 3초가 조금 넘게 걸렸습니다. 응답 시간을 개선하려면 다음과 같이 `pgbench_accounts`에 인덱스를 생성합니다.

```
postgres=> CREATE INDEX ON pgbench_accounts(bid);
CREATE INDEX
```

쿼리를 다시 실행하면 응답 시간이 더 빨라지는 것을 확인할 수 있습니다. 이 예시에서는 쿼리가 약 0.5초 만에 5배 더 빠르게 완료되었습니다.

```
postgres=>  SELECT COUNT(*) FROM (SELECT * FROM pgbench_accounts ORDER BY bid) AS accounts;
 count 
-------
 5000000
(1 row)
Time: 567.095 ms
```

## 논리적 디코딩을 위한 작업 메모리 조정
<a name="AuroraPostgreSQL.BestPractices.Tuning-memory-parameters.logical-decoding-work-mem"></a>

논리적 복제는 PostgreSQL 버전 10에 도입된 이후 모든 버전의 Aurora PostgreSQL 에서 사용할 수 있습니다. 논리적 복제를 구성할 때 논리적 디코딩 프로세스가 디코딩 및 스트리밍 프로세스에 사용할 수 있는 메모리 양을 지정하도록 `logical_decoding_work_mem` 파라미터를 설정할 수도 있습니다.

논리적 디코딩 중에 미리 쓰기 로그(WAL) 레코드는 SQL 문으로 변환된 다음 논리적 복제나 다른 작업을 위해 다른 대상으로 전송됩니다. 트랜잭션이 WAL에 작성된 다음 변환되면 전체 트랜잭션이 `logical_decoding_work_mem`에 지정된 값에 맞아야 합니다. 기본적으로 이 파라미터는 65,536MB로 설정됩니다. 모든 오버플로우는 디스크에 기록됩니다. 따라서 디스크에서 다시 읽어야 대상으로 보낼 수 있기 때문에 전체 프로세스 속도가 느려집니다.

다음 예와 같이 `aurora_stat_file` 함수를 사용하여 특정 시점에서 현재 워크로드의 트랜잭션 오버플로 양을 평가할 수 있습니다.

```
SELECT split_part (filename, '/', 2)
   AS slot_name, count(1) AS num_spill_files,
   sum(used_bytes) AS slot_total_bytes,
   pg_size_pretty(sum(used_bytes)) AS slot_total_size
   FROM aurora_stat_file()
   WHERE filename like '%spill%'
   GROUP BY 1;
  slot_name | num_spill_files | slot_total_bytes | slot_total_size
------------+-----------------+------------------+-----------------
 slot_name  |       590       |      411600000   | 393 MB
(1 row)
```

이 쿼리는 쿼리가 호출될 때 Aurora PostgreSQL DB 클러스터에 있는 유출 파일의 수와 크기를 반환합니다. 더 오래 실행되는 워크로드는 아직 디스크에 유출 파일이 없을 수 있습니다. 장기 실행 워크로드를 프로파일링하려면 워크로드가 실행될 때 유출 파일 정보를 캡처하는 테이블을 생성하는 것이 좋습니다. 다음과 같이 테이블을 만들 수 있습니다.

```
CREATE TABLE spill_file_tracking AS
    SELECT now() AS spill_time,*
    FROM aurora_stat_file()
    WHERE filename LIKE '%spill%';
```

논리적 복제 중에 스필 파일이 사용되는 방식을 보려면 게시자와 구독자를 설정한 다음 단순 복제를 시작합니다. 자세한 내용은 [Aurora PostgreSQL DB 클러스터의 논리적 복제 설정](AuroraPostgreSQL.Replication.Logical.Configure.md) 섹션을 참조하세요. 복제가 진행되면 다음과 같이 `aurora_stat_file()` 유출 파일 함수에서 결과 집합을 캡처하는 작업을 만들 수 있습니다.

```
INSERT INTO spill_file_tracking
  SELECT now(),*
  FROM aurora_stat_file()
  WHERE filename LIKE '%spill%';
```

다음 psql 명령을 사용하여 초당 한 번씩 작업을 실행합니다.

```
\watch 0.5
```

작업이 실행 중일 때 다른 psql 세션에서 라이터 인스턴스에 연결합니다. 다음 일련의 명령문을 사용하여 메모리 구성을 초과하는 Aurora PostgreSQL이 유출 파일을 생성하도록 하는 워크로드를 실행하세요.

```
labdb=> CREATE TABLE my_table (a int PRIMARY KEY, b int);
CREATE TABLE
labdb=> INSERT INTO my_table SELECT x,x FROM generate_series(0,10000000) x;
INSERT 0 10000001
labdb=> UPDATE my_table SET b=b+1;
UPDATE 10000001
```

이러한 명령문은 완료하는 데 몇 분 정도 걸립니다. 완료되면 Ctrl 키와 C 키를 함께 눌러 모니터링 기능을 중지합니다. 그런 다음 아래 명령을 사용하여 Aurora PostgreSQL DB 클러스터의 유출 파일 사용에 대한 정보를 보관하는 테이블을 생성합니다.

```
SELECT spill_time, split_part (filename, '/', 2)
    AS slot_name, count(1)
    AS spills, sum(used_bytes)
    AS slot_total_bytes, pg_size_pretty(sum(used_bytes))
    AS slot_total_size FROM spill_file_tracking
  GROUP BY 1,2 ORDER BY 1;
                   spill_time | slot_name             | spills | slot_total_bytes | slot_total_size
------------------------------+-----------------------+--------+------------------+-----------------
2022-04-15 13:42:52.528272+00 | replication_slot_name | 1      | 142352280        | 136 MB
2022-04-15 14:11:33.962216+00 | replication_slot_name | 4      | 467637996        | 446 MB
2022-04-15 14:12:00.997636+00 | replication_slot_name | 4      | 569409176        | 543 MB
2022-04-15 14:12:03.030245+00 | replication_slot_name | 4      | 569409176        | 543 MB
2022-04-15 14:12:05.059761+00 | replication_slot_name | 5      | 618410996        | 590 MB
2022-04-15 14:12:07.22905+00  | replication_slot_name | 5      | 640585316        | 611 MB
(6 rows)
```

출력은 예를 실행하면 611MB의 메모리를 사용하는 유출 파일 5개가 생성되었음을 보여줍니다. 디스크에 쓰지 않으려면 `logical_decoding_work_mem` 파라미터는 다음으로 높은 메모리 크기인 1024로 설정하는 것이 좋습니다.

# Amazon CloudWatch 지표를 사용한 Aurora PostgreSQL의 리소스 사용량 분석
<a name="AuroraPostgreSQL_AnayzeResourceUsage"></a>

Aurora는 1분 단위로 CloudWatch에 지표 데이터를 자동 전송합니다. CloudWatch 지표를 사용하여 Aurora PostgreSQL의 리소스 사용량을 분석할 수 있습니다. 지표를 사용하여 네트워크 처리량(throughput)과 네트워크 사용량을 평가할 수 있습니다.

## CloudWatch를 사용한 네트워크 처리량(throughput) 평가
<a name="AuroraPostgreSQL_AnayzeResourceUsage.EvaluateNetworkThroughput"></a>

시스템 사용량이 인스턴스 유형의 리소스 한도에 가까워지면 처리 속도가 느려질 수 있습니다. CloudWatch **Logs Insights**를 사용하여 스토리지 리소스 사용량을 모니터링하고 사용할 수 있는 리소스가 충분한지 확인할 수 있습니다. 필요한 경우 DB 인스턴스를 더 큰 인스턴스 클래스로 수정할 수 있습니다.

 다음과 같은 이유로 Aurora 스토리지 처리 속도가 느릴 수 있습니다.
+ 클라이언트와 DB 인스턴스 간의 네트워크 대역폭이 부족합니다.
+ 스토리지 하위 시스템에 대한 네트워크 대역폭이 부족합니다.
+ 인스턴스 유형에 비해 규모가 큰 워크로드입니다.

CloudWatch **Logs Insights**를 쿼리하여 Aurora 스토리지 리소스 사용량 그래프를 생성하여 리소스를 모니터링할 수 있습니다. 그래프는 더 큰 인스턴스 크기로 스케일 업할지를 결정하는 데 도움이 되는 CPU 사용률 및 지표를 보여줍니다. CloudWatch **Logs Insights**의 쿼리 구문에 대한 자세한 내용은 [CloudWatch Logs Insights query syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html)(CloudWatch Logs Insights 쿼리 구문)를 참조하세요.

CloudWatch를 사용하려면 Aurora PostgreSQL 로그 파일을 CloudWatch로 내보내야 합니다. CloudWatch로 로그를 내보내도록 기존 클러스터를 수정할 수도 있습니다. CloudWatch로 로그를 내보내는 방법에 대한 자세한 내용은 [Amazon CloudWatch로 로그를 게시하는 옵션 설정](AuroraPostgreSQL.CloudWatch.Publishing.md)을 참조하세요.

CloudWatch **Logs Insights**를 쿼리하려면 DB 인스턴스의 **Resource ID**(리소스 ID)가 필요합니다. **Resource ID**(리소스 ID)는 콘솔의 **Configuration**(구성) 탭에서 확인할 수 있습니다.

![\[Aurora 콘솔의 구성 탭에 있는 리소스 ID.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/Aur_PG_resource_id.png)


**로그 파일에서 리소스 스토리지 지표를 쿼리하려면 다음을 수행하세요.**

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

   CloudWatch 개요 홈페이지가 표시됩니다.

1. 필요한 경우 AWS 리전을 변경합니다. 탐색 모음에서 AWS가 있는 AWS 리전을 선택합니다. 자세한 내용은 [리전 및 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/rande.html)를 참조하세요.

1. 탐색 창에서 **Logs**(로그)를 선택한 다음, **Logs Insights**를 선택합니다.

   **Logs Insights** 페이지가 나타납니다.

1. 드롭다운 목록에서 분석할 로그 파일을 선택합니다.

1. 필드에 다음 쿼리를 입력하고 `<resource ID>`를 DB 클러스터의 리소스 ID로 바꿉니다.

   `filter @logStream = <resource ID> | parse @message "\"Aurora Storage Daemon\"*memoryUsedPc\":*,\"cpuUsedPc\":*," as a,memoryUsedPc,cpuUsedPc | display memoryUsedPc,cpuUsedPc #| stats avg(xcpu) as avgCpu by bin(5m) | limit 10000`

1. **Run query**(쿼리 실행)를 클릭합니다.

   스토리지 사용률 그래프가 표시됩니다.

   다음 이미지는 **Logs Insights** 페이지와 그래프를 나타냅니다.  
![\[Logs Insights 페이지와 그래프 디스플레이.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/AurPG-CW-LogsInsights.png)

## CloudWatch 지표를 사용한 Aurora PostgreSQL에 대한 DB 인스턴스 사용량 평가
<a name="AuroraPostgreSQL_AnayzeResourceUsage.EvaluateInstanceUsage"></a>

CloudWatch 지표를 사용하여 인스턴스 처리량(throughput)을 관찰하고 인스턴스 클래스가 애플리케이션에 제공하는 리소스가 충분한지 확인할 수 있습니다. DB 인스턴스 클래스 한도에 대한 자세한 내용은 [Aurora에 대한 DB 인스턴스 클래스의 하드웨어 사양](Concepts.DBInstanceClass.Summary.md)에서 DB 인스턴스 클래스의 사양을 찾아 네트워크 성능을 확인하세요.

DB 인스턴스 사용량이 인스턴스 클래스 한도에 가까워지면 성능이 느려질 수 있습니다. CloudWatch 지표를 통해 이러한 상황을 확인할 수 있으므로 더 큰 인스턴스 클래스로 수동 스케일 업할 계획을 세울 수 있습니다.

다음 CloudWatch 지표 값을 조합하여 인스턴스 클래스 한도에 가까워졌는지 확인하세요.
+ **NetworkThroughput** – Aurora DB 클러스터의 각 인스턴스에 대해 클라이언트가 수신 및 전송한 네트워크 처리량(throughput)입니다. 이 처리량(throughput) 값에서 DB 클러스터의 인스턴스와 클러스터 볼륨 간 네트워크 트래픽은 제외됩니다.
+ **StorageNetworkThroughput** – Aurora DB 클러스터의 각 인스턴스에서 Aurora 스토리지 하위 시스템으로 수신 및 전송한 네트워크 처리량(throughput)입니다.

**NetworkThroughput**을 **StorageNetworkThroughput**에 추가하여 Aurora DB 클러스터의 각 인스턴스가 Aurora 스토리지 하위 시스템에서 수신 및 전송한 네트워크 처리량(throughput)을 확인하세요. 인스턴스에 대한 인스턴스 클래스 한도는 이 두 지표를 합한 값보다 커야 합니다.

 다음 지표를 사용하여 전송 및 수신 시 클라이언트 애플리케이션의 네트워크 트래픽에 대한 추가 세부 정보를 검토할 수 있습니다.
+ **NetworkReceiveThroughput** – Aurora PostgreSQL DB 클러스터의 각 인스턴스가 클라이언트로부터 수신한 네트워크 처리량(throughput)입니다. 이 처리량에서 DB 클러스터의 인스턴스와 클러스터 볼륨 간 네트워크 트래픽은 제외됩니다.
+ **NetworkTransmitThroughput** – Aurora DB 클러스터의 각 인스턴스가 클라이언트로 전송한 네트워크 처리량(throughput)입니다. 이 처리량에서 DB 클러스터의 인스턴스와 클러스터 볼륨 간 네트워크 트래픽은 제외됩니다.
+ **StorageNetworkReceiveThroughput** – DB 클러스터의 각 인스턴스가 Aurora 스토리지 하위 시스템에서 수신한 네트워크 처리량(throughput)입니다.
+ **StorageNetworkTransmitThroughput** – DB 클러스터의 각 인스턴스가 Aurora 스토리지 하위 시스템으로 전송한 네트워크 처리량(throughput)입니다.

이러한 지표를 모두 더해 네트워크 사용량을 인스턴스 클래스 한도와 비교하는 방법을 평가합니다. 인스턴스 클래스 한도는 이러한 결합 지표를 합한 값보다 커야 합니다.

스토리지의 네트워크 한도와 CPU 사용률은 상호적인 관계가 있습니다. 네트워크 처리량(throughput)이 증가하면 CPU 사용률도 증가합니다. CPU 및 네트워크 사용량을 모니터링하면 리소스가 소진되는 방식 및 이유에 대한 정보를 얻을 수 있습니다.

네트워크 사용을 최소화하려면 다음을 고려하면 됩니다.
+ 규모가 더 큰 인스턴스 클래스를 사용합니다.
+ `pg_partman` 파티셔닝 전략을 사용합니다.
+ 쓰기 요청을 일괄적으로 나누어 전체 트랜잭션을 줄입니다.
+ 읽기 전용 워크로드를 읽기 전용 인스턴스로 지정합니다.
+ 사용하지 않는 인덱스를 삭제합니다.
+ 부풀려진 객체 및 VACUUM이 있는지 확인합니다. 팽창이 심한 경우에는 PostgreSQL 확장 `pg_repack`을 사용합니다. `pg_repack`에 대한 자세한 내용은 [Reorganize tables in PostgreSQL databases with minimal locks](https://reorg.github.io/pg_repack/)(최소 잠금으로 PostgreSQL 데이터베이스의 테이블 재구성)를 참조하세요.

# 논리적 복제를 사용하여 Aurora PostgreSQL에 대한 메이저 버전 업그레이드 수행
<a name="AuroraPostgreSQL.MajorVersionUpgrade"></a>

논리적 복제와 Aurora 고속 복제를 사용하면 변경되는 데이터를 새로운 메이저 버전 데이터베이스로 점진적으로 마이그레이션하면서도 현재 Aurora PostgreSQL 데이터베이스 버전을 사용하는 메이저 버전 업그레이드를 수행할 수 있습니다. 가동 중지 시간이 짧은 이 업그레이드 프로세스를 블루/그린 업그레이드라고 합니다. 데이터베이스의 현재 버전을 “블루” 환경이라고 하고 새 데이터베이스 버전을 “그린” 환경이라고 합니다.

Aurora 고속 클로닝은 소스 데이터베이스의 스냅샷을 생성하여 기존 데이터를 완전히 로드합니다. 고속 클로닝은 Aurora 스토리지 계층에 구축되는 기록 중 복사(copy-on-write) 프로토콜을 사용하므로, 짧은 시간 안에 데이터베이스 클론을 생성할 수 있습니다. 이 방법은 대규모 데이터베이스로 업그레이드할 때 매우 효과적입니다.

PostgreSQL에서의 논리적 복제는 사용자가 PostgreSQL 신규 버전으로 전환할 때까지 초기 인스턴스의 데이터 변경 사항을 추적하고 병렬로 실행되는 새 인스턴스로 전송합니다. 논리적 복제에서는 게시 및 구독 모델을 사용합니다. Aurora PostgreSQL 논리적 복제에 대한 자세한 내용은 [Amazon Aurora PostgreSQL를 사용한 복제](AuroraPostgreSQL.Replication.md) 섹션을 참조하세요.

**작은 정보**  
관리형 Amazon RDS 블루/그린 배포 기능을 사용하여 메이저 버전 업그레이드에 필요한 가동 중지를 최소화할 수 있습니다. 자세한 내용은 [데이터베이스 업데이트에 Amazon Aurora 블루/그린 배포 사용](blue-green-deployments.md) 섹션을 참조하세요.

**Topics**
+ [요구 사항](#AuroraPostgreSQL.MajorVersionUpgrade.Requirements)
+ [제한 사항](#AuroraPostgreSQL.MajorVersionUpgrade.Limitations)
+ [파라미터 값 설정 및 확인](#AuroraPostgreSQL.MajorVersionUpgrade.Parameters)
+ [Aurora PostgreSQL를 새로운 메이저 버전으로 업그레이드](#AuroraPostgreSQL.MajorVersionUpgrade.StartLogicalReplication)
+ [업그레이드 후 작업 수행](#AuroraPostgreSQL.MajorVersionUpgrade.PostUpgrade)

## 요구 사항
<a name="AuroraPostgreSQL.MajorVersionUpgrade.Requirements"></a>

가동 중지 시간이 짧은 이 업그레이드 프로세스를 수행하려면 다음 요구 사항을 충족해야 합니다.
+ rds\$1superuser 권한이 있어야 합니다.
+ 업그레이드하려는 Aurora PostgreSQL DB 클러스터가 논리적 복제를 사용하여 메이저 버전 업그레이드를 수행할 수 있는 지원 버전을 실행해야 합니다. DB 클러스터에 마이너 버전 업데이트 및 패치가 있다면 적용해야 합니다. 이 기법에 사용되는 `aurora_volume_logical_start_lsn` 함수는 다음 버전의 Aurora PostgreSQL에서 지원됩니다.
  + 15.2 이상의 15 버전
  + 14.3 이상의 14 버전
  + 13.6 이상의 13 버전
  + 12.10 이상의 12 버전
  + 11.15 이상의 11 버전
  + 10.20 이상의 10 버전

  `aurora_volume_logical_start_lsn` 함수에 대한 자세한 내용은 [aurora\$1volume\$1logical\$1start\$1lsn](aurora_volume_logical_start_lsn.md) 섹션을 참조하세요.
+ 모든 테이블에는 프라이머리 키가 있거나 [PostgreSQL ID 열](https://www.postgresql.org/docs/current/sql-createtable.html)이 포함되어야 합니다.
+ 두 (이전 및 신규 클러스터를 포함한) Aurora PostgreSQL DB 클러스터 간의 인바운드 및 아웃바운드 액세스를 허용하도록 VPC의 보안 그룹을 구성합니다. 특정 Classless Inter-Domain Routing(CIDR) 범위 또는 VPC나 피어 VPC의 다른 보안 그룹에 대한 액세스 권한을 부여할 수 있습니다. (피어 VPC에는 VPC 피어링 연결이 필요합니다.)

**참고**  
실행 중인 논리적 복제 시나리오를 구성하고 관리하는 데 필요한 권한에 대한 자세한 내용은 [PostgreSQL 핵심 설명서](https://www.postgresql.org/docs/13/logical-replication-security.html)를 참조하십시오.

## 제한 사항
<a name="AuroraPostgreSQL.MajorVersionUpgrade.Limitations"></a>

 Aurora PostgreSQL DB 클러스터를 새 메이저 버전으로 업그레이드하기 위해 가동 중지 시간이 짧은 업그레이드를 수행할 때는 기본 PostgreSQL 논리적 복제 기능을 사용하게 됩니다. PostgreSQL 논리적 복제와 동일한 기능과 제한 사항이 있습니다. 자세한 내용은 [PostgreSQL 논리적 복제](https://www.postgresql.org/docs/13/logical-replication.html)를 참조하세요.
+ 데이터 정의 언어(DDL) 명령은 복제되지 않습니다.
+ 복제는 라이브 데이터베이스에서의 스키마 변경을 지원하지 않습니다. 스키마는 클로닝 프로세스 중에 원래 형태로 재생성됩니다. 클로닝 후 업그레이드가 완료되기 전에 스키마를 변경하면 변경 사항이 업그레이드된 인스턴스에 반영되지 않습니다.
+ 대형 객체는 복제되지 않지만 일반 테이블에 데이터를 저장할 수 있습니다.
+ 복제는 파티션을 나눈 테이블을 포함한 테이블에서만 지원됩니다. 뷰, 구체화된 뷰 또는 외부 테이블 같은 다른 유형의 관계로의 복제는 지원되지 않습니다.
+ 시퀀스 데이터는 복제되지 않으며 장애 조치 후 수동 업데이트가 필요합니다.

**참고**  
이 업그레이드는 자동 스크립팅을 지원하지 않습니다. 모든 단계를 직접 수행해야 합니다.

## 파라미터 값 설정 및 확인
<a name="AuroraPostgreSQL.MajorVersionUpgrade.Parameters"></a>

 업그레이드하기 전에 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 게시 서버로 작동하도록 구성합니다. 인스턴스는 다음 설정이 적용된 사용자 지정 DB 클러스터 파라미터 그룹을 사용해야 합니다.
+ `rds.logical_replication` – 이 파라미터를 1로 설정합니다. `rds.logical_replication` 파라미터는 미리 쓰기 로그 파일 관리를 제어하는 독립 실행형 PostgreSQL 서버의 `wal_level` 파라미터 및 기타 파라미터와 동일한 용도로 사용됩니다.
+ `max_replication_slots` – 이 파라미터를 생성할 총 구독 수로 설정합니다. AWS DMS를 사용 중인 경우 이 파라미터를 이 DB 클러스터에서 변경된 데이터를 캡처하는 데 사용할 AWS DMS 태스크의 숫자로 설정합니다.
+ `max_wal_senders` - 관리 태스크와 새 세션에 사용할 수 있도록 동시 연결 수에 약간의 여분을 더한 수로 설정합니다. AWS DMS를 사용하는 경우 max\$1wal\$1senders 수는 총 동시 세션 수에 특정 시간에 작동하는 AWS DMS 태스크 수를 더한 값과 같아야 합니다.
+ `max_logical_replication_workers` - 예상하는 논리적 복제 작업자 및 테이블 동기화 작업자 수로 설정합니다. 일반적으로는 복제 작업자 수를 max\$1wal\$1senders에 사용한 것과 동일한 값으로 설정하는 것이 안전합니다. 작업자는 서버에 할당된 백그라운드 프로세스 풀(max\$1worker\$1processes)에서 가져옵니다.
+  `max_worker_processes` - 서버의 백그라운드 프로세스 수로 설정합니다. 이 수는 복제, 자동 진공 처리 프로세스 및 동시에 수행될 수 있는 기타 유지 관리 프로세스에 작업자를 할당할 수 있을만큼 커야 합니다.

신규 버전의 Aurora PostgreSQL로 업그레이드하는 경우 이전 버전 파라미터 그룹에서 수정한 모든 파라미터를 복제해야 합니다. 이러한 파라미터는 업그레이드된 버전에 적용됩니다. `pg_settings` 테이블을 쿼리하여 파라미터 설정 목록을 얻어 새 Aurora PostgreSQL DB 클러스터에서 파라미터 설정을 다시 생성할 수 있습니다.

예를 들어 복제 파라미터의 설정을 얻으려면 다음 쿼리를 실행합니다.

```
SELECT name, setting FROM pg_settings WHERE name in 
('rds.logical_replication', 'max_replication_slots', 
'max_wal_senders', 'max_logical_replication_workers', 
'max_worker_processes');
```

## Aurora PostgreSQL를 새로운 메이저 버전으로 업그레이드
<a name="AuroraPostgreSQL.MajorVersionUpgrade.StartLogicalReplication"></a>

**게시자(블루) 준비 방법**

1. 다음 예제에서 소스 라이터 인스턴스(블루)는 PostgreSQL 버전 11.15를 실행하는 Aurora PostgreSQL DB 클러스터입니다. 이 복제 시나리오에서는 게시 노드입니다. 이 데모에서 소스 라이터 인스턴스는 일련의 값을 포함하는 샘플 테이블을 호스팅합니다.

   ```
   CREATE TABLE my_table (a int PRIMARY KEY);
   INSERT INTO my_table VALUES (generate_series(1,100));
   ```

1. 원본 인스턴스에서 게시자를 만들려면 psql(CLI for PostgreSQL) 또는 원하는 클라이언트를 사용하여 인스턴스의 라이터 노드에 연결해야 합니다. 각 데이터베이스에 다음 명령을 입력합니다.

   ```
   CREATE PUBLICATION publication_name FOR ALL TABLES;
   ```

   publication\$1name은 게시의 이름을 지정합니다.

1. 인스턴스에서 복제 슬롯을 생성해야 합니다. 다음 명령은 복제 슬롯을 생성하고 `pgoutput` [논리적 디코딩 플러그인](https://www.postgresql.org/docs/current/logicaldecoding-explanation.html)을 로드합니다. 이 플러그인은 미리 쓰기 로그(WAL)에서 읽은 콘텐츠를 논리적 복제 프로토콜로 변경하고, 게시 사양에 따라 데이터를 필터링합니다.

   ```
   SELECT pg_create_logical_replication_slot('replication_slot_name', 'pgoutput');
   ```

**게시자를 복제하는 방법**

1. Amazon RDS 콘솔을 사용하여 원본 인스턴스의 클론을 만듭니다. Amazon RDS 콘솔에서 인스턴스 이름을 강조 표시한 다음 **Actions**(작업) 메뉴에서 **Create clone**(복제본 생성)을 선택합니다.  
![\[Aurora MySQL DB 클러스터 버전 2에서 버전 3으로의 현재 위치 업그레이드\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-logicalreplication-mvu-create-clone.png)

1. 인스턴스의 고유 이름을 입력합니다. 대부분의 설정은 소스 인스턴스의 기본값입니다. 새 인스턴스에 필요한 변경 사항을 적용했다면 **Create clone**(복제본 생성)을 선택합니다.  
![\[Aurora MySQL DB 클러스터 버전 2에서 버전 3으로의 현재 위치 업그레이드\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-logicalreplication-mvu-create-clone-note.png)

1. 대상 인스턴스가 시작되는 동안 라이터 노드의 **Status**(상태) 열에는 **Status**(상태) 열에 생성 중(Creating)이 표시됩니다. 인스턴스가 준비되면 인스턴스의 상태가 사용 가능(Aavailable)으로 변경됩니다.

**업그레이드를 위해 클론 준비**

1. 클론은 배포 모델의 '그린' 인스턴스입니다. 이것은 복제 구독 노드의 호스트입니다. 노드를 사용할 수 있게 되면 psql에 연결하고 새 라이터 노드에 아래의 쿼리를 수행해 LSN(로그 시퀀스 번호)을 얻습니다. LSN은 WAL 스트림에서 레코드가 시작되는 부분을 나타냅니다.

   ```
   SELECT aurora_volume_logical_start_lsn();
   ```

1. 쿼리의 응답에서 LSN 번호를 찾을 수 있습니다. 프로세스 후반부에 필요하니 이 번호를 메모해 두십시오.

   ```
   postgres=> SELECT aurora_volume_logical_start_lsn();
   aurora_volume_logical_start_lsn 
   ---------------
   0/402E2F0
   (1 row)
   ```

1. 클론을 업그레이드하기 전에 클론의 복제 슬롯을 삭제하세요.

   ```
   SELECT pg_drop_replication_slot('replication_slot_name');
   ```

**클러스터를 새 메이저 버전으로 업그레이드**
+ 공급자 노드를 복제한 후 Amazon RDS 콘솔을 사용하여 구독 노드에서 메이저 버전 업그레이드를 시작합니다. RDS 콘솔에서 인스턴스 이름을 강조 표시하고 **Modify**(수정) 버튼을 선택합니다. 업데이트된 버전과 업데이트된 파라미터 그룹을 선택하고, 설정을 즉시 적용하여 대상 인스턴스를 업그레이드합니다.  
![\[Aurora MySQL DB 클러스터 버전 2에서 버전 3으로의 현재 위치 업그레이드\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-logicalreplication-mvu-modify-DB-cluster.png)
+ CLI를 사용하여 업그레이드를 수행할 수도 있습니다.

  ```
  aws rds modify-db-cluster —db-cluster-identifier $TARGET_Aurora_ID —engine-version 13.6 —allow-major-version-upgrade —apply-immediately
  ```

**가입자(그린)를 준비하는 방법**

1. 업그레이드 후에 클론이 사용 가능해지면 psql에 연결하고 구독을 정의합니다. 이렇게 하려면 `CREATE SUBSCRIPTION` 명령에서 다음 옵션을 지정해야 합니다.
   + `subscription_name` – 구독의 이름입니다.
   + `admin_user_name` - rds\$1superuser 권한이 있는 관리자 사용자의 이름입니다.
   + `admin_user_password` - 관리자 사용자와 연결된 암호입니다.
   + `source_instance_URL` - 게시 서버 인스턴스의 URL입니다.
   + `database` - 구독 서버가 연결할 데이터베이스입니다.
   + `publication_name` - 게시 서버의 이름입니다.
   + `replication_slot_name` - 복제 슬롯의 이름입니다.

   ```
   CREATE SUBSCRIPTION subscription_name 
   CONNECTION 'postgres://admin_user_name:admin_user_password@source_instance_URL/database' PUBLICATION publication_name 
   WITH (copy_data = false, create_slot = false, enabled = false, connect = true, slot_name = 'replication_slot_name');
   ```

1.  구독을 생성한 후 [pg\$1replication\$1origin](https://www.postgresql.org/docs/14/catalog-pg-replication-origin.html) 뷰를 쿼리하여 복제 원본의 식별자인 roname 값을 검색합니다. 각 인스턴스에는 `roname`이 하나씩 있습니다.

   ```
   SELECT * FROM pg_replication_origin;
   ```

   예제:

   ```
   postgres=> 
   SELECT * FROM pg_replication_origin;
    
   roident | roname 
   ---------+----------
   1 | pg_24586
   ```

1. 게시 노드의 이전 쿼리에서 저장한 LSN과 명령의 [INSTANCE] 구독 노드에서 반환된 `roname`을 입력합니다. 이 명령은 `[pg\$1replication\$1origin\$1advance](https://www.postgresql.org/docs/14/functions-admin.html)` 함수를 사용하여 복제를 위한 로그 시퀀스의 시작점을 지정합니다.

   ```
   SELECT pg_replication_origin_advance('roname', 'log_sequence_number');
   ```

   `roname`은 pg\$1replication\$1origin 뷰에서 반환된 식별자입니다.

   `log_sequence_number`는 `aurora_volume_logical_start_lsn` 함수의 이전 쿼리에서 반환된 값입니다.

1. 그런 다음 `ALTER SUBSCRIPTION... ENABLE` 절을 사용하여 논리적 복제를 켭니다.

   ```
   ALTER SUBSCRIPTION subscription_name ENABLE;
   ```

1. 이 시점에서 복제가 제대로 작동하는지 확인할 수 있습니다. 게시 인스턴스에 값을 추가한 다음 값이 구독 노드에 복제되었는지 확인합니다.

   그런 다음 아래 명령을 사용하여 게시 노드의 복제 지연을 모니터링합니다.

   ```
   SELECT now() AS CURRENT_TIME, slot_name, active, active_pid, pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(),
   confirmed_flush_lsn)) AS diff_size, pg_wal_lsn_diff(pg_current_wal_lsn(),
   confirmed_flush_lsn) AS diff_bytes FROM pg_replication_slots WHERE slot_type = 'logical';
   ```

   예제:

   ```
   postgres=> SELECT now() AS CURRENT_TIME, slot_name, active, active_pid, pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), 
   confirmed_flush_lsn)) AS diff_size, pg_wal_lsn_diff(pg_current_wal_lsn(), confirmed_flush_lsn) AS diff_bytes FROM pg_replication_slots WHERE slot_type = 'logical';
    
   current_time                   | slot_name             | active | active_pid | diff_size | diff_bytes 
   -------------------------------+-----------------------+--------+------------+-----------+------------
   2022-04-13 15:11:00.243401+00  | replication_slot_name | t      | 21854      | 136 bytes | 136
   (1 row)
   ```

   `diff_size` 및 `diff_bytes` 값을 사용하여 복제 지연을 모니터링할 수 있습니다. 이러한 값이 0에 도달하면 복제본이 원본 DB 인스턴스를 따라잡은 것입니다.

## 업그레이드 후 작업 수행
<a name="AuroraPostgreSQL.MajorVersionUpgrade.PostUpgrade"></a>

업그레이드가 완료되면 콘솔 대시보드 **Status(상태)** 열에 인스턴스 상태가 **Available**(사용 가능)로 표시됩니다. 새 인스턴스에서는 다음을 수행하는 것이 좋습니다.
+ 라이터 노드를 가리키도록 애플리케이션을 리디렉션합니다.
+ 케이스로드를 관리하고 라이터 노드에 문제가 발생할 경우 고가용성을 제공할 수 있도록 리더 노드를 추가합니다.
+ Aurora PostgreSQL DB 클러스터는 때때로 운영 체제 업데이트가 필요합니다. 이러한 업데이트에는 glibc 라이브러리의 최신 버전도 포함될 수 있습니다. 이러한 업데이트를 진행하는 중에는 [Aurora PostgreSQL 에서 지원되는 데이터 정렬입니다.](PostgreSQL-Collations.md)에 설명된 지침을 따르는 것이 좋습니다.
+ 액세스를 보장하기 위해 새 인스턴스의 사용자 권한을 업데이트합니다.

새 인스턴스에서 애플리케이션과 데이터를 테스트한 후에는 초기 인스턴스를 제거하기 전에 최종 백업을 만드는 것이 좋습니다. Aurora 호스트에서 논리적 복제를 사용하는 자세한 방법은 [Aurora PostgreSQL DB 클러스터의 논리적 복제 설정](AuroraPostgreSQL.Replication.Logical.Configure.md) 단원을 참조하십시오.

# Aurora PostgreSQL에서 사용자 지정 캐스트 관리
<a name="PostgreSQL.CustomCasts"></a>

PostgreSQL의 **유형 캐스팅**은 값을 한 데이터 유형에서 다른 데이터 유형으로 변환하는 프로세스입니다. PostgreSQL은 대다수 일반적인 변환을 위한 내장 캐스트를 제공하지만 사용자 지정 캐스트를 생성하여 특정 유형 변환의 작동 방식을 정의할 수도 있습니다.

캐스트는 한 데이터 유형에서 다른 데이터 유형으로 변환하는 방법을 지정합니다. 예를 들어 텍스트 `'123'`을 정수 `123`으로 변환하거나 숫자 `45.67`을 `'45.67'`로 변환합니다.

PostgreSQL 캐스팅 개념 및 구문에 대한 자세한 내용은 [PostgreSQL CREATE CAST 설명서](https://www.postgresql.org/docs/current/sql-createcast.html)를 참조하세요.

Aurora PostgreSQL 버전 13.23, 14.20, 15.15, 16.11, 17.7 및 18.1부터 rds\$1casts 확장을 사용하여 내장 유형에 대한 추가 캐스트를 설치할 수 있으며, 사용자 지정 유형에 대한 자체 캐스트를 생성할 수도 있습니다.

**Topics**
+ [rds\$1casts 확장 설치 및 사용](#PostgreSQL.CustomCasts.Installing)
+ [지원되는 캐스트](#PostgreSQL.CustomCasts.Supported)
+ [캐스트 생성 또는 삭제](#PostgreSQL.CustomCasts.Creating)
+ [적절한 컨텍스트 전략을 사용하여 사용자 지정 캐스트 생성](#PostgreSQL.CustomCasts.BestPractices)

## rds\$1casts 확장 설치 및 사용
<a name="PostgreSQL.CustomCasts.Installing"></a>

`rds_casts` 확장을 생성하려면 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 `rds_superuser`로 연결하고 다음 명령을 실행합니다.

```
CREATE EXTENSION IF NOT EXISTS rds_casts;
```

## 지원되는 캐스트
<a name="PostgreSQL.CustomCasts.Supported"></a>

사용자 지정 캐스트를 사용하려는 각 데이터베이스에서 확장을 생성합니다. 확장을 생성한 후 다음 명령을 사용하여 사용 가능한 모든 캐스트를 봅니다.

```
SELECT * FROM rds_casts.list_supported_casts();
```

이 함수는 사용 가능한 캐스트 조합(소스 유형, 대상 유형, 강제 컨텍스트 및 캐스트 함수)을 나열합니다. 예를 들어 `implicit` 캐스트로 `text`에서 `numeric`으로의 변환을 생성하려는 경우 다음 쿼리를 사용하여 캐스트를 생성할 수 있는지 확인할 수 있습니다.

```
SELECT * FROM rds_casts.list_supported_casts()
WHERE source_type = 'text' AND target_type = 'numeric';
 id | source_type | target_type |          qualified_function          | coercion_context
----+-------------+-------------+--------------------------------------+------------------
 10 | text        | numeric     | rds_casts.rds_text_to_numeric_custom | implicit
 11 | text        | numeric     | rds_casts.rds_text_to_numeric_custom | assignment
 13 | text        | numeric     | rds_casts.rds_text_to_numeric_custom | explicit
 20 | text        | numeric     | rds_casts.rds_text_to_numeric_inout  | implicit
 21 | text        | numeric     | rds_casts.rds_text_to_numeric_inout  | assignment
 23 | text        | numeric     | rds_casts.rds_text_to_numeric_inout  | explicit
```

rds\$1casts 확장은 각 캐스트에 대해 두 가지 유형의 변환 함수를 제공합니다.
+ *\$1inout 함수* - PostgreSQL의 표준 I/O 변환 메커니즘을 사용하며, INOUT 메서드로 생성된 캐스트와 동일하게 동작합니다.
+ *\$1custom 함수* - 변환 오류를 방지하기 위해 빈 문자열을 NULL 값으로 변환하는 등 엣지 사례를 처리하는 향상된 변환 로직을 제공합니다.

`inout` 함수는 PostgreSQL의 기본 캐스팅 동작을 재현하는 한편, `custom` 함수는 빈 문자열을 정수로 변환하는 등 표준 INOUT 캐스팅으로는 불가능한 시나리오를 처리하여 이 기능을 확장합니다.

## 캐스트 생성 또는 삭제
<a name="PostgreSQL.CustomCasts.Creating"></a>

다음 두 가지 방법을 사용하여 지원되는 캐스트를 생성하고 삭제할 수 있습니다.

### 캐스트 생성
<a name="PostgreSQL.CustomCasts.Creating.Methods"></a>

**방법 1: 기본 CREATE CAST 명령 사용**

```
CREATE CAST (text AS numeric)
WITH FUNCTION rds_casts.rds_text_to_numeric_custom
AS IMPLICIT;
```

**방법 2: rds\$1casts.create\$1cast 함수 사용**

```
SELECT rds_casts.create_cast(10);
```

`create_cast` 함수는 `list_supported_casts()` 출력에서 ID를 가져옵니다. 이 방법은 더 간단하며 올바른 함수와 컨텍스트 조합을 사용할 수 있도록 합니다. 이 ID는 여러 postgres 버전에서 동일하게 유지됩니다.

캐스트가 성공적으로 생성되었는지 확인하려면 pg\$1cast 시스템 카탈로그를 쿼리합니다.

```
SELECT oid, castsource::regtype, casttarget::regtype, castfunc::regproc, castcontext, castmethod
FROM pg_cast
WHERE castsource = 'text'::regtype AND casttarget = 'numeric'::regtype;
  oid   | castsource | casttarget |               castfunc               | castcontext | castmethod
--------+------------+------------+--------------------------------------+-------------+------------
 356372 | text       | numeric    | rds_casts.rds_text_to_numeric_custom | i           | f
```

`castcontext` 열에는 EXPLICIT을 나타내는 `e`, ASSIGNMENT를 나타내는 `a`, IMPLICIT을 나타내는 `i`가 표시됩니다.

### 캐스트 삭제
<a name="PostgreSQL.CustomCasts.Dropping"></a>

**방법 1: DROP CAST 명령 사용**

```
DROP CAST IF EXISTS (text AS numeric);
```

**방법 2: rds\$1casts.drop\$1cast 함수 사용**

```
SELECT rds_casts.drop_cast(10);
```

`drop_cast` 함수는 캐스트를 생성할 때 사용된 것과 동일한 ID를 사용합니다. 이 방법을 통해 해당 ID로 생성된 정확한 캐스트를 삭제할 수 있습니다.

## 적절한 컨텍스트 전략을 사용하여 사용자 지정 캐스트 생성
<a name="PostgreSQL.CustomCasts.BestPractices"></a>

정수 유형에 대해 여러 캐스트를 생성할 때 모든 캐스트가 IMPLICIT으로 생성되면 연산자 모호성 오류가 발생할 수 있습니다. 다음 예제에서는 텍스트에서 서로 다른 정수 너비로 두 개의 암시적 캐스트를 생성하여 이 문제를 보여줍니다.

```
-- Creating multiple IMPLICIT casts causes ambiguity
postgres=> CREATE CAST (text AS int4) WITH FUNCTION rds_casts.rds_text_to_int4_custom(text) AS IMPLICIT;
CREATE CAST
postgres=> CREATE CAST (text AS int8) WITH FUNCTION rds_casts.rds_text_to_int8_custom(text) AS IMPLICIT;
CREATE CAST

postgres=> CREATE TABLE test_cast(col int);
CREATE TABLE
postgres=> INSERT INTO test_cast VALUES ('123'::text);
INSERT 0 1
postgres=> SELECT * FROM test_cast WHERE col='123'::text;
ERROR:  operator is not unique: integer = text
LINE 1: SELECT * FROM test_cast WHERE col='123'::text;
                                         ^
HINT:  Could not choose a best candidate operator. You might need to add explicit type casts.
```

이 오류는 PostgreSQL이 정수 열을 텍스트 값과 비교할 때 사용할 암시적 캐스팅을 결정할 수 없기 때문에 발생합니다. int4와 int8 암시적 캐스트가 모두 유효한 후보이므로 모호성이 발생합니다.

이 연산자 모호성을 방지하려면 작은 정수 너비에는 ASSIGNMENT 컨텍스트를 사용하고 큰 정수 너비에는 IMPLICIT 컨텍스트를 사용합니다.

```
-- Use ASSIGNMENT for smaller integer widths
CREATE CAST (text AS int2)
WITH FUNCTION rds_casts.rds_text_to_int2_custom(text)
AS ASSIGNMENT;

CREATE CAST (text AS int4)
WITH FUNCTION rds_casts.rds_text_to_int4_custom(text)
AS ASSIGNMENT;

-- Use IMPLICIT for larger integer widths
CREATE CAST (text AS int8)
WITH FUNCTION rds_casts.rds_text_to_int8_custom(text)
AS IMPLICIT;

postgres=> INSERT INTO test_cast VALUES ('123'::text);
INSERT 0 1
postgres=> SELECT * FROM test_cast WHERE col='123'::text;
 col
-----
 123
(1 row)
```

이 전략에서는 int8 캐스트만 암시적이므로 PostgreSQL이 사용할 캐스트를 명확하게 결정할 수 있습니다.

# Aurora PostgreSQL의 병렬 쿼리 모범 사례
<a name="PostgreSQL.ParallelQueries"></a>

병렬 쿼리 실행은 PostgreSQL의 기능으로, 단일 SQL 쿼리를 더 작은 작업으로 나누어 여러 백그라운드 작업자 프로세스로 동시에 처리할 수 있습니다. PostgreSQL은 단일 백엔드 프로세스에서 쿼리를 완전히 실행하는 대신에 스캔, 조인, 집계 또는 정렬과 같은 쿼리 부분을 여러 CPU 코어에 분산할 수 있습니다. *리더 프로세스*는 이 실행을 조정하고 *병렬 작업자*로부터 결과를 수집합니다.

그러나 대부분의 프로덕션 워크로드, 특히 동시성이 높은 OLTP 시스템의 경우 자동 병렬 쿼리 실행을 비활성화하는 것이 좋습니다. 병렬 처리는 분석 또는 보고 워크로드의 대규모 데이터 세트에 대한 쿼리를 가속화할 수 있지만, 사용량이 많은 프로덕션 환경에서는 이점을 능가하는 상당한 위험을 초래하는 경우가 자주 있습니다.

병렬 실행에도 상당한 오버헤드가 발생합니다. 각 병렬 작업자는 프로세스 포크(메모리 구조 복사 및 프로세스 상태 초기화) 및 인증(`max_connections` 제한에서 연결 슬롯 사용)이 필요한 전체 PostgreSQL 백엔드 프로세스입니다. 또한 각 작업자는 쿼리당 여러 작업자가 있는 정렬 및 해싱 작업의 `work_mem`을 포함하여 자체 메모리를 사용합니다. 메모리 사용량은 빠르게 증가합니다(예: 작업자 4명 × 쿼리당 64MB `work_mem` = 256MB). 따라서 병렬 쿼리는 단일 프로세스 쿼리보다 훨씬 더 많은 시스템 리소스를 사용할 수 있습니다. 제대로 조정하지 않으면 CPU 포화(여러 작업자가 사용 가능한 처리 용량을 초과함), 컨텍스트 전환 증가(운영 체제가 여러 작업자 프로세스 간에 빈번하게 전환되어 오버헤드가 발생하고 처리량이 감소함) 또는 연결 소진(각 병렬 작업자가 연결 슬롯을 사용하므로 작업자가 4명인 단일 쿼리는 총 5개의 연결(리더 1개 \$1 작업자 4개)을 사용하게 되며, 이는 높은 동시성으로 인해 연결 풀을 빠르게 소진시켜 새로운 클라이언트 연결을 차단하고 애플리케이션 오류를 유발할 수 있음)로 이어질 수 있습니다. 이러한 문제는 여러 쿼리가 동시에 병렬 실행을 시도할 수 있는 동시성이 높은 워크로드에서 특히 심각합니다.

PostgreSQL은 예상 비용을 기반으로 병렬 처리를 사용할지 여부를 결정합니다. 경우에 따라 플래너는 실제로는 이상적이지 않더라도 더 저렴한 것으로 보이는 경우 병렬 계획으로 자동 전환할 수 있습니다. 이는 인덱스 통계가 오래된 경우 또는 순차적 스캔이 인덱스 조회보다 더 매력적으로 보이도록 하는 경우에 발생할 수 있습니다. 이러한 동작 때문에 자동 병렬 실행 계획은 때때로 쿼리 성능이나 시스템 안정성에 회귀를 초래할 수 있습니다.

Aurora PostgreSQL에서 병렬 쿼리의 이점을 최대한 활용하려면 워크로드를 기반으로 병렬 쿼리를 테스트 및 조정하고, 시스템 영향을 모니터링하고, 쿼리 수준 제어를 위해 자동 병렬 계획 선택을 비활성화하는 것이 중요합니다.

## 구성 파라미터
<a name="PostgreSQL.ParallelQueries.ConfigurationParameters"></a>

PostgreSQL은 여러 파라미터를 사용하여 병렬 쿼리의 동작과 가용성을 제어합니다. 이를 이해하고 조정하는 것은 예측 가능한 성능을 달성하는 데 매우 중요합니다.


| 파라미터 | 설명 | 기본값 | 
| --- | --- | --- | 
| max\$1parallel\$1workers | 총 실행할 수 있는 백그라운드 작업자 프로세스의 최대 수 | GREATEST(\$1DBInstanceVCPU/2,8) | 
| max\$1parallel\$1workers\$1per\$1gather | 쿼리 계획 노드당 최대 작업자 수(예: Gather당) | 2 | 
| parallel\$1setup\$1cost | 병렬 쿼리 인프라를 시작하기 위한 플래너 비용 추가 | 1000 | 
| parallel\$1tuple\$1cost | 병렬 모드로 처리된 튜플당 비용(플래너 결정에 영향을 줌) | 0.1 | 
| force\$1parallel\$1mode | 플래너가 병렬 계획(off, on, regress)을 테스트하도록 강제 | off | 

### 주요 고려 사항
<a name="PostgreSQL.ParallelQueries.ConfigurationParameters.KeyConsiderations"></a>
+ `max_parallel_workers`는 병렬 작업자의 총 풀을 제어합니다. 너무 낮게 설정하면 일부 쿼리가 직렬 실행으로 돌아갈 수 있습니다.
+ `max_parallel_workers_per_gather`는 단일 쿼리가 사용할 수 있는 작업자 수에 영향을 줍니다. 값이 높을수록 동시성이 증가하지만 리소스 사용량도 증가합니다.
+ `parallel_setup_cost` 및 `parallel_tuple_cost`는 플래너의 비용 모델에 영향을 미칩니다. 이러한 값을 낮추면 병렬 계획을 선택할 가능성이 높아질 수 있습니다.
+ `force_parallel_mode`는 테스트에 유용하지만 필요한 경우가 아니라면 프로덕션 환경에서 사용해서는 안 됩니다.

**참고**  
`max_parallel_workers` 파라미터의 기본값은 수식 `GREATEST($DBInstanceVCPU/2, 8)`를 사용하여 인스턴스 크기를 기반으로 동적으로 계산됩니다. 즉, vCPU가 많을수록 Aurora 인스턴스를 더 큰 컴퓨팅 크기로 확장하면 사용 가능한 최대 병렬 작업자 수가 자동으로 증가합니다. 따라서 이전에 직렬로 실행되었거나 병렬 처리가 제한된 쿼리는 스케일 업 작업 후 갑자기 더 많은 병렬 작업자를 활용하여 연결 사용량, CPU 사용률 및 메모리 소비가 예기치 않게 증가할 수 있습니다. 컴퓨팅 스케일링 이벤트 후에는 병렬 쿼리 동작을 모니터링하고 필요한 경우 `max_parallel_workers_per_gather`를 조정하여 예측 가능한 리소스 사용량을 유지하는 것이 중요합니다.

## 병렬 쿼리 사용량 식별
<a name="PostgreSQL.ParallelQueries.IdentifyUsage"></a>

쿼리는 데이터 배포 또는 통계에 따라 병렬 계획으로 전환될 수 있습니다. 예제:

```
SELECT count(*) FROM customers WHERE last_login < now() - interval '6 months';
```

이 쿼리는 최근 데이터에 인덱스를 사용하지만 기록 데이터에 대한 병렬 순차 스캔으로 전환할 수 있습니다.

`auto_explain` 모듈을 로드하여 쿼리 실행 계획을 로깅할 수 있습니다. 자세히 알아보려면 AWS 지식 센터에서 [쿼리 실행 계획 로깅에 관한 문서](https://aws.amazon.com/premiumsupport/knowledge-center/rds-postgresql-tune-query-performance/#)를 참조하세요.

Aurora PostgreSQL DB 인스턴스에서 쿼리 실행 계획을 모니터링하여 현재 데이터베이스 로드에 영향을 미치는 실행 계획을 감지하고, `aurora_compute_plan_id` 파라미터를 사용하여 시간 경과에 따른 실행 계획의 성능 통계를 추적할 수 있습니다. 자세한 내용은 [Aurora PostgreSQL용 쿼리 실행 계획 및 피크 메모리 모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)을 참조하세요.

병렬 쿼리 관련 대기 이벤트에 대한 [CloudWatch Database Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Database-Insights-Database-Instance-Dashboard.html)를 모니터링할 수 있습니다. 병렬 쿼리 관련 대기 이벤트에 대해 자세히 알아보려면 [IPC:병렬 대기 이벤트](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/apg-ipc-parallel.html)를 살펴보세요.

PostgreSQL 버전 18에서는 [https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-DATABASE-VIEW](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-DATABASE-VIEW) 및 [https://www.postgresql.org/docs/current/pgstatstatements.html](https://www.postgresql.org/docs/current/pgstatstatements.html)의 새 열을 사용하여 병렬 작업자 활동을 모니터링할 수 있습니다.
+ `parallel_workers_to_launch`: 시작될 계획인 병렬 작업자 수
+ `parallel_workers_launched`: 실제로 시작된 병렬 작업자 수

이러한 지표는 계획된 병렬 처리와 실제 병렬 처리 간의 불일치를 식별하는 데 도움이 되며, 이는 리소스 제약 또는 구성 문제를 나타낼 수 있습니다. 다음 쿼리를 사용하여 병렬 실행을 모니터링합니다.

데이터베이스 수준 병렬 작업자 지표의 경우:

```
SELECT datname, parallel_workers_to_launch, parallel_workers_launched
FROM pg_stat_database
WHERE datname = current_database();
```

쿼리 수준 병렬 작업자 지표의 경우:

```
SELECT query, parallel_workers_to_launch, parallel_workers_launched
FROM pg_stat_statements
ORDER BY parallel_workers_launched;
```

## 병렬 처리를 제어하는 방법
<a name="PostgreSQL.ParallelQueries.ControlParallelism"></a>

쿼리 병렬 처리를 제어하는 방법에는 여러 가지가 있으며, 각 방법은 다양한 시나리오와 요구 사항에 맞게 설계되었습니다.

전역적으로 자동 병렬 처리를 비활성화하려면 [파라미터 그룹을 수정](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_WorkingWithParamGroups.Modifying.html)하여 설정합니다.

```
max_parallel_workers_per_gather = 0;
```

영구 사용자별 설정의 경우 ALTER ROLE 명령은 특정 사용자의 향후 모든 세션에 적용되는 파라미터를 설정하는 방법을 제공합니다.

예제:

`ALTER ROLE username SET max_parallel_workers_per_gather = 4;`는 이 사용자가 데이터베이스에 연결할 때마다 필요한 경우 세션에서 이 병렬 작업자 설정을 사용하도록 합니다.

세션 수준 제어는 현재 데이터베이스 세션 기간 동안 파라미터를 수정하는 SET 명령을 사용하여 수행할 수 있습니다. 이는 다른 사용자나 향후 세션에 영향을 주지 않고 설정을 일시적으로 조정해야 할 때 특히 유용합니다. 일단 설정되면 이러한 파라미터는 명시적으로 재설정되거나 세션이 종료될 때까지 유효합니다. 명령은 간단합니다.

```
SET max_parallel_workers_per_gather = 4;
-- Run your queries
RESET max_parallel_workers_per_gather;
```

보다 세분화된 제어를 위해 SET LOCAL을 사용하면 단일 트랜잭션에 대한 파라미터를 수정할 수 있습니다. 이는 트랜잭션 내의 특정 쿼리 세트에 대한 설정을 조정해야 할 때 이상적이며, 그 이후에는 설정이 자동으로 이전 값으로 되돌아갑니다. 이 접근 방식은 동일한 세션 내의 다른 작업에 의도하지 않은 영향을 방지하는 데 도움이 됩니다.

### 쿼리 계획 관리(QPM) 활용
<a name="PostgreSQL.ParallelQueries.ControlParallelism.QPM"></a>

Aurora PostgreSQL에서 쿼리 계획 관리(QPM) 기능은 쿼리 계획 회귀를 유발할 수 있는 데이터베이스 환경 변경과 관계없이 계획 적응성과 안정성을 보장하도록 설계되었습니다. 자세한 내용은 [Aurora PostgreSQL 쿼리 계획 관리 개요](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.overview.html)를 참조하세요. QPM은 최적화 프로그램에 대한 일부 제어 기능을 제공합니다. QPM에서 승인된 계획을 검토하여 현재 병렬 처리 설정과 일치하는지 확인하세요. 최적화되지 않은 병렬 실행을 강제 적용할 수 있는 오래된 계획을 업데이트하거나 제거하세요.

pg\$1hint\$1plan을 사용하여 계획을 수정할 수도 있습니다. 자세한 내용은 [pg\$1hint\$1plan을 사용하여 계획 수정](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Maintenance.html#AuroraPostgreSQL.Optimize.Maintenance.pg_hint_plan)을 참조하세요. `Parallel`이라는 힌트를 사용하여 병렬 실행을 강제 적용할 수 있습니다. 자세한 내용은 [Hints for parallel plans](https://github.com/ossc-db/pg_hint_plan/blob/master/docs/hint_table.md#hints-for-parallel-plans)을 참조하세요.

## 병렬 쿼리 동작 진단
<a name="PostgreSQL.ParallelQueries.Diagnosing"></a>

`EXPLAIN (ANALYZE, VERBOSE)`를 사용하여 쿼리가 병렬 실행을 사용했는지 확인합니다.
+ `Gather`, `Gather Merge` 또는 `Parallel Seq Scan`과 같은 노드를 찾습니다.
+ 병렬 처리가 있는 계획과 없는 계획을 비교합니다.

비교를 위해 병렬 처리를 일시적으로 비활성화하려면: 다음을 수행합니다.

```
SET max_parallel_workers_per_gather = 0;
EXPLAIN ANALYZE <your_query>;
RESET max_parallel_workers_per_gather;
```

# Aurora PostgreSQL의 스토리지 문제 해결
<a name="AuroraPostgreSQL.BestPractices.TroubleshootingStorage"></a>

정렬이나 인덱스 생성 작업에 필요한 작업 메모리 양이 `work_mem` 파라미터에 의해 할당된 메모리양을 초과할 경우, Aurora PostgreSQL는 잉여 데이터를 임시 디스크 파일에 기록합니다. Aurora PostgreSQL은 데이터를 기록할 때 오류와 메시지 로그 저장에 사용하는 것과 동일한 스토리지 공간, 즉 *로컬 스토리지*를 사용합니다. Aurora PostgreSQL DB 클러스터에 있는 각 인스턴스는 일정한 양의 로컬 스토리지를 사용할 수 있습니다. 스토리지의 양은 스토리지의 DB 인스턴스 클래스에 따라 달라집니다. 로컬 스토리지의 양을 늘리려면 더 큰 DB 인스턴스 클래스를 사용하도록 인스턴스를 수정해야 합니다. DB 인스턴스 클래스 사양은 [Aurora에 대한 DB 인스턴스 클래스의 하드웨어 사양](Concepts.DBInstanceClass.Summary.md) 단원을 참조하십시오.

`FreeLocalStorage`용 Amazon CloudWatch 지표를 관찰하면 Aurora PostgreSQL DB 클러스터의 로컬 스토리지 공간을 모니터링할 수 있습니다. 이 지표는 Aurora DB의 각 DB 인스턴스에서 임시 테이블 및 로그로 사용할 수 있는 스토리지 크기를 보고합니다. 자세한 내용은 [Amazon CloudWatch로 Amazon Aurora 지표 모니터링](monitoring-cloudwatch.md) 섹션을 참조하세요.

정렬, 인덱싱 및 그룹화 작업은 작업 메모리에서 시작되지만 로컬 스토리지에 오프로드해야 하는 경우가 많습니다. 이러한 유형의 작업 때문에 Aurora PostgreSQL DB 클러스터의 로컬 스토리지가 부족한 경우, 다음 작업 중 하나를 수행하여 문제를 해결할 수 있습니다.
+ 작업 메모리 양을 늘립니다. 이렇게 하면 로컬 스토리지를 사용할 필요가 줄어듭니다. 기본적으로 PostgreSQL은 각 정렬, 그룹 및 인덱스 작업에 4MB를 할당합니다. Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 대한 현재 작업 메모리 값을 확인하려면, `psql`을 사용하여 인스턴스에 연결하고 다음 명령을 실행합니다.

  ```
  postgres=> SHOW work_mem;
  work_mem
  ----------
   4MB
  (1 row)
  ```

  다음과 같이 정렬, 그룹화 및 기타 작업을 수행하기 전에 세션 수준에서 작업 메모리를 늘릴 수 있습니다.

  ```
  SET work_mem TO '1 GB';
  ```

  작업 메모리에 대한 자세한 내용은 PostgreSQL 설명서에서 [리소스 소비](https://www.postgresql.org/docs/current/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-MEMORY)를 참조하세요.
+ 로그가 더 짧은 기간 동안 저장되도록 로그 보존 기간을 변경합니다. 자세한 방법은 [Aurora PostgreSQL 데이터베이스 로그 파일](USER_LogAccess.Concepts.PostgreSQL.md)을 참조하세요.

Aurora PostgreSQL DB 클러스터가 40TB보다 큰 경우 db.t2, db.t3 또는 db.t4g 인스턴스 클래스를 사용하지 마세요. T DB 인스턴스 클래스는 개발 및 테스트 서버 또는 기타 비프로덕션 서버에만 사용하는 것이 좋습니다. 자세한 내용은 [DB 인스턴스 클래스 유형](Concepts.DBInstanceClass.Types.md) 섹션을 참조하세요.

# Amazon Aurora PostgreSQL를 사용한 복제
<a name="AuroraPostgreSQL.Replication"></a>

아래에서 Amazon Aurora PostgreSQL을 이용한 복제에 관한 정보를 확인할 수 있습니다. 논리적 복제를 모니터링하고 사용하는 방법에 관한 내용도 포함되어 있습니다.

**Topics**
+ [Aurora 복제본 사용](#AuroraPostgreSQL.Replication.Replicas)
+ [Aurora 복제본의 읽기 가용성 향상](#AuroraPostgreSQL.Replication.Replicas.SRO)
+ [Aurora PostgreSQL 복제 모니터링](#AuroraPostgreSQL.Replication.Monitoring)
+ [Aurora에서의 PostgreSQL 논리적 복제 개요](AuroraPostgreSQL.Replication.Logical.md)
+ [Aurora PostgreSQL DB 클러스터의 논리적 복제 설정](AuroraPostgreSQL.Replication.Logical.Configure.md)
+ [논리적 복제 비활성화](AuroraPostgreSQL.Replication.Logical.Stop.md)
+ [Aurora PostgreSQL 논리적 복제를 위한 라이트-스루 캐시 및 논리적 슬롯 모니터링](AuroraPostgreSQL.Replication.Logical-monitoring.md)
+ [예: Aurora PostgreSQL DB 클러스터에서 논리적 복제 사용](AuroraPostgreSQL.Replication.Logical.PostgreSQL-Example.md)
+ [예: Aurora PostgreSQL 및 AWS Database Migration Service를 사용하는 논리적 복제](AuroraPostgreSQL.Replication.Logical.DMS-Example.md)
+ [논리적 복제 연결을 위한 IAM 인증 구성](AuroraPostgreSQL.Replication.Logical.IAM-auth.md)

## Aurora 복제본 사용
<a name="AuroraPostgreSQL.Replication.Replicas"></a>

*Aurora복제본*Aurora은 DB 클러스터의 독립 엔드포인트로서, 읽기 작업을 조정하고 가용성을 높이는 데 사용하기에 가장 적합합니다. Aurora DB 클러스터는 Aurora DB 클러스터의 AWS 리전의 가용 영역 전체에서 최대 15개의 Aurora 복제본까지 포함할 수 있습니다.

DB 클러스터 볼륨은 DB 클러스터의 데이터 사본들로 구성됩니다. 하지만 DB 클러스터의 기본 라이터 DB 인스턴스 및 Aurora 복제본에는 클러스터 볼륨의 데이터가 단 하나의 논리 볼륨으로 표시됩니다. Aurora 복제본에 대한 자세한 내용은 [Aurora 복제본](Aurora.Replication.md#Aurora.Replication.Replicas) 단원을 참조하십시오.

Aurora 복제본은 클러스터 볼륨의 읽기 연산에 전적으로 사용되므로 읽기 조정에 유용합니다. 라이터 DB 인스턴스는 쓰기 작업을 관리합니다. 클러스터 볼륨은 Aurora PostgreSQL DB 클러스터에 있는 모든 인스턴스에 공유됩니다. 따라서 각 Aurora 복제본에 대해 데이터 사본을 복제하기 위해 추가 작업을 할 필요가 없습니다.

Aurora PostgreSQL에서 Aurora 복제본이 삭제되면 인스턴스 엔드포인트가 즉시 제거되고 Aurora 복제본이 리더 엔드포인트에서 제거됩니다. 삭제되는 Aurora 복제본을 실행하는 문이 있는 경우 3분의 유예 기간이 있습니다. 기존 문은 유예 기간 동안 정상적으로 완료할 수 있습니다. 유예 기간이 종료되면 Aurora 복제본이 종료 및 삭제됩니다.

Aurora PostgreSQL DB 클러스터는 Aurora Global Database를 사용하여 서로 다른 AWS 리전에서 Aurora 복제본을 지원합니다. 자세한 내용은 [Amazon Aurora Global Database 사용](aurora-global-database.md) 섹션을 참조하세요.

**참고**  
읽기 가용성 기능을 사용할 때는 DB 클러스터의 Aurora 복제본을 재부팅해야 하는 경우 수동으로 재부팅해야 합니다. 이 기능 재부팅 전에 생성된 DB 클러스터의 경우 라이터 DB 인스턴스가 Aurora 복제본을 자동으로 재부팅합니다. 자동 재부팅을 통해 DB 클러스터 전반에 걸친 읽기/쓰기 일관성을 보장하는 진입점이 다시 구성됩니다.

## Aurora 복제본의 읽기 가용성 향상
<a name="AuroraPostgreSQL.Replication.Replicas.SRO"></a>

Aurora PostgreSQL은 라이터 DB 인스턴스가 다시 시작되거나 Aurora 복제본이 쓰기 트래픽을 따라가지 못할 때 읽기 요청을 지속적으로 처리하여 DB 클러스터의 읽기 가용성을 향상시킵니다.

읽기 가용성 기능은 다음 버전의 Aurora PostgreSQL에서 기본적으로 사용할 수 있습니다.
+ 16.1 이상의 모든 버전
+ 15.2 이상의 15 버전
+ 14.7 이상의 14 버전
+ 13.10 이상의 13 버전
+ 12.14 이상의 12 버전

읽기 가용성 기능은 다음 버전의 Aurora Global Database에서 지원됩니다.
+ 16.1 이상의 모든 버전
+ 15.4 이상의 15 버전
+ 14.9 이상의 14 버전
+ 13.12 이상의 13 버전
+ 12.16 이상의 12 버전

이 출시 전에 이러한 버전 중 하나에서 생성된 DB 클러스터의 읽기 가용성 기능을 사용하려면 DB 클러스터의 라이터 인스턴스를 다시 시작하세요.

Aurora PostgreSQL DB 클러스터의 정적 파라미터를 수정하는 경우, 파라미터 변경 사항이 적용되도록 라이터 인스턴스를 다시 시작해야 합니다. 예를 들어 `shared_buffers` 값을 설정할 때 라이터 인스턴스를 다시 시작해야 합니다. Aurora 복제본의 읽기 가용성을 통해 DB 클러스터는 개선된 가용성을 유지하므로 라이터 인스턴스가 다시 시작할 때 영향이 줄어듭니다. 리더 인스턴스는 다시 시작되지 않고 읽기 요청에 계속 응답합니다. 정적 파라미터 변경 사항을 적용하려면 각 개별 리더 인스턴스를 재부팅합니다.

Aurora PostgreSQL DB 클러스터의 Aurora 복제본은 라이터와 다시 연결된 후 인 메모리 데이터베이스 상태로 빠르게 복구하여 라이터 다시 시작, 장애 조치, 느린 복제 및 네트워크 문제와 같은 복제 오류를 복구할 수 있습니다. 이 접근 방식을 통해 클라이언트 데이터베이스의 가용성을 유지하면서도 Aurora 복제본 인스턴스가 최신 스토리지 업데이트로 일관성을 달성할 수 있습니다.

복제 복구와 충돌하는 진행 중인 트랜잭션에서는 오류가 발생할 수 있지만, 리더가 라이터를 따라잡은 후에 클라이언트가 이러한 트랜잭션을 다시 시도할 수 있습니다.

### Aurora 복제본 모니터링
<a name="AuroraPostgreSQL.Replication.Replicas.SRO.monitoring"></a>

라이터 연결이 끊긴 상태에서 복구될 때 Aurora 복제본을 모니터링할 수 있습니다. 아래 지표를 사용하여 리더 인스턴스에 대한 최신 정보를 확인하고 처리 중인 읽기 전용 트랜잭션을 추적하세요.
+ 리더 인스턴스가 계속 연결되어 있는 동안 리더 인스턴스에 대한 최신 정보를 반환하도록 `aurora_replica_status` 기능이 업데이트되었습니다. `aurora_replica_status`에서 쿼리가 실행되는 DB 인스턴스에 해당하는 행의 마지막 업데이트 타임스탬프는 항상 비어 있습니다. 이는 리더 인스턴스에 최신 데이터가 있음을 나타냅니다.
+ Aurora 복제본이 라이터 인스턴스와의 연결을 끊었다가 다시 연결되면 다음 데이터베이스 이벤트가 발생합니다.

  `Read replica has been disconnected from the writer instance and reconnected.`
+ 복구 충돌로 인해 읽기 전용 쿼리가 취소되면 데이터베이스 오류 로그에 다음과 같은 오류 메시지가 하나 이상 표시될 수 있습니다.

  `Canceling statement due to conflict with recovery`.

  `User query may not have access to page data to replica disconnect.`

  `User query might have tried to access a file that no longer exists.`

  `When the replica reconnects, you will be able to repeat your command.`

### 제한 사항
<a name="AuroraPostgreSQL.Replication.Replicas.SRO.limitations"></a>

읽기 가용성 기능을 사용하는 Aurora 복제본에는 다음 제한 사항이 적용됩니다.
+ 복제 복구 중에 쓰기 인스턴스에서 데이터를 스트리밍할 수 없는 경우 보조 DB 클러스터의 Aurora 복제본이 다시 시작될 수 있습니다.
+ Aurora 복제본은 온라인 복제 복구가 이미 진행 중이고 다시 시작될 경우 온라인 복제 복구를 지원하지 않습니다.
+ Aurora 복제본은 DB 인스턴스가 트랜잭션 ID 랩어라운드에 가까워지면 다시 시작됩니다. 트랜잭션 ID 랩어라운드에 대한 자세한 내용은 [트랜잭션 ID 랩어라운드 실패 방지](https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND                     )를 참조하세요.
+ 특정 상황에서 복제 프로세스가 차단되면 Aurora 복제본을 다시 시작할 수 있습니다.

## Aurora PostgreSQL 복제 모니터링
<a name="AuroraPostgreSQL.Replication.Monitoring"></a>

읽기 조정과 고가용성은 최소 지연 시간에 따라 달라집니다. Amazon CloudWatch `ReplicaLag` 지표를 모니터링하면 Aurora 복제본의 Aurora PostgreSQL DB 클러스터 라이터 DB 인스턴스 지연 시간을 모니터링할 수 있습니다. Aurora 복제본은 라이터 DB 인스턴스와 동일한 클러스터 볼륨에서 읽으므로 `ReplicaLag` 지표가 Aurora PostgreSQL DB 클러스터에서와는 다른 의미를 갖습니다. Aurora 복제본의 `ReplicaLag` 지표는 라이터 DB 인스턴스 대비 Aurora 복제본의 페이지 캐시 지연 시간을 나타냅니다.

RDS 인스턴스 및 CloudWatch 지표 모니터링에 대한 자세한 내용은 [Amazon Aurora 클러스터에서 지표 모니터링](MonitoringAurora.md) 단원을 참조하십시오.

# Aurora에서의 PostgreSQL 논리적 복제 개요
<a name="AuroraPostgreSQL.Replication.Logical"></a>

PostgreSQL의 논리적 복제 기능을 Aurora PostgreSQL DB 클러스터와 함께 사용하면 전체 데이터베이스 인스턴스가 아닌 개별 테이블을 복제하고 동기화할 수 있습니다. 논리적 복제에서는 게시 및 구독 모델을 사용하여 원본에서 한 명 이상의 수신자에게 변경 내용을 복제합니다. 이 작업은 PostgreSQL 미리 쓰기 로그(WAL)의 변경 레코드를 사용하여 작동합니다. 소스 또는 게시자는 지정된 테이블에 대한 WAL 데이터를 한 명 이상의 수신자(구독자)에게 전송하여 변경 사항을 복제하고 구독자의 테이블을 게시자의 테이블과 동기화된 상태로 유지합니다.**** 게시자의 변경 사항 집합은 게시를 사용하여 식별됩니다.** 구독자는 게시자의 데이터베이스 및 게시에 대한 연결을 정의하는 구독을 만들어 변경 사항을 적용합니다.** 복제 슬롯은 이 체계에서 구독 진행 상황을 추적하는 데 사용되는 메커니즘입니다.**

Aurora PostgreSQL DB 클러스터의 경우 WAL 레코드가 Aurora 스토리지에 저장됩니다. 논리적 복제 시나리오에서 게시자 역할을 하는 Aurora PostgreSQL DB 클러스터는 Aurora 스토리지에서 WAL 데이터를 읽고 디코딩하고 구독자에게 전송하여 변경 사항이 해당 인스턴스의 테이블에 적용될 수 있도록 합니다. 게시자는 논리적 디코더를 사용하여 구독자가 사용할 데이터를 디코딩합니다.** 기본적으로 Aurora PostgreSQL DB 클러스터는 데이터를 전송할 때 네이티브 PostgreSQL `pgoutput` 플러그인을 사용합니다. 다른 논리적 디코더도 사용할 수 있습니다. 예를 들어, Aurora PostgreSQL는 WAL 데이터를 JSON으로 변환하는 `[wal2json](https://github.com/eulerto/wal2json)` 플러그인도 지원합니다.

Aurora PostgreSQL 버전 14.5, 13.8, 12.12 및 11.17부터 Aurora PostgreSQL은 라이트-스루 캐시**를 통해 PostgreSQL 논리적 복제 프로세스를 보강하여 성능을 개선합니다. WAL 트랜잭션 로그는 버퍼에 로컬로 캐시되어 디스크 I/O의 양, 즉 논리적 디코딩 중에 Aurora 스토리지에서 읽는 양을 줄입니다. 기본적으로 라이트-스루 캐시는 Aurora PostgreSQL DB 클러스터에 대한 논리적 복제를 사용할 때마다 사용됩니다. Aurora는 캐시 관리에 사용할 수 있는 다양한 함수를 제공합니다. 자세한 내용은 [Aurora PostgreSQL 논리적 복제 라이트-스루 캐시 모니터링](AuroraPostgreSQL.Replication.Logical-monitoring.md#AuroraPostgreSQL.Replication.Logical-write-through-cache) 섹션을 참조하세요.

논리적 복제는 현재 사용 가능한 모든 Aurora PostgreSQL 버전에서 지원됩니다. 자세한 정보는 Aurora PostgreSQL 릴리스 정보**에서 [Amazon Aurora PostgreSQL 업데이트 내용](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html)을 참조하세요.

Babelfish for Aurora PostgreSQL은 다음 버전에서 논리적 복제를 지원합니다.
+ 15.7 이상 버전
+ 16.3 이상 버전

**참고**  
Aurora PostgreSQL은 PostgreSQL 10에 도입된 기본 PostgreSQL 논리적 복제 기능 외에 `pglogical` 확장도 지원합니다. 자세한 내용은 [pglogical을 사용하여 인스턴스 간 데이터 동기화](Appendix.PostgreSQL.CommonDBATasks.pglogical.md) 섹션을 참조하세요.

PostgreSQL 논리적 복제에 대한 자세한 내용은 PostgreSQL 설명서의 [Logical replication](https://www.postgresql.org/docs/current/logical-replication.html)(논리적 복제) 및 [Logical decoding concepts](https://www.postgresql.org/docs/current/logicaldecoding-explanation.html)(논리적 디코딩 개념)을 참조하세요.

**참고**  
PostgreSQL 16에는 읽기 전용 복제본의 논리적 디코딩에 대한 지원이 추가되었습니다. 이 기능은 Aurora PostgreSQL에서 지원되지 않습니다.

# Aurora PostgreSQL DB 클러스터의 논리적 복제 설정
<a name="AuroraPostgreSQL.Replication.Logical.Configure"></a>

논리적 복제를 설정하려면 `rds_superuser` 권한이 필요합니다. 다음 절차에 설명된 대로 필요한 파라미터를 설정하려면 사용자 지정 DB 클러스터 파라미터 그룹을 사용하도록 Aurora PostgreSQL DB 클러스터를 구성해야 합니다. 자세한 내용은 [Amazon Aurora DB 클러스터의 DB 클러스터 파라미터 그룹](USER_WorkingWithDBClusterParamGroups.md) 섹션을 참조하세요.

**Aurora PostgreSQL DB 클러스터에 논리적 복제를 설정하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 Aurora PostgreSQL DB 클러스터를 선택합니다.

1. **구성** 탭을 엽니다. 인스턴스 세부 정보 중에서 **유형**이 **DB 클러스터 파라미터 그룹**인 **파라미터 그룹** 링크를 찾아보세요.

1. 링크를 선택하여 Aurora PostgreSQL DB 클러스터와 연결된 사용자 지정 파라미터를 엽니다.

1. **파라미터** 검색 필드에 `rds`를 입력하여 `rds.logical_replication` 파라미터를 찾습니다. 이 파라미터의 기본값은 `0`이며 기본적으로 꺼져 있음을 의미합니다.

1. **파라미터 편집**을 선택하여 속성 값에 액세스한 다음 선택기에서 기능을 켜도록 `1`을 선택합니다. 예상 사용량에 따라 다음 파라미터의 설정을 변경해야 할 수도 있습니다. 하지만 대부분의 경우 기본값이면 충분합니다.
   + `max_replication_slots` - 이 파라미터를 적어도 계획한 총 논리적 복제 게시 및 구독 수와 동일한 값으로 설정합니다. AWS DMS를 사용하는 경우 이 파라미터를 적어도 클러스터에서 계획한 변경 데이터 캡처 작업과 논리적 복제 게시 및 구독 수를 합친 값과 동일해야 합니다.
   + `max_wal_senders` 및 `max_logical_replication_workers` - 이 파라미터를 적어도 활성화하려는 논리적 복제 슬롯 수 또는 변경 데이터 캡쳐를 위한 활성 AWS DMS 작업의 수와 동일한 값으로 설정합니다. 논리적 복제 슬롯을 비활성 상태로 두면 vacuum이 테이블에서 사용되지 않는 튜플을 제거할 수 없으므로 복제 슬롯을 모니터링하고 필요에 따라 비활성 슬롯을 제거하는 것이 좋습니다.
   + `max_worker_processes` - 이 파라미터를 적어도 `max_logical_replication_workers`, `autovacuum_max_workers` 및 `max_parallel_workers` 값의 합계와 동일한 값으로 설정합니다. 소규모 DB 인스턴스 클래스에서는 백그라운드 작업자 프로세스 수가 애플리케이션 워크로드에 영향을 줄 수 있으므로 `max_worker_processes`를 기본값보다 높게 설정한 경우 데이터베이스 성능을 모니터링합니다. (기본값은 `GREATEST(${DBInstanceVCPU*2},8}`의 결과입니다. 즉, 기본적으로 DB 인스턴스 클래스에 해당하는 CPU의 2배 또는 8 중 더 큰 값입니다.)
**참고**  
고객이 생성한 DB 파라미터 그룹의 파라미터 값은 수정할 수 있지만, 기본 DB 파라미터 그룹의 파라미터 값은 변경할 수 없습니다.

1. **변경 사항 저장**을 선택합니다.

1. Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 변경 사항이 적용되도록 합니다. Amazon RDS 콘솔에서 클러스터의 기본 DB 인스턴스를 선택하고 **작업** 메뉴에서 **재부팅**을 선택합니다.

1. 인스턴스를 사용할 수 있게 되면 다음과 같이 논리적 복제가 활성화되어 있는지 확인할 수 있습니다.

   1. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결합니다.

      ```
      psql --host=your-db-cluster-instance-1.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
      ```

   1. 다음 명령을 사용하여 논리적 복제가 활성화되었는지 확인합니다.

      ```
      labdb=> SHOW rds.logical_replication;
       rds.logical_replication
      -------------------------
       on
      (1 row)
      ```

   1. `wal_level`이 `logical`로 설정되어 있는지 확인합니다.

      ```
      labdb=> SHOW wal_level;
        wal_level
      -----------
       logical
      (1 row)
      ```

논리적 복제를 사용하여 데이터베이스 테이블을 원본 Aurora PostgreSQL DB 클러스터의 변경 사항과 동기화된 상태로 유지하는 예는 [예: Aurora PostgreSQL DB 클러스터에서 논리적 복제 사용](AuroraPostgreSQL.Replication.Logical.PostgreSQL-Example.md) 섹션을 참조하세요.

# 논리적 복제 비활성화
<a name="AuroraPostgreSQL.Replication.Logical.Stop"></a>

복제 작업을 완료한 후에는 복제 프로세스를 중지하고 복제 슬롯을 삭제한 다음 논리적 복제를 비활성화해야 합니다. 슬롯을 삭제하기 전에 슬롯이 더 이상 필요가 없는지 확인합니다. 활성 복제 슬롯은 삭제할 수 없습니다.

**논리적 복제를 비활성화하는 방법**

1. 모든 복제 슬롯을 삭제합니다.

   모든 복제 슬롯을 삭제하려면 게시자에 연결하고 다음 SQL 명령을 실행합니다.

   ```
   SELECT pg_drop_replication_slot(slot_name)
     FROM pg_replication_slots
    WHERE slot_name IN (SELECT slot_name FROM pg_replication_slots);
   ```

   이 명령을 실행할 때는 복제 슬롯을 활성화할 수 없습니다.

1. [Aurora PostgreSQL DB 클러스터의 논리적 복제 설정](AuroraPostgreSQL.Replication.Logical.Configure.md)에 설명된 대로 게시자와 연결된 사용자 지정 DB 클러스터 파라미터 그룹을 수정하되 `rds.logical_replication` 파라미터를 0으로 설정합니다.

   사용자 지정 파라미터 그룹에 대한 자세한 내용은 [Amazon Aurora에서 DB 클러스터 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.ModifyingCluster.md) 단원을 참조하세요.

1. `rds.logical_replication` 파라미터 변경 사항이 적용되도록 게시자 Aurora PostgreSQL DB 클러스터를 다시 시작합니다.

# Aurora PostgreSQL 논리적 복제를 위한 라이트-스루 캐시 및 논리적 슬롯 모니터링
<a name="AuroraPostgreSQL.Replication.Logical-monitoring"></a>

논리적 복제 라이트-스루 캐시를 모니터링하고 논리적 슬롯을 관리하여 Aurora PostgreSQL DB 클러스터의 성능을 개선합니다. 아래에서 라이트-스루 캐시 및 논리적 슬롯에 대한 자세한 내용을 찾아보세요.

**Topics**
+ [Aurora PostgreSQL 논리적 복제 라이트-스루 캐시 모니터링](#AuroraPostgreSQL.Replication.Logical-write-through-cache)
+ [Aurora PostgreSQL 논리적 슬롯 관리](#AuroraPostgreSQL.Replication.Logical.Configure.managing-logical-slots)

## Aurora PostgreSQL 논리적 복제 라이트-스루 캐시 모니터링
<a name="AuroraPostgreSQL.Replication.Logical-write-through-cache"></a>

기본적으로 Aurora PostgreSQL 버전 14.5, 13.8, 12.12 및 11.17 이상에서는 라이트-스루 캐시를 사용하여 논리적 복제의 성능을 개선합니다. 라이트-스루 캐시가 없으면 Aurora PostgreSQL은 기본 PostgreSQL 논리적 복제 프로세스를 구현할 때 Aurora 스토리지 계층을 사용합니다. 이를 위해 WAL 데이터를 스토리지에 쓴 다음 스토리지에서 데이터를 다시 읽어 디코딩하고 대상(가입자)에 전송(복제)합니다. 그 결과 Aurora PostgreSQL DB 클러스터의 논리적 복제 중에 병목 현상이 발생할 수 있습니다.

라이트-스루 캐시는 Aurora 스토리지 계층에 대한 의존도를 최소화합니다. Aurora PostgreSQL은 이 계층에 지속적으로 쓰고 읽는 대신 버퍼를 사용하여 복제 프로세스 중에 사용할 논리적 WAL 스트림을 캐싱하므로 디스크에 액세스할 필요가 줄어듭니다. 이 버퍼는 논리적 복제에서 사용하는 기본 PostgreSQL 캐시이며, Aurora PostgreSQL DB 클러스터 파라미터에서 `rds.logical_wal_cache`로 식별됩니다.

(라이트-스루 캐시를 지원하는 버전의) Aurora PostgreSQL DB 클러스터에서 논리적 복제를 사용하는 경우, 캐시 적중률을 모니터링하여 사용 사례에 맞게 작동하는지 확인할 수 있습니다. 이렇게 하려면 다음 예제와 같이 `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 쓰기 인스턴스에 연결한 다음 Aurora 함수(`aurora_stat_logical_wal_cache`)를 사용해야 합니다.

```
SELECT * FROM aurora_stat_logical_wal_cache();
```

이 함수는 다음과 같은 출력을 반환합니다.

```
name       | active_pid | cache_hit | cache_miss | blks_read | hit_rate | last_reset_timestamp
-----------+------------+-----------+------------+-----------+----------+--------------
test_slot1 | 79183      | 24        | 0          | 24        | 100.00%  | 2022-08-05 17:39...
test_slot2 |            | 1         | 0          |  1        | 100.00%  | 2022-08-05 17:34...
(2 rows)
```

가독성을 위해 `last_reset_timestamp` 값을 줄였습니다. 이 함수에 대한 자세한 내용은 [aurora\$1stat\$1logical\$1wal\$1cache](aurora_stat_logical_wal_cache.md) 단원을 참조하세요.

Aurora PostgreSQL는 라이트-스루 캐시를 모니터링하는 다음 두 가지 함수를 제공합니다.
+ `aurora_stat_logical_wal_cache` 함수 – 참조 설명서는 [aurora\$1stat\$1logical\$1wal\$1cache](aurora_stat_logical_wal_cache.md)에서 확인할 수 있습니다.
+ `aurora_stat_reset_wal_cache` 함수 – 참조 설명서는 [aurora\$1stat\$1reset\$1wal\$1cache](aurora_stat_reset_wal_cache.md)에서 확인할 수 있습니다.

자동으로 조정된 WAL 캐시 크기가 워크로드에 충분하지 않은 경우, `rds.logical_wal_cache` 값을 수동으로 변경할 수 있습니다. 다음을 고려하세요.
+ `rds.logical_replication` 파라미터가 비활성화되면 `rds.logical_wal_cache`가 0으로 설정됩니다.
+ `rds.logical_replication` 파라미터가 활성화되면 `rds.logical_wal_cache`의 기본값이 16MB입니다.
+ `rds.logical_wal_cache` 파라미터는 정적이므로 변경 사항을 적용하려면 데이터베이스 인스턴스 재부팅이 필요합니다. 이 파라미터는 8Kb 블록으로 정의됩니다. 32kB 미만의 모든 양수 값은 32kB로 처리됩니다. `wal_buffers`에 대한 자세한 내용은 PostgreSQL 설명서에서 [Write Ahead Log](https://www.postgresql.org/docs/current/runtime-config-wal.html#RUNTIME-CONFIG-WAL-SETTINGS)를 참조하세요.

## Aurora PostgreSQL 논리적 슬롯 관리
<a name="AuroraPostgreSQL.Replication.Logical.Configure.managing-logical-slots"></a>

스트리밍 활동이 `pg_replication_origin_status` 보기에 캡처됩니다. 이 보기의 내용을 보려면 다음과 같이 `pg_show_replication_origin_status()` 함수를 사용하면 됩니다.

```
SELECT * FROM pg_show_replication_origin_status();
```

다음 SQL 쿼리를 사용하여 논리적 슬롯 목록을 가져올 수 있습니다.

```
SELECT * FROM pg_replication_slots;
```

논리적 슬롯을 삭제하려면 다음 명령에서처럼 `pg_drop_replication_slot`를 슬롯 이름과 함께 사용합니다.

```
SELECT pg_drop_replication_slot('test_slot');
```

# 예: Aurora PostgreSQL DB 클러스터에서 논리적 복제 사용
<a name="AuroraPostgreSQL.Replication.Logical.PostgreSQL-Example"></a>

다음 절차는 두 Aurora PostgreSQL DB 클러스터 간에 논리적 복제를 시작하는 방법을 보여줍니다. 게시자와 구독자 모두 [Aurora PostgreSQL DB 클러스터의 논리적 복제 설정](AuroraPostgreSQL.Replication.Logical.Configure.md)에 설명된 대로 논리적 복제를 구성해야 합니다.

지정된 게시자인 Aurora PostgreSQL DB 클러스터도 복제 슬롯에 대한 액세스를 허용해야 합니다. 그러려면 Aurora PostgreSQL DB 클러스터의 Amazon VPC 서비스를 기반으로 Virtual Public Cloud(VPC)와 연결된 보안 그룹을 수정합니다. 구독자의 VPC와 연결된 보안 그룹을 게시자의 보안 그룹에 추가하여 인바운드 액세스를 허용합니다. 자세한 내용을 알아보려면 Amazon VPC 사용 설명서의 [보안 그룹을 사용하여 리소스에 대한 트래픽 제어](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)를 참조하세요.**

이러한 예비 단계가 완료되면 다음 절차에 설명된 대로 게시자에는 `CREATE PUBLICATION`, 구독자에는 `CREATE SUBSCRIPTION` PostgreSQL 명령을 사용할 수 있습니다.

**두 Aurora PostgreSQL DB 클러스터 간에 논리적 복제를 시작하는 방법**

이 단계에서는 Aurora PostgreSQL DB 클러스터에 예시 테이블을 생성할 데이터베이스가 있는 라이터 인스턴스가 있다고 가정합니다.

1. **게시자 Aurora PostgreSQL DB 클러스터에서**

   1. 다음 SQL 문을 사용하여 테이블을 생성합니다.

      ```
      CREATE TABLE LogicalReplicationTest (a int PRIMARY KEY);
      ```

   1. 다음 SQL 문을 사용해 게시자 데이터베이스에 데이터를 삽입합니다.

      ```
      INSERT INTO LogicalReplicationTest VALUES (generate_series(1,10000));
      ```

   1. 다음 SQL 문을 사용하여 테이블에 데이터가 있는지 확인합니다.

      ```
      SELECT count(*) FROM LogicalReplicationTest;
      ```

   1. 다음과 같이 `CREATE PUBLICATION` 문을 사용하여 이 테이블에 대한 게시를 생성합니다.

      ```
      CREATE PUBLICATION testpub FOR TABLE LogicalReplicationTest;
      ```

1. **구독자 Aurora PostgreSQL DB 클러스터에서**

   1. 다음과 같이 게시자에서 생성한 것과 동일한 `LogicalReplicationTest` 테이블을 구독자에 생성합니다.

      ```
      CREATE TABLE LogicalReplicationTest (a int PRIMARY KEY);
      ```

   1. 이 테이블이 비어 있는지 확인합니다.

      ```
      SELECT count(*) FROM LogicalReplicationTest;
      ```

   1. 구독을 만들어 게시자로부터 변경 사항을 받습니다. 게시자 Aurora PostgreSQL DB 클러스터에 다음 세부 정보를 사용해야 합니다.
      + **host** - 게시자 Aurora PostgreSQL DB 클러스터의 라이터 DB 인스턴스입니다.
      + **포트** - 라이터 DB 인스턴스가 수신 대기하는 포트입니다. PostgreSQL의 기본값은 5432입니다.
      + **dbname** - 데이터베이스의 이름입니다.

      ```
      CREATE SUBSCRIPTION testsub CONNECTION 
         'host=publisher-cluster-writer-endpoint port=5432 dbname=db-name user=user password=password' 
         PUBLICATION testpub;
      ```
**참고**  
보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.

      구독이 생성된 후 논리적 복제 슬롯이 게시자 측에 생성됩니다.

   1. 이 예시에서 초기 데이터가 구독자 측에서 복제된다는 것을 확인하려면 구독자 데이터베이스에서 다음 SQL 문을 사용하십시오.

      ```
      SELECT count(*) FROM LogicalReplicationTest;
      ```

게시자에 대한 추가 변경 사항은 구독자에게로 복제됩니다.

논리적 복제는 성능에 영향을 미칩니다. 복제 작업이 완료된 후에는 논리적 복제를 해제하는 것이 좋습니다.

# 예: Aurora PostgreSQL 및 AWS Database Migration Service를 사용하는 논리적 복제
<a name="AuroraPostgreSQL.Replication.Logical.DMS-Example"></a>

AWS Database Migration Service(AWS DMS)를 사용해 데이터베이스 또는 데이터베이스의 일부를 복제할 수 있습니다. AWS DMS를 사용해 데이터를 Aurora PostgreSQL 데이터베이스에서 다른 오픈 소스 또는 상용 데이터베이스로 마이그레이션합니다. AWS DMS에 대한 자세한 내용은 [AWS Database Migration Service 사용 설명서](https://docs.aws.amazon.com/dms/latest/userguide/)를 참조하십시오.

다음 예에서는 게시자인 Aurora PostgreSQL 데이터베이스에서 논리적 복제를 설정한 다음 마이그레이션을 위해 AWS DMS를 사용하는 방법을 보여줍니다. 이 예시에서는 [예: Aurora PostgreSQL DB 클러스터에서 논리적 복제 사용](AuroraPostgreSQL.Replication.Logical.PostgreSQL-Example.md)에서 생성된 동일한 게시자 및 구독자를 사용합니다.

AWS DMS를 이용해 논리적 복제를 설정하려면 Amazon RDS에서 게시자 및 구독자에 대한 세부 정보를 얻어야 합니다. 특히 게시자의 라이터 DB 인스턴스와 구독자의 DB 인스턴스에 대한 세부 정보가 필요합니다.

게시자의 라이터 DB 인스턴스에 대해 다음 정보를 얻으십시오.
+ Virtual Private Cloud(VPC) 식별자
+ 서브넷 그룹
+ 가용 영역(AZ)
+ VPC 보안 그룹
+ DB 인스턴스 ID

구독자의 DB 인스턴스에 대해 다음 정보를 얻으십시오.
+ DB 인스턴스 ID
+ 소스 엔진

**Aurora PostgreSQL에서 논리적 복제를 위해 AWS DMS를 사용하려면**

1. AWS DMS 작업을 할 게시자 데이터베이스를 준비합니다.

   이를 위해 PostgreSQL 10.x 이상 데이터베이스에서는 AWS DMS 래퍼 함수를 게시자 데이터베이스에 적용해야 합니다. 이와 관련된 사항과 후속 단계에 대한 자세한 내용은 *AWS Database Migration Service 사용 설명서*의 [PostgreSQL 버전 10.x 이상을 AWS DMS의 소스로 사용](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Source.PostgreSQL.html#CHAP_Source.PostgreSQL.v10)을 참조하세요.

1. AWS Management Console에 로그인한 다음 AWS DMS에서 [https://console.aws.amazon.com/dms/v2](https://console.aws.amazon.com/dms/v2) 콘솔을 엽니다. 상단 오른쪽에서 게시자와 구독자가 위치한 리전과 동일한 AWS 리전을 선택합니다.

1. AWS DMS 복제 인스턴스를 생성합니다.

   게시자의 라이터 DB 인스턴스에 대한 값과 동일한 값을 선택합니다. 여기에는 다음 설정이 포함합니다.
   + **VPC**에서 라이터 DB 인스턴스의 VPC와 동일한 VPC를 선택합니다.
   + **복제 서브넷 그룹**에서 라이터 DB 인스턴스의 서브넷 그룹과 동일한 서브넷 그룹을 선택합니다. 필요한 경우 새 것을 만듭니다.
   + **가용 영역**에서 라이터 DB 인스턴스의 영역과 동일한 영역을 선택합니다.
   + **VPC 보안 그룹**에서 라이터 DB 인스턴스의 그룹과 동일한 그룹을 선택합니다.

1. 원본에 대해 AWS DMS 엔드포인트를 생성합니다.

   다음 설정을 사용해 게시자를 원본 엔드포인트로 지정합니다.
   + **Endpoint type(엔드포인트 유형)**에서 **Source endpoint(원본 엔드포인트)**를 선택합니다.
   + **Select RDS DB Instance(RDS DB 인스턴스 선택)**을 선택합니다.
   + **RDS Instance(RDS 인스턴스)**에서 게시자의 라이터 DB 인스턴스의 DB 식별자를 선택합니다.
   + **소스 엔진**에서 **postgres**를 선택합니다.

1. 대상에 대해 AWS DMS 엔드포인트를 생성합니다.

   다음 설정을 사용해 구독자를 대상 엔드포인트로 지정합니다.
   + **Endpoint type(엔드포인트 유형)**에서 **Target endpoint(대상 엔드포인트)**를 선택합니다.
   + **Select RDS DB Instance(RDS DB 인스턴스 선택)**을 선택합니다.
   + **RDS Instance(RDS 인스턴스)**에서 구독자 DB 인스턴스의 DB 식별자를 선택합니다.
   + **소스 엔진**의 값을 선택합니다. 예를 들어 구독자가 RDS PostgreSQL 데이터베이스인 경우 **postgres**를 선택합니다. 구독자가 Aurora PostgreSQL 데이터베이스인 경우 **aurora-postgresql**을 선택합니다.

1. AWS DMS 데이터베이스 마이그레이션 작업을 생성합니다.

   데이터베이스 마이그레이션 작업을 사용하여 마이그레이션할 데이터베이스 테이블을 지정하고, 대상 스키마를 사용해 데이터를 매핑하고, 대상 데이터베이스에 새 테이블을 생성합니다. 최소한 **Task configuration(작업 구성)**에 대해 다음 설정을 사용하십시오.
   + **Replication instance(복제 인스턴스)**에서 이전 단계에서 생성한 복제 인스턴스를 선택합니다.
   + **Source database endpoint(원본 데이터베이스 엔드포인트)**에서 이전 단계에서 생성한 게시자 원본을 선택합니다.
   + **Target database endpoint(대상 데이터베이스 엔드포인트)**에서 이전 단계에서 생성한 구독자 대상을 선택합니다.

   작업에 관한 나머지 세부 정보는 마이그레이션 프로젝트에 따라 다릅니다. DMS 태스크의 모든 세부 정보 지정에 대한 자세한 내용은 *AWS Database Migration Service 사용 설명서*에서 [AWS DMS 태스크 사용](https://docs.aws.amazon.com/dms/latest/userguide/CHAP_Tasks.html)을 참조하세요.

작업이 생성되고 나면 AWS DMS에서 게시자에서 구독자로 데이터가 마이그레이션되기 시작합니다.

# 논리적 복제 연결을 위한 IAM 인증 구성
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth"></a>

Aurora PostgreSQL 버전 11 이상부터 복제 연결에 AWS Identity and Access Management(IAM) 인증을 사용할 수 있습니다. 이 기능을 사용하면 암호 대신 IAM 역할을 사용하여 데이터베이스 액세스를 관리할 수 있으므로 보안이 강화됩니다. 클러스터 수준에서 작동하며, 표준 IAM 인증과 동일한 보안 모델을 따릅니다.

복제 연결을 위한 IAM 인증은 옵트인 기능입니다. 활성화하려면 DB 클러스터 파라미터 그룹의 `rds.iam_auth_for_replication` 파라미터를 `1`로 설정합니다. 동적 파라미터이므로 DB 클러스터를 다시 시작할 필요가 없으므로, 가동 중지 시간 없이 기존 워크로드에서 IAM 인증을 활용할 수 있습니다. 이 기능을 활성화하기 전에 아래 나열된 [사전 조건](#AuroraPostgreSQL.Replication.Logical.IAM-auth-prerequisites)을 충족해야 합니다.

## 사전 조건
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth-prerequisites"></a>

복제 연결에 IAM 인증을 사용하려면 다음 요구 사항을 모두 충족해야 합니다.
+ Aurora PostgreSQL DB 클러스터는 버전 11 이상이어야 합니다.
+ 게시자 Aurora PostgreSQL DB 클러스터에서 다음을 수행합니다.
  + IAM 데이터베이스 인증을 활성화합니다.

    자세한 내용은 [IAM 데이터베이스 인증의 활성화 및 비활성화](UsingWithRDS.IAMDBAuth.Enabling.md) 섹션을 참조하세요.
  + `rds.logical_replication` 파라미터를 `1`로 설정하여 로컬 복제를 활성화합니다.

    자세한 내용은 [Aurora PostgreSQL DB 클러스터의 논리적 복제 설정](AuroraPostgreSQL.Replication.Logical.Configure.md) 섹션을 참조하세요.

  논리적 복제에서 게시자는 구독자 클러스터로 데이터를 전송하는 소스 Aurora PostgreSQL DB 클러스터입니다. 자세한 내용은 [Aurora의 PostgreSQL 논리적 복제 개요](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Replication.Logical.html)를 참조하세요.

**참고**  
게시자 Aurora PostgreSQL DB 클러스터에서 IAM 인증과 논리적 복제를 모두 활성화해야 합니다. 둘 중 하나가 활성화되지 않은 경우 복제 연결에 IAM 인증을 사용할 수 없습니다.

## 복제 연결에 대한 IAM 인증 활성화
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth-enabling"></a>

다음 단계를 완료하여 복제 연결에 대한 IAM 인증을 활성화합니다.

1. Aurora PostgreSQL DB 클러스터가 복제 연결을 통한 IAM 인증을 위한 모든 사전 조건을 충족하는지 확인합니다. 자세한 내용은 [사전 조건](#AuroraPostgreSQL.Replication.Logical.IAM-auth-prerequisites)을 참조하세요.

1. DB 클러스터 `rds.iam_auth_for_replication` 파라미터 그룹을 수정하여 파라미터를 구성합니다.
   + `rds.iam_auth_for_replication` 파라미터를 `1`로 설정합니다. 이는 재부팅이 필요하지 않은 동적 파라미터입니다.

1. 데이터베이스에 연결하고 복제 사용자에게 필요한 역할을 부여합니다.

   다음 SQL 명령은 복제 연결에 대한 IAM 인증을 활성화하는 데 필요한 역할을 부여합니다.

   ```
   -- Grant IAM authentication role
   GRANT rds_iam TO replication_user_name;
   -- Grant replication privileges
   ALTER USER replication_user_name WITH REPLICATION;
   ```

이 단계를 완료한 후, 지정된 사용자는 복제 연결에 IAM 인증을 사용해야 합니다.

**중요**  
기능을 활성화할 때 `rds_iam` 및 `rds_replication` 역할이 모두 있는 사용자는 복제 연결에 IAM 인증을 사용해야 합니다. 이는 역할이 사용자에게 직접 할당되는지 아니면 다른 역할을 통해 상속되는지에 관계없이 적용됩니다.

## 복제 연결에 대한 IAM 인증 비활성화
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth-disabling"></a>

다음 방법 중 하나를 사용하여 복제 연결에 대한 IAM 인증을 비활성화할 수 있습니다.
+ DB 클러스터 파라미터 그룹의 `rds.iam_auth_for_replication` 파라미터를 `0`으로 설정합니다.
+ 또는 Aurora PostgreSQL DB 클러스터에서 다음 기능 중 하나를 비활성화할 수 있습니다.
  + `rds.logical_replication` 파라미터를 `0`으로 설정하여 논리적 복제 비활성화
  + IAM 인증 비활성화

기능을 비활성화하면 복제 연결이 구성된 경우 인증에 데이터베이스 암호를 사용할 수 있습니다.

**참고**  
`rds_iam` 역할이 없는 사용자의 복제 연결은 기능이 활성화된 경우에도 암호 인증을 사용할 수 있습니다.

## 제한 사항 및 고려 사항
<a name="AuroraPostgreSQL.Replication.Logical.IAM-auth-limitations"></a>

복제 연결에 IAM 인증을 사용할 때는 다음과 같은 제한 및 고려 사항이 적용됩니다.
+ 복제 연결에 대한 IAM 인증은 Aurora PostgreSQL 버전 11 이상에서만 사용할 수 있습니다.
+ 게시자는 복제 연결에 대한 IAM 인증을 지원해야 합니다.
+ IAM 인증 토큰은 기본적으로 15분 후에 만료됩니다. 토큰이 만료되기 전에 장기 실행 복제 연결을 새로 고쳐야 할 수 있습니다.

# Aurora PostgreSQL의 로컬 쓰기 전달
<a name="aurora-postgresql-write-forwarding"></a>

 *로컬(클러스터 내) 쓰기 전달*을 사용하면 애플리케이션이 Aurora 복제본에서 직접 읽기/쓰기 트랜잭션을 발행할 수 있도록 합니다. 그런 다음 쓰기 명령이 커밋될 라이터 DB 인스턴스로 전달됩니다. 가끔 쓰기가 발생하고 한 트랜잭션에서 최신 쓰기를 읽는 기능인 *쓰기 후 읽기 일관성*이 필요한 애플리케이션에 로컬 쓰기 전달을 사용할 수 있습니다.

 쓰기 전달을 사용하지 않으면 애플리케이션이 트래픽을 적절한 엔드포인트로 전송하기 위해 두 세트의 데이터베이스 연결을 유지하면서 모든 읽기 및 쓰기 트래픽을 완전히 분할해야 합니다. 읽기 전용 복제본은 라이터 인스턴스로부터 비동기식으로 업데이트를 받습니다. 또한 복제 지연은 읽기 전용 복제본마다 다를 수 있으므로 모든 복제본에서 전역 읽기 일관성을 달성하는 것은 어렵습니다. 라이터 데이터베이스 인스턴스에서 읽기 후 쓰기 일관성이 필요한 모든 읽기를 처리해야 합니다. 또는 일관성을 보장하면서 확장성을 위해 여러 읽기 전용 복제본을 활용하려면 복잡한 사용자 지정 애플리케이션 로직을 개발해야 합니다.

 쓰기 전달을 사용하면 이러한 트랜잭션을 분할하거나 라이터 인스턴스로만 전송할 필요가 없습니다. 또한 *읽기 후 쓰기 일관성* 일관성을 달성하기 위해 복잡한 애플리케이션 로직을 개발할 필요가 없습니다.

 로컬 쓰기 전달은 Aurora PostgreSQL을 사용할 수 있는 모든 리전에서 사용할 수 있습니다. 다음과 같은 Aurora PostgreSQL 버전이 지원됩니다.
+ 16.4 이상의 16 버전
+ 15.8 이상의 15 버전
+ 14.13 이상의 14 버전

 로컬 쓰기 전달은 리전 내 복제본의 쓰기를 전달하는 데 사용됩니다. 글로벌 복제본의 쓰기를 전달하려면 [Amazon Aurora 글로벌 데이터베이스에서 쓰기 전달 사용](aurora-global-database-write-forwarding.md) 섹션을 참조하세요.

**Topics**
+ [Aurora PostgreSQL의 로컬 쓰기 전달 제한 사항 및 고려 사항](aurora-postgresql-write-forwarding-limitations.md)
+ [로컬 쓰기 전달을 위한 Aurora PostgreSQL 구성](aurora-postgresql-write-forwarding-configuring.md)
+ [Aurora PostgreSQL에 대한 로컬 쓰기 전달 작업](aurora-postgresql-write-forwarding-understanding.md)
+ [Aurora PostgreSQL에서 로컬 쓰기 전달 모니터링](aurora-postgresql-write-forwarding-monitoring.md)

# Aurora PostgreSQL의 로컬 쓰기 전달 제한 사항 및 고려 사항
<a name="aurora-postgresql-write-forwarding-limitations"></a>

 현재 Aurora PostgreSQL의 로컬 쓰기 전달에는 다음과 같은 제한 사항이 적용됩니다.
+  RDS 프록시에서는 로컬 쓰기 전달이 지원되지 않습니다.
+  특정 명령문은 쓰기 전달과 함께 Aurora PostgreSQL에서 사용할 때 허용되지 않거나 부실 결과를 생성할 수 있습니다. 또한 사용자 정의 함수 및 사용자 정의 프로시저는 지원되지 않습니다. 따라서 `EnableLocalWriteForwarding` 설정은 DB 클러스터에 대해 기본적으로 꺼져 있습니다. 이 설정을 켜기 전에, 애플리케이션 코드가 이러한 제한 사항의 영향을 받지 않는지 확인하십시오.
+  다음과 같은 종류의 SQL 문은 쓰기 전달에서 지원되지 않습니다.
**참고**  
이러한 문은 애플리케이션에서 암시적으로 사용하거나 PostgreSQL 프로토콜로 추론할 수 있습니다. 예를 들어 PL/SQL 예외 처리 시 지원되는 문이 아닌 SAVEPOINT를 사용할 수 있습니다.
  +  `ANALYZE` 
  +  `CLUSTER` 
  +  `COPY` 
  + 커서 - 커서는 지원되지 않으므로 로컬 쓰기 전달을 사용하기 전에 커서를 닫아야 합니다.
  +  데이터 정의 언어(DDL) 문 
  +  `GRANT`\$1`REVOKE`\$1`REASSIGN OWNED`\$1`SECURITY LABEL`
  +  `LISTEN / NOTIFY` 
  +  `LOCK` 
  +  `SAVEPOINT` 
  +  `SELECT INTO` 
  +  `SET CONSTRAINTS` 
  +  시퀀스 업데이트: `nextval()`, `setval()` 
  +  `TRUNCATE` 
  +  2단계 커밋 명령: `PREPARE TRANSACTION`, `COMMIT PREPARED`, `ROLLBACK PREPARED` 
  + 사용자 정의 함수 및 사용자 정의 절차.
  +  `VACUUM` 

 다음과 같은 SQL 문을 쓰기 전달과 함께 사용할 수 있습니다.
+ DML 명령문은 `INSERT ... SELECT` 명령문 또는 `DELETE ... WHERE` 명령문과 같이 여러 부분으로 구성될 수 있습니다. 이 경우 전체 명령문이 라이터 DB 인스턴스로 전달되어 그 위치에서 실행됩니다.
+ `INSERT`, `DELETE` 및 `UPDATE`와 같은 데이터 조작 언어(DML) 문입니다.
+  이 목록에 있는 문이 포함된 `EXPLAIN` 문
+  `PREPARE` 및 `EXECUTE` 문입니다.
+  `SELECT FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE }` 문.

# 로컬 쓰기 전달을 위한 Aurora PostgreSQL 구성
<a name="aurora-postgresql-write-forwarding-configuring"></a>

 다음 섹션을 사용하여 Amazon Aurora PostgreSQL DB 클러스터에 대한 로컬 쓰기 전달을 활성화하고, 일관성 수준을 구성하며, 쓰기 전달을 사용하여 트랜잭션을 관리할 수 있습니다.

## 로컬 쓰기 전달 활성화
<a name="aurora-postgresql-write-forwarding-enabling"></a>

 기본적으로 Aurora PostgreSQL DB 클러스터에는 로컬 쓰기 전달이 활성화되어 있지 않습니다. 인스턴스 수준이 아닌 클러스터 수준에서 직접 로컬 쓰기 전달을 활성화합니다.

### 콘솔
<a name="aurora-postgresql-write-forwarding-enabling.CON"></a>

 DB 클러스터를 만들거나 수정할 때 AWS Management Console을 사용하여 **읽기 전용 복제본 쓰기 전달** 아래의 **로컬 쓰기 전달 켜기** 확인란을 선택합니다.

### AWS CLI
<a name="aurora-postgresql-write-forwarding-enabling.CLI"></a>

 AWS CLI를 사용하여 로컬 쓰기 전달을 활성화하려면 `--enable-local-write-forwarding` 옵션을 사용합니다. 이 옵션은 `create-db-cluster` 명령을 사용하여 새 DB 클러스터를 생성할 때 작동합니다. `modify-db-cluster` 명령을 사용하여 기존 DB 클러스터를 수정할 때도 작동합니다. 이러한 동일한 CLI 명령과 함께 `--no-enable-local-write-forwarding` 옵션을 사용하여 로컬 쓰기 전달을 비활성화할 수 있습니다.

 다음 예시에서는 로컬 쓰기 전달이 활성화된 Aurora PostgreSQL DB 클러스터를 생성합니다.

```
                        aws rds create-db-cluster \
                        --db-cluster-identifier write-forwarding-test-cluster \
                        --enable-local-write-forwarding \
                        --engine aurora-postgresql \
                        --engine-version 16.4 \
                        --master-username myuser \
                        --master-user-password mypassword \
                        --backup-retention 1
```

 그런 다음 쓰기 전달을 사용할 수 있도록 라이터 및 리더 DB 인스턴스를 생성합니다. 자세한 내용은 [Amazon Aurora DB 클러스터 생성](Aurora.CreateInstance.md) 단원을 참조하십시오.

### RDS API
<a name="aurora-postgresql-write-forwarding-enabling.API"></a>

 Amazon RDS API를 사용하여 로컬 쓰기 전달을 활성화하려면 `EnableLocalWriteForwarding` 파라미터를 `true`로 설정합니다. 이 파라미터는 `CreateDBCluster` 작업을 사용하여 새 DB 클러스터를 생성할 때 작동합니다. `ModifyDBCluster` 작업을 사용하여 기존 DB 클러스터를 수정할 때도 작동합니다. `EnableLocalWriteForwarding` 파라미터를 `false`로 설정하여 로컬 쓰기 전달을 비활성화할 수 있습니다.

### 데이터베이스 세션에 대한 로컬 쓰기 전달 활성화
<a name="aurora-postgresql-write-forwarding-enabling-session"></a>

 `apg_write_forward.consistency_mode` 파라미터는 쓰기 전달을 가능하게 하는 DB 파라미터 및 DB 클러스터 파라미터입니다. 읽기 일관성 수준에 대해 `SESSION`, `EVENTUAL`, `GLOBAL` 또는 `OFF`를 지정할 수 있습니다. 일관성 수준에 대한 자세한 내용은 [Aurora PostgreSQL에서 로컬 쓰기 전달의 일관성 및 격리](#aurora-postgresql-write-forwarding-isolation) 단원을 참조하세요.

 이 파라미터에는 다음과 같은 규칙이 적용됩니다.
+ 기본값은 `SESSION`입니다.
+  `apg_write_forward.consistency_mode`를 `EVENTUAL`, `SESSION` 또는 `GLOBAL`로 설정하는 경우에만 로컬 쓰기 전달을 사용할 수 있습니다. 이 파라미터는 로컬 쓰기 전달이 활성화되어 있는 DB 클러스터의 리더 인스턴스에만 적용됩니다.
+ 값을 `OFF`로 설정하면 세션에서 로컬 쓰기 전달이 비활성화됩니다.

## Aurora PostgreSQL에서 로컬 쓰기 전달의 일관성 및 격리
<a name="aurora-postgresql-write-forwarding-isolation"></a>

읽기 전용 복제본에서 읽기 일관성 정도를 제어할 수 있습니다. 읽기 일관성 수준을 조정하여 세션에서 전달된 모든 쓰기 작업이 후속 쿼리 전에 읽기 전용 복제본에 표시되도록 할 수 있습니다. 또한 이 설정을 사용하여 읽기 전용 복제본의 쿼리에 항상 라이터 DB 인스턴스의 최신 업데이트가 표시되게 할 수 있습니다. 이는 다른 세션이나 다른 클러스터에서 제출된 경우에도 마찬가지입니다. 애플리케이션에 대해 이러한 유형의 동작을 지정하려면 세션 수준 파라미터 `apg_write_forward.consistency_mode`의 값을 적절히 선택합니다. `apg_write_forward.consistency_mode` 파라미터는 로컬 쓰기 전달이 활성화된 읽기 전용 복제본에만 영향을 미칩니다.

**참고**  
`apg_write_forward.consistency_mode` 파라미터에 대해 `SESSION`, `EVENTUAL`, `GLOBAL` 또는 `OFF` 값을 지정할 수 있습니다. 기본적으로 이 값은 `SESSION`로 설정됩니다. 값을 `OFF`로 설정하면 쓰기 전달이 비활성화됩니다.

일관성 수준을 높이면 애플리케이션은 변경 사항이 읽기 전용 복제본에 전파될 때까지 더 오랜 시간 동안 대기합니다. 낮은 지연 시간과 쿼리가 실행되기 전에 다른 위치에서 변경한 내용을 완전히 사용할 수 있도록 보장하는 것 사이의 균형을 선택할 수 있습니다.

사용 가능한 각 일관성 보장 모드 설정의 효과는 다음과 같습니다.
+ `SESSION` - 로컬 쓰기 전달을 사용하는 읽기 전용 복제본의 세션이 해당 세션에서 수행한 모든 변경의 결과를 표시합니다. 변경 내용은 트랜잭션이 커밋되었는지 여부와 상관없이 표시됩니다. 필요한 경우 쿼리는 전달된 쓰기 작업의 결과가 현재 리더 DB 인스턴스로 복제될 때까지 대기합니다. 쿼리는 현재 DB 클러스터 내의 다른 세션에서 수행한 쓰기 작업에서 업데이트된 결과가 나올 때까지 대기하지 않습니다.
+ `EVENTUAL` - 로컬 쓰기 전달을 사용하는 읽기 전용 복제본의 세션이 복제 지연으로 인해 약간 오래된 데이터를 표시할 수 있습니다. 쓰기 작업이 라이터 DB 인스턴스에서 수행되어 읽기 전용 복제본에 복제될 때까지 동일한 세션에서의 쓰기 작업 결과가 표시되지 않습니다. 쿼리는 업데이트된 결과를 사용할 수 있을 때까지 대기하지 않습니다. 따라서 쿼리는 명령문의 타이밍 및 복제 지연 양에 따라 이전 데이터 또는 업데이트된 데이터를 검색할 수 있습니다.
+ `GLOBAL` - 읽기 전용 복제본의 세션에 해당 세션에서 변경한 내용이 표시됩니다. 또한 라이터 DB 인스턴스 및 기타 읽기 전용 복제본에서 커밋된 모든 변경 내용도 표시됩니다. 각 쿼리는 세션 지연 양에 따라 다른 기간 동안 대기할 수 있습니다. 쿼리가 시작된 시간을 기준으로, 읽기 전용 복제본이 라이터 DB 인스턴스에서 커밋된 모든 데이터로 최신 상태가 되면 쿼리가 진행됩니다.
**참고**  
글로벌 일관성 모드는 세션 내에서 실행되는 쿼리의 지연 시간에 영향을 미칩니다. 세션에서 쓰기 쿼리를 전송하지 않은 경우에도 대기를 수행합니다.
+ `OFF` - 로컬 쓰기 전달이 비활성화되었습니다.

쓰기 전달을 사용하는 세션에서는 `REPEATABLE READ` 및 `READ COMMITTED` 격리 수준을 사용할 수 있습니다. 하지만 `SERIALIZABLE` 격리 수준은 지원되지 않습니다.

 쓰기 전달과 관련된 모든 파라미터에 대한 자세한 내용은 [쓰기 전달을 위한 기본 파라미터 설정](aurora-postgresql-write-forwarding-understanding.md#aurora-postgresql-write-forwarding-params) 단원을 참조하십시오.

## 쓰기 전달을 사용한 트랜잭션 액세스 모드
<a name="aurora-postgresql-write-forwarding-txns"></a>

트랜잭션 액세스 모드가 읽기 전용으로 설정된 경우 로컬 쓰기 전달이 사용되지 않습니다. DB 클러스터에 연결되어 있고 로컬 쓰기 전달이 활성화된 세션에 연결되어 있는 경우에만 읽기 쓰기를 사용하도록 액세스 모드를 설정할 수 있습니다.

트랜잭션 액세스 모드에 대한 자세한 내용은 [트랜잭션 설정](https://www.postgresql.org/docs/current/sql-set-transaction.html)을 참조하세요.

# Aurora PostgreSQL에 대한 로컬 쓰기 전달 작업
<a name="aurora-postgresql-write-forwarding-understanding"></a>

다음 섹션을 사용하여 데이터베이스 클러스터에 로컬 쓰기 전달이 활성화되어 있는지 확인하고, 호환성 고려 사항을 확인하며, 구성 가능한 파라미터 및 인증 설정을 참조할 수 있습니다. 이 정보는 Aurora PostgreSQL의 로컬 쓰기 전달 기능을 효과적으로 활용할 수 있는 세부 정보를 제공합니다.

**참고**  
로컬 쓰기 전달을 사용하는 클러스터의 라이터 인스턴스가 다시 시작되면 로컬 쓰기 전달을 사용하는 리더 인스턴스의 활성 상태이며 전달된 트랜잭션 및 쿼리가 모두 자동으로 닫힙니다. 라이터 인스턴스를 다시 사용할 수 있게 되면 이러한 트랜잭션을 다시 시도할 수 있습니다.

## DB 클러스터에 로컬 쓰기 전달이 활성화되어 있는지 확인
<a name="aurora-postgresql-write-forwarding-describing"></a>

DB 클러스터에서 로컬 쓰기 전달을 사용할 수 있는지 확인하려면 클러스터에 `LocalWriteForwardingStatus` 속성이 `enabled`로 되어 있는지 확인합니다.

‎‎AWS Management Console에서 클러스터의 세부 정보 페이지 **구성** 탭에서 **로컬 읽기 복제본 쓰기 전달**이 **활성화됨** 상태인 것을 볼 수 있습니다.‎‎

모든 클러스터에 대한 로컬 쓰기 전달 설정의 상태를 보려면 다음 AWS CLI 명령을 실행합니다.

**Example**  

```
aws rds describe-db-clusters \
--query '*[].{DBClusterIdentifier:DBClusterIdentifier,LocalWriteForwardingStatus:LocalWriteForwardingStatus}'

[
{
"LocalWriteForwardingStatus": "enabled",
"DBClusterIdentifier": "write-forwarding-test-cluster-1"
},
{
"LocalWriteForwardingStatus": "disabled",
"DBClusterIdentifier": "write-forwarding-test-cluster-2"
},
{
"LocalWriteForwardingStatus": "requested",
"DBClusterIdentifier": "test-global-cluster-2"
},
{
"LocalWriteForwardingStatus": "null",
"DBClusterIdentifier": "aurora-postgresql-v2-cluster"
}
]
```

DB 클러스터는 `LocalWriteForwardingStatus`에 대해 다음과 같은 값을 가질 수 있습니다.
+ `disabled` - 로컬 쓰기 전달이 비활성화되었습니다.
+ `disabling` - 로컬 쓰기 전달을 비활성화하는 중입니다.
+ `enabled` - 로컬 쓰기 전달이 활성화되었습니다.
+ `enabling` - 로컬 쓰기 전달을 활성화하는 중입니다.
+ `null` - 이 DB 클러스터에서는 로컬 쓰기 전달을 사용할 수 없습니다.
+ `requested` - 로컬 쓰기 전달이 요청되었지만 아직 활성 상태가 아닙니다.

## 쓰기 전달을 위한 기본 파라미터 설정
<a name="aurora-postgresql-write-forwarding-params"></a>

Aurora 클러스터 파라미터 그룹에는 로컬 쓰기 전달 기능에 대한 설정이 포함되어 있습니다. 이러한 파라미터는 클러스터 파라미터이므로 각 클러스터의 모든 DB 인스턴스에 이러한 변수의 동일한 값이 있어야 합니다. 이러한 파라미터에 대한 자세한 내용은 다음 표에 요약되어 있으며, 표 뒤에 사용 참고 사항이 나와 있습니다.


| 파라미터 | 범위 | 유형 | 기본값 | 유효값 | 
| --- | --- | --- | --- | --- | 
| apg\$1write\$1forward.connect\$1timeout | 세션 | 초 | 30 | 0–2147483647 | 
| apg\$1write\$1forward.consistency\$1mode | 세션 | enum | 세션 | SESSION, EVENTUAL, GLOBAL, 및 OFF | 
| apg\$1write\$1forward.idle\$1in\$1transaction\$1session\$1timeout | 세션 | 밀리초 | 86400000 | 0–2147483647 | 
| apg\$1write\$1forward.idle\$1session\$1timeout | 세션 | 밀리초 | 300000 | 0–2147483647 | 
| apg\$1write\$1forward.max\$1forwarding\$1connections\$1percent | 전 세계 | int | 25 | 1–100 | 

`apg_write_forward.max_forwarding_connections_percent` 파라미터는 리더에서 전달된 쿼리를 처리하기 위해 사용할 수 있는 데이터베이스 연결의 상한입니다. 이 값은 라이터 DB 인스턴스에 대한 `max_connections` 설정의 백분율로 표시됩니다. 예를 들어 `max_connections`가 `800`이고 `apg_write_forward.max_forwarding_connections_percent`가 `10`이면 라이터는 최대 80개의 동시 전달 세션을 허용합니다. 이러한 연결은 `max_connections` 설정을 통해 관리되는 동일한 연결 풀에서 발생합니다. 이 설정은 클러스터에 로컬 쓰기 전달이 활성화된 경우 라이터 DB 인스턴스에만 적용됩니다.

다음 설정을 사용하여 로컬 쓰기 전달 요청을 제어합니다.
+ `apg_write_forward.consistency_mode` - 읽기 전용 복제본에서 읽기 일관성 정도를 제어하는 세션 수준 파라미터입니다. 유효한 값은 `SESSION`, `EVENTUAL`, `GLOBAL` 또는 `OFF`입니다. 기본적으로 이 값은 `SESSION`로 설정됩니다. 값을 `OFF`로 설정하면 세션에서 로컬 쓰기 전달이 비활성화됩니다. 일관성 수준에 대한 자세한 내용은 [Aurora PostgreSQL에서 로컬 쓰기 전달의 일관성 및 격리](aurora-postgresql-write-forwarding-configuring.md#aurora-postgresql-write-forwarding-isolation) 단원을 참조하세요. 이 파라미터는 로컬 쓰기 전달이 활성화되어 있는 리더 인스턴스에만 적용됩니다.
+ `apg_write_forward.connect_timeout` - 라이터 DB 인스턴스에 연결할 때 읽기 전용 복제본이 연결을 끊기 전에 대기하는 최대 시간(초)입니다. 값이 `0`이면 무한정 대기할 수 있다는 뜻입니다.
+ `apg_write_forward.idle_in_transaction_session_timeout` - 라이터 DB 인스턴스가 연결을 닫기 전에 트랜잭션이 열려 있는 읽기 전용 복제본에서 전달된 연결의 활동을 기다리는 시간(밀리초)입니다. 세션이 이 기간을 넘어 트랜잭션에서 유휴 상태로 유지되면 Aurora에서 세션이 종료됩니다. `0` 값은 제한 시간을 비활성화합니다.
+ `apg_write_forward.idle_session_timeout` - 라이터 DB 인스턴스가 연결을 닫기 전에 읽기 전용 복제본에서 전달된 연결의 활동을 기다리는 시간(밀리초)입니다. 세션이 이 기간을 넘어 유휴 상태로 유지되면 Aurora에서 세션이 종료됩니다. `0` 값은 제한 시간을 비활성화합니다.

## rdswriteforwarduser
<a name="aurora-postgresql-write-forwarding-rdswriteforwarduser"></a>

 `rdswriteforwarduser`는 읽기 전용 복제본과 라이터 DB 인스턴스 간의 연결을 설정하는 데 사용할 사용자입니다.

**참고**  
`rdswriteforwarduser`는 PUBLIC 역할을 통해 CONNECT 권한을 고객 데이터베이스에 상속합니다. PUBLIC 역할에 대한 권한이 취소된 경우 쓰기를 전달해야 하는 데이터베이스에 대한 CONNECT 권한을 부여해야 합니다.

# Aurora PostgreSQL에서 로컬 쓰기 전달 모니터링
<a name="aurora-postgresql-write-forwarding-monitoring"></a>

다음 섹션을 사용하면 관련 CloudWatch 지표 및 대기 이벤트를 포함하여 Aurora PostgreSQL 클러스터의 로컬 쓰기 전달을 모니터링하여 성능을 추적하고 잠재적 문제를 식별할 수 있습니다.

## 쓰기 전달을 위한 Amazon CloudWatch 지표 및 Aurora PostgreSQL 상태 변수
<a name="aurora-postgresql-write-forwarding-cloudwatch"></a>

 다음 Amazon CloudWatch 지표는 하나 이상의 읽기 전용 복제본에서 쓰기 전달을 사용하는 라이터 DB 인스턴스에 적용됩니다.


| CloudWatch 지표 | 단위 및 설명 | 
| --- | --- | 
| `AuroraLocalForwardingWriterDMLThroughput`  | 개수(초당). 이 라이터 DB 인스턴스에서 초당 처리되는 전달된 DML 문 수입니다. | 
|  `AuroraLocalForwardingWriterOpenSessions`  | 개수. 전달된 쿼리를 처리하는 이 라이터 DB 인스턴스의 열린 세션 수입니다. | 
|  `AuroraLocalForwardingWriterTotalSessions`  | 개수. 라이터 DB 인스턴스에 있는 전달된 세션의 총 개수입니다. | 

 다음 CloudWatch 지표는 각 읽기 전용 복제본에 적용됩니다. 이러한 지표는 로컬 쓰기 전달이 활성화된 DB 클러스터의 각 리더 DB 인스턴스에서 측정됩니다.


| CloudWatch 지표 | 단위 및 설명 | 
| --- | --- | 
|  `AuroraForwardingReplicaCommitThroughput` |  개수(초당). 이 복제본이 초당 전달하는 세션의 커밋 수입니다. | 
|  `AuroraForwardingReplicaDMLLatency` |  밀리초. 복제본에 있는 전달된 DML의 평균 응답 시간(밀리초)입니다. | 
|  `AuroraForwardingReplicaDMLThroughput` |  개수(초당). 이 복제본에서 초당 처리되는 전달된 DML 문 수입니다. | 
|  `AuroraForwardingReplicaErrorSessionsLimit` |  개수. 최대 연결 또는 최대 쓰기 전달 연결 한도에 도달하여 라이터 DB 인스턴스에서 거부한 세션 수입니다. | 
|  `AuroraForwardingReplicaOpenSessions`  |  개수. 복제본 인스턴스에서 로컬 쓰기 전달을 사용하는 세션 수입니다. | 
|  `AuroraForwardingReplicaReadWaitLatency` | 밀리초. 복제본이 라이터 DB 인스턴스의 LSN과 일치할 때까지 기다리는 평균 대기 시간(밀리초)입니다. 리더 DB 인스턴스가 대기하는 정도는 apg\$1write\$1forward.consistency\$1mode 설정에 따라 다릅니다. 이 설정에 대한 자세한 내용은 [Aurora PostgreSQL에서 쓰기 전달에 대한 구성 파라미터](aurora-global-database-write-forwarding-apg.md#aurora-global-database-write-forwarding-params-apg) 섹션을 참조하세요. | 

## Aurora PostgreSQL에서 로컬 쓰기 전달을 위한 대기 이벤트
<a name="aurora-postgresql-write-forwarding-wait-events-apg"></a>

Amazon Aurora는 Aurora PostgreSQL에서 쓰기 전달을 사용할 때 다음과 같은 대기 이벤트를 생성합니다.

**Topics**
+ [IPC:AuroraWriteForwardConnect](#apg-waits.ipcaurorawriteforwardconnect)
+ [IPC:AuroraWriteForwardConsistencyPoint](#apg-waits.ipcaurorawriteforwardconsistencypoint)
+ [IPC:AuroraWriteForwardExecute](#apg-waits.ipc:aurorawriteforwardexecute)
+ [IPC:AuroraWriteForwardGetGlobalConsistencyPoint](#apg-waits.ipc:aurorawriteforwardgetglobalconsistencypoint)
+ [IPC:AuroraWriteForwardXactAbort](#apg-waits.ipc:aurorawriteforwardxactabort)
+ [IPC:AuroraWriteForwardXactCommit](#apg-waits.ipc:aurorawriteforwardxactcommit)
+ [IPC:AuroraWriteForwardXactStart](#apg-waits.ipc:aurorawriteforwardxactstart)

### IPC:AuroraWriteForwardConnect
<a name="apg-waits.ipcaurorawriteforwardconnect"></a>

이 `IPC:AuroraWriteForwardConnect` 이벤트는 읽기 전용 복제본의 백엔드 프로세스가 라이터 DB 인스턴스에 대한 연결이 열릴 때까지 기다리고 있을 때 발생합니다.

**대기 증가의 가능한 원인**

이 이벤트는 읽기 전용 복제본에서 라이터 노드로의 연결 시도 횟수가 늘어날수록 증가합니다.

**작업**

읽기 전용 복제본에서 라이터 노드로의 동시 연결 수를 줄이세요.

### IPC:AuroraWriteForwardConsistencyPoint
<a name="apg-waits.ipcaurorawriteforwardconsistencypoint"></a>

`IPC:AuroraWriteForwardConsistencyPoint` 이벤트는 전달된 쓰기 작업의 결과가 현재 리전으로 복제될 때까지 읽기 전용 복제본에서 노드에서 대기하는 시간을 나타냅니다. 이 이벤트는 세션 수준 `apg_write_forward.consistency_mode` 파라미터가 다음 중 하나로 설정된 경우에만 생성됩니다.
+ `SESSION` - 읽기 전용 복제본에 대한 쿼리는 해당 세션에서 수행한 모든 변경의 결과를 대기합니다.
+ `GLOBAL` - 읽기 전용 복제본에 대한 쿼리는 해당 세션의 변경 사항과 라이터 DB 인스턴스 및 읽기 전용 복제본 모두에서 커밋된 모든 변경 사항의 결과를 기다립니다.

`apg_write_forward.consistency_mode` 파라미터 설정에 대한 자세한 내용은 [Aurora PostgreSQL에서 쓰기 전달에 대한 구성 파라미터](aurora-global-database-write-forwarding-apg.md#aurora-global-database-write-forwarding-params-apg) 섹션을 참조하세요.

**대기 증가의 가능한 원인**

대기 시간이 길어지는 일반적인 원인은 다음과 같습니다.
+ Amazon CloudWatch `ReplicaLag` 지표로 측정한 바와 같이 복제 지연이 증가했습니다. 이 지표에 대한 자세한 정보는 [Aurora PostgreSQL 복제 모니터링](AuroraPostgreSQL.Replication.md#AuroraPostgreSQL.Replication.Monitoring) 섹션을 참조하세요.
+ 라이터 DB 인스턴스 또는 읽기 전용 복제본에 대한 로드가 증가했습니다.

**작업**

애플리케이션 요구 사항에 따라 일관성 모드를 변경합니다.

### IPC:AuroraWriteForwardExecute
<a name="apg-waits.ipc:aurorawriteforwardexecute"></a>

`IPC:AuroraWriteForwardExecute` 이벤트는 읽기 전용 복제본의 백엔드 프로세스가 전달된 쿼리가 완료되고 DB 클러스터의 라이터 노드로부터 결과를 얻기를 기다리고 있을 때 발생합니다.

**대기 증가의 가능한 원인**

대기가 늘어나는 일반적인 원인은 다음과 같습니다.
+ 라이터 노드에서 많은 수의 행을 가져옵니다.
+ 라이터 노드와 읽기 전용 복제본 사이의 네트워크 지연 시간이 증가하면 읽기 전용 복제본이 라이터 노드로부터 데이터를 수신하는 데 걸리는 시간이 늘어납니다.
+ 읽기 전용 복제본의 로드가 증가하면 읽기 전용 복제본에서 라이터 노드로 쿼리 요청을 전송하는 것이 지연될 수 있습니다.
+ 라이터 노드의 로드가 증가하면 라이터 노드에서 읽기 전용 복제본으로의 데이터 전송이 지연될 수 있습니다.

**작업**

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.
+ 필요한 데이터만 검색하도록 쿼리를 최적화합니다.
+ 데이터 조작 언어(DML) 작업을 최적화하여 필요한 데이터만 수정합니다.
+ 읽기 전용 복제본 또는 라이터 노드가 CPU 또는 네트워크 대역폭의 제약을 받는 경우 CPU 용량이 더 크거나 네트워크 대역폭이 더 큰 인스턴스 유형으로 변경하는 것이 좋습니다.

### IPC:AuroraWriteForwardGetGlobalConsistencyPoint
<a name="apg-waits.ipc:aurorawriteforwardgetglobalconsistencypoint"></a>

`IPC:AuroraWriteForwardGetGlobalConsistencyPoint` 이벤트는 글로벌 일관성 모드를 사용하는 읽기 전용 복제본의 백엔드 프로세스가 쿼리를 실행하기 전에 라이터 노드로부터 글로벌 일관성 보장 지점을 가져오기를 기다리고 있을 때 발생합니다.

**대기 증가의 가능한 원인**

대기가 늘어나는 일반적인 원인은 다음과 같습니다.
+ 읽기 전용 복제본과 라이터 노드 사이의 네트워크 지연 시간이 증가하면 읽기 전용 복제본이 라이터 노드로부터 데이터를 수신하는 데 걸리는 시간이 늘어납니다.
+ 읽기 전용 복제본의 로드가 증가하면 읽기 전용 복제본에서 라이터 노드로 쿼리 요청을 전송하는 것이 지연될 수 있습니다.
+ 라이터 노드의 로드가 증가하면 라이터 노드에서 읽기 전용 복제본으로의 데이터 전송이 지연될 수 있습니다.

**작업**

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.
+ 애플리케이션 요구 사항에 따라 일관성 모드를 변경합니다.
+ 읽기 전용 복제본 또는 라이터 노드가 CPU 또는 네트워크 대역폭의 제약을 받는 경우 CPU 용량이 더 크거나 네트워크 대역폭이 더 큰 인스턴스 유형으로 변경하는 것이 좋습니다.

### IPC:AuroraWriteForwardXactAbort
<a name="apg-waits.ipc:aurorawriteforwardxactabort"></a>

`IPC:AuroraWriteForwardXactAbort` 이벤트는 읽기 전용 복제본의 백엔드 프로세스가 원격 정리 쿼리 결과를 기다리고 있을 때 발생합니다. 쓰기 전달 트랜잭션이 중단된 후 프로세스를 적절한 상태로 되돌리기 위해 정리 쿼리가 실행됩니다. Amazon Aurora는 오류가 발견되었거나 사용자가 명시적인 `ABORT` 명령을 실행했거나 실행 중인 쿼리를 취소했을 때 이러한 작업을 수행합니다.

**대기 증가의 가능한 원인**

대기가 늘어나는 일반적인 원인은 다음과 같습니다.
+ 읽기 전용 복제본과 라이터 노드 사이의 네트워크 지연 시간이 증가하면 읽기 전용 복제본이 라이터 노드로부터 데이터를 수신하는 데 걸리는 시간이 늘어납니다.
+ 읽기 전용 복제본의 로드가 증가하면 읽기 전용 복제본에서 라이터 노드로 정리 쿼리 요청을 전송하는 것이 지연될 수 있습니다.
+ 라이터 노드의 로드가 증가하면 라이터 노드에서 읽기 전용 복제본으로의 데이터 전송이 지연될 수 있습니다.

**작업**

대기 이벤트의 원인에 따라 다른 작업을 권장합니다.
+ 트랜잭션이 중단된 원인을 조사하세요.
+ 읽기 전용 복제본 또는 라이터 DB 인스턴스가 CPU 또는 네트워크 대역폭의 제약을 받는 경우 CPU 용량이 더 크거나 네트워크 대역폭이 더 큰 인스턴스 유형으로 변경하는 것이 좋습니다.

### IPC:AuroraWriteForwardXactCommit
<a name="apg-waits.ipc:aurorawriteforwardxactcommit"></a>

`IPC:AuroraWriteForwardXactCommit` 이벤트는 읽기 전용 복제본의 백엔드 프로세스가 전달된 커밋 트랜잭션 명령의 결과를 기다리고 있을 때 발생합니다.

**대기 증가의 가능한 원인**

대기가 늘어나는 일반적인 원인은 다음과 같습니다.
+ 읽기 전용 복제본과 라이터 노드 사이의 네트워크 지연 시간이 증가하면 읽기 전용 복제본이 라이터 노드로부터 데이터를 수신하는 데 걸리는 시간이 늘어납니다.
+ 읽기 전용 복제본의 로드가 증가하면 읽기 전용 복제본에서 라이터 노드로 쿼리 요청을 전송하는 것이 지연될 수 있습니다.
+ 라이터 노드의 로드가 증가하면 라이터 노드에서 읽기 전용 복제본으로의 데이터 전송이 지연될 수 있습니다.

**작업**

읽기 전용 복제본 또는 라이터 노드가 CPU 또는 네트워크 대역폭의 제약을 받는 경우 CPU 용량이 더 크거나 네트워크 대역폭이 더 큰 인스턴스 유형으로 변경하는 것이 좋습니다.

### IPC:AuroraWriteForwardXactStart
<a name="apg-waits.ipc:aurorawriteforwardxactstart"></a>

`IPC:AuroraWriteForwardXactStart` 이벤트는 읽기 전용 복제본의 백엔드 프로세스가 전달된 시작 트랜잭션 명령의 결과를 기다리고 있을 때 발생합니다.

**대기 증가의 가능한 원인**

대기가 늘어나는 일반적인 원인은 다음과 같습니다.
+ 읽기 전용 복제본과 라이터 노드 사이의 네트워크 지연 시간이 증가하면 읽기 전용 복제본이 라이터 노드로부터 데이터를 수신하는 데 걸리는 시간이 늘어납니다.
+ 읽기 전용 복제본의 로드가 증가하면 읽기 전용 복제본에서 라이터 노드로 쿼리 요청을 전송하는 것이 지연될 수 있습니다.
+ 라이터 노드의 로드가 증가하면 라이터 노드에서 읽기 전용 복제본으로의 데이터 전송이 지연될 수 있습니다.

**작업**

읽기 전용 복제본 또는 라이터 노드가 CPU 또는 네트워크 대역폭의 제약을 받는 경우 CPU 용량이 더 크거나 네트워크 대역폭이 더 큰 인스턴스 유형으로 변경하는 것이 좋습니다.

# Aurora PostgreSQL을 Amazon Bedrock의 지식 기반으로 사용
<a name="AuroraPostgreSQL.VectorDB"></a>

Aurora PostgreSQL DB 클러스터를 Amazon Bedrock용 지식 기반으로 사용할 수 있습니다. 자세한 내용은 [Amazon Aurora에서 벡터 저장소 생성](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup.html)을 참조하세요. 지식 기반은 Amazon S3 버킷에 저장된 비정형 텍스트 데이터를 자동으로 가져와 텍스트 청크 및 벡터로 변환하고 PostgreSQL 데이터베이스에 저장합니다. 생성형 AI 애플리케이션을 사용하면 Amazon Bedrock용 에이전트를 사용하여 지식 기반에 저장된 데이터를 쿼리하고 이러한 쿼리의 결과를 사용하여 기본 모델에서 제공하는 답변을 보강할 수 있습니다. 이 워크플로를 검색 증강 생성(RAG)이라고 합니다. RAG에 대한 자세한 내용은 [검색 증강 생성(RAG)](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-customize-rag.html)을 참조하세요.

Aurora PostgreSQL을 사용하여 RAG를 통한 생성형 AI 애플리케이션을 구축하는 방법에 대한 자세한 내용은 이 [블로그 게시물](https://aws.amazon.com/blogs/database/build-generative-ai-applications-with-amazon-aurora-and-knowledge-bases-for-amazon-bedrock/)을 참조하세요.

**Topics**
+ [사전 조건](#AuroraPostgreSQL.VectorDB.Prereq)
+ [Aurora PostgreSQL을 Amazon Bedrock의 지식 기반으로 사용하도록 준비](#AuroraPostgreSQL.VectorDB.PreparingKB)
+ [Bedrock 콘솔에서 지식 기반 만들기](#AuroraPostgreSQL.VectorDB.CreatingKB)
+ [Amazon Bedrock용 Aurora PostgreSQL 지식 기반 빠른 생성](AuroraPostgreSQL.quickcreatekb.md)

## 사전 조건
<a name="AuroraPostgreSQL.VectorDB.Prereq"></a>

Aurora PostgreSQL 클러스터를 Amazon Bedrock용 지식 기반으로 사용하려면 다음 사전 조건을 숙지하세요. 개괄적인 수준에서 Bedrock과 함께 사용할 수 있도록 다음 서비스를 구성해야 합니다.
+ Amazon Aurora PostgreSQL DB 클러스터는 다음 버전 중 하나로 생성됩니다.
  + 16.1 이상의 모든 버전
  + 15.4 이상 버전
  + 14.9 이상 버전
  + 13.12 이상 버전
  + 12.16 이상 버전
**참고**  
대상 데이터베이스에서 `pgvector` 확장을 활성화하고 버전 0.5.0 이상을 사용해야 합니다. 자세한 내용은 [HNSW 인덱싱이 포함된 pgvector v0.5.0](https://aws.amazon.com/about-aws/whats-new/2023/10/amazon-aurora-postgresql-pgvector-v0-5-0-hnsw-indexing/)을 참조하세요.
+ RDS Data API
+ AWS Secrets Manager에서 사용자가 관리합니다. 자세한 내용은 [Amazon Aurora 및 AWS Secrets Manager를 통한 암호 관리](rds-secrets-manager.md) 섹션을 참조하세요.

## Aurora PostgreSQL을 Amazon Bedrock의 지식 기반으로 사용하도록 준비
<a name="AuroraPostgreSQL.VectorDB.PreparingKB"></a>

아래 섹션에 설명된 단계에 따라 Amazon Bedrock용 지식 기반으로 사용할 Aurora PostgreSQL을 준비하세요.

### Aurora PostgreSQL 생성 및 구성
<a name="AuroraPostgreSQL.VectorDB.CreatingDBC"></a>

Aurora PostgreSQL DB 클러스터를 사용하여 Amazon Bedrock을 구성하려면 먼저 Aurora PostgreSQL DB 클러스터를 생성하고 Amazon Bedrock으로 구성하는 데 필요한 중요 필드를 기록해 두어야 합니다. Aurora PostgreSQL DB 클러스터 생성에 대한 자세한 정보는 [Aurora PostgreSQL DB 클러스터 생성 및 연결](CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.md) 섹션을 참조하세요.
+ Aurora PostgreSQL DB 클러스터를 생성하는 동안 Data API를 활성화합니다. 지원되는 버전에 대한 자세한 내용은 [Amazon RDS Data API 사용](data-api.md) 섹션을 참조하세요.
+ Aurora PostgreSQL DB 클러스터의 Amazon 리소스 이름(ARN)을 기록해 둡니다. Amazon Bedrock과 함께 사용할 DB 클러스터를 구성하는 데 필요합니다. 자세한 내용은 [Amazon 리소스 이름(ARN)](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.ARN.html)을 참조하세요.

### 데이터베이스에 연결 및 pgvector 설치
<a name="AuroraPostgreSQL.VectorDB.ConnectingDB"></a>

모든 연결 유틸리티를 사용하여 Aurora PostgreSQL에 연결할 수 있습니다. 이러한 유틸리티에 대한 자세한 내용은 [Amazon Aurora PostgreSQL DB 클러스터에 연결](Aurora.Connecting.md#Aurora.Connecting.AuroraPostgreSQL) 섹션을 참조하세요. 또는 RDS 콘솔 쿼리 편집기를 사용하여 쿼리를 실행할 수 있습니다. 쿼리 편집기를 사용하려면 RDS Data API가 활성화된 Aurora DB 클러스터가 필요합니다.

1. 마스터 사용자로 데이터베이스에 로그인하고 pgvector를 설정합니다. 확장이 설치되지 않은 경우 다음 명령을 사용하세요.

   ```
   CREATE EXTENSION IF NOT EXISTS vector;
   ```

   HNSW 인덱싱을 지원하는 `pgvector` 0.5.0 이상 버전을 사용하세요. 자세한 내용은 [HNSW 인덱싱이 포함된 pgvector v0.5.0](https://aws.amazon.com/about-aws/whats-new/2023/10/amazon-aurora-postgresql-pgvector-v0-5-0-hnsw-indexing/)을 참조하세요.

1. 다음 명령을 사용하여 현재 설치된 `pg_vector` 버전을 확인합니다.

   ```
   SELECT extversion FROM pg_extension WHERE extname='vector';
   ```

### 데이터베이스 객체 및 권한 설정
<a name="AuroraPostgreSQL.VectorDB.SetupDBObjects"></a>

1. Bedrock이 데이터를 쿼리하는 데 사용할 수 있는 특정 스키마를 만듭니다. 다음 명령을 실행해 스키마를 생성합니다.

   ```
   CREATE SCHEMA bedrock_integration;
   ```

1. Bedrock이 데이터를 쿼리하는 데 사용할 수 있는 새 역할을 생성합니다. 다음 명령을 실행해 새 역할을 생성합니다.

   ```
   CREATE ROLE bedrock_user WITH PASSWORD 'password' LOGIN;
   ```
**참고**  
추후 Secrets Manager 암호를 생성할 때 필요하므로, 이 암호를 기록해 두세요.

   `psql` 클라이언트를 사용하는 경우 다음 명령을 사용하여 새 역할을 생성합니다.

   ```
   CREATE ROLE bedrock_user LOGIN;
   \PASSWORD password;
   ```

1. `bedrock_integration` 스키마를 관리할 `bedrock_user` 권한을 부여하세요. 이렇게 하면 스키마 내에 표나 인덱스를 생성할 수 있습니다.

   ```
   GRANT ALL ON SCHEMA bedrock_integration to bedrock_user;
   ```

1. `bedrock_user`로 로그인하고 에서 `bedrock_integration schema`에 테이블을 생성합니다.

   ```
   CREATE TABLE bedrock_integration.bedrock_kb (id uuid PRIMARY KEY, embedding vector(n), chunks text, metadata json, custom_metadata jsonb);
   ```

   이 명령은 Titan 임베딩을 사용하여 `bedrock_integration` 스키마에 `bedrock_kb` 테이블을 만듭니다.

   `vector(n)` 데이터 유형의 n을 사용 중인 임베딩 모델의 적절한 차원으로 바꿉니다. 아래 권장 사항을 사용하여 차원을 선택합니다.
   + Titan v2 모델의 경우 `vector(1024)` 또는 `vector(512)` 또는 `vector (256)`를 사용합니다. 자세한 내용은 [Amazon Titan Embeddings Text](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-text.html)를 참조하세요.
   + Titan v1.2 모델의 경우 `vector(1536)`를 사용합니다. 자세한 내용은 [Amazon Titan Multimodal Embeddings G1](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-titan-embed-mm.html)을 참조하세요.
   + Cohere Embed 모델의 경우 `vector(1024)`를 사용합니다. 자세한 내용은 [Cohere Embed models](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters-embed.html)을 참조하세요.
   + Cohere Embed Multilingual v3의 경우 `vector(1024)`를 사용합니다.

   처음 4개 열은 필수입니다. 메타데이터 처리를 위해 Bedrock은 메타데이터 파일의 데이터를 `custom_metadata` 열에 씁니다. 메타데이터 및 필터링을 사용하려는 경우 이 열을 만드는 것이 좋습니다. `custom_metadata` 열을 만들지 않는 경우 수집을 시작하기 전에 테이블의 각 메타데이터 속성에 대해 개별 열을 추가합니다. 자세한 내용은 [Configure and customize queries and response generation](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-test-config.html)을 참조하세요.

1. 다음 단계에 따라 Bedrock이 데이터를 쿼리하는 데 사용하는 필수 인덱스를 만듭니다.
   + Bedrock이 데이터를 쿼리하는 데 사용할 수 있는 코사인 연산자를 사용하여 인덱스를 만듭니다.

     ```
     CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops);
     ```
   + 병렬 인덱스 구축을 사용하는 `pgvector` 0.6.0 이상 버전의 경우 `ef_construction` 값을 256으로 설정하는 것이 좋습니다.

     ```
     CREATE INDEX ON bedrock_integration.bedrock_kb USING hnsw (embedding vector_cosine_ops) WITH (ef_construction=256);
     ```
   + Bedrock이 텍스트 데이터를 쿼리하는 데 사용할 수 있는 인덱스를 만듭니다.

     ```
     CREATE INDEX ON bedrock_integration.bedrock_kb USING gin (to_tsvector('simple', chunks));
     ```
   + 사용자 지정 메타데이터에 대한 열을 만든 경우 Bedrock이 메타데이터를 쿼리하는 데 사용할 수 있는 인덱스를 만듭니다.

     ```
     CREATE INDEX ON bedrock_integration.bedrock_kb USING gin (custom_metadata);
     ```

### Secrets Manager에서 보안 암호 생성
<a name="AuroraPostgreSQL.VectorDB.SecretManager"></a>

Secrets Manager를 사용하면 Aurora 자격 증명을 저장하여 애플리케이션으로 안전하게 전송할 수 있습니다. Aurora PostgreSQL DB 클러스터를 생성할 때 AWS Secrets Manager 옵션을 선택하지 않았다면, 지금 암호를 생성할 수 있습니다. AWS Secrets Manager 데이터베이스 암호 생성에 대한 자세한 내용은 [AWS Secrets Manager 데이터베이스 암호](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_database_secret.html)를 참조하세요.

## Bedrock 콘솔에서 지식 기반 만들기
<a name="AuroraPostgreSQL.VectorDB.CreatingKB"></a>

지식 기반의 벡터 저장소로 사용할 Aurora PostgreSQL을 준비하는 동안 Amazon Bedrock 콘솔에 제공해야 하는 다음과 같은 세부 정보를 수집해야 합니다.
+ **Amazon Aurora DB 클러스터 ARN** – DB 클러스터의 ARN입니다.
+ **암호 ARN** - DB 클러스터용 AWS Secrets Manager 키의 ARN입니다.
+ **데이터베이스 이름** - 데이터베이스의 이름입니다. 예를 들어, 기본 데이터베이스 *postgres*를 사용할 수 있습니다.
+ **표 이름** – 다음과 유사한 명령을 사용하여 표를 생성할 때 스키마에 적합한 이름을 제공하는 것이 좋습니다.

  ```
  CREATE TABLE bedrock_integration.bedrock_kb;
  ```

  이 명령은 `bedrock_integration` 스키마에 `bedrock_kb` 표를 만듭니다.
+ 표를 생성할 때는 지정된 열과 데이터 유형으로 구성해야 합니다. 표에 나열된 이름 대신 원하는 열 이름을 사용할 수 있습니다. 지식 기반을 설정하는 동안 참조용으로 선택한 이름을 기록해 두세요.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.VectorDB.html)

이러한 세부 정보를 사용하여 이제 Bedrock 콘솔에서 지식 기반을 만들 수 있습니다. 벡터 인덱스 설정 및 지식 기반 정보 만들기에 대한 자세한 내용은 [Create a vector store in Amazon Aurora](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-setup-rds.html) 및 [Create a vector store in Amazon Aurora](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-create.html)를 참조하세요.

Aurora를 지식 기반으로 추가한 후에는 이제 검색 및 쿼리를 위해 데이터 소스를 수집할 수 있습니다. 자세한 내용은 [Ingest your data sources into the Knowledge Base](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ingest.html)를 참조하세요.

# Amazon Bedrock용 Aurora PostgreSQL 지식 기반 빠른 생성
<a name="AuroraPostgreSQL.quickcreatekb"></a>

 Amazon Bedrock의 검색 증강 생성(RAG) 워크플로는 Aurora PostgreSQL 데이터베이스에 저장된 벡터 데이터를 사용하여 콘텐츠 검색을 지원합니다. 이전에는 Aurora PostgreSQL을 Bedrock 지식 기반용 벡터 데이터 저장소로 설정하는 것이 다단계 프로세스였기 때문에 다양한 사용자 인터페이스에서 수많은 수동 작업이 필요했습니다. 이로 인해 데이터 과학자와 개발자가 Bedrock 프로젝트에 Aurora를 활용하는 것이 어려웠습니다.

 사용자 경험을 개선하기 위해 AWS는 설정 프로세스를 간소화하는 새로운 CloudFormation 기반 빠른 생성 옵션을 만들었습니다. 이제 Aurora 빠른 생성을 통해 클릭 한 번으로 사전 구성된 Aurora PostgreSQL DB 클러스터를 Amazon Bedrock 지식 기반용 벡터 저장소로 프로비저닝할 수 있습니다.

**Topics**
+ [지원되는 리전 및 Aurora PostgreSQL 버전](#AuroraPostgreSQL.quickcreatekb.avail)
+ [빠른 생성 프로세스 이해](#AuroraPostgreSQL.quickcreatekb.using)
+ [Aurora 빠른 생성 사용의 이점](#AuroraPostgreSQL.quickcreatekb.adv)
+ [Aurora 빠른 생성 프로세스의 제한 사항](#AuroraPostgreSQL.quickcreatekb.limit)

## 지원되는 리전 및 Aurora PostgreSQL 버전
<a name="AuroraPostgreSQL.quickcreatekb.avail"></a>

Aurora 빠른 생성 옵션은 Amazon Bedrock 지식 기반을 지원하는 모든 AWS 리전에서 사용할 수 있습니다. 기본적으로 버전 15.7의 Aurora PostgreSQL DB 클러스터를 만듭니다. 지원되는 리전에 대한 자세한 내용은 [Supported models and regions for Amazon Bedrock Knowledge Bases](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-supported.html)를 참조하세요.

## 빠른 생성 프로세스 이해
<a name="AuroraPostgreSQL.quickcreatekb.using"></a>

빠른 생성 프로세스는 Amazon Aurora PostgreSQL 데이터베이스를 Bedrock 지식 기반의 벡터 데이터 저장소로 설정하기 위해 다음 리소스를 자동으로 프로비저닝합니다.

계정의 Aurora PostgreSQL DB 클러스터로, 기본 설정으로 구성되어 있습니다.
+ ACU(Aurora 용량 단위)는 0\$116으로 설정됩니다. 이를 통해 벡터 저장소를 사용하지 않을 때 0으로 스케일 다운하여 컴퓨팅 비용을 절감할 수 있습니다. ACU는 나중에 Amazon RDS 콘솔에서 조정할 수 있습니다.
+ Aurora에 저장된 Bedrock 벡터 임베딩에 대한 유사성 척도로 유클리드 거리를 사용하는 Hierarchical Navigable Small World(HNSW) 인덱스입니다.
+ DB 인스턴스는 서버리스 v2 인스턴스입니다.
+ 클러스터는 기본 VPC 및 서브넷과 연결되며 RDS 데이터 API가 활성화되어 있습니다.
+ 클러스터 관리자 자격 증명은 AWS Secrets Manager에서 관리합니다.

기본 설정 외에도 다음 설정이 구성되어 있습니다. 프로세스를 진행하면 워크플로를 설명하는 화면이 표시됩니다.
+ Aurora 클러스터에 필요한 데이터베이스 객체 시딩:
  + Bedrock 지식 기반에 필요한 pgvector 확장, 스키마, 역할 및 테이블을 만듭니다.
  + Bedrock이 클러스터와 상호 작용할 수 있도록 제한된 권한의 데이터베이스 사용자를 등록합니다.
+  리소스 프로비저닝 프로세스 전반에 걸쳐 진행률 배너가 표시되므로 다음 하위 이벤트의 상태를 추적할 수 있습니다.
  + Aurora 클러스터 만들기
  + Aurora 클러스터에 시딩
  + 지식 기반 만들기

  페이지를 벗어났다가 돌아와도 지식 기반이 완전히 만들어질 때까지 배너가 계속 표시됩니다.
+ 진행률 배너에서 `View details`을 클릭하여 각 단계의 상태를 확인할 수 있습니다. 지식 기반 만들기 중 이벤트에 대한 자세한 내용은 세부 정보 보기 화면에서 CloudFormation 링크를 선택합니다. 프로세스가 완료되면 새 Bedrock 지식 기반을 사용할 준비가 됩니다.
+ 모든 빠른 생성 리소스의 스택 ID는 태그를 참조해야 하는 경우 Bedrock 지식 기반의 태그에서 찾을 수 있습니다.

벡터 저장소로 사용되는 새로 프로비저닝된 Aurora 클러스터에 대한 구성이 포함된 Bedrock 지식 기반이 만들어집니다.

## Aurora 빠른 생성 사용의 이점
<a name="AuroraPostgreSQL.quickcreatekb.adv"></a>
+ CloudFormation 기반 빠른 생성 프로세스는 Aurora를 벡터 저장소로 사용하는 데 필요한 시간과 복잡성을 크게 줄입니다.
+ Aurora는 사용하지 않을 때 컴퓨팅 요금을 0으로 스케일 다운할 수 있는 기능과 함께 뛰어난 성능, 벡터 확장성 및 비용 이점을 제공합니다.
+ 빠른 생성 프로세스는 엔드투엔드 경험을 간소화하므로 Aurora를 사용하여 Bedrock 지식 기반을 쉽게 만들고 구성할 수 있습니다.
+ 고객은 CloudFormation 템플릿을 기반으로 구축하여 자체 구성으로 프로비저닝을 사용자 지정할 수 있습니다.

## Aurora 빠른 생성 프로세스의 제한 사항
<a name="AuroraPostgreSQL.quickcreatekb.limit"></a>
+ Aurora 빠른 생성 옵션을 사용하면 DB 클러스터가 기본 구성으로 프로비저닝됩니다. 그러나 이러한 기본 설정은 특정 요구 사항 또는 사용 목적에 맞지 않을 수 있습니다. 빠른 생성은 프로비저닝 프로세스 중에 구성을 수정하는 옵션을 제공하지 않습니다. 구성은 배포 경험을 간소화하도록 자동으로 설정됩니다. Aurora DB 클러스터 구성을 사용자 지정해야 하는 경우 Amazon RDS 콘솔에서 빠른 생성을 통한 초기 배포 후 사용자 지정할 수 있습니다.
+ 빠른 생성 흐름은 설정 프로세스를 단순화하지만 Aurora DB 클러스터를 만드는 데 걸리는 시간은 수동 배포와 마찬가지로 여전히 약 10분입니다. 이는 Aurora 인프라를 프로비저닝하는 데 필요한 시간 때문입니다.
+ 빠른 생성 옵션은 실험 및 빠른 설정을 위해 설계되었습니다. 빠른 생성을 통해 만들어진 리소스는 프로덕션 사용에 적합하지 않을 수 있으며 VPC의 프로덕션 환경으로 직접 마이그레이션할 수 없습니다.

# Amazon Aurora PostgreSQL를 다른 AWS 서비스와 통합
<a name="AuroraPostgreSQL.Integrating"></a>

Aurora PostgreSQL DB 클러스터를 확장하여 AWS 클라우드에서 추가 기능을 사용할 수 있도록 Amazon Aurora는 다른 AWS 서비스를 통합합니다. Aurora PostgreSQL DB 클러스터는 AWS 서비스를 사용하여 다음과 같은 작업을 수행할 수 있습니다.
+ Amazon RDS 성능 개선 도우미(Performance Insights)에서 Aurora PostgreSQL DB 인스턴스를 빠르게 수집하여 살펴보고 성능을 평가합니다. 성능 개선 도우미(Performance Insights)는 기존 Amazon RDS 모니터링 기능을 확장한 것으로서 데이터베이스 성능을 표시하여 성능 문제를 분석하는 데 효과적입니다. 성능 개선 도우미 대시보드가 데이터베이스 부하를 시각화하여 대기 시간, SQL 문, 호스트 또는 사용자를 기준으로 부하를 필터링합니다. 성능 개선 도우미(Performance Insights)에 대한 자세한 내용은 [성능 개선 도우미를 통한 Amazon Aurora 모니터링](USER_PerfInsights.md) 섹션을 참조하세요.
+ Aurora PostgreSQL DB 클러스터에서 로그 데이터를 Amazon CloudWatch Logs에 게시하도록 구성합니다. CloudWatch Logs는 로그 레코드에 내구성이 우수한 스토리지를 제공합니다. CloudWatch Logs를 통해 로그 데이터에 대한 실시간 분석을 수행할 수 있고, CloudWatch를 사용하여 경보를 만들고 지표를 볼 수 있습니다. 자세한 내용은 [Amazon CloudWatch Logs에 Aurora PostgreSQL 로그 게시](AuroraPostgreSQL.CloudWatch.md) 섹션을 참조하세요.
+ Amazon S3 버킷에서 Aurora PostgreSQL DB 클러스터로 데이터를 가져오거나 Aurora PostgreSQL DB 클러스터에서 Amazon S3 버킷으로 데이터를 내보냅니다. 자세한 내용은 [PostgreSQL DB 인스턴스용 Aurora PostgreSQL DB 클러스터](USER_PostgreSQL.S3Import.md) 및 [Aurora PostgreSQL DB 클러스터에서 Amazon S3로 데이터 내보내기](postgresql-s3-export.md) 섹션을 참조하세요.
+ SQL 언어를 사용해 기계 학습 기반 예측을 데이터베이스 애플리케이션에 추가할 수 있습니다. Aurora 기계 학습은 Aurora 데이터베이스와 AWS 기계 학습(ML) 서비스인 SageMaker AI와 Amazon Comprehend 간의 고도로 최적화된 통합을 활용합니다. 자세한 내용은 [Aurora PostgreSQL과 함께 Amazon Aurora 기계 학습 사용](postgresql-ml.md) 섹션을 참조하세요.
+ Aurora PostgreSQL DB 클러스터에서 AWS Lambda 함수를 호출합니다. 이렇게 하려면 Aurora PostgreSQL와 함께 제공된 `aws_lambda` PostgreSQL 확장을 사용합니다. 자세한 내용은 [Aurora PostgreSQL DB 클러스터 에서 AWS Lambda 함수 호출](PostgreSQL-Lambda.md) 섹션을 참조하세요.
+ Amazon Redshift와 Aurora PostgreSQL의 쿼리를 통합합니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 가이드*의 [PostgreSQL에 대한 연합 쿼리 사용 시작하기](https://docs.aws.amazon.com/redshift/latest/dg/getting-started-federated.html)를 참조하세요.

# PostgreSQL DB 인스턴스용 Aurora PostgreSQL DB 클러스터
<a name="USER_PostgreSQL.S3Import"></a>

Amazon Simple Storage Service를 사용하여 저장된 데이터를 RDS for PostgreSQL DB 인스턴스의 테이블로 가져올 수 있습니다. 이 작업을 수행하려면 먼저 Aurora PostgreSQL `aws_s3` 확장을 설치해야 합니다. 이 확장은 Amazon S3 버킷에서 데이터를 가져오는 데 사용하는 기능을 제공합니다. *버킷*은 객체 또는 파일에 대한 Amazon S3 컨테이너입니다. 데이터는 쉼표로 구분된 값 (CSV) 파일, 텍스트 파일 또는 압축 (gzip) 파일에 있을 수 있습니다. 다음에서는 확장 프로그램을 설치하는 방법과 Amazon S3에서 테이블로 데이터를 가져오는 방법을 알아볼 수 있습니다.

Amazon S3를 로 가져오려면 데이터베이스에서 PostgreSQL 버전 10.7 이상을 실행 중이어야 합니다. Aurora PostgreSQL.

Amazon S3 데이터가 저장되지 않은 경우 먼저 버킷을 생성하고 데이터를 저장해야 합니다. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 다음 주제를 참조하세요.
+ [버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html#creating-bucket)
+ [버킷에 객체 추가](https://docs.aws.amazon.com/AmazonS3/latest/userguide/GetStartedWithS3.html#uploading-an-object-bucket) 

Amazon S3에서 계정 간 가져오기가 지원됩니다. 자세한 내용은 **Amazon Simple Storage Service 사용 설명서의 [계정 간 권한 부여](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html)를 참조하세요.

S3에서 데이터를 가져오는 동안 고객 관리형 키를 암호화에 사용할 수 있습니다. 자세한 내용은 **Amazon Simple Storage Service 사용 설명서의 [AWS KMS에 저장된 KMS 키](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)를 참조하세요.

**참고**  
Amazon S3에서 데이터를 가져오는 작업은 Aurora Serverless v1에서 지원되지 않습니다. Aurora Serverless v2에서는 지원됩니다.

**Topics**
+ [aws\$1s3 확장 설치](USER_PostgreSQL.S3Import.InstallExtension.md)
+ [Amazon S3 데이터에서 데이터 가져오기 개요](USER_PostgreSQL.S3Import.Overview.md)
+ [Amazon S3 버킷에 대한 액세스 권한 설정](USER_PostgreSQL.S3Import.AccessPermission.md)
+ [Amazon S3에서 Aurora PostgreSQL DB 클러스터 로 데이터 가져오기](USER_PostgreSQL.S3Import.FileFormats.md)
+ [함수 참조](USER_PostgreSQL.S3Import.Reference.md)

# aws\$1s3 확장 설치
<a name="USER_PostgreSQL.S3Import.InstallExtension"></a>

Amazon S3를 Aurora PostgreSQL DB 클러스터 와 함께 사용하려면 먼저 `aws_s3` 확장을 설치해야 합니다. 이 확장은 Amazon S3에서 데이터를 가져오기 위한 함수도 제공합니다. 또한 Aurora PostgreSQL DB 클러스터의 인스턴스에서 Amazon S3 버킷으로 데이터를 내보내는 기능도 제공합니다. 자세한 내용은 [Aurora PostgreSQL DB 클러스터에서 Amazon S3로 데이터 내보내기](postgresql-s3-export.md) 단원을 참조하세요. `aws_s3` 확장은 필요할 때 자동으로 설치되는 `aws_commons` 확장의 일부 도우미 기능에 따라 다릅니다.

**`aws_s3` 확장을 설치하려면**

1. psql(또는 PGAdmin)을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 `rds_superuser` 권한을 가진 사용자로 연결합니다. 설정 과정에서 기본 이름을 계속 사용했다면 `postgres`로 연결합니다.

   ```
   psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
   ```

1. 다음 명령을 실행하여 확장을 생성합니다.

   ```
   postgres=> CREATE EXTENSION aws_s3 CASCADE;
   NOTICE: installing required extension "aws_commons"
   CREATE EXTENSION
   ```

1. 확장 프로그램이 설치되었는지 확인하려면 psql `\dx` 메타 명령을 사용하면 됩니다.

   ```
   postgres=> \dx
          List of installed extensions
       Name     | Version |   Schema   |                 Description
   -------------+---------+------------+---------------------------------------------
    aws_commons | 1.2     | public     | Common data types across AWS services
    aws_s3      | 1.1     | public     | AWS S3 extension for importing data from S3
    plpgsql     | 1.0     | pg_catalog | PL/pgSQL procedural language
   (3 rows)
   ```

이제 Amazon S3에서 데이터를 가져오고 Amazon S3로 데이터를 내보내는 기능을 사용할 수 있습니다.

# Amazon S3 데이터에서 데이터 가져오기 개요
<a name="USER_PostgreSQL.S3Import.Overview"></a>

**S3 데이터를 Aurora PostgreSQL 로 가져오려면**

먼저 함수에 제공해야 하는 세부 정보를 수집합니다. 여기에는 Aurora PostgreSQL DB 클러스터 인스턴스의 테이블 이름과 버킷 이름, 파일 경로, 파일 유형 및 Amazon S3 데이터가 저장된 AWS 리전이 포함됩니다. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [객체 보기](https://docs.aws.amazon.com/AmazonS3/latest/userguide/OpeningAnObject.html)를 참조하세요.
**참고**  
Amazon S3에서 멀티 파트 데이터 가져오기는 현재 지원되지 않습니다.

1. `aws_s3.table_import_from_s3` 함수가 데이터를 가져올 테이블의 이름을 가져옵니다. 예를 들어 다음 명령은 이후 단계에서 사용할 수 있는 테이블 `t1`을 만듭니다.

   ```
   postgres=> CREATE TABLE t1 
       (col1 varchar(80), 
       col2 varchar(80), 
       col3 varchar(80));
   ```

1. Amazon S3 버킷 및 가져올 데이터에 대한 세부 정보를 가져옵니다. 이 작업을 수행하려면 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 Amazon S3 콘손을 열고 **버킷**을 선택합니다. 목록에서 데이터가 포함된 버킷을 찾습니다. 버킷을 선택하고 객체 개요 페이지를 연 다음 속성을 선택합니다.

   버킷 이름, 경로, AWS 리전, 파일 형식을 적어 둡니다. IAM 역할을 통해 Amazon S3에 대한 액세스를 설정하는 Amazon 리소스 이름(ARN) 이 나중에 필요합니다. 자세한 내용은 [Amazon S3 버킷에 대한 액세스 권한 설정](USER_PostgreSQL.S3Import.AccessPermission.md) 단원을 참조하세요. 다음 그림에 예가 나와 있습니다.  
![\[Amazon S3 버킷에 있는 파일 객체의 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/aws_s3_import-export_s3_bucket-info.png)

1. AWS CLI 명령 `aws s3 cp`를 사용하여 Amazon S3 버킷의 데이터 경로를 확인할 수 있습니다. 정보가 정확하면 이 명령이 Amazon S3 파일의 복사본을 다운로드합니다.

   ```
   aws s3 cp s3://amzn-s3-demo-bucket/sample_file_path ./ 
   ```

1. Amazon S3 버킷의 파일에 대한 액세스를 허용하도록 Aurora PostgreSQL DB 클러스터에 대한 권한을 설정합니다. 이렇게 하려면 AWS Identity and Access Management(IAM) 역할 또는 보안 자격 증명을 사용합니다. 자세한 내용은 [Amazon S3 버킷에 대한 액세스 권한 설정](USER_PostgreSQL.S3Import.AccessPermission.md) 단원을 참조하세요.

1. 경로 및 수집된 기타 Amazon S3 객체 세부 정보(2단계 참조)를 `create_s3_uri` 함수에 제공하여 Amazon S3 URI 객체를 생성합니다. 이 함수에 대한 자세한 내용은 [aws\$1commons.create\$1s3\$1uri](USER_PostgreSQL.S3Import.Reference.md#USER_PostgreSQL.S3Import.create_s3_uri) 단원을 참조하세요. 다음은 psql 세션 중에 이 객체를 구성하는 예입니다.

   ```
   postgres=> SELECT aws_commons.create_s3_uri(
      'docs-lab-store-for-rpg',
      'versions_and_jdks_listing.csv',
      'us-west-1'
   ) AS s3_uri \gset
   ```

   다음 단계에서는 이 객체(`aws_commons._s3_uri_1`)를 `aws_s3.table_import_from_s3` 함수에 전달하여 데이터를 테이블로 가져옵니다.

1. `aws_s3.table_import_from_s3` 함수를 호출하여 Amazon S3에서 테이블로 데이터를 가져옵니다. 참조 정보는 [aws\$1s3.table\$1import\$1from\$1s3](USER_PostgreSQL.S3Import.Reference.md#aws_s3.table_import_from_s3) 단원을 참조하세요. 예시는 [Amazon S3에서 Aurora PostgreSQL DB 클러스터 로 데이터 가져오기](USER_PostgreSQL.S3Import.FileFormats.md) 섹션을 참조하세요.

# Amazon S3 버킷에 대한 액세스 권한 설정
<a name="USER_PostgreSQL.S3Import.AccessPermission"></a>

Amazon S3 파일에서 데이터를 가져오려면 Aurora PostgreSQL DB 클러스터에 파일이 저장된 Amazon S3 버킷에 액세스할 수 있는 권한을 부여합니다. 다음 항목에서 설명하는 두 방법 중 하나를 사용하여 Amazon S3 버킷에 대한 액세스 권한을 부여합니다.

**Topics**
+ [IAM 역할을 사용해 Amazon S3 버킷에 액세스](#USER_PostgreSQL.S3Import.ARNRole)
+ [보안 자격 증명을 사용해 Amazon S3 버킷에 액세스](#USER_PostgreSQL.S3Import.Credentials)
+ [Amazon S3 액세스 문제 해결](#USER_PostgreSQL.S3Import.troubleshooting)

## IAM 역할을 사용해 Amazon S3 버킷에 액세스
<a name="USER_PostgreSQL.S3Import.ARNRole"></a>

Amazon S3 파일에서 데이터를 로드하기 전에 Aurora PostgreSQL DB 클러스터DB 클러스터에 파일이 저장된 Amazon S3 버킷에 액세스할 수 있는 권한을 부여합니다. 그러면 추가 자격 증명 정보를 관리하거나 [aws\$1s3.table\$1import\$1from\$1s3](USER_PostgreSQL.S3Import.Reference.md#aws_s3.table_import_from_s3) 함수 호출에서 제공할 필요가 없습니다.

이렇게 하려면 Amazon S3 버킷에 대한 액세스 권한을 부여하는 IAM 정책을 생성합니다. IAM 역할을 생성하여 정책을 역할에 연결합니다. 그런 다음 IAM 역할을 DB 클러스터에 할당합니다.

**참고**  
IAM 역할을 Aurora Serverless v1 DB 클러스터와 연결할 수 없으므로 다음 단계에 적용되지 않습니다.

**IAM 역할을 통해 Amazon S3에 액세스할 수 있는 권한을 PostgreSQL DB 인스턴스용 Aurora PostgreSQL DB 클러스터 에 부여하려면**

1. IAM 정책을 생성합니다.

   이 정책은 Aurora PostgreSQL DB 클러스터 가 Amazon S3에 액세스할 수 있도록 허용하는 버킷 및 객체 권한을 부여합니다.

   정책에 다음과 같은 필수 작업을 포함하여 Amazon S3 버킷에서 Aurora PostgreSQL로의 파일 전송을 허용합니다.
   + `s3:GetObject` 
   + `s3:ListBucket` 

   정책에 다음 리소스를 포함하여 Amazon S3 버킷 및 그 안의 객체를 식별합니다. 다음은 Amazon S3에 액세스하기 위한 Amazon 리소스 이름(ARN) 형색입니다.
   + arn:aws:s3:::*amzn-s3-demo-bucket*
   + arn:aws:s3:::*amzn-s3-demo-bucket*/\$1

   Aurora PostgreSQL용 IAM 정책 생성에 대한 자세한 내용은 [IAM 데이터베이스 액세스를 위한 IAM 정책 생성 및 사용](UsingWithRDS.IAMDBAuth.IAMPolicy.md) 섹션을 참조하세요. *IAM 사용 설명서*의 [자습서: 첫 번째 고객 관리형 정책 생성 및 연결](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html)도 참조하세요.

   다음 AWS CLI 명령은 이 옵션으로 `rds-s3-import-policy`라는 IAM 정책을 만듭니다. *amzn-s3-demo-bucket*이라는 버킷에 대한 액세스 권한을 부여합니다.
**참고**  
이 명령에서 반환되는 정책 Amazon 리소스 이름(ARN)을 적어 둡니다. IAM 역할에 정책을 연결할 때 이후 단계에 ARN이 필요합니다.  
**Example**  

   대상 LinuxmacOS, 또는Unix:

   ```
   aws iam create-policy \
      --policy-name rds-s3-import-policy \
      --policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Sid": "s3import",
            "Action": [
              "s3:GetObject",
              "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket", 
              "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ] 
          }
        ] 
      }'
   ```

   Windows의 경우:

   ```
   aws iam create-policy ^
      --policy-name rds-s3-import-policy ^
      --policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Sid": "s3import",
            "Action": [
              "s3:GetObject",
              "s3:ListBucket"
            ], 
            "Effect": "Allow",
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket", 
              "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ] 
          }
        ] 
      }'
   ```

1. IAM 역할을 생성합니다.

   이렇게 하면, Aurora PostgreSQL에서 IAM 역할을 수임하여 사용자 대신 Amazon S3 버킷에 액세스할 수 있도록 역할을 생성할 수 있습니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM 사용자에게 권한을 위임하기 위한 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)을 참조하세요.

   서비스 권한을 특정 리소스로 제한하는 리소스 기반 정책의 `[aws:SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)` 및 `[aws:SourceAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)` 전역 조건 컨텍스트 키를 사용하는 것이 좋습니다. 이는 [혼동된 대리자 문제](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)를 방지하는 가장 효과적인 방법입니다.

   두 전역 조건 컨텍스트 키와 계정 ID를 포함한 `aws:SourceArn` 값을 모두 사용하는 경우, `aws:SourceAccount` 값 및 `aws:SourceArn` 값의 계정은 동일한 정책 문에서 사용될 경우 반드시 같은 계정 ID를 사용해야 합니다. 
   + 단일 리소스에 대한 교차 서비스 액세스를 원하는 경우 `aws:SourceArn`을 사용하세요.
   + 해당 계정의 모든 리소스가 교차 서비스 사용과 연결되도록 허용하려는 경우 `aws:SourceAccount`를 사용하세요.

   정책에서는 리소스의 전체 ARN이 포함된 `aws:SourceArn` 전역 조건 컨텍스트 키를 사용해야 합니다. 다음 예제에서는 AWS CLI 명령을 사용하여 `rds-s3-import-role`이라는 역할을 생성하는 방법을 보여줍니다.  
**Example**  

   대상 LinuxmacOS, 또는Unix:

   ```
   aws iam create-role \
      --role-name rds-s3-import-role \
      --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                   "aws:SourceAccount": "111122223333",
                   "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:cluster:clustername"
                   }
                }
          }
        ] 
      }'
   ```

   Windows의 경우:

   ```
   aws iam create-role ^
      --role-name rds-s3-import-role ^
      --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                   "aws:SourceAccount": "111122223333",
                   "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:cluster:clustername"
                   }
                }
          }
        ] 
      }'
   ```

1. 생성한 IAM 역할에 생성한 IAM 정책을 연결합니다.

   다음 AWS CLI 명령은 앞서 생성한 정책을 `rds-s3-import-role`이라는 역할에 연결합니다. `your-policy-arn`을 이전 단계에서 기록한 정책 ARN으로 바꿉니다.  
**Example**  

   대상 LinuxmacOS, 또는Unix:

   ```
   aws iam attach-role-policy \
      --policy-arn your-policy-arn \
      --role-name rds-s3-import-role
   ```

   Windows의 경우:

   ```
   aws iam attach-role-policy ^
      --policy-arn your-policy-arn ^
      --role-name rds-s3-import-role
   ```

1. IAM 역할을 DB 클러스터에 추가합니다.

   이렇게 하려면 다음에 설명한 대로 AWS Management Console 또는 AWS CLI를 사용합니다.

### 콘솔
<a name="collapsible-section-1"></a>

**콘솔을 사용하여 PostgreSQL DB 클러스터에 대해 IAM 역할을 추가하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 세부 정보를 표시하고자 하는 PostgreSQL DB 클러스터 이름을 선택합니다.

1. **연결성 및 보안(Connectivity & security)** 탭에 있는 **IAM 역할 관리(Manage IAM roles)** 섹션의 **이 클러스터에 IAM 역할 추가(Add IAM roles to this cluster/instance)**에서 추가할 역할을 선택합니다.

1. **기능**에서 **s3Import**를 선택합니다.

1. [**Add role**]을 선택합니다.

### AWS CLI
<a name="collapsible-section-2"></a>

**CLI를 사용하여 PostgreSQL DB 클러스터에 대해 IAM 역할을 추가하려면**
+ 다음 명령을 사용해 `my-db-cluster`라는 PostgreSQL DB 클러스터에 역할을 추가합니다. *`your-role-arn`*을 이전 단계에서 기록한 정책 ARN으로 교체합니다. `s3Import` 옵션의 값에 대해 `--feature-name`를 사용합니다.  
**Example**  

  대상 LinuxmacOS, 또는Unix:

  ```
  aws rds add-role-to-db-cluster \
     --db-cluster-identifier my-db-cluster \
     --feature-name s3Import \
     --role-arn your-role-arn   \
     --region your-region
  ```

  Windows의 경우:

  ```
  aws rds add-role-to-db-cluster ^
     --db-cluster-identifier my-db-cluster ^
     --feature-name s3Import ^
     --role-arn your-role-arn ^
     --region your-region
  ```

### RDS API
<a name="collapsible-section-3"></a>

Amazon RDS API를 사용하여 PostgreSQL DB 클러스터에 대한 IAM 역할을 추가하려면 [AddRoleToDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AddRoleToDBCluster.html) 작업을 직접적으로 호출합니다.

## 보안 자격 증명을 사용해 Amazon S3 버킷에 액세스
<a name="USER_PostgreSQL.S3Import.Credentials"></a>

원할 경우 IAM 역할을 사용하는 대신 보안 자격 증명을 사용해 Amazon S3 버킷에 대한 액세스 권한을 부여여할 수 있습니다. [aws\$1s3.table\$1import\$1from\$1s3](USER_PostgreSQL.S3Import.Reference.md#aws_s3.table_import_from_s3) 함수 호출에서 `credentials` 파라미터를 지정하면 됩니다.

`credentials` 파라미터는 `aws_commons._aws_credentials_1` 자격 증명을 포함하는 AWS 유형의 구조입니다. 다음과 같이 [aws\$1commons.create\$1aws\$1credentials](USER_PostgreSQL.S3Import.Reference.md#USER_PostgreSQL.S3Import.create_aws_credentials) 함수를 사용해 `aws_commons._aws_credentials_1` 구조에서 액세스 키와 비밀 키를 설정하십시오.

```
postgres=> SELECT aws_commons.create_aws_credentials(
   'sample_access_key', 'sample_secret_key', '')
AS creds \gset
```

다음과 같이 `aws_commons._aws_credentials_1 ` 구조를 생성한 후 [aws\$1s3.table\$1import\$1from\$1s3](USER_PostgreSQL.S3Import.Reference.md#aws_s3.table_import_from_s3) 함수를 `credentials` 파라미터와 함께 사용해 데이터를 가져옵니다.

```
postgres=> SELECT aws_s3.table_import_from_s3(
   't', '', '(format csv)',
   :'s3_uri', 
   :'creds'
);
```

또는 [aws\$1commons.create\$1aws\$1credentials](USER_PostgreSQL.S3Import.Reference.md#USER_PostgreSQL.S3Import.create_aws_credentials) 함수 호출 인라인을 `aws_s3.table_import_from_s3` 함수 호출에 포함할 수 있습니다.

```
postgres=> SELECT aws_s3.table_import_from_s3(
   't', '', '(format csv)',
   :'s3_uri', 
   aws_commons.create_aws_credentials('sample_access_key', 'sample_secret_key', '')
);
```

## Amazon S3 액세스 문제 해결
<a name="USER_PostgreSQL.S3Import.troubleshooting"></a>

Amazon S3 파일 데이터를 가져오려 할 때 연결 문제가 발생할 경우 다음 권장 사항을 참조하세요.
+ [Amazon Aurora 자격 증명 및 액세스 문제 해결](security_iam_troubleshoot.md)
+ [Amazon Simple Storage Service 사용 설명서](https://docs.aws.amazon.com/AmazonS3/latest/userguide/troubleshooting.html)의 *Amazon S3 문제 해결*
+ *IAM 사용 설명서*의 [Amazon S3 문제 해결 및 IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_iam-s3.html)

# Amazon S3에서 Aurora PostgreSQL DB 클러스터 로 데이터 가져오기
<a name="USER_PostgreSQL.S3Import.FileFormats"></a>

aws\$1s3 확장의 `table_import_from_s3` 함수를 사용하여 Amazon S3 버킷에서 데이터를 가져옵니다. 참조 정보는 [aws\$1s3.table\$1import\$1from\$1s3](USER_PostgreSQL.S3Import.Reference.md#aws_s3.table_import_from_s3) 단원을 참조하세요.

**참고**  
다음 예에서는 Amazon S3 버킷에 대한 액세스 권한을 허용하기 위해 IAM 역할 메서드를 사용합니다. 따라서 `aws_s3.table_import_from_s3` 함수 호출에는 자격 증명 파라미터가 포함되지 않습니다.

다음은 대표적인 예를 보여줍니다.

```
postgres=> SELECT aws_s3.table_import_from_s3(
   't1',
   '', 
   '(format csv)',
   :'s3_uri'
);
```

파라미터는 다음과 같습니다.
+ `t1` – 데이터를 복사할 PostgreSQL DB 클러스터의 테이블에 지정된 이름입니다.
+ `''` – 데이터베이스 테이블의 열 목록입니다(선택 사항). 이 파라미터를 사용해 S3 데이터 중 어떤 열이 어떤 테이블 열에 들어가는지 표시할 수 있습니다. 열을 지정하지 않으면 모든 열이 테이블에 복사됩니다. 열 목록 사용에 대한 예시는 [사용자 지정 구분 기호를 사용하는 Amazon S3 파일 가져오기](#USER_PostgreSQL.S3Import.FileFormats.CustomDelimiter) 단원을 참조하십시오.
+ `(format csv)` – PostgreSQL COPY 인수입니다. 복사 프로세스에서는 [PostgreSQL COPY](https://www.postgresql.org/docs/current/sql-copy.html) 명령의 인수와 형식을 사용하여 데이터를 가져옵니다. 형식에 대한 선택 사항에는 이 예에 표시된 대로 쉼표로 구분된 값(CSV), 텍스트 및 이진법이 있습니다. 기본값은 텍스트입니다.
+  `s3_uri` – Amazon S3 파일을 식별하는 정보가 포함된 구조입니다. [aws\$1commons.create\$1s3\$1uri](USER_PostgreSQL.S3Import.Reference.md#USER_PostgreSQL.S3Import.create_s3_uri) 함수를 사용하여 `s3_uri` 구조를 생성하는 예제는 [Amazon S3 데이터에서 데이터 가져오기 개요](USER_PostgreSQL.S3Import.Overview.md) 단원을 참조하세요.

이 함수에 대한 자세한 내용은 [aws\$1s3.table\$1import\$1from\$1s3](USER_PostgreSQL.S3Import.Reference.md#aws_s3.table_import_from_s3) 단원을 참조하세요.

이 `aws_s3.table_import_from_s3` 함수는 문자를 반환합니다. Amazon S3 버킷에서 가져올 다른 파일 종류를 지정하려면 다음 예 중 하나를 참조하세요.

**참고**  
0바이트 파일을 가져오면 오류가 발생합니다.

**Topics**
+ [사용자 지정 구분 기호를 사용하는 Amazon S3 파일 가져오기](#USER_PostgreSQL.S3Import.FileFormats.CustomDelimiter)
+ [Amazon S3 압축(gzip) 파일 가져오기](#USER_PostgreSQL.S3Import.FileFormats.gzip)
+ [인코딩된 Amazon S3 파일 가져오기](#USER_PostgreSQL.S3Import.FileFormats.Encoded)

## 사용자 지정 구분 기호를 사용하는 Amazon S3 파일 가져오기
<a name="USER_PostgreSQL.S3Import.FileFormats.CustomDelimiter"></a>

다음 예제에서는 사용자 지정 구분 기호를 사용하는 파일을 가져오는 방법을 보여줍니다. 또한 `column_list` 함수의 [aws\$1s3.table\$1import\$1from\$1s3](USER_PostgreSQL.S3Import.Reference.md#aws_s3.table_import_from_s3) 파라미터를 사용해 데이터베이스 테이블에서 데이터를 배치할 곳을 제어하는 방법을 보여줍니다.

이 예에서는 다음 정보가 Amazon S3 파일의 파이프로 구분된 열에 정리되어 있다고 가정합니다.

```
1|foo1|bar1|elephant1
2|foo2|bar2|elephant2
3|foo3|bar3|elephant3
4|foo4|bar4|elephant4
...
```

**사용자 지정 구분 기호를 사용하는 파일을 가져오려면**

1. 가져온 데이터에 대해 데이터베이스에서 테이블을 생성합니다.

   ```
   postgres=> CREATE TABLE test (a text, b text, c text, d text, e text);
   ```

1. [aws\$1s3.table\$1import\$1from\$1s3](USER_PostgreSQL.S3Import.Reference.md#aws_s3.table_import_from_s3) 함수의 다음과 같은 형식을 사용해 Amazon S3 파일에서 데이터를 가져옵니다.

   [aws\$1commons.create\$1s3\$1uri](USER_PostgreSQL.S3Import.Reference.md#USER_PostgreSQL.S3Import.create_s3_uri) 함수 호출 인라인을 `aws_s3.table_import_from_s3` 함수 호출에 포함하여 파일을 지정할 수 있습니다.

   ```
   postgres=> SELECT aws_s3.table_import_from_s3(
      'test',
      'a,b,d,e',
      'DELIMITER ''|''', 
      aws_commons.create_s3_uri('amzn-s3-demo-bucket', 'pipeDelimitedSampleFile', 'us-east-2')
   );
   ```

이제 데이터는 다음 열의 테이블에 있습니다.

```
postgres=> SELECT * FROM test;
a | b | c | d | e 
---+------+---+---+------+-----------
1 | foo1 | | bar1 | elephant1
2 | foo2 | | bar2 | elephant2
3 | foo3 | | bar3 | elephant3
4 | foo4 | | bar4 | elephant4
```

## Amazon S3 압축(gzip) 파일 가져오기
<a name="USER_PostgreSQL.S3Import.FileFormats.gzip"></a>

다음 예에서는 gzip으로 압축된 Amazon S3에서 파일을 가져오는 방법을 보여줍니다. 가져오는 파일에 다음과 같은 Amazon S3 메타데이터가 있어야 합니다.
+ 키: `Content-Encoding`
+ 값: `gzip`

AWS Management Console을 사용하여 파일을 업로드하는 경우 일반적으로 시스템에서 메타데이터를 적용합니다. AWS Management Console, AWS CLI 또는 API를 사용하여 Amazon S3에 파일을 업로드하는 방법에 대한 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [객체 업로드](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)를 참조하세요.

Amazon S3 메타데이터에 대한 자세한 내용과 시스템 제공 메타데이터에 대한 세부 정보는 *Amazon Simple Storage Service 사용 설명서*의 [Amazon S3 콘솔에서 객체 메타데이터 편집](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-object-metadata.html)을 참조하세요.

아래와 같이 gzip 파일을 PostgreSQL DB 인스턴스용 Aurora PostgreSQL DB 클러스터로 가져옵니다.

```
postgres=> CREATE TABLE test_gzip(id int, a text, b text, c text, d text);
postgres=> SELECT aws_s3.table_import_from_s3(
 'test_gzip', '', '(format csv)',
 'amzn-s3-demo-bucket', 'test-data.gz', 'us-east-2'
);
```

## 인코딩된 Amazon S3 파일 가져오기
<a name="USER_PostgreSQL.S3Import.FileFormats.Encoded"></a>

다음 예에서는 Windows-1252 인코딩이 있는 Amazon S3에서 파일을 가져오는 방법을 보여줍니다.

```
postgres=> SELECT aws_s3.table_import_from_s3(
 'test_table', '', 'encoding ''WIN1252''',
 aws_commons.create_s3_uri('amzn-s3-demo-bucket', 'SampleFile', 'us-east-2')
);
```

# 함수 참조
<a name="USER_PostgreSQL.S3Import.Reference"></a>

**Topics**
+ [aws\$1s3.table\$1import\$1from\$1s3](#aws_s3.table_import_from_s3)
+ [aws\$1commons.create\$1s3\$1uri](#USER_PostgreSQL.S3Import.create_s3_uri)
+ [aws\$1commons.create\$1aws\$1credentials](#USER_PostgreSQL.S3Import.create_aws_credentials)

## aws\$1s3.table\$1import\$1from\$1s3
<a name="aws_s3.table_import_from_s3"></a>

Amazon S3 데이터를 Aurora PostgreSQL 테이블로 가져옵니다. `aws_s3` 확장은 `aws_s3.table_import_from_s3` 함수를 제공합니다. 반환 값은 텍스트입니다.

### 구문
<a name="aws_s3.table_import_from_s3-syntax"></a>

필수 파라미터는 `table_name`, `column_list` 및 `options`입니다. 이 파라미터에서는 데이터베이스 테이블을 식별하고 데이터가 테이블로 복사되는 방식을 지정합니다.

다음 파라미터를 사용할 수도 있습니다.
+ `s3_info` 파라미터는 가져올 Amazon S3 파일을 지정합니다. 이 파라미터를 사용하는 경우 IAM 역할에서 PostgreSQL DB 클러스터에 대해 Amazon S3에 액세스할 수 있는 권한을 제공합니다.

  ```
  aws_s3.table_import_from_s3 (
     table_name text, 
     column_list text, 
     options text, 
     s3_info aws_commons._s3_uri_1
  )
  ```
+ `credentials` 파라미터에서는 Amazon S3에 액세스할 수 있는 자격 증명을 지정합니다. 이 파라미터를 사용할 때는 IAM 역할을 사용하지 마십시오.

  ```
  aws_s3.table_import_from_s3 (
     table_name text, 
     column_list text, 
     options text, 
     s3_info aws_commons._s3_uri_1,
     credentials aws_commons._aws_credentials_1
  )
  ```

### 파라미터
<a name="aws_s3.table_import_from_s3-parameters"></a>

 *table\$1name*   
데이터를 가져올 필수 텍스트 문자열로서, PostgreSQL 데이터베이스 테이블의 이름을 포함합니다.

 *column\$1list*   
데이터를 복사할 PostgreSQL 데이터베이스 테이블 열의 목록(선택 사항)을 포함하는 필수 텍스트 문자열입니다. 문자열이 비어 있는 경우 테이블의 모든 열이 사용됩니다. 관련 예시는 [사용자 지정 구분 기호를 사용하는 Amazon S3 파일 가져오기](USER_PostgreSQL.S3Import.FileFormats.md#USER_PostgreSQL.S3Import.FileFormats.CustomDelimiter) 단원을 참조하십시오.

 *options*   
PostgreSQL `COPY` 명령에 대한 인수를 포함하는 필수 텍스트 스트링입니다. 이 인수에서는 데이터가 PostgreSQL 테이블에 복사되는 방식을 지정합니다. 자세한 내용은 [PostgreSQL COPY 설명서](https://www.postgresql.org/docs/current/sql-copy.html)를 참조하십시오.

 *s3\$1info*   
S3 객체에 대한 다음 정보를 포함하는 `aws_commons._s3_uri_1` 복합 키입니다.  
+ `bucket` – 파일이 포함된 Amazon S3 버킷의 이름입니다.
+ `file_path` – 파일 경로를 포함한 Amazon S3 파일 이름입니다.
+ `region` - 파일이 위치한 AWS 리전입니다. AWS 리전 이름 및 연결된 값의 목록은 [리전 및 가용 영역](Concepts.RegionsAndAvailabilityZones.md) 섹션을 참조하십시오.

 *credentials*   
가져오기 작업에 사용할 다음 자격 증명을 포함하는 `aws_commons._aws_credentials_1` 복합 유형입니다.  
+ 액세스 키
+ 비밀 키
+ 세션 토큰
`aws_commons._aws_credentials_1` 복합 구조 생성에 대한 자세한 내용은 [aws\$1commons.create\$1aws\$1credentials](#USER_PostgreSQL.S3Import.create_aws_credentials) 단원을 참조하십시오.

### 대체 구문
<a name="aws_s3.table_import_from_s3-alternative-syntax"></a>

`s3_info` 및 `credentials` 파라미터 대신에 확장 파라미터 집합을 사용하면 테스트에 도움이 됩니다. 다음은 `aws_s3.table_import_from_s3` 함수에 대한 추가 구문 변형입니다.
+ `s3_info` 파라미터를 사용해 Amazon S3 파일을 식별하는 대신 `bucket`, `file_path` 및 `region` 파라미터의 조합을 사용하십시오. IAM 역할은 이러한 형식의 함수를 통해 PostgreSQL DB 인스턴스에 대해 Amazon S3에 액세스할 수 있는 권한을 제공합니다.

  ```
  aws_s3.table_import_from_s3 (
     table_name text, 
     column_list text, 
     options text, 
     bucket text, 
     file_path text, 
     region text 
  )
  ```
+ `credentials` 파라미터를 사용해 Amazon S3 액세스를 지정하는 대신 `access_key`, `session_key` 및 `session_token` 파라미터의 조합을 사용하십시오.

  ```
  aws_s3.table_import_from_s3 (
     table_name text, 
     column_list text, 
     options text, 
     bucket text, 
     file_path text, 
     region text, 
     access_key text, 
     secret_key text, 
     session_token text 
  )
  ```

### 대체 파라미터
<a name="aws_s3.table_import_from_s3-alternative-parameters"></a>

*버킷*  
파일이 들어 있는 Amazon S3 버킷의 이름이 포함된 텍스트 문자열입니다.

*file\$1path*  
파일 경로를 포함한 Amazon S3 파일 이름이 포함된 텍스트 문자열입니다.

*리전*  
파일의 AWS 리전 위치를 식별하는 텍스트 문자열입니다. AWS 리전 이름 및 연결된 값의 목록은 [리전 및 가용 영역](Concepts.RegionsAndAvailabilityZones.md) 섹션을 참조하세요.

*access\$1key*  
가져오기 작업에 사용할 액세스 키가 포함된 텍스트 문자열입니다. 기본값은 NULL입니다.

*secret\$1key*  
가져오기 작업에 사용할 비밀 키가 포함된 텍스트 문자열입니다. 기본값은 NULL입니다.

*session\$1token*  
(선택 사항) 가져오기 작업에 사용할 세션 키가 포함된 텍스트 문자열입니다. 기본값은 NULL입니다.

## aws\$1commons.create\$1s3\$1uri
<a name="USER_PostgreSQL.S3Import.create_s3_uri"></a>

Amazon S3 파일 정보를 저장할 `aws_commons._s3_uri_1` 구조를 생성합니다. `aws_commons.create_s3_uri` 함수의 `s3_info` 파라미터에서 [aws\$1s3.table\$1import\$1from\$1s3](#aws_s3.table_import_from_s3) 함수의 결과를 사용합니다.

### 구문
<a name="USER_PostgreSQL.S3Import.create_s3_uri-syntax"></a>

```
aws_commons.create_s3_uri(
   bucket text,
   file_path text,
   region text
)
```

### 파라미터
<a name="USER_PostgreSQL.S3Import.create_s3_uri-parameters"></a>

*버킷*  
파일의 Amazon S3 버킷 이름이 포함된 필수 텍스트 문자열입니다.

*file\$1path*  
파일 경로를 포함한 Amazon S3 파일 이름이 포함된 필수 텍스트 문자열입니다.

*리전*  
파일이 위치한 AWS 리전이 포함된 필수 텍스트 문자열입니다. AWS 리전 이름 및 연결된 값의 목록은 [리전 및 가용 영역](Concepts.RegionsAndAvailabilityZones.md) 섹션을 참조하세요.

## aws\$1commons.create\$1aws\$1credentials
<a name="USER_PostgreSQL.S3Import.create_aws_credentials"></a>

`aws_commons._aws_credentials_1` 구조에서 액세스 키와 비밀 키를 설정합니다. `aws_commons.create_aws_credentials` 함수의 `credentials` 파라미터에서 [aws\$1s3.table\$1import\$1from\$1s3](#aws_s3.table_import_from_s3) 함수의 결과를 사용합니다.

### 구문
<a name="USER_PostgreSQL.S3Import.create_aws_credentials-syntax"></a>

```
aws_commons.create_aws_credentials(
   access_key text,
   secret_key text,
   session_token text
)
```

### 파라미터
<a name="USER_PostgreSQL.S3Import.create_aws_credentials-parameters"></a>

*access\$1key*  
Amazon S3 파일 가져오기에 사용할 액세스 키가 포함된 필수 텍스트 문자열입니다. 기본값은 NULL입니다.

*secret\$1key*  
Amazon S3 파일 가져오기에 사용할 비밀 키가 포함된 필수 텍스트 문자열입니다. 기본값은 NULL입니다.

*session\$1token*  
Amazon S3 파일 가져오기에 사용할 세션 토큰이 포함된 텍스트 문자열(선택 사항)입니다. 기본값은 NULL입니다. 선택 사항인 `session_token`을 제공하는 경우 임시 자격 증명을 사용할 수 있습니다.

# Aurora PostgreSQL DB 클러스터에서 Amazon S3로 데이터 내보내기
<a name="postgresql-s3-export"></a>

Aurora PostgreSQL DB 클러스터에서 데이터를 쿼리하여 Amazon S3 버킷에 저장된 파일로 직접 내보낼 수 있습니다. 이 작업을 수행하려면 먼저 Aurora PostgreSQL `aws_s3` 확장을 설치해야 합니다. 이 확장은 쿼리 결과를 Amazon S3로 내보내는 데 사용하는 기능을 제공합니다. 다음에서는 확장 프로그램을 설치하는 방법과 Amazon S3로 데이터를 내보내는 방법을 확인할 수 있습니다.

프로비저닝된 인스턴스 또는 Aurora Serverless v2 DB 인스턴스에서 내보낼 수 있습니다. 이 단계는 Aurora Serverless v1에서 지원되지 않습니다.

**참고**  
Amazon S3로 계정 간 내보내기는 지원되지 않습니다.

현재 사용 가능한 모든 Aurora PostgreSQL 버전은 Amazon Simple Storage Service로 데이터 내보내기를 지원합니다. 자세한 버전 정보는 *Aurora PostgreSQL 릴리스 정보*에서 [Amazon Aurora PostgreSQL 업데이트](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html)를 참조하세요.

내보내기용으로 버킷을 설정하지 않은 경우 *Amazon Simple Storage Service 사용 설명서*의 다음 주제를 참조하세요.
+ [Amazon S3 설정](https://docs.aws.amazon.com/AmazonS3/latest/userguide/setting-up-s3.html)
+ [버킷 생성](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)

기본적으로 Aurora PostgreSQL에서 Amazon S3로 내보낸 데이터는 AWS 관리형 키를 통한 서버 측 암호화를 사용합니다. 이미 생성한 고객 관리형 키를 사용할 수도 있습니다. 버킷 암호화를 사용하는 경우 Amazon S3 버킷은 AWS Key Management Service(AWS KMS) 키(SSE-KMS)로 암호화되어야 합니다. 현재 Amazon S3 관리형 키(SSE-S3)로 암호화된 버킷은 지원되지 않습니다.

**참고**  
AWS Management Console, AWS CLI 또는 Amazon RDS API를 사용하여 DB 및 DB 클러스터 스냅샷 데이터를 Amazon S3에 저장할 수 있습니다. 자세한 내용은 [Amazon S3로 DB 클러스터 스냅샷 데이터 내보내기](aurora-export-snapshot.md) 단원을 참조하세요.

**Topics**
+ [aws\$1s3 확장 설치](#USER_PostgreSQL.S3Export.InstallExtension)
+ [Amazon S3으로 데이터 내보내기 개요](#postgresql-s3-export-overview)
+ [내보낼 Amazon S3 파일 경로 지정](#postgresql-s3-export-file)
+ [Amazon S3 버킷에 대한 액세스 권한 설정](postgresql-s3-export-access-bucket.md)
+ [aws\$1s3.query\$1export\$1to\$1s3 함수를 사용하여 쿼리 데이터 내보내기](postgresql-s3-export-examples.md)
+ [함수 참조](postgresql-s3-export-functions.md)
+ [Amazon S3 액세스 문제 해결](postgresql-s3-export-troubleshoot.md)

## aws\$1s3 확장 설치
<a name="USER_PostgreSQL.S3Export.InstallExtension"></a>

Amazon Simple Storage Service를 Aurora PostgreSQL DB 클러스터 와 함께 사용하려면 먼저 `aws_s3` 확장을 설치해야 합니다. 이 확장은 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에서 Amazon S3 버킷으로 데이터를 내보내는 기능을 제공합니다. Amazon S3에서 데이터를 가져오기 위한 함수도 제공합니다. 자세한 내용은 [PostgreSQL DB 인스턴스용 Aurora PostgreSQL DB 클러스터](USER_PostgreSQL.S3Import.md) 단원을 참조하세요. `aws_s3` 확장은 필요할 때 자동으로 설치되는 `aws_commons` 확장의 일부 도우미 기능에 따라 다릅니다.

**`aws_s3` 확장을 설치하려면**

1. psql(또는 PGAdmin)을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 `rds_superuser` 권한을 가진 사용자로 연결합니다. 설정 과정에서 기본 이름을 계속 사용했다면 `postgres`로 연결합니다.

   ```
   psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
   ```

1. 다음 명령을 실행하여 확장을 생성합니다.

   ```
   postgres=> CREATE EXTENSION aws_s3 CASCADE;
   NOTICE: installing required extension "aws_commons"
   CREATE EXTENSION
   ```

1. 확장 프로그램이 설치되었는지 확인하려면 psql `\dx` 메타 명령을 사용하면 됩니다.

   ```
   postgres=> \dx
          List of installed extensions
       Name     | Version |   Schema   |                 Description
   -------------+---------+------------+---------------------------------------------
    aws_commons | 1.2     | public     | Common data types across AWS services
    aws_s3      | 1.1     | public     | AWS S3 extension for importing data from S3
    plpgsql     | 1.0     | pg_catalog | PL/pgSQL procedural language
   (3 rows)
   ```

이제 Amazon S3에서 데이터를 가져오고 Amazon S3로 데이터를 내보내는 기능을 사용할 수 있습니다.

### Aurora PostgreSQL 버전에서 Amazon S3로 내보내기를 지원하는지 확인
<a name="postgresql-s3-supported"></a>

`describe-db-engine-versions` 명령을 사용하여 Aurora PostgreSQL 버전이 Amazon S3로 내보내기를 지원하는지 확인할 수 있습니다. 다음 예제에서는 버전 10.14를 Amazon S3로 내보낼 수 있는지 확인합니다.

```
aws rds describe-db-engine-versions --region us-east-1 \
--engine aurora-postgresql --engine-version 10.14 | grep s3Export
```

출력에 `"s3Export"` 문자열이 포함된 경우 엔진은 Amazon S3 내보내기를 지원합니다. 그렇지 않으면 엔진이 이 내보내기를 지원하지 않습니다.

## Amazon S3으로 데이터 내보내기 개요
<a name="postgresql-s3-export-overview"></a>

Aurora PostgreSQL 데이터베이스에 저장된 데이터를 Amazon S3 버킷으로 내보내려면 다음 절차를 따르세요.

**Aurora PostgreSQL 데이터를 S3로 내보내려면**

1. 데이터를 내보내는 데 사용할 Amazon S3 파일 경로를 식별합니다. 이 프로세스에 대한 자세한 내용은 [내보낼 Amazon S3 파일 경로 지정](#postgresql-s3-export-file) 단원을 참조하십시오.

1. Amazon S3 버킷에 액세스할 수 있는 권한을 부여합니다.

   Amazon S3 파일로 데이터를 내보내려면 Aurora PostgreSQL DB 클러스터에 내보내기 시 스토리지에 사용할 Amazon S3 버킷에 액세스할 수 있는 권한을 부여합니다. 여기에는 다음 단계가 포함됩니다.

   1. 내보낼 Amazon S3 버킷에 대한 액세스를 제공하는 IAM 정책을 생성합니다.

   1. IAM 역할 생성.

   1. 생성한 정책을 생성한 역할에 연결하십시오.

   1. 이 IAM 역할을 DB 클러스터 에 추가합니다.

   이 프로세스에 대한 자세한 내용은 [Amazon S3 버킷에 대한 액세스 권한 설정](postgresql-s3-export-access-bucket.md) 단원을 참조하십시오.

1. 데이터를 가져올 데이터베이스 쿼리를 식별합니다. `aws_s3.query_export_to_s3` 함수를 호출하여 쿼리 데이터를 내보냅니다.

   앞의 준비 작업을 완료한 후 [aws\$1s3.query\$1export\$1to\$1s3](postgresql-s3-export-functions.md#aws_s3.export_query_to_s3) 함수를 사용하여 쿼리 결과를 Amazon S3으로 내보냅니다. 이 프로세스에 대한 자세한 내용은 [aws\$1s3.query\$1export\$1to\$1s3 함수를 사용하여 쿼리 데이터 내보내기](postgresql-s3-export-examples.md) 단원을 참조하세요.

## 내보낼 Amazon S3 파일 경로 지정
<a name="postgresql-s3-export-file"></a>

다음 정보를 지정하여 데이터를 내보낼 Amazon S3 위치를 식별합니다.
+ 버킷 이름 – *버킷*은 Amazon S3 객체 또는 파일을 위한 컨테이너입니다.

  Amazon S3을 이용한 데이터 저장에 대한 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [Creating a bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) 및 [Working with objects](https://docs.aws.amazon.com/AmazonS3/latest/userguide/uploading-downloading-objects.html)를 참조하세요.
+ 파일 경로 – 파일 경로는 내보낸 데이터가 Amazon S3 버킷에서 저장되는 위치를 식별합니다. 파일 경로는 다음과 같이 구성됩니다.
  + 가상 폴더 경로를 식별하는 선택적 경로 접두사입니다.
  + 저장할 하나 이상의 파일을 식별하는 파일 접두사입니다. 내보내는 데이터가 클 경우 각각 최대 크기가 약 6GB인 여러 파일에 저장됩니다. 추가 파일 이름의 파일 접두사도 동일하지만 `_partXX`가 추가됩니다. `XX`는 2, 3 등을 나타냅니다.

  예를 들어 `exports` 폴더와 `query-1-export` 파일 접두사가 있는 파일 경로는 `/exports/query-1-export`입니다.
+ AWS 리전(선택 사항) – Amazon S3 버킷이 위치한 AWS 리전입니다. AWS 리전 값을 지정하지 않으면 Aurora는 DB 클러스터 내보내기와 동일한 AWS 리전의 Amazon S3에 파일을 저장합니다.
**참고**  
현재 AWS 리전은 내보내는 DB 클러스터의 리전과 동일해야 합니다.

  AWS 리전 이름 및 연결된 값의 목록은 [리전 및 가용 영역](Concepts.RegionsAndAvailabilityZones.md) 섹션을 참조하십시오.

내보내는 데이터를 저장할 위치에 대한 Amazon S3 파일 정보를 보관하려면 [aws\$1commons.create\$1s3\$1uri](postgresql-s3-export-functions.md#aws_commons.create_s3_uri) 함수를 사용하여 다음과 같이 `aws_commons._s3_uri_1` 복합 구조를 생성할 수 있습니다.

```
psql=> SELECT aws_commons.create_s3_uri(
   'amzn-s3-demo-bucket',
   'sample-filepath',
   'us-west-2'
) AS s3_uri_1 \gset
```

나중에 이 `s3_uri_1` 값을 [aws\$1s3.query\$1export\$1to\$1s3](postgresql-s3-export-functions.md#aws_s3.export_query_to_s3) 함수에 대한 호출의 파라미터로 제공합니다. 예제는 [aws\$1s3.query\$1export\$1to\$1s3 함수를 사용하여 쿼리 데이터 내보내기](postgresql-s3-export-examples.md)을 참조하세요.

# Amazon S3 버킷에 대한 액세스 권한 설정
<a name="postgresql-s3-export-access-bucket"></a>

데이터를 Amazon S3으로 내보내려면 PostgreSQL DB 클러스터에 파일이 저장될 Amazon S3 버킷에 액세스할 수 있는 권한을 부여합니다.

이렇게 하려면 다음 절차를 따르십시오.

**IAM 역할을 통해 PostgreSQL DB 클러스터에 액세스할 수 있는 권한을 Amazon S3에 부여하려면**

1. IAM 정책을 생성합니다.

   이 정책은 PostgreSQL DB 클러스터가 Amazon S3에 액세스할 수 있도록 허용하는 권한을 버킷 및 객체에 부여합니다.

   이 정책을 생성하는 과정에서 다음 단계를 수행하십시오.

   1. 다음과 같은 필수 작업을 정책에 포함하여 PostgreSQL DB 클러스터에서 Amazon S3 버킷으로 파일 전송을 허용합니다.
      + `s3:PutObject`
      + `s3:AbortMultipartUpload`

   1. Amazon S3 버킷과 버킷의 객체를 식별하는 Amazon 리소스 이름(ARN)을 포함합니다. Amazon S3에 액세스하기 위한 ARN 형식은 `arn:aws:s3:::amzn-s3-demo-bucket/*`입니다.

   PostgreSQL용 Aurora PostgreSQL에 대한 IAM 정책 생성에 대한 자세한 내용은 [IAM 데이터베이스 액세스를 위한 IAM 정책 생성 및 사용](UsingWithRDS.IAMDBAuth.IAMPolicy.md) 단원을 참조하십시오. *IAM 사용 설명서*의 [자습서: 첫 번째 고객 관리형 정책 생성 및 연결](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_managed-policies.html)도 참조하십시오.

   다음 AWS CLI 명령은 이 옵션으로 `rds-s3-export-policy`라는 IAM 정책을 만듭니다. *amzn-s3-demo-bucket*이라는 버킷에 대한 액세스 권한을 부여합니다.
**주의**  
특정 버킷에 액세스하도록 구성된 엔드포인트 정책이 있는 프라이빗 VPC 내에 데이터베이스를 설정하는 것이 좋습니다. 자세한 내용은 Amazon VPC 사용 설명서의 [Amazon S3용 엔드포인트 정책 사용](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html#vpc-endpoints-policies-s3)을 참조하십시오.  
모든 리소스에 액세스할 수 있는 정책은 생성하지 않는 것이 좋습니다. 이러한 액세스 권한은 데이터 보안에 위협이 될 수 있습니다. `S3:PutObject`를 사용하여 모든 리소스에 액세스할 수 있는 권한을 `"Resource":"*"`에 부여하는 정책을 생성하면 내보내기 권한이 있는 사용자가 계정의 모든 버킷으로 데이터를 내보낼 수 있습니다. 또한 사용자는 *AWS 리전 내의 공개적으로 쓰기 가능한 버킷*으로 데이터를 내보낼 수 있습니다.

   정책을 만든 후에 정책의 Amazon 리소스 이름(ARN)을 기록하십시오. IAM 역할에 정책을 연결할 때 이후 단계에 ARN이 필요합니다.

   ```
   aws iam create-policy  --policy-name rds-s3-export-policy  --policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Sid": "s3export",
            "Action": [
              "s3:PutObject*",
              "s3:ListBucket",
              "s3:GetObject*",
              "s3:DeleteObject*",
              "s3:GetBucketLocation",
              "s3:AbortMultipartUpload"
            ],
            "Effect": "Allow",
            "Resource": [
              "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ] 
          }
        ] 
      }'
   ```

1. IAM 역할 생성.

   Aurora PostgreSQL이 이 IAM 역할을 수임하여 사용자 대신 Amazon S3 버킷에 액세스할 수 있도록 역할을 생성합니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM 사용자에게 권한을 위임하기 위한 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)을 참조하세요.

   서비스 권한을 특정 리소스로 제한하는 리소스 기반 정책의 `[aws:SourceArn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn)` 및 `[aws:SourceAccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount)` 전역 조건 컨텍스트 키를 사용하는 것이 좋습니다. 이는 [혼동된 대리자 문제](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)를 방지하는 가장 효과적인 방법입니다.

   두 전역 조건 컨텍스트 키와 계정 ID를 포함한 `aws:SourceArn` 값을 모두 사용하는 경우, `aws:SourceAccount` 값 및 `aws:SourceArn` 값의 계정은 동일한 정책 문에서 사용될 경우 반드시 같은 계정 ID를 사용해야 합니다. 
   + 단일 리소스에 대한 교차 서비스 액세스를 원하는 경우 `aws:SourceArn`을 사용하세요.
   + 해당 계정의 모든 리소스가 교차 서비스 사용과 연결되도록 허용하려는 경우 `aws:SourceAccount`를 사용하세요.

    정책에서는 리소스의 전체 ARN이 포함된 `aws:SourceArn` 전역 조건 컨텍스트 키를 사용해야 합니다. 다음 예제에서는 AWS CLI 명령을 사용하여 `rds-s3-export-role`이라는 역할을 생성하는 방법을 보여줍니다.  
**Example**  

   대상 LinuxmacOS, 또는Unix:

   ```
   aws iam create-role  \
       --role-name rds-s3-export-role  \
       --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                   "aws:SourceAccount": "111122223333",
                   "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:cluster:dbname"
                   }
                }
          }
        ] 
      }'
   ```

   Windows의 경우:

   ```
   aws iam create-role  ^
       --role-name rds-s3-export-role  ^
       --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                   "aws:SourceAccount": "111122223333",
                   "aws:SourceArn": "arn:aws:rds:us-east-1:111122223333:cluster:dbname"
                   }
                }
          }
        ] 
      }'
   ```

1. 생성한 IAM 역할에 생성한 IAM 정책을 연결합니다.

   다음 AWS CLI 명령은 앞서 생성한 정책을 `rds-s3-export-role.`라는 역할에 연결합니다. `your-policy-arn`을 이전 단계에서 기록한 정책 ARN으로 바꿉니다.

   ```
   aws iam attach-role-policy  --policy-arn your-policy-arn  --role-name rds-s3-export-role  
   ```

1. IAM 역할을 DB 클러스터에 추가합니다. 이렇게 하려면 다음에 설명한 대로 AWS Management Console 또는 AWS CLI를 사용합니다.

## 콘솔
<a name="collapsible-section-1"></a>

**콘솔을 사용하여 PostgreSQL DB 클러스터에 대해 IAM 역할을 추가하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 세부 정보를 표시하고자 하는 PostgreSQL DB 클러스터 이름을 선택합니다.

1. **Connectivity & security(연결성 및 보안)** 탭에 있는 **Manage IAM roles(IAM 역할 관리)** 섹션의 **이 인스턴스에 IAM 역할 추가**에서 추가할 역할을 선택합니다.

1. **기능**에서 **s3Export**를 선택합니다.

1. [**Add role**]을 선택합니다.

## AWS CLI
<a name="collapsible-section-2"></a>

**CLI를 사용하여 PostgreSQL DB 클러스터에 대해 IAM 역할을 추가하려면**
+ 다음 명령을 사용해 `my-db-cluster`라는 PostgreSQL DB 클러스터에 역할을 추가합니다. *`your-role-arn`*을 이전 단계에서 기록한 정책 ARN으로 교체합니다. `s3Export` 옵션의 값에 대해 `--feature-name`를 사용합니다.  
**Example**  

  대상 LinuxmacOS, 또는Unix:

  ```
  aws rds add-role-to-db-cluster \
     --db-cluster-identifier my-db-cluster \
     --feature-name s3Export \
     --role-arn your-role-arn   \
     --region your-region
  ```

  Windows의 경우:

  ```
  aws rds add-role-to-db-cluster ^
     --db-cluster-identifier my-db-cluster ^
     --feature-name s3Export ^
     --role-arn your-role-arn ^
     --region your-region
  ```

# aws\$1s3.query\$1export\$1to\$1s3 함수를 사용하여 쿼리 데이터 내보내기
<a name="postgresql-s3-export-examples"></a>

[aws\$1s3.query\$1export\$1to\$1s3](postgresql-s3-export-functions.md#aws_s3.export_query_to_s3) 함수를 호출하여 PostgreSQL 데이터를 Amazon S3으로 내보냅니다.

**Topics**
+ [사전 조건](#postgresql-s3-export-examples-prerequisites)
+ [aws\$1s3.query\$1export\$1to\$1s3 호출](#postgresql-s3-export-examples-basic)
+ [사용자 지정 구분 기호를 사용하는 CSV 파일로 내보내기](#postgresql-s3-export-examples-custom-delimiter)
+ [인코딩을 사용하여 이진 파일로 내보내기](#postgresql-s3-export-examples-encoded)

## 사전 조건
<a name="postgresql-s3-export-examples-prerequisites"></a>

`aws_s3.query_export_to_s3` 함수를 사용하기 전에 다음 사전 조건을 충족해야 합니다.
+ [Amazon S3으로 데이터 내보내기 개요](postgresql-s3-export.md#postgresql-s3-export-overview)에 설명된 대로 필요한 PostgreSQL 확장을 설치합니다.
+ [내보낼 Amazon S3 파일 경로 지정](postgresql-s3-export.md#postgresql-s3-export-file)에 설명된 대로 데이터를 내보낼 Amazon S3 위치를 결정합니다.
+ [Amazon S3 버킷에 대한 액세스 권한 설정](postgresql-s3-export-access-bucket.md)에 설명된 대로 Amazon S3에 대한 내보내기 액세스 권한이 DB 클러스터 에 있는지 확인합니다.

다음 예제에서는 `sample_table`이라는 데이터베이스 테이블을 사용합니다. 이 예제에서는 *amzn-s3-demo-bucket*이라는 버킷으로 데이터를 내보냅니다. 예제 테이블과 데이터는 psql에서 다음 SQL 문을 사용하여 생성됩니다.

```
psql=> CREATE TABLE sample_table (bid bigint PRIMARY KEY, name varchar(80));
psql=> INSERT INTO sample_table (bid,name) VALUES (1, 'Monday'), (2,'Tuesday'), (3, 'Wednesday');
```

## aws\$1s3.query\$1export\$1to\$1s3 호출
<a name="postgresql-s3-export-examples-basic"></a>

다음은 [aws\$1s3.query\$1export\$1to\$1s3](postgresql-s3-export-functions.md#aws_s3.export_query_to_s3) 함수를 호출하는 기본 방법을 보여줍니다.

이 예제에서는 `s3_uri_1` 변수를 사용하여 Amazon S3 파일을 식별하는 정보가 포함된 구조를 식별합니다. [aws\$1commons.create\$1s3\$1uri](postgresql-s3-export-functions.md#aws_commons.create_s3_uri) 함수를 사용하여 구조를 생성합니다.

```
psql=> SELECT aws_commons.create_s3_uri(
   'amzn-s3-demo-bucket',
   'sample-filepath',
   'us-west-2'
) AS s3_uri_1 \gset
```

파라미터가 다음 두 `aws_s3.query_export_to_s3` 함수 호출에 따라 달라도 이러한 예제에 대한 결과는 동일합니다. `sample_table` 표의 모든 행은 *amzn-s3-demo-bucket*이라는 버킷으로 내보내집니다.

```
psql=> SELECT * FROM aws_s3.query_export_to_s3('SELECT * FROM sample_table', :'s3_uri_1');

psql=> SELECT * FROM aws_s3.query_export_to_s3('SELECT * FROM sample_table', :'s3_uri_1', options :='format text');
```

파라미터는 다음과 같이 설명됩니다.
+ `'SELECT * FROM sample_table'` – 첫 번째 파라미터는 SQL 쿼리를 포함하는 필수 텍스트 문자열입니다. PostgreSQL 엔진은 이 쿼리를 실행합니다. 쿼리 결과는 다른 파라미터에서 식별된 S3 버킷에 복사됩니다.
+ `:'s3_uri_1'` – 이 파라미터는 Amazon S3 파일을 식별하는 구조입니다. 이 예제에서는 변수를 사용하여 이전에 생성된 구조를 식별합니다. 대신 다음과 같이 `aws_commons.create_s3_uri` 함수 호출 내에 `aws_s3.query_export_to_s3` 함수 호출을 인라인을 포함시켜 구조를 생성할 수 있습니다.

  ```
  SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 
     aws_commons.create_s3_uri('amzn-s3-demo-bucket', 'sample-filepath', 'us-west-2') 
  );
  ```
+ `options :='format text'` – `options` 파라미터는 PostgreSQL `COPY` 인수를 포함하는 선택적 텍스트 문자열입니다. 복사 프로세스에서는 [PostgreSQL COPY](https://www.postgresql.org/docs/current/sql-copy.html) 명령의 인수 및 형식을 사용합니다.

지정된 파일이 Amazon S3 버킷에 없으면 생성됩니다. 파일이 이미 있는 경우 파일을 덮어씁니다. Amazon S3에서 내보낸 데이터에 액세스하는 구문은 다음과 같습니다.

```
s3-region://bucket-name[/path-prefix]/file-prefix
```

내보내는 데이터가 클 경우 각각 최대 크기가 약 6GB인 여러 파일에 저장됩니다. 추가 파일 이름의 파일 접두사도 동일하지만 `_partXX`가 추가됩니다. `XX`는 2, 3 등을 나타냅니다. 예를 들어 데이터 파일을 저장하는 경로를 다음과 같이 지정한다고 가정합니다.

```
s3-us-west-2://amzn-s3-demo-bucket/my-prefix
```

내보내기 시 세 개의 데이터 파일을 만들어야 하는 경우 Amazon S3 버킷에 다음 데이터 파일이 포함됩니다.

```
s3-us-west-2://amzn-s3-demo-bucket/my-prefix
s3-us-west-2://amzn-s3-demo-bucket/my-prefix_part2
s3-us-west-2://amzn-s3-demo-bucket/my-prefix_part3
```

이 함수에 대한 전체 참조 및 이 함수를 호출하는 추가 방법은 [aws\$1s3.query\$1export\$1to\$1s3](postgresql-s3-export-functions.md#aws_s3.export_query_to_s3) 단원을 참조하세요. Amazon S3에서 파일에 액세스하는 방법에 대한 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [객체 보기](https://docs.aws.amazon.com/AmazonS3/latest/userguide/OpeningAnObject.html)를 참조하세요.

## 사용자 지정 구분 기호를 사용하는 CSV 파일로 내보내기
<a name="postgresql-s3-export-examples-custom-delimiter"></a>

다음 예제에서는 [aws\$1s3.query\$1export\$1to\$1s3](postgresql-s3-export-functions.md#aws_s3.export_query_to_s3) 함수를 호출하여 사용자 지정 구분 기호를 사용하는 파일로 데이터를 내보내는 방법을 보여줍니다. 이 예제에서는 [PostgreSQL COPY](https://www.postgresql.org/docs/current/sql-copy.html) 명령의 인수를 사용하여 쉼표로 구분된 값(CSV) 형식과 콜론(:) 구분 기호를 지정합니다.

```
SELECT * from aws_s3.query_export_to_s3('select * from basic_test', :'s3_uri_1', options :='format csv, delimiter $$:$$');
```

## 인코딩을 사용하여 이진 파일로 내보내기
<a name="postgresql-s3-export-examples-encoded"></a>

다음 예제에서는 [aws\$1s3.query\$1export\$1to\$1s3](postgresql-s3-export-functions.md#aws_s3.export_query_to_s3) 함수를 호출하여 Windows-1253 인코딩이 있는 이진 파일로 데이터를 내보내는 방법을 보여줍니다.

```
SELECT * from aws_s3.query_export_to_s3('select * from basic_test', :'s3_uri_1', options :='format binary, encoding WIN1253');
```

# 함수 참조
<a name="postgresql-s3-export-functions"></a>

**Topics**
+ [aws\$1s3.query\$1export\$1to\$1s3](#aws_s3.export_query_to_s3)
+ [aws\$1commons.create\$1s3\$1uri](#aws_commons.create_s3_uri)

## aws\$1s3.query\$1export\$1to\$1s3
<a name="aws_s3.export_query_to_s3"></a>

PostgreSQL 쿼리 결과를 Amazon S3 버킷으로 내보냅니다. `aws_s3` 확장은 `aws_s3.query_export_to_s3` 함수를 제공합니다.

두 가지 필수 파라미터는 `query` 및 `s3_info`입니다. 이러한 파라미터는 내보낼 쿼리를 정의하고 내보낼 Amazon S3 버킷을 식별합니다. 다양한 내보내기 파라미터를 정의하기 위해 `options`라는 선택적 파라미터가 제공됩니다. `aws_s3.query_export_to_s3` 함수 사용 예는 [aws\$1s3.query\$1export\$1to\$1s3 함수를 사용하여 쿼리 데이터 내보내기](postgresql-s3-export-examples.md) 단원을 참조하십시오.

**구문**:

```
aws_s3.query_export_to_s3(
    query text,    
    s3_info aws_commons._s3_uri_1,    
    options text,
    kms_key text
)
```입력 파라미터

*query*  
PostgreSQL 엔진이 실행하는 SQL 쿼리를 포함하는 필수 텍스트 문자열입니다. 이 쿼리의 결과는 `s3_info` 파라미터에서 식별된 S3 버킷에 복사됩니다.

*s3\$1info*  
S3 객체에 대한 다음 정보를 포함하는 `aws_commons._s3_uri_1` 복합 키입니다.  
+ `bucket` – 파일을 포함할 Amazon S3 버킷의 이름입니다.
+ `file_path` – Amazon S3 파일 이름 및 경로입니다.
+ `region` - 버킷이 있는 AWS 리전입니다. AWS 리전 이름 및 연결된 값의 목록은 [리전 및 가용 영역](Concepts.RegionsAndAvailabilityZones.md) 섹션을 참조하십시오.

  현재, 이 값은 내보내는 DB 클러스터 의 AWS 리전과 동일해야 합니다. 기본값은 내보내는 DB 클러스터 의 AWS 리전입니다.
`aws_commons._s3_uri_1` 복합 구조를 생성하려면 [aws\$1commons.create\$1s3\$1uri](#aws_commons.create_s3_uri) 함수를 참조하십시오.

*options*  
PostgreSQL `COPY` 명령에 대한 인수를 포함하는 선택적 텍스트 문자열입니다. 이러한 인수는 내보낼 때 데이터를 복사하는 방법을 지정합니다. 자세한 내용은 [PostgreSQL COPY 설명서](https://www.postgresql.org/docs/current/sql-copy.html)를 참조하십시오.

*kms\$1key text*  
데이터를 내보낼 S3 버킷의 고객 관리형 KMS 키가 포함된 선택적 텍스트 문자열입니다.

### 대체 입력 파라미터
<a name="aws_s3.export_query_to_s3-alternate-parameters"></a>

`s3_info` 파라미터 대신에 확장 파라미터 세트를 사용하면 테스트에 도움이 됩니다. 다음은 `aws_s3.query_export_to_s3` 함수에 대한 추가 구문 변형입니다.

`s3_info` 파라미터를 사용해 Amazon S3 파일을 식별하는 대신 `bucket`, `file_path` 및 `region` 파라미터의 조합을 사용하십시오.

```
aws_s3.query_export_to_s3(
    query text,    
    bucket text,    
    file_path text,    
    region text,    
    options text,
    kms_key text
)
```

*query*  
PostgreSQL 엔진이 실행하는 SQL 쿼리를 포함하는 필수 텍스트 문자열입니다. 이 쿼리의 결과는 `s3_info` 파라미터에서 식별된 S3 버킷에 복사됩니다.

*bucket*  
파일이 들어 있는 Amazon S3 버킷의 이름이 포함된 필수 텍스트 문자열입니다.

*file\$1path*  
파일 경로를 포함한 Amazon S3 파일 이름이 포함된 필수 텍스트 문자열입니다.

*리전*  
버킷이 있는 AWS 리전을 포함하는 선택적 텍스트 문자열입니다. AWS 리전 이름 및 연결된 값의 목록은 [리전 및 가용 영역](Concepts.RegionsAndAvailabilityZones.md) 섹션을 참조하십시오.  
현재, 이 값은 내보내는 DB 클러스터 의 AWS 리전과 동일해야 합니다. 기본값은 내보내는 DB 클러스터 의 AWS 리전입니다.

*options*  
PostgreSQL `COPY` 명령에 대한 인수를 포함하는 선택적 텍스트 문자열입니다. 이러한 인수는 내보낼 때 데이터를 복사하는 방법을 지정합니다. 자세한 내용은 [PostgreSQL COPY 설명서](https://www.postgresql.org/docs/current/sql-copy.html)를 참조하십시오.

*kms\$1key text*  
데이터를 내보낼 S3 버킷의 고객 관리형 KMS 키가 포함된 선택적 텍스트 문자열입니다.

### 출력 파라미터
<a name="aws_s3.export_query_to_s3-output-parameters"></a>

```
aws_s3.query_export_to_s3(
    OUT rows_uploaded bigint,
    OUT files_uploaded bigint,
    OUT bytes_uploaded bigint
)
```

*rows\$1uploaded*  
지정된 쿼리에 대해 Amazon S3에 성공적으로 업로드된 테이블 행 수입니다.

*files\$1uploaded*  
Amazon S3에 업로드된 파일 수입니다. 파일은 약 6GB 크기로 생성됩니다. 생성된 각 추가 파일 이름에 `_partXX`가 추가됩니다. `XX`는 2, 3 등을 나타냅니다.

*bytes\$1uploaded*  
Amazon S3에 업로드된 총 바이트 수입니다.

### 예제
<a name="aws_s3.export_query_to_s3-examples"></a>

```
psql=> SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 'amzn-s3-demo-bucket', 'sample-filepath');
psql=> SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 'amzn-s3-demo-bucket', 'sample-filepath','us-west-2');
psql=> SELECT * from aws_s3.query_export_to_s3('select * from sample_table', 'amzn-s3-demo-bucket', 'sample-filepath','us-west-2','format text');
```

## aws\$1commons.create\$1s3\$1uri
<a name="aws_commons.create_s3_uri"></a>

Amazon S3 파일 정보를 저장할 `aws_commons._s3_uri_1` 구조를 생성합니다. `aws_commons.create_s3_uri` 함수의 `s3_info` 파라미터에서 [aws\$1s3.query\$1export\$1to\$1s3](#aws_s3.export_query_to_s3) 함수의 결과를 사용합니다. `aws_commons.create_s3_uri` 함수 사용 예는 [내보낼 Amazon S3 파일 경로 지정](postgresql-s3-export.md#postgresql-s3-export-file) 단원을 참조하십시오.

**구문**:

```
aws_commons.create_s3_uri(
   bucket text,
   file_path text,
   region text
)
```입력 파라미터

*버킷*  
파일의 Amazon S3 버킷 이름이 포함된 필수 텍스트 문자열입니다.

*file\$1path*  
파일 경로를 포함한 Amazon S3 파일 이름이 포함된 필수 텍스트 문자열입니다.

*리전*  
파일이 위치한 AWS 리전이 포함된 필수 텍스트 문자열입니다. AWS 리전 이름 및 연결된 값의 목록은 [리전 및 가용 영역](Concepts.RegionsAndAvailabilityZones.md) 섹션을 참조하십시오.

# Amazon S3 액세스 문제 해결
<a name="postgresql-s3-export-troubleshoot"></a>

데이터를 Amazon S3로 내보내려고 할 때 연결 문제가 발생하면 먼저 DB 인스턴스에 연결된 VPC 보안 그룹의 아웃바운드 액세스 규칙이 네트워크 연결을 허용하는지 확인합니다. 특히 보안 그룹에는 DB 인스턴스가 TCP 트래픽을 포트 443 및 IPv4 주소(0.0.0.0/0)로 보낼 수 있도록 허용하는 규칙이 있어야 합니다. 자세한 내용은 [보안 그룹을 생성하여 VPC 내의 DB 클러스터에 대한 액세스를 제공합니다.](CHAP_SettingUp_Aurora.md#CHAP_SettingUp_Aurora.SecurityGroup)을 참조하세요.

권장 사항은 다음을 참조하세요.
+ [Amazon Aurora 자격 증명 및 액세스 문제 해결](security_iam_troubleshoot.md)
+ [Amazon Simple Storage Service 사용 설명서](https://docs.aws.amazon.com/AmazonS3/latest/userguide/troubleshooting.html)의 *Amazon S3 문제 해결*
+ *IAM 사용 설명서*의 [Amazon S3 문제 해결 및 IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_iam-s3.html)

# Aurora PostgreSQL DB 클러스터 에서 AWS Lambda 함수 호출
<a name="PostgreSQL-Lambda"></a>

AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있는 이벤트 기반 컴퓨팅 서비스입니다. Aurora PostgreSQL을 비롯한 많은 AWS 서비스에서 사용할 수 있습니다. 예를 들어 Lambda 함수를 사용하여 데이터베이스의 이벤트 알림을 처리하거나 새 파일이 Amazon S3에 업로드될 때마다 파일에서 데이터를 로드할 수 있습니다. Lambda에 대한 자세한 내용은 AWS Lambda 개발자 안내서에서 [AWS Lambda란 무엇입니까?](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)를 참조하세요.**

**참고**  
AWS Lambda 함수 호출은 Aurora PostgreSQL 11.9 이상(Aurora Serverless v2 포함)에서 지원됩니다.

Lambda 함수와 함께 작동하도록 Aurora PostgreSQL을 설정하는 것은 AWS Lambda, IAM, VPC, Aurora PostgreSQL DB 클러스터를 포괄하는 다단계 프로세스입니다. 다음에서 필요한 단계에 대한 요약을 찾을 수 있습니다.

Lambda 함수에 대한 자세한 내용은 AWS Lambda 개발자 안내서의 [Lambda 시작하기](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html)와 [AWS Lambda 기본](https://docs.aws.amazon.com/lambda/latest/dg/lambda-foundation.html)을 참조하세요.**

**Topics**
+ [1단계: AWS Lambda에 대한 아웃바운드 연결을 위해 Aurora PostgreSQL DB 클러스터 구성](#PostgreSQL-Lambda-network)
+ [2단계: Aurora PostgreSQL DB 클러스터 및 AWS Lambda에 대한 IAM 구성](#PostgreSQL-Lambda-access)
+ [3단계: Aurora PostgreSQL DB 클러스터 용 `aws_lambda` 확장 설치](#PostgreSQL-Lambda-install-extension)
+ [4단계: Aurora PostgreSQL DB 클러스터와 함께 Lambda 도우미 함수 사용(선택 사항)](#PostgreSQL-Lambda-specify-function)
+ [5단계: Aurora PostgreSQL DB 클러스터에서 Lambda 함수 호출](#PostgreSQL-Lambda-invoke)
+ [6단계: 다른 사용자에게 Lambda 함수를 호출할 수 있는 권한 부여](#PostgreSQL-Lambda-grant-users-permissions)
+ [예제: Aurora PostgreSQL DB 클러스터에서 Lambda 함수 호출](PostgreSQL-Lambda-examples.md)
+ [Lambda 함수 오류 메시지](PostgreSQL-Lambda-errors.md)
+ [AWS Lambda 함수 및 파라미터 참조](PostgreSQL-Lambda-functions.md)

## 1단계: AWS Lambda에 대한 아웃바운드 연결을 위해 Aurora PostgreSQL DB 클러스터 구성
<a name="PostgreSQL-Lambda-network"></a>

Lambda 함수는 항상 AWS Lambda 서비스가 소유한 Amazon VPC 내에서 실행됩니다. Lambda는 이 VPC에 네트워크 액세스 및 보안 규칙을 적용하고 VPC를 자동으로 유지 관리 및 모니터링합니다. Aurora PostgreSQL DB 클러스터 는 네트워크 트래픽을 Lambda 서비스의 VPC로 전송합니다. 이를 구성하는 방법은 Aurora DB 클러스터의 프라이머리 DB 인스턴스가 퍼블릭인지 프라이빗인지에 따라 다릅니다.
+ **퍼블릭 Aurora PostgreSQL DB 클러스터** – DB 클러스터의 프라이머리 DB 인스턴스는 VPC의 퍼블릭 서브넷에 있고 인스턴스의 "PubliclyAccessible" 속성이 `true`인 경우 퍼블릭입니다. 이 속성의 값을 찾으려면 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI 명령을 사용합니다. 또는 AWS Management Console을 사용하여 **연결 및 보안** 탭을 열고 **퍼블릭 액세스 가능**이 **예**인지 확인할 수 있습니다. 인스턴스가 VPC의 퍼블릭 서브넷에 있는지 확인하려면 AWS Management Console 또는 AWS CLI를 사용할 수 있습니다.

  Lambda에 대한 액세스를 설정하려면 AWS Management Console 또는AWS CLI를 사용하여 VPC의 보안 그룹에 대한 아웃바운드 규칙을 생성합니다. 아웃바운드 규칙은 TCP가 포트 443을 사용하여 IPv4 주소(0.0.0.0/0)로 패킷을 보낼 수 있도록 지정합니다.
+ **프라이빗 Aurora PostgreSQL DB 클러스터** – 이 경우 인스턴스의 "PubliclyAccessible" 속성은 `false`이거나 프라이빗 서브넷에 있습니다. 인스턴스가 Lambda와 함께 작동하도록 허용하려면 Network Address Translation)NAT 게이트웨이를 사용할 수 있습니다. 자세한 내용은 [NAT 게이트웨이](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) 섹션을 참조하세요. 또는 Lambda용 VPC 엔드포인트로 VPC를 구성합니다. 자세한 내용은 *Amazon VPC 사용 설명서*의 [VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html)를 참조하세요. 엔드포인트는 Aurora PostgreSQL DB 클러스터의 Lambda 함수 호출에 대한 응답을 반환합니다. 

이제 VPC가 네트워크 수준에서 AWS Lambda VPC와 상호 작용할 수 있습니다. 다음으로 IAM을 사용하여 권한을 구성합니다.

## 2단계: Aurora PostgreSQL DB 클러스터 및 AWS Lambda에 대한 IAM 구성
<a name="PostgreSQL-Lambda-access"></a>

Aurora PostgreSQL DB 클러스터에서 Lambda 함수를 호출하려면 특정 권한이 필요합니다. 필요한 권한을 구성하려면 Lambda 함수 호출을 허용하는 IAM 정책을 생성하고 해당 정책을 역할에 할당한 다음 DB 클러스터에 그 역할을 적용하는 것이 좋습니다. 이 접근 방식은 DB 클러스터에 사용자를 대신하여 지정된 Lambda 함수를 호출할 수 있는 권한을 부여합니다. 다음 단계에서는 AWS CLI를 사용하여 이를 수행하는 방법을 보여줍니다.

**Lambda와 함께 클러스터를 사용하기 위한 IAM 권한 구성**

1. [create-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-policy.html) AWS CLI 명령을 사용하여 Aurora PostgreSQL DB 클러스터가 지정된 Lambda 함수를 간접적으로 호출하도록 허용하는 IAM 정책을 생성합니다. 문 ID(Sid)는 정책 문에 대한 선택적 설명이며 사용량에 영향을 미치지 않습니다. 이 정책은 Aurora DB 클러스터에 지정된 Lambda 함수를 호출하는 데 필요한 최소 권한을 부여합니다.

   ```
   aws iam create-policy  --policy-name rds-lambda-policy --policy-document '{
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
           "Sid": "AllowAccessToExampleFunction",
           "Effect": "Allow",
           "Action": "lambda:InvokeFunction",
           "Resource": "arn:aws:lambda:aws-region:444455556666:function:my-function"
           }
       ]
   }'
   ```

   또는 모든 Lambda 함수를 호출할 수 있도록 미리 정의된 `AWSLambdaRole` 정책을 사용할 수 있습니다. 자세한 내용은 [Lambda에 대한 자격 증명 기반 IAM 정책](https://docs.aws.amazon.com/lambda/latest/dg/access-control-identity-based.html#access-policy-examples-aws-managed)을 참조하세요.

1. [create-role](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/create-role.html) AWS CLI 명령을 사용하여 정책이 런타임에 수임할 수 있는 IAM 역할을 생성합니다.

   ```
   aws iam create-role  --role-name rds-lambda-role --assume-role-policy-document '{
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
           "Effect": "Allow",
           "Principal": {
               "Service": "rds.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
           }
       ]
   }'
   ```

1. [attach-role-policy](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/attach-role-policy.html) AWS CLI 명령을 사용하여 역할에 정책을 적용합니다.

   ```
   aws iam attach-role-policy \
       --policy-arn arn:aws:iam::444455556666:policy/rds-lambda-policy \
       --role-name rds-lambda-role --region aws-region
   ```

1.  [add-role-to-db-cluster](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/add-role-to-db-cluster.html)  AWS CLI 명령을 사용하여 Aurora PostgreSQL DB 클러스터 에 역할을 적용합니다. 이 마지막 단계를 통해 DB 클러스터의 데이터베이스 사용자가 Lambda 함수를 호출할 수 있습니다.

   ```
   aws rds add-role-to-db-cluster \
          --db-cluster-identifier my-cluster-name \
          --feature-name Lambda \
          --role-arn  arn:aws:iam::444455556666:role/rds-lambda-role   \
          --region aws-region
   ```

VPC 및 IAM 구성이 완료되면 이제 `aws_lambda` 확장을 설치할 수 있습니다. 확장은 언제든지 설치할 수 있지만 올바른 VPC 지원 및 IAM 권한을 설정할 때까지 `aws_lambda` 확장은 Aurora PostgreSQL DB 클러스터의 기능에 아무 것도 추가하지 않습니다.

## 3단계: Aurora PostgreSQL DB 클러스터 용 `aws_lambda` 확장 설치
<a name="PostgreSQL-Lambda-install-extension"></a>

AWS Lambda을 Aurora PostgreSQL DB 클러스터와 사용하려면 Aurora PostgreSQL DB 클러스터에 `aws_lambda` PostgreSQL 확장을 추가합니다. 이 확장은 Aurora PostgreSQL DB 클러스터에 PostgreSQL에서 Lambda 함수를 호출할 수 있는 기능을 제공합니다.

**Aurora PostgreSQL DB 클러스터 에 `aws_lambda` 확장 설치**

PostgreSQL `psql` 명령줄 또는 pgAdmin 도구를 사용하여 Aurora PostgreSQL DB 클러스터 에 연결합니다.

1. `rds_superuser` 권한이 있는 사용자로 Aurora PostgreSQL DB 클러스터 에 연결합니다. 기본 `postgres` 사용자가 예제에 표시됩니다.

   ```
   psql -h cluster-instance.444455556666.aws-region.rds.amazonaws.com -U postgres -p 5432
   ```

1. `aws_lambda` 확장을 설치합니다. `aws_commons` 확장도 필요합니다. 이 확장은 `aws_lambda` 및 기타 여러 PostgreSQL용 Aurora 확장에 대한 도우미 함수를 제공합니다. Aurora PostgreSQLDB 클러스터 에 아직 없는 경우 다음과 같이 `aws_lambda`와 함께 설치됩니다.

   ```
   CREATE EXTENSION IF NOT EXISTS aws_lambda CASCADE;
   NOTICE:  installing required extension "aws_commons"
   CREATE EXTENSION
   ```

`aws_lambda` 확장이 Aurora PostgreSQL DB 클러스터의 프라이머리 DB 인스턴스에 설치됩니다. 이제 Lambda 함수를 호출하기 위한 편의 구조를 생성할 수 있습니다.

## 4단계: Aurora PostgreSQL DB 클러스터와 함께 Lambda 도우미 함수 사용(선택 사항)
<a name="PostgreSQL-Lambda-specify-function"></a>

`aws_commons` 확장의 도우미 함수를 사용하여 PostgreSQL에서 보다 쉽게 호출할 수 있는 엔터티를 준비할 수 있습니다. 이렇게 하려면 Lambda 함수에 대한 다음 정보가 필요합니다.
+ **함수 이름(Function name)** – Lambda 함수의 이름, Amazon 리소스 이름(ARN), 버전 또는 별칭입니다. [2단계: 클러스터 및 Lambda에 대한 IAM 구성](#PostgreSQL-Lambda-access)에서 생성한 IAM 정책에는 ARN이 필요하므로 함수의 ARN을 사용하는 것이 좋습니다.
+ **AWS 리전** – (선택 사항) Aurora PostgreSQL DB 클러스터와 동일한 리전에 있지 않은 경우 Lambda 함수가 있는 AWS 리전입니다.

Lambda 함수 이름 정보를 보관하려면 [aws\$1commons.create\$1lambda\$1function\$1arn](PostgreSQL-Lambda-functions.md#aws_commons.create_lambda_function_arn) 함수를 사용합니다. 이 도우미 함수는 호출 함수에 필요한 세부 정보를 사용하여 `aws_commons._lambda_function_arn_1` 복합 구조를 생성합니다. 다음에서 이 복합 구조를 설정하는 세 가지 대안을 찾을 수 있습니다.

```
SELECT aws_commons.create_lambda_function_arn(
   'my-function',
   'aws-region'
) AS aws_lambda_arn_1 \gset
```

```
SELECT aws_commons.create_lambda_function_arn(
   '111122223333:function:my-function',
   'aws-region'
) AS lambda_partial_arn_1 \gset
```

```
SELECT aws_commons.create_lambda_function_arn(
   'arn:aws:lambda:aws-region:111122223333:function:my-function'
) AS lambda_arn_1 \gset
```

이러한 값은 [aws\$1lambda.invoke](PostgreSQL-Lambda-functions.md#aws_lambda.invoke) 함수 호출에 사용할 수 있습니다. 예를 보려면 [5단계: Aurora PostgreSQL DB 클러스터에서 Lambda 함수 호출](#PostgreSQL-Lambda-invoke) 섹션을 참조하세요.

## 5단계: Aurora PostgreSQL DB 클러스터에서 Lambda 함수 호출
<a name="PostgreSQL-Lambda-invoke"></a>

`aws_lambda.invoke` 함수는 `invocation_type`에 따라 동기식 또는 비동기식으로 작동합니다. 이 파라미터에 대한 두 가지 대안은 다음과 같이 `RequestResponse`(기본값) 및 `Event`입니다.
+ **`RequestResponse`** - 이 호출 유형은 *동기식*이며, 호출 유형을 지정하지 않고 호출할 때의 기본 동작입니다. 응답 페이로드에는 `aws_lambda.invoke` 함수의 결과가 포함됩니다. 워크플로가 진행하기 전에 Lambda 함수에서 결과를 수신해야 하는 경우 이 호출 유형을 사용합니다.
+ **`Event`** - 이 호출 유형은 *비동기식*이며, 응답에 결과가 포함된 페이로드가 포함되지 않습니다. 워크플로에서 처리를 계속하기 위해 Lambda 함수의 결과가 필요하지 않은 경우 이 호출 유형을 사용합니다.

설정에 대한 간단한 테스트로 `psql`을 사용하여 DB 인스턴스에 연결하고 명령줄에서 예제 함수를 호출할 수 있습니다. 다음 스크린샷에 표시된 간단한 Python 함수와 같이 Lambda 서비스에 기본 함수 중 하나가 설정되어 있다고 가정합니다.

![\[AWS Lambda에 대해 AWS CLI에 표시된 예제 Lambda 함수\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/lambda_simple_function.png)


**예제 함수 호출**

1. `psql` 또는 pgAdmin을 사용하여 프라이머리 DB 인스턴스에 연결합니다.

   ```
   psql -h cluster.444455556666.aws-region.rds.amazonaws.com -U postgres -p 5432
   ```

1. ARN을 사용하여 함수를 호출합니다.

   ```
   SELECT * from aws_lambda.invoke(aws_commons.create_lambda_function_arn('arn:aws:lambda:aws-region:444455556666:function:simple', 'us-west-1'), '{"body": "Hello from Postgres!"}'::json );
   ```

   응답은 다음과 같습니다.

   ```
   status_code |                        payload                        | executed_version | log_result
   -------------+-------------------------------------------------------+------------------+------------
            200 | {"statusCode": 200, "body": "\"Hello from Lambda!\""} | $LATEST          |
   (1 row)
   ```

호출 시도가 성공하지 못한 경우 [Lambda 함수 오류 메시지](PostgreSQL-Lambda-errors.md) 섹션을 참조하세요.

## 6단계: 다른 사용자에게 Lambda 함수를 호출할 수 있는 권한 부여
<a name="PostgreSQL-Lambda-grant-users-permissions"></a>

이 시점에서는 자신만 `rds_superuser` 권한으로 Lambda 함수를 호출할 수 있습니다. 자신이 생성하는 함수를 다른 사용자가 호출할 수 있도록 허용하려면 권한을 부여해야 합니다.

**Lambda 함수를 호출할 수 있는 권한을 부여하는 방법**

1. `psql` 또는 pgAdmin을 사용하여 프라이머리 DB 인스턴스에 연결합니다.

   ```
   psql -h cluster.444455556666.aws-region.rds.amazonaws.com -U postgres -p 5432
   ```

1. SQL 명령을 실행합니다.

   ```
   postgres=>  GRANT USAGE ON SCHEMA aws_lambda TO db_username;
   GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA aws_lambda TO db_username;
   ```

# 예제: Aurora PostgreSQL DB 클러스터에서 Lambda 함수 호출
<a name="PostgreSQL-Lambda-examples"></a>

다음에서 [aws\$1lambda.invoke](PostgreSQL-Lambda-functions.md#aws_lambda.invoke) 함수를 호출하는 몇 가지 예를 찾을 수 있습니다. 예제 대부분은 [4단계: Aurora PostgreSQL DB 클러스터와 함께 Lambda 도우미 함수 사용(선택 사항)](PostgreSQL-Lambda.md#PostgreSQL-Lambda-specify-function)에서 생성한 복합 구조 `aws_lambda_arn_1`을 사용하여 함수 세부 정보 전달을 단순화합니다. 비동기 호출의 예는 [예제: Lambda 함수의 비동기 (이벤트) 호출](#PostgreSQL-Lambda-Event) 섹션을 참조하세요. 나열된 다른 모든 예에서 동기 호출을 사용합니다.

Lambda 호출 유형에 대한 자세한 내용은 *AWS Lambda 개발자 안내서*의 [Lambda 함수 호출](https://docs.aws.amazon.com/lambda/latest/dg/lambda-invocation.html)을 참조하세요. 에 대한 자세한 내용은 `aws_lambda_arn_1` 단원을 참조하세요.[aws\$1commons.create\$1lambda\$1function\$1arn](PostgreSQL-Lambda-functions.md#aws_commons.create_lambda_function_arn).

**Topics**
+ [예제: Lambda 함수의 동기(RequestResponse) 호출](#PostgreSQL-Lambda-RequestResponse)
+ [예제: Lambda 함수의 비동기 (이벤트) 호출](#PostgreSQL-Lambda-Event)
+ [예: 함수 응답에서 Lambda 실행 로그 캡처](#PostgreSQL-Lambda-log-response)
+ [예제: Lambda 함수에 클라이언트 컨텍스트 포함](#PostgreSQL-Lambda-client-context)
+ [예제: 특정 버전의 Lambda 함수 호출](#PostgreSQL-Lambda-function-version)

## 예제: Lambda 함수의 동기(RequestResponse) 호출
<a name="PostgreSQL-Lambda-RequestResponse"></a>

다음은 동기식 Lambda 함수 호출의 두 가지 예입니다. 이러한 `aws_lambda.invoke` 함수 호출의 결과는 동일합니다.

```
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json);
```

```
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse');
```

파라미터는 다음과 같이 설명됩니다.
+ `:'aws_lambda_arn_1'` - 이 파라미터는 [4단계: Aurora PostgreSQL DB 클러스터와 함께 Lambda 도우미 함수 사용(선택 사항)](PostgreSQL-Lambda.md#PostgreSQL-Lambda-specify-function)에서 생성된 복합 구조를 `aws_commons.create_lambda_function_arn` 도우미 함수와 함께 식별합니다. 다음과 같이 `aws_lambda.invoke` 호출 내에서 이 구조를 인라인으로 생성할 수도 있습니다.

  ```
  SELECT * FROM aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function', 'aws-region'),
  '{"body": "Hello from Postgres!"}'::json
  );
  ```
+ `'{"body": "Hello from PostgreSQL!"}'::json` – Lambda 함수에 전달할 JSON 페이로드입니다.
+ `'RequestResponse'` – Lambda 호출 유형.

## 예제: Lambda 함수의 비동기 (이벤트) 호출
<a name="PostgreSQL-Lambda-Event"></a>

다음은 비동기 Lambda 함수 호출의 일례입니다. `Event` 호출 유형은 지정된 입력 페이로드를 사용하여 Lambda 함수 호출을 예약하고 즉시 반환합니다. Lambda 함수 결과에 의존하지 않는 특정 워크플로에서 `Event` 호출 유형을 사용합니다.

```
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'Event');
```

## 예: 함수 응답에서 Lambda 실행 로그 캡처
<a name="PostgreSQL-Lambda-log-response"></a>

`aws_lambda.invoke` 함수 호출에서 `log_type` 파라미터를 사용하여 함수 응답에 실행 로그의 마지막 4KB를 포함할 수 있습니다. 기본적으로 이 파라미터는 `None`으로 설정되지만 다음과 같이 `Tail`을 지정하여 응답에서 Lambda 실행 로그의 결과를 캡처할 수 있습니다.

```
SELECT *, select convert_from(decode(log_result, 'base64'), 'utf-8') as log FROM aws_lambda.invoke(:'aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'Tail');
```

응답에 실행 로그를 포함하도록 [aws\$1lambda.invoke](PostgreSQL-Lambda-functions.md#aws_lambda.invoke) 함수의 `log_type` 파라미터를 `Tail`로 설정합니다. `log_type` 파라미터의 기본값은 `None`입니다.

반환 문자열 `log_result` 은 `base64` 인코딩된 문자열입니다. `decode` 및 `convert_from` PostgreSQL 함수의 조합을 사용하여 내용을 디코딩할 수 있습니다.

에 대한 자세한 내용은 `log_type` 단원을 참조하세요.[aws\$1lambda.invoke](PostgreSQL-Lambda-functions.md#aws_lambda.invoke).

## 예제: Lambda 함수에 클라이언트 컨텍스트 포함
<a name="PostgreSQL-Lambda-client-context"></a>

`aws_lambda.invoke` 함수에는 다음과 같이 페이로드와 별도로 정보를 전달하는 데 사용할 수 있는 `context` 파라미터가 있습니다.

```
SELECT *, convert_from(decode(log_result, 'base64'), 'utf-8') as log FROM aws_lambda.invoke(:'aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'Tail');
```

클라이언트 컨텍스트를 포함하려면 [aws\$1lambda.invoke](PostgreSQL-Lambda-functions.md#aws_lambda.invoke) 함수의 `context` 파라미터에 JSON 객체를 사용하세요.

`context` 파라미터에 대한 자세한 내용은 [aws\$1lambda.invoke](PostgreSQL-Lambda-functions.md#aws_lambda.invoke) 레퍼런스를 참조하세요.

## 예제: 특정 버전의 Lambda 함수 호출
<a name="PostgreSQL-Lambda-function-version"></a>

`aws_lambda.invoke` 호출에 `qualifier` 파라미터를 포함하여 Lambda 함수의 특정 버전을 지정할 수 있습니다. 다음에서 버전의 별칭으로 `'custom_version'`을 사용하여 이를 수행하는 예를 찾을 수 있습니다.

```
SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json, 'RequestResponse', 'None', NULL, 'custom_version');
```

다음과 같이 대신 함수 이름 세부 정보와 함께 Lambda 함수 한정자를 제공할 수도 있습니다.

```
SELECT * FROM aws_lambda.invoke(aws_commons.create_lambda_function_arn('my-function:custom_version', 'us-west-2'),
'{"body": "Hello from Postgres!"}'::json);
```

`qualifier` 및 기타 파라미터에 대한 자세한 내용은 [aws\$1lambda.invoke](PostgreSQL-Lambda-functions.md#aws_lambda.invoke) 레퍼런스를 참조하세요.

# Lambda 함수 오류 메시지
<a name="PostgreSQL-Lambda-errors"></a>

다음 목록에서 가능한 원인 및 해결 방법을 비롯하여 오류 메시지에 대한 정보를 찾을 수 있습니다.
+ **VPC 구성 문제**

  VPC 구성 문제로 인해 연결을 시도할 때 다음과 같은 오류 메시지가 발생할 수 있습니다.

  ```
  ERROR:  invoke API failed
  DETAIL: AWS Lambda client returned 'Unable to connect to endpoint'.
  CONTEXT:  SQL function "invoke" statement 1
  ```

  이 오류의 일반적인 원인은 잘못 구성된 VPC 보안 그룹입니다. VPC가 Lambda VPC에 연결할 수 있도록 VPC 보안 그룹의 포트 443에서 TCP에 대한 아웃바운드 규칙이 열려 있는지 확인합니다.
+ **Lambda 함수를 호출하는 데 필요한 권한 부족**

  다음 오류 메시지 중 하나가 표시되면 함수를 호출하는 사용자(역할)에 적절한 권한이 없는 것입니다.

  ```
  ERROR:  permission denied for schema aws_lambda
  ```

  ```
  ERROR:  permission denied for function invoke
  ```

  Lambda 함수를 호출하려면 사용자(역할)에게 특정 권한을 부여해야 합니다. 자세한 내용은 [6단계: 다른 사용자에게 Lambda 함수를 호출할 수 있는 권한 부여](PostgreSQL-Lambda.md#PostgreSQL-Lambda-grant-users-permissions)을 참조하세요.
+ **Lambda 함수의 잘못된 오류 처리**

  요청 처리 중에 Lambda 함수가 예외를 발생키면, `aws_lambda.invoke` 는 다음과 같은 PostgreSQL 오류와 함께 실패합니다.

  ```
  SELECT * FROM aws_lambda.invoke('aws_lambda_arn_1', '{"body": "Hello from Postgres!"}'::json);
  ERROR:  lambda invocation failed
  DETAIL:  "arn:aws:lambda:us-west-2:555555555555:function:my-function" returned error "Unhandled", details: "<Error details string>".
  ```

  Lambda 함수 또는 PostgreSQL 애플리케이션의 오류를 처리해야 합니다.

# AWS Lambda 함수 및 파라미터 참조
<a name="PostgreSQL-Lambda-functions"></a>

다음은 Aurora PostgreSQL 에서 Lambda 간접 호출에 사용할 함수 및 파라미터에 대한 참조입니다.

**Topics**
+ [aws\$1lambda.invoke](#aws_lambda.invoke)
+ [aws\$1commons.create\$1lambda\$1function\$1arn](#aws_commons.create_lambda_function_arn)
+ [aws\$1lambda 파라미터](#aws_lambda.parameters)

## aws\$1lambda.invoke
<a name="aws_lambda.invoke"></a>

Aurora PostgreSQL DB 클러스터 에 대해 Lambda 함수를 실행합니다.

Lambda 함수 호출에 대한 자세한 내용은 *AWS Lambda 개발자 안내서*에서 [호출](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html)을 참조하세요.

**구문**

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

```
aws_lambda.invoke(
IN function_name TEXT,
IN payload JSON,
IN region TEXT DEFAULT NULL,
IN invocation_type TEXT DEFAULT 'RequestResponse',
IN log_type TEXT DEFAULT 'None',
IN context JSON DEFAULT NULL,
IN qualifier VARCHAR(128) DEFAULT NULL,
OUT status_code INT,
OUT payload JSON,
OUT executed_version TEXT,
OUT log_result TEXT)
```

```
aws_lambda.invoke(
IN function_name aws_commons._lambda_function_arn_1,
IN payload JSON,
IN invocation_type TEXT DEFAULT 'RequestResponse',
IN log_type TEXT DEFAULT 'None',
IN context JSON DEFAULT NULL,
IN qualifier VARCHAR(128) DEFAULT NULL,
OUT status_code INT,
OUT payload JSON,
OUT executed_version TEXT,
OUT log_result TEXT)
```

------
#### [ JSONB ]

```
aws_lambda.invoke(
IN function_name TEXT,
IN payload JSONB,
IN region TEXT DEFAULT NULL,
IN invocation_type TEXT DEFAULT 'RequestResponse',
IN log_type TEXT DEFAULT 'None',
IN context JSONB DEFAULT NULL,
IN qualifier VARCHAR(128) DEFAULT NULL,
OUT status_code INT,
OUT payload JSONB,
OUT executed_version TEXT,
OUT log_result TEXT)
```

```
aws_lambda.invoke(
IN function_name aws_commons._lambda_function_arn_1,
IN payload JSONB,
IN invocation_type TEXT DEFAULT 'RequestResponse',
IN log_type TEXT DEFAULT 'None',
IN context JSONB DEFAULT NULL,
IN qualifier VARCHAR(128) DEFAULT NULL,
OUT status_code INT,
OUT payload JSONB,
OUT executed_version TEXT,
OUT log_result TEXT
)
```

------입력 파라미터

**function\$1name**  
Lambda 함수의 식별 이름입니다. 값은 함수 이름, ARN 또는 부분 ARN일 수 있습니다. 가능한 형식 목록은 *AWS Lambda 개발자 안내서*에서 [Lambda 함수 이름 형식](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_RequestParameters)을 참조하세요.

*payload*  
Lambda 함수에 대한 입력입니다. 형식은 JSON 또는 JSONB 일 수 있습니다. 자세한 내용은 PostgreSQL 설명서의 [JSON 유형](https://www.postgresql.org/docs/current/datatype-json.html)을 참조하십시오.

*region*  
(선택 사항) 함수의 Lambda 리전입니다. 기본적으로 Aurora는 `function_name`의 전체 ARN에서 AWS 리전을 확인하거나 Aurora PostgreSQL DB 인스턴스 리전을 사용합니다. 이 리전 값이 `function_name` ARN에 제공된 값과 충돌하면 오류가 발생합니다.

*invocation\$1type*  
Lambda 함수의 호출 유형입니다. 값은 대소문자를 구분합니다. 가능한 값은 다음을 포함합니다.  
+ `RequestResponse` – 기본값입니다. Lambda 함수에 대한 이러한 유형의 호출은 동시에 발생하며 결과에 응답 페이로드를 돌려보냅니다. 워크플로가 Lambda 함수 결과 수신에 즉시 의존하는 경우 `RequestResponse` 호출 유형을 사용합니다.
+ `Event` – Lambda 함수에 대한 이러한 유형의 호출은 비동기식이며 반환된 페이로드없이 즉시 반환됩니다. 워크플로를 이동하기 전에 Lambda 함수 결과가 필요하지 않은 경우 `Event` 호출 유형을 사용합니다.
+ `DryRun` – 이 유형의 호출은 Lambda 함수를 실행하지 않고 액세스를 테스트합니다.

*log\$1type*  
`log_result` 출력 파라미터에 반환할 Lambda 로그의 유형입니다. 값은 대소문자를 구분합니다. 가능한 값은 다음을 포함합니다.  
+ – 추적 반환된 `log_result` 출력 파라미터에는 실행 로그의 마지막 4KB가 포함됩니다.
+ – 없음 Lambda 로그 정보가 반환되지 않았습니다.

*context*  
JSON 또는 JSONB 형식의 클라이언트 컨텍스트 사용할 필드에는 보다 `custom` 및 `env` 가 포함됩니다.

*한정자*  
호출할 Lambda 함수의 버전을 식별하는 한정자입니다. 이 값이 `function_name` ARN에 제공된 값과 충돌하면 오류가 발생합니다.출력 파라미터

*status\$1code*  
HTTP 상태 응답 코드입니다. 자세한 내용은 *AWS Lambda 개발자 안내서*에서 [Lambda 호출 응답 요소](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html#API_Invoke_ResponseElements)를 참조하세요.

*payload*  
실행된 Lambda 함수에서 반환된 정보입니다. 형식은 JSON 또는 JSONB입니다.

*executed\$1version*  
실행된 Lambda 함수 버전입니다.

*log\$1result*  
Lambda 함수가 호출 될 때 `log_type` 값이 `Tail` 인 경우 반환된 실행 로그 정보입니다. 결과에는 Base64로 인코딩된 실행 로그의 마지막 4KB가 포함됩니다.

## aws\$1commons.create\$1lambda\$1function\$1arn
<a name="aws_commons.create_lambda_function_arn"></a>

Lambda 파일 정보를 저장할 `aws_commons._lambda_function_arn_1` 구조를 생성합니다. aws\$1lambda.invoke `aws_commons.create_lambda_function_arn` 함수의 `function_name` 파라미터에 [aws\$1lambda.invoke](#aws_lambda.invoke) 함수의 결과를 사용할 수 있습니다.

**구문**

```
aws_commons.create_lambda_function_arn(
    function_name TEXT,
    region TEXT DEFAULT NULL
    )
    RETURNS aws_commons._lambda_function_arn_1
```입력 파라미터

*function\$1name*  
Lambda 함수 이름이 포함된 필수 텍스트 문자열입니다. 값은 함수 이름, 부분 ARN 또는 전체 ARN일 수 있습니다.

*region*  
Lambda 함수가 있는 AWS 리전을 포함하는 선택적 텍스트 문자열입니다. 리전 이름 및 연결된 값의 목록은 섹션을 참조하십시오[리전 및 가용 영역](Concepts.RegionsAndAvailabilityZones.md)

## aws\$1lambda 파라미터
<a name="aws_lambda.parameters"></a>

이 표에서는 `aws_lambda` 함수와 관련된 파라미터를 찾아볼 수 있습니다.


| 파라미터 | 설명 | 
| --- | --- | 
| `aws_lambda.connect_timeout_ms` | 이는 동적 파라미터이며 AWS Lambda에 연결하는 동안 최대 대기 시간을 설정합니다. 기본값은 `1000`입니다. 이 파라미터에 허용되는 값은 1\$1900,000입니다. | 
| `aws_lambda.request_timeout_ms` | 이는 동적 파라미터이며 AWS Lambda의 응답을 기다리는 동안 최대 대기 시간을 설정합니다. 기본값은 `3000`입니다. 이 파라미터에 허용되는 값은 1\$1900,000입니다. | 
| `aws_lambda.endpoint_override` | AWS Lambda에 연결하는 데 사용할 수 있는 엔드포인트를 지정합니다. 빈 문자열은 해당 리전의 기본 AWS Lambda 엔드포인트를 선택합니다. 이 정적 파라미터 변경을 적용하려면 데이터베이스를 다시 시작해야 합니다. | 

# Amazon CloudWatch Logs에 Aurora PostgreSQL 로그 게시
<a name="AuroraPostgreSQL.CloudWatch"></a>

Amazon CloudWatch Logs로 로그 데이터를 정기적으로 내보내도록 Aurora PostgreSQL DB 클러스터를 구성할 수 있습니다. 그러면 Aurora PostgreSQL DB 클러스터의 PostgreSQL 로그 이벤트가 Amazon CloudWatch Logs로 Amazon CloudWatch에 자동으로 *게시됩니다*. CloudWatch의 내보낸 로그 데이터는 Aurora PostgreSQL DB 클러스터의 *로그 그룹*에서 찾을 수 있습니다. 로그 그룹에는 클러스터에 있는 각 인스턴스의 PostgreSQL 로그 이벤트가 포함된 하나 이상의 *로그 스트림*이 포함됩니다.

CloudWatch Logs에 로그를 게시하면 클러스터의 PostgreSQL 로그 레코드를 내구성이 뛰어난 스토리지에 보관할 수 있습니다. CloudWatch Logs에서 사용 가능한 로그 데이터를 사용하여 클러스터 작업을 평가하고 개선할 수 있습니다. CloudWatch에서 경보를 생성하고 지표를 볼 수도 있습니다. 자세한 내용은 [Amazon CloudWatch에서 로그 이벤트 모니터링](AuroraPostgreSQL.CloudWatch.Monitor.md) 단원을 참조하세요.

**참고**  
CloudWatch Logs에 PostgreSQL 로그를 게시하면 스토리지가 사용되며 해당 스토리지에 대한 요금이 부과됩니다. 더 이상 필요하지 않은 CloudWatch Logs는 삭제해야 합니다.

기존 Aurora PostgreSQL DB 클러스터에 대한 로그 내보내기 옵션을 꺼도 CloudWatch Logs에 이미 보관된 데이터에는 영향을 미치지 않습니다. 기존 로그는 로그 보관 설정에 따라 CloudWatch Logs에서 계속 사용할 수 있습니다. CloudWatch Logs에 대한 자세한 내용은 [Amazon CloudWatch Logs란?](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html)을 참조하세요.

Aurora PostgreSQL은 다음 버전에 대해 CloudWatch Logs에 로그 게시를 지원합니다.
+ 16.1 이상의 모든 버전
+ 15.2 이상의 15 버전
+ 14.3 이상의 14 버전
+ 13.3 이상의 13 버전
+ 12.8 이상의 12 버전
+ 11.9 이상 11 버전

CloudWatch Logs에 로그를 게시하는 옵션을 활성화하고, CloudWatch Logs의 로그 이벤트를 모니터링하고, CloudWatch Logs Insights를 사용하여 로그를 분석하는 방법에 대한 자세한 내용은 다음 주제를 참조하세요.

**Topics**
+ [Amazon CloudWatch로 로그를 게시하는 옵션 설정](AuroraPostgreSQL.CloudWatch.Publishing.md)
+ [Amazon CloudWatch에서 로그 이벤트 모니터링](AuroraPostgreSQL.CloudWatch.Monitor.md)
+ [CloudWatch Logs Insights를 사용하여 PostgreSQL 로그 분석](AuroraPostgreSQL.CloudWatch.Analyzing.md)

# Amazon CloudWatch로 로그를 게시하는 옵션 설정
<a name="AuroraPostgreSQL.CloudWatch.Publishing"></a>

Aurora PostgreSQL DB 클러스터의 PostgreSQL 로그를 CloudWatch Logs에 게시하려면 클러스터에 대한 **Log export**(로그 내보내기) 옵션을 선택합니다. Aurora PostgreSQL DB 클러스터를 생성할 때 로그 내보내기 설정을 선택할 수 있습니다. 클러스터는 나중에 수정해도 됩니다. 기존 클러스터를 수정하면 해당 시점부터 각 인스턴스의 PostgreSQL 로그가 CloudWatch 클러스터에 게시됩니다. Aurora PostgreSQL의 경우 PostgreSQL 로그(`postgresql.log`)는 Amazon CloudWatch에 게시되는 유일한 로그입니다.

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 Aurora PostgreSQL DB 클러스터에 대한 로그 내보내기 기능을 설정 수 있습니다.

## 콘솔
<a name="AuroraPostgreSQL.CloudWatch.Console"></a>

로그 내보내기 옵션을 선택하여 Aurora PostgreSQL DB 클러스터에서 CloudWatch Logs로 PostgreSQL 로그 게시를 시작합니다.

**콘솔에서 로그 내보내기 기능을 켜려면**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택합니다.

1. CloudWatch Logs에 게시하려는 로그 데이터가 있는 Aurora PostgreSQL DB 클러스터를 선택합니다.

1. **수정**을 선택합니다.

1. **Log exports**(로그 내보내기) 섹션에서 **PostgreSQL log**(PostgreSQL 로그를 선택합니다.

1. **계속**을 선택한 후, 요약 페이지에서 **클러스터 수정**을 선택합니다.

## AWS CLI
<a name="AuroraPostgreSQL.CloudWatch.CLI"></a>

로그 내보내기 옵션을 켜서 AWS CLI를 사용하여 Amazon CloudWatch Logs에 Aurora PostgreSQL 로그 게시를 시작할 수 있습니다. 이를 위해서는 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) AWS CLI 명령을 다음 옵션과 함께 실행해야 합니다.
+ `--db-cluster-identifier` - DB 클러스터 식별자입니다.
+ `--cloudwatch-logs-export-configuration` - DB 클러스터에 대하여 CloudWatch Logs로 내보내기를 설정할 로그 유형의 구성 설정입니다.

또한 다음 AWS CLI 명령 중 하나를 실행하여 Aurora PostgreSQL 로그를 게시할 수 있습니다.
+ [create-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-cluster.html)
+ [restore-db-cluster-from-s3](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-s3.html)
+ [restore-db-cluster-from-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-from-snapshot.html)
+ [restore-db-cluster-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html)

다음 옵션으로 AWS CLI 명령 중 하나를 실행합니다.
+ `--db-cluster-identifier`—DB 클러스터 식별자입니다.
+ `--engine`—데이터베이스 엔진입니다.
+ `--enable-cloudwatch-logs-exports`—DB 클러스터에 대하여 CloudWatch Logs로 내보내기를 활성화할 로그 유형의 구성 설정입니다.

실행하는 AWS CLI 명령에 따라 다른 옵션이 필요할 수 있습니다.

**Example**  
다음 명령은 CloudWatch Logs에 로그 파일을 게시하도록 Aurora PostgreSQL DB 클러스터를 생성합니다.  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds create-db-cluster \
2.     --db-cluster-identifier my-db-cluster \
3.     --engine aurora-postgresql \
4.     --enable-cloudwatch-logs-exports postgresql
```
Windows의 경우:  

```
1. aws rds create-db-cluster ^
2.     --db-cluster-identifier my-db-cluster ^
3.     --engine aurora-postgresql ^
4.     --enable-cloudwatch-logs-exports postgresql
```

**Example**  
다음 명령은 CloudWatch Logs에 로그 파일을 게시하도록 기존 Aurora PostgreSQL DB 클러스터를 수정합니다. `--cloudwatch-logs-export-configuration` 값은 JSON 객체입니다. 이 객체의 키는 `EnableLogTypes`이고 그 값은 `postgresql` 및 `instance`입니다.  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds modify-db-cluster \
2.     --db-cluster-identifier my-db-cluster \
3.     --cloudwatch-logs-export-configuration '{"EnableLogTypes":["postgresql","instance"]}'
```
Windows의 경우:  

```
1. aws rds modify-db-cluster ^
2.     --db-cluster-identifier my-db-cluster ^
3.     --cloudwatch-logs-export-configuration '{\"EnableLogTypes\":[\"postgresql\",\"instance\"]}'
```
Windows 명령 프롬프트를 사용하는 경우 백슬래시(\$1)를 접두사로 추가하여 JSON 코드에서 큰 따옴표(")를 이스케이프해야 합니다.

**Example**  
다음 예에서는 CloudWatch Logs에 로그 파일 게시를 비활성화하도록 기존 Aurora PostgreSQL DB 클러스터를 수정합니다. `--cloudwatch-logs-export-configuration` 값은 JSON 객체입니다. 이 객체의 키는 `DisableLogTypes`이고 그 값은 `postgresql` 및 `instance`입니다.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-cluster \
    --db-cluster-identifier mydbinstance \
    --cloudwatch-logs-export-configuration '{"DisableLogTypes":["postgresql","instance"]}'
```
Windows의 경우:  

```
aws rds modify-db-cluster ^
    --db-cluster-identifier mydbinstance ^
    --cloudwatch-logs-export-configuration "{\"DisableLogTypes\":[\"postgresql\",\"instance\"]}"
```
Windows 명령 프롬프트를 사용하는 경우 백슬래시(\$1)를 접두사로 추가하여 JSON 코드에서 큰 따옴표(")를 이스케이프해야 합니다.

## RDS API
<a name="AuroraPostgreSQL.CloudWatch.API"></a>

로그 내보내기 옵션을 켜서 AWS CLI를 사용하여 Amazon CloudWatch Logs에 Aurora PostgreSQL 로그 게시를 시작할 수 있습니다. 이를 위해서는 다음 옵션과 함께 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) 작업을 실행해야 합니다.
+ `DBClusterIdentifier` - DB 클러스터 식별자입니다.
+ `CloudwatchLogsExportConfiguration` - DB 클러스터에 대하여 CloudWatch Logs로 내보내기를 활성화할 로그 유형의 구성 설정입니다.

또한 다음 RDS API 작업 중 하나를 실행하여 RDS API로 Aurora MySQL 로그를 게시할 수 있습니다.
+ [CreateDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBCluster.html)
+ [RestoreDBClusterFromS3](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterFromS3.html)
+ [RestoreDBClusterFromSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterFromSnapshot.html)
+ [RestoreDBClusterToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterToPointInTime.html)

다음 파라미터로 RDS API 작업을 실행합니다.
+ `DBClusterIdentifier`—DB 클러스터 식별자입니다.
+ `Engine`—데이터베이스 엔진입니다.
+ `EnableCloudwatchLogsExports`—DB 클러스터에 대하여 CloudWatch Logs로 내보내기를 활성화할 로그 유형의 구성 설정입니다.

실행하는 AWS CLI 명령에 따라 다른 파라미터가 필요할 수 있습니다.

# Amazon CloudWatch에서 로그 이벤트 모니터링
<a name="AuroraPostgreSQL.CloudWatch.Monitor"></a>

Aurora PostgreSQL 로그 이벤트를 게시하고 Amazon CloudWatch Logs로 사용할 수 있으므로 Amazon CloudWatch를 사용하여 이벤트를 보고 모니터링할 수 있습니다. 모니터링에 대한 자세한 내용은 [CloudWatch Logs로 전송된 로그 데이터 보기](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#ViewingLogData)를 참조하세요.

로그 내보내기를 켜면 다음 패턴과 같이 Aurora PostgreSQL 이름과 로그 유형이 있는 접두사 `/aws/rds/cluster/`를 사용하여 새 로그 그룹이 자동으로 생성됩니다.

```
/aws/rds/cluster/your-cluster-name/postgresql
```

예를 들어 `docs-lab-apg-small`이라는 Aurora PostgreSQL DB 클러스터가 로그를 Amazon CloudWatch Logs로 내보낸다고 가정합니다. Amazon CloudWatch의 로그 그룹 이름은 다음과 같습니다.

```
/aws/rds/cluster/docs-lab-apg-small/postgresql
```

지정된 이름이 있는 로그 그룹이 존재할 경우 Aurora은 이 로그 그룹을 사용하여 Aurora DB 클러스터의 로그 데이터를 내보냅니다. Aurora PostgreSQL DB 클러스터의 각 DB 인스턴스는 PostgreSQL 로그를 고유한 로그 스트림으로 로그 그룹에 업로드합니다. Amazon CloudWatch에서 사용할 수 있는 다양한 그래픽 및 분석 도구를 사용하여 로그 그룹과 해당 로그 스트림을 검사할 수 있습니다.

예를 들어 Aurora PostgreSQL DB 클러스터에서 로그 이벤트 내 정보를 검색하고 CloudWatch Logs 콘솔, AWS CLI 또는 CloudWatch Logs API를 사용하여 이벤트를 필터링할 수 있습니다. 자세한 내용은 *Amazon CloudWatch Logs 사용 설명서의* [로그 데이터 검색 및 필터링](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html)을 참조하세요.

기본적으로 새 로그 그룹은 보관 기간 동안 **Never expire**(만기 없음)를 사용하여 생성됩니다. CloudWatch Logs 콘솔, AWS CLI 또는 CloudWatch Logs API를 사용하여 로그 보관 기간을 변경할 수 있습니다. 자세한 내용은 *Amazon CloudWatch Logs 사용 설명서*의 [CloudWatch Logs에서 로그 데이터 보관 변경](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/SettingLogRetention.html)을 참조하세요.

**작은 정보**  
AWS CloudFormation 같은 자동 구성을 사용하여 미리 정의된 로그 보관 기간, 메트릭 필터 및 액세스 권한이 있는 로그 그룹을 생성할 수 있습니다.

# CloudWatch Logs Insights를 사용하여 PostgreSQL 로그 분석
<a name="AuroraPostgreSQL.CloudWatch.Analyzing"></a>

Aurora PostgreSQL DB 클러스터의 PostgreSQL 로그를 CloudWatch Logs로 게시하면 CloudWatch Logs Insights를 사용하여 Amazon CloudWatch Logs의 로그 데이터를 대화식으로 검색하고 분석할 수 있습니다. CloudWatch Logs Insights에는 잠재적 문제를 식별하고 수정 사항을 확인할 수 있도록 로그 데이터를 분석하기 위한 쿼리 언어, 샘플 쿼리 및 기타 도구가 포함되어 있습니다. 자세히 알아보려면 *Amazon CloudWatch Logs 사용 설명서*의 [CloudWatch Logs Insights에서 로그 데이터 분석](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)을 참조하세요.

**CloudWatch Logs 인사이트를 사용하여 PostgreSQL 로그 분석**

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

1. 탐색 창의 **로그**에서 **로그 인사이트**를 선택합니다.

1. **Select log group(s)**(로그 그룹 선택)에서 DB 클러스터의 로그 그룹을 선택합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-cwl-insights-select-log-group.png)

1. 쿼리 편집기에서 현재 표시되어 있는 쿼리를 삭제하고 다음을 입력한 후 **쿼리 실행(Run query)**을 선택합니다.

   ```
   ##Autovacuum execution time in seconds per 5 minute
   fields @message
   | parse @message "elapsed: * s" as @duration_sec
   | filter @message like / automatic vacuum /
   | display @duration_sec
   | sort @timestamp
   | stats avg(@duration_sec) as avg_duration_sec, 
   max(@duration_sec) as max_duration_sec 
   by bin(5 min)
   ```  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-cwl-insights-query.png)

1. **시각화(Visualization)** 탭을 선택합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-cwl-insights-visualization.png)

1. **대시보드에 추가(Add to dashboard)**를 선택합니다.

1. **대시보드 선택(Select a dachboard)**에서 대시보드를 선택하거나 이름을 입력하여 새 대시보드를 만듭니다.

1. **위젯 유형(Widget type)**에서 시각화에 사용할 위젯 유형을 선택합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-cwl-insights-dashboard.png)

1. (선택 사항) 로그 쿼리 결과에 따라 위젯을 더 추가합니다.

   1. **위젯 추가**를 선택합니다.

   1. 위젯 유형을 선택합니다(예:**행**).  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-cwl-insights-widget.png)

   1. **이 대시보드에 추가(Add to this dashboard)** 창에서 **로그**를 선택합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-cwl-add-logs-to-dashboard.png)

   1. **로그 그룹 선택(Select log group(s))**에서 DB 클러스터의 로그 그룹을 선택합니다.

   1. 쿼리 편집기에서 현재 표시되어 있는 쿼리를 삭제하고 다음을 입력한 후 **쿼리 실행(Run query)**을 선택합니다.

      ```
      ##Autovacuum tuples statistics per 5 min
      fields @timestamp, @message
      | parse @message "tuples: " as @tuples_temp
      | parse @tuples_temp "* removed," as @tuples_removed
      | parse @tuples_temp "remain, * are dead but not yet removable, " as @tuples_not_removable
      | filter @message like / automatic vacuum /
      | sort @timestamp
      | stats  avg(@tuples_removed) as avg_tuples_removed, 
      avg(@tuples_not_removable) as avg_tuples_not_removable 
      by bin(5 min)
      ```  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-cwl-insights-query2.png)

   1. **위젯 생성**을 선택합니다.

      대시보드가 다음 이미지와 비슷해야 합니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-cwl-insights-dashboard-two-graphs.png)

# Aurora PostgreSQL용 쿼리 실행 계획 및 피크 메모리 모니터링
<a name="AuroraPostgreSQL.Monitoring.Query.Plans"></a>

Aurora PostgreSQL DB 인스턴스에서 쿼리 실행 계획을 모니터링하여 현재 데이터베이스 로드에 영향을 미치는 실행 계획을 감지하고, `aurora_compute_plan_id` 파라미터를 사용하여 시간 경과에 따른 실행 계획의 성능 통계를 추적할 수 있습니다. 쿼리가 실행될 때마다 쿼리에서 사용하는 실행 계획에 식별자가 할당되고 동일한 계획의 후속 실행에서 동일한 식별자가 사용됩니다.

`aurora_compute_plan_id`는 Aurora PostgreSQL 버전 14.10, 15.5 이상 버전의 DB 파라미터 그룹에서 기본적으로 `OFF`로 설정되어 있습니다. 계획 식별자를 할당하려면 파라미터 그룹에서 `aurora_compute_plan_id`를 `ON`으로 설정합니다.

이 계획 식별자는 용도가 다른 여러 유틸리티에서 사용됩니다.

DB 인스턴스의 쿼리 피크 메모리 사용량을 모니터링하여 다음 버전에서 데이터베이스 메모리 사용량을 높이는 쿼리를 감지할 수 있습니다.
+ 16.3 이상의 모든 버전
+ 15.7 이상 버전
+ 14.12 이상 버전

쿼리가 실행될 때마다 쿼리에 사용된 피크 메모리가 추적됩니다. 쿼리는 일반적으로 여러 번 실행됩니다. 각 쿼리에 대해 모든 실행의 평균, 최소 및 최대 메모리 사용량 값을 볼 수 있습니다.

**Topics**
+ [Aurora 함수를 사용하여 쿼리 실행 계획 및 피크 메모리에 액세스](#AuroraPostgreSQL.Monitoring.Query.Plans.Functions)
+ [Aurora PostgreSQL 쿼리 실행 계획에 대한 파라미터 참조](#AuroraPostgreSQL.Monitoring.Query.Plans.Parameters)

## Aurora 함수를 사용하여 쿼리 실행 계획 및 피크 메모리에 액세스
<a name="AuroraPostgreSQL.Monitoring.Query.Plans.Functions"></a>

`aurora_compute_plan_id`를 사용하면 다음 함수를 사용하여 실행 계획에 액세스할 수 있습니다.
+ aurora\$1stat\$1activity
+ aurora\$1stat\$1plans

쿼리 피크 메모리에는 쿼리 처리가 시작되기 전에 할당된 메모리가 포함되지 않습니다. 피크 메모리 사용량은 각 쿼리의 계획 및 실행 단계에서 개별적으로 추적 및 보고됩니다.

![\[\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/aurora-apg-peakmemory.png)


다음 함수를 사용하여 쿼리 피크 메모리 통계에 액세스할 수 있습니다.
+ aurora\$1stat\$1statements
+ aurora\$1stat\$1plans

이러한 함수에 관한 자세한 내용은 [Aurora PostgreSQL 함수 참조](Appendix.AuroraPostgreSQL.Functions.md) 섹션을 참조하세요.

## Aurora PostgreSQL 쿼리 실행 계획에 대한 파라미터 참조
<a name="AuroraPostgreSQL.Monitoring.Query.Plans.Parameters"></a>

DB 파라미터 그룹의 아래 파라미터를 사용하여 쿼리 실행 계획을 모니터링할 수 있습니다.

**Topics**
+ [aurora\$1compute\$1plan\$1id](#aurora.compute_plan_id)
+ [aurora\$1stat\$1plans.minutes\$1until\$1recapture](#aurora.minutes_until_recapture)
+ [aurora\$1stat\$1plans.calls\$1until\$1recapture](#aurora.calls_until_recapture)
+ [aurora\$1stat\$1plans.with\$1costs](#aurora.with_costs)
+ [aurora\$1stat\$1plans.with\$1analyze](#aurora.with_analyze)
+ [aurora\$1stat\$1plans.with\$1timing](#aurora.with_timing)
+ [aurora\$1stat\$1plans.with\$1buffers](#aurora.with_buffers)
+ [aurora\$1stat\$1plans.with\$1wal](#aurora.with_wal)
+ [aurora\$1stat\$1plans.with\$1triggers](#aurora.with_triggers)

**참고**  
`aurora_stat_plans.with_*` 파라미터 구성은 새로 캡처한 계획에만 적용됩니다.

### aurora\$1compute\$1plan\$1id
<a name="aurora.compute_plan_id"></a>

`aurora_compute_plan_id`는 쿼리 실행 중에 계획 식별자가 할당되는지를 제어하는 구성 파라미터입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

### aurora\$1stat\$1plans.minutes\$1until\$1recapture
<a name="aurora.minutes_until_recapture"></a>

계획이 다시 캡처되기까지 걸리는 시간(분)입니다. 기본값은 0이며, 이 경우 계획을 다시 캡처할 수 없습니다. `aurora_stat_plans.calls_until_recapture` 임계값을 초과한 경우 계획을 다시 캡처할 수 있습니다.


| 기본값 | 허용된 값 | 설명 | 
| --- | --- | --- | 
| 0 | 0-1073741823 | 계획이 다시 캡처되기까지 걸리는 시간(분)을 설정합니다. | 

### aurora\$1stat\$1plans.calls\$1until\$1recapture
<a name="aurora.calls_until_recapture"></a>

플랜이 다시 캡처되기 전 해당 플랜을 호출한 횟수입니다. 기본값은 0이며, 이 경우 해당 횟수만큼 플랜이 호출된 후에는 계획을 다시 캡처할 수 없습니다. `aurora_stat_plans.minutes_until_recapture` 임계값을 초과한 경우 계획을 다시 캡처할 수 있습니다.


| 기본값 | 허용된 값 | 설명 | 
| --- | --- | --- | 
| 0 | 0-1073741823 | 플랜이 다시 캡처되기 전까지 가능한 호출 횟수를 설정합니다. | 

### aurora\$1stat\$1plans.with\$1costs
<a name="aurora.with_costs"></a>

예상 비용이 포함된 EXPLAIN 계획을 캡처합니다. 허용 값은 `on`, `off`입니다. 기본값은 `on`입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

### aurora\$1stat\$1plans.with\$1analyze
<a name="aurora.with_analyze"></a>

ANALYZE를 사용하여 EXPLAIN 계획을 제어합니다. 이 모드는 계획을 처음 캡처할 때만 사용됩니다. 허용 값은 `on`, `off`입니다. 기본값은 `off`입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

### aurora\$1stat\$1plans.with\$1timing
<a name="aurora.with_timing"></a>

ANALYZE 사용 시 설명에 계획 타이밍이 캡처됩니다. 기본값은 `on`입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

### aurora\$1stat\$1plans.with\$1buffers
<a name="aurora.with_buffers"></a>

ANALYZE 사용 시 설명에 계획 버퍼 사용량 통계가 캡처됩니다. 기본값은 `off`입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

### aurora\$1stat\$1plans.with\$1wal
<a name="aurora.with_wal"></a>

ANALYZE 사용 시 설명에 계획 WAL 사용량 통계가 캡처됩니다. 기본값은 `off`입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

### aurora\$1stat\$1plans.with\$1triggers
<a name="aurora.with_triggers"></a>

`ANALYZE` 사용 시 설명에 계획 트리거 실행 통계가 캡처됩니다. 기본값은 `off`입니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)

# Aurora PostgreSQL용 쿼리 실행 계획 관리
<a name="AuroraPostgreSQL.Optimize"></a>

Aurora PostgreSQL 쿼리 계획 관리는 Amazon Aurora PostgreSQL 호환 버전의 DB 클러스터와 함께 사용할 수 있는 선택적 기능입니다. 이 기능은 Aurora PostgreSQL DB 클러스터에 설치할 수 있는 `apg_plan_mgmt` 확장으로 패키징되어 있습니다. 쿼리 계획 관리를 사용하면 SQL 애플리케이션용 최적화 프로그램에서 생성한 쿼리 실행 계획을 관리할 수 있습니다. `apg_plan_mgmt` AWS 확장은 PostgreSQL 데이터베이스 엔진의 기본 쿼리 처리 기능을 기반으로 합니다.

다음에서는 Aurora PostgreSQL 쿼리 계획 관리 기능, 설정 방법 및 Aurora PostgreSQL DB 클러스터에서 이를 사용하는 방법에 대한 정보를 확인할 수 있습니다. 시작하기 전에 Aurora PostgreSQL 버전에 사용할 수 있는 `apg_plan_mgmt` 확장의 특정 버전에 대한 릴리스 노트를 검토하는 것이 좋습니다. 자세한 내용은 *Aurora PostgreSQL 릴리스 정보*의 [Aurora PostgreSQL apg\$1plan\$1mgmt 확장 버전](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html#AuroraPostgreSQL.Extensions.apg_plan_mgmt)을 참조하세요.

**Topics**
+ [Aurora PostgreSQL 쿼리 계획 관리 개요](AuroraPostgreSQL.Optimize.overview.md)
+ [Aurora PostgreSQL 쿼리 계획 관리에 대한 모범 사례](AuroraPostgreSQL.Optimize.BestPractice.md)
+ [Aurora PostgreSQL의 쿼리 계획 관리](AuroraPostgreSQL.Optimize.Start.md)
+ [Aurora PostgreSQL 실행 계획 캡처](AuroraPostgreSQL.Optimize.CapturePlans.md)
+ [Aurora PostgreSQL 관리형 계획 사용](AuroraPostgreSQL.Optimize.UsePlans.md)
+ [dba\$1plans 보기에서 Aurora PostgreSQL 쿼리 계획 검사](AuroraPostgreSQL.Optimize.ViewPlans.md)
+ [Aurora PostgreSQL 쿼리 계획 개선](AuroraPostgreSQL.Optimize.Maintenance.md)
+ [Aurora PostgreSQL 쿼리 계획 삭제](AuroraPostgreSQL.Optimize.Deleting.md)
+ [Aurora PostgreSQL용 관리형 계획 내보내기 및 가져오기](AuroraPostgreSQL.Optimize.Maintenance.ExportingImporting.md)
+ [Aurora PostgreSQL 쿼리 계획 관리를 위한 파라미터 참조](AuroraPostgreSQL.Optimize.Parameters.md)
+ [Aurora PostgreSQL 쿼리 계획 관리를 위한 함수 참조](AuroraPostgreSQL.Optimize.Functions.md)
+ [Aurora PostgreSQL 호환 에디션의 apg\$1plan\$1mgmt.dba\$1plans 뷰에 대한 참조](AuroraPostgreSQL.Optimize.dba_plans_view_Reference.md)
+ [쿼리 계획 관리의 고급 기능](AuroraPostgreSQL.QPM.Advanced.md)

# Aurora PostgreSQL 쿼리 계획 관리 개요
<a name="AuroraPostgreSQL.Optimize.overview"></a>

Aurora PostgreSQL 쿼리 계획 관리는 쿼리 계획 회귀를 유발할 수 있는 데이터베이스 변경과 관계없이 계획 안정성을 보장하도록 설계되었습니다. *쿼리 계획 회귀*는 최적화 프로그램이 시스템 또는 데이터베이스가 변경된 후 지정된 SQL 문에 대해 최적이 아닌 계획을 선택할 때 발생합니다. 통계, 제한 사항, 환경 설정, 쿼리 파라미터 바인딩, PostgreSQL 데이터베이스 엔진으로의 업그레이드에 대한 변경 사항을 들 경우 계획 회귀가 발생할 수 있습니다.

Aurora PostgreSQL 쿼리 계획 관리를 사용하면 쿼리 실행 계획을 변경하는 방식과 시점을 제어할 수 있습니다. Aurora PostgreSQL 쿼리 계획 관리의 이점은 다음과 같습니다.
+ 강제로 최적화 프로그램이 소수의 알려진 정상 계획 중 하나를 선택하도록 하여 계획의 안정성을 높일 수 있습니다.
+ 계획을 중앙에서 최적화한 다음, 최고의 계획을 전역에 배포할 수 있습니다.
+ 사용되지 않는 인덱스를 식별하고 인덱스 생성 및 삭제의 영향을 평가할 수 있습니다.
+ 최적화 프로그램에서 발견한 새로운 최소 비용 계획을 자동으로 감지할 수 있습니다.
+ 성능을 개선하는 계획 변경 사항만 승인하도록 선택할 수 있어 위험이 더 적은 새로운 최적화 프로그램 기능을 사용해 볼 수 있습니다.

쿼리 계획 관리에서 제공하는 도구를 사전에 사용하여 특정 쿼리에 가장 적합한 계획을 지정할 수 있습니다. 또는 쿼리 계획 관리를 사용하여 변화하는 환경에 대응하고 계획 회귀를 방지할 수 있습니다. 자세한 내용은 [Aurora PostgreSQL 쿼리 계획 관리에 대한 모범 사례](AuroraPostgreSQL.Optimize.BestPractice.md) 섹션을 참조하세요.

**Topics**
+ [지원되는 SQL 문](#AuroraPostgreSQL.Optimize.overview.features)
+ [쿼리 계획 관리의 제한 사항](#AuroraPostgreSQL.Optimize.overview.limitations)
+ [쿼리 계획 관리 용어](#AuroraPostgreSQL.Optimize.Start-terminology)
+ [Aurora PostgreSQL의 쿼리 계획 관리 버전](#AuroraPostgreSQL.Optimize.overview.versions)
+ [Aurora PostgreSQL 쿼리 계획 관리 활성화](#AuroraPostgreSQL.Optimize.Enable)
+ [Aurora PostgreSQL의 쿼리 계획 관리](#AuroraPostgreSQL.Optimize.Upgrade)
+ [Aurora PostgreSQL 쿼리 계획 관리 비활성화](#AuroraPostgreSQL.Optimize.Enable.turnoff)

## 지원되는 SQL 문
<a name="AuroraPostgreSQL.Optimize.overview.features"></a>

쿼리 계획 관리는 다음 유형의 SQL 문을 지원합니다.
+ 복잡성과 관계없이 SELECT, INSERT, UPDATE 또는 DELETE 문 
+ 준비된 문. 자세한 내용은 PostgreSQL 설명서의 [PREPARE](https://www.postgresql.org/docs/14/sql-prepare.html)를 참조하세요.
+ 동적 문(즉시 실행 모드에서 실행되는 문 포함). 자세한 내용은 PostgreSQL 설명서의 [Dynamic SQL](https://www.postgresql.org/docs/current/ecpg-dynamic.html)(동적 SQL) 및 [EXECUTE IMMEDIATE](https://www.postgresql.org/docs/current/ecpg-sql-execute-immediate.html)를 참조하세요.
+ 내장된 SQL 명령 및 문. 자세한 내용은 PostgreSQL 설명서의 [Embedded SQL Commands](https://www.postgresql.org/docs/current/ecpg-sql-commands.html)(내장된 SQL 명령)를 참조하세요.
+ 명명된 함수 내의 문. 자세한 내용은 PostgreSQL 설명서에서 [CREATE FUNCTION](https://www.postgresql.org/docs/current/sql-createfunction.html)을 참조하세요.
+ 임시 테이블을 포함하는 문
+ 프로시저 및 DO 블록 내부의 문

쿼리 계획 관리를 수동 모드에서 `EXPLAIN`와 함께 사용하면 실제로 실행하지 않고도 계획을 캡처할 수 있습니다. 자세한 내용은 [최적화 프로그램이 선택한 계획 분석](AuroraPostgreSQL.Optimize.UsePlans.md#AuroraPostgreSQL.Optimize.UsePlans.AnalyzePlans) 섹션을 참조하세요. 쿼리 계획 관리 모드(수동, 자동)에 대한 자세한 내용은 [Aurora PostgreSQL 실행 계획 캡처](AuroraPostgreSQL.Optimize.CapturePlans.md) 섹션을 참조하세요.

Aurora PostgreSQL 쿼리 계획 관리는 파티셔닝된 테이블, 상속, 행 수준의 보안 및 재귀적인 공통 테이블 표현식(CTE)을 비롯하여 모든 PostgreSQL 언어 기능을 지원합니다. 이러한 PostgreSQL 언어 기능에 대해 자세히 알아보려면 PostgreSQL 설명서의 [Table Partitioning](https://www.postgresql.org/docs/current/ddl-partitioning.html)(테이블 파티셔닝), [Row Security Policies](https://www.postgresql.org/docs/current/ddl-rowsecurity.html)(행 보안 정책), [WITH Queries (Common Table Expressions)](https://www.postgresql.org/docs/current/queries-with.html)(WITH 쿼리(공통 테이블 표현식)) 및 기타 주제를 참조하세요.

Aurora PostgreSQL 쿼리 계획 관리 기능의 다양한 버전에 관한 자세한 내용은 Aurora PostgreSQL 릴리스 정보**의 [Aurora PostgreSQL apg\$1plan\$1mgmt 확장 버전](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html#AuroraPostgreSQL.Extensions.apg_plan_mgmt)을 참조하세요.

## 쿼리 계획 관리의 제한 사항
<a name="AuroraPostgreSQL.Optimize.overview.limitations"></a>

Aurora PostgreSQL 쿼리 계획 관리의 현재 릴리스에는 다음과 같은 제한이 적용됩니다.
+ **시스템 관계를 참조하는 문에 대한 계획은 캡처되지 않음** - 시스템 관계를 참조하는 문(예: `pg_class`)은 캡처되지 않습니다. 이는 내부적으로 사용되는 대량의 시스템 생성 계획이 캡처되는 것을 방지하기 위해 의도적으로 설계된 것입니다. 보기 내부의 시스템 테이블에도 적용됩니다.
+ **Aurora PostgreSQL DB 클러스터에 더 큰 DB 인스턴스 클래스가 필요할 수 있음** - 워크로드에 따라 쿼리 계획 관리에 vCPU가 2개 이상인 DB 인스턴스 클래스가 필요할 수 있습니다. `max_worker_processes` 수는 DB 인스턴스 클래스 크기에 따라 제한됩니다. 2-vCPU DB 인스턴스 클래스(예: db.t3.medium)에서 제공된 `max_worker_processes`의 수가 지정된 워크로드에 충분하지 않을 수 있습니다. 쿼리 계획 관리를 사용하는 경우 Aurora PostgreSQL DB 클러스터클러스터에 vCPU가 2개 이상인 DB 인스턴스 클래스를 선택하는 것이 좋습니다.

  DB 인스턴스 클래스가 워크로드를 지원하지 못하는 경우, 쿼리 계획 관리에서 다음과 같은 오류 메시지가 발생합니다.

  ```
  WARNING: could not register plan insert background process
  HINT: You may need to increase max_worker_processes.
  ```

  이 경우 Aurora PostgreSQL DB 클러스터를 메모리가 더 많은 DB 인스턴스 클래스 크기로 스케일 업해야 합니다. 자세한 내용은 [DB 인스턴스 클래스에 지원되는 DB 엔진](Concepts.DBInstanceClass.SupportAurora.md) 섹션을 참조하세요.
+ **세션에 이미 저장된 계획은 영향을 받지 않음** - 쿼리 계획 관리는 애플리케이션 코드를 변경하지 않고도 쿼리 계획에 영향을 줄 수 있는 방법을 제공합니다. 그러나 일반 계획이 이미 기존 세션에 저장되어 있는 경우 해당 쿼리 계획을 변경하려면 먼저 DB 클러스터 파라미터 그룹에서 `plan_cache_mode`를 `force_custom_plan`으로 설정해야 합니다.
+ `apg_plan_mgmt.dba_plans` 및 `pg_stat_statements`의 `queryid`는 다음과 같은 경우 분기될 수 있습니다.
  + 객체는 apg\$1plan\$1mgmt.dba\$1plans에 저장 후 삭제되고 다시 생성됩니다.
  + `apg_plan_mgmt.plans` 테이블을 다른 클러스터에서 가져왔습니다.

Aurora PostgreSQL 쿼리 계획 관리 기능의 다양한 버전에 관한 자세한 내용은 *Aurora PostgreSQL 릴리스 정보*의 [Aurora PostgreSQL apg\$1plan\$1mgmt 확장 버전](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html#AuroraPostgreSQL.Extensions.apg_plan_mgmt)을 참조하세요.

## 쿼리 계획 관리 용어
<a name="AuroraPostgreSQL.Optimize.Start-terminology"></a>

이 주제에서 사용되는 용어는 다음과 같습니다.

**관리형 문**  
쿼리 계획 관리 상태에서 최적화 프로그램이 캡처하는 SQL 문입니다. 관리형 문에는`apg_plan_mgmt.dba_plans` 보기에 하나 이상의 쿼리 실행 계획이 저장되어 있습니다.

**계획 기준**  
주어진 관리형 문에 대해 승인된 계획 세트입니다. 즉, `dba_plan` 뷰에서 `status` 열에 '승인됨'이 있는 관리형 문에 대한 모든 계획입니다.

**계획 기록**  
주어진 관리형 문에 대해 캡처된 모든 계획의 세트입니다. 계획 기록에는 상태와 관계없이 해당 문에 대해 캡처된 모든 계획이 포함됩니다.

**쿼리 계획 회귀**  
최적화 프로그램이 새 PostgreSQL 버전이나 통계 변경과 같이 데이터베이스에 특정 변경이 있기 전보다 덜 최적의 계획을 선택하는 경우입니다.

## Aurora PostgreSQL의 쿼리 계획 관리 버전
<a name="AuroraPostgreSQL.Optimize.overview.versions"></a>

쿼리 계획 관리는 현재 사용 가능한 모든 Aurora PostgreSQL 릴리스에서 지원됩니다. 자세한 정보는 Aurora PostgreSQL 릴리스 정보**에서 [Amazon Aurora PostgreSQL 업데이트 내용](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html)의 목록을 참조하세요.

`apg_plan_mgmt` 확장을 설치하면 Aurora PostgreSQL DB 클러스터에 쿼리 계획 관리 기능이 추가됩니다. PostgreSQL의 버전마다 지원하는 `apg_plan_mgmt` 확장 버전이 다릅니다. 사용 중인 Aurora PostgreSQL 버전의 최신 릴리스로 쿼리 계획 관리 확장을 업그레이드하는 것이 좋습니다.

**참고**  
각 `apg_plan_mgmt` 확장 버전에 대한 릴리스 정보는 Aurora PostgreSQL 릴리스 정보에서** [Aurora PostgreSQL apg\$1plan\$1mgmt extension versions](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html#AuroraPostgreSQL.Extensions.apg_plan_mgmt)(Aurora PostgreSQL apg\$1plan\$1mgmt 확장 버전)를 참조하세요.

인스턴스에 연결하고 `psql` 및 metaccommand \$1dx를 사용하여 아래와 같이 확장을 나열하면 클러스터에서 실행 중인 버전을 확인할 수 있습니다.

```
labdb=> \dx
                       List of installed extensions
     Name      | Version |    Schema     |                            Description
---------------+---------+---------------+-------------------------------------------------------------------
 apg_plan_mgmt | 1.0     | apg_plan_mgmt | Amazon Aurora with PostgreSQL compatibility Query Plan Management
 plpgsql       | 1.0     | pg_catalog    | PL/pgSQL procedural language
(2 rows)
```

출력은 이 클러스터가 1.0 버전의 확장을 사용하고 있음을 보여줍니다. 특정 Aurora PostgreSQL 버전에서는 특정 `apg_plan_mgmt` 버전만 사용할 수 있습니다. 경우에 따라 최신 버전의 쿼리 계획 관리로 업그레이드할 수 있도록 Aurora PostgreSQL DB 클러스터를 새로운 마이너 릴리스로 업그레이드하거나 패치를 적용해야 할 수 있습니다. 출력에 표시된 `apg_plan_mgmt` 버전 1.0은 Aurora PostgreSQL 버전 10.17 DB 클러스터에서 가져온 것으로, 최신 `apg_plan_mgmt` 버전은 사용할 수 없습니다. 이 경우 Aurora PostgreSQL DB 클러스터를 더 이후 버전의 PostgreSQL로 업그레이드해야 합니다.

Aurora PostgreSQL DB 클러스터를 새로운 버전의 PostgreSQL로 업그레이드하는 것에 대한 자세한 내용은 [Amazon Aurora PostgreSQL에 대한 데이터베이스 엔진 업데이트](AuroraPostgreSQL.Updates.md) 섹션을 참조하세요.

`apg_plan_mgmt` 확장을 업그레이드하는 방법을 알아보려면 [Aurora PostgreSQL의 쿼리 계획 관리](#AuroraPostgreSQL.Optimize.Upgrade) 섹션을 참조하세요.

## Aurora PostgreSQL 쿼리 계획 관리 활성화
<a name="AuroraPostgreSQL.Optimize.Enable"></a>

Aurora PostgreSQL DB 클러스터의 쿼리 계획 관리를 설정하려면 확장을 설치하고 여러 DB 클러스터 파라미터 설정을 변경해야 합니다. `apg_plan_mgmt` 확장을 설치하고 Aurora PostgreSQL DB 클러스터의 기능을 활성화하려면 `rds_superuser` 권한이 필요합니다.

확장을 설치하면 `apg_plan_mgmt`라는 새 역할이 생성됩니다. 이 역할을 통해 데이터베이스 사용자는 쿼리 계획을 보고, 관리하고, 유지 관리할 수 있습니다. `rds_superuser` 권한이 있는 관리자는 필요에 따라 데이터베이스 사용자에게 `apg_plan_mgmt` 역할을 부여해야 합니다.

`rds_superuser` 역할을 가진 사용자만 다음 절차를 완료할 수 있습니다. `rds_superuser` 확장 및 해당 `apg_plan_mgmt` 역할을 생성하는 데 `apg_plan_mgmt`이(가) 필요합니다. 사용자가 `apg_plan_mgmt` 확장을 관리하려면 `apg_plan_mgmt` 역할을 부여받아야 합니다.

**Aurora PostgreSQL DB 클러스터에 쿼리 계획 관리를 활성화하는 방법**

다음은 Aurora PostgreSQL DB 클러스터로 제출되는 모든 SQL 문에 대해 쿼리 계획 관리를 활성화하는 단계입니다. 이를 *자동* 모드라고 합니다. 모드 간의 차이에 대한 자세한 내용은 [Aurora PostgreSQL 실행 계획 캡처](AuroraPostgreSQL.Optimize.CapturePlans.md) 섹션을 참조하세요.

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. Aurora PostgreSQL DB 클러스터에 사용할 사용자 지정 DB 클러스터 파라미터 그룹을 생성합니다. 쿼리 계획 관리를 활성화하고 동작을 설정하려면 특정 파라미터를 변경해야 합니다. 자세한 내용은 [Amazon Aurora에서 DB 파라미터 그룹 생성](USER_WorkingWithParamGroups.Creating.md) 섹션을 참조하세요.

1. 사용자 지정 DB 클러스터 파라미터 그룹을 열고 다음 이미지에 표시된 대로 `rds.enable_plan_management` 파라미터를 `1`로 설정합니다.  
![\[DB 클러스터 파라미터 그룹의 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/aurora-qpm-custom-db-cluster-param-change-1.png)

   자세한 내용은 [Amazon Aurora에서 DB 클러스터 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.ModifyingCluster.md) 섹션을 참조하세요.

1. 인스턴스 수준에서 쿼리 계획 파라미터를 설정하는 데 사용할 수 있는 사용자 지정 DB 파라미터 그룹을 생성합니다. 자세한 내용은 [Amazon Aurora에서 DB 클러스터 파라미터 그룹 생성](USER_WorkingWithParamGroups.CreatingCluster.md) 섹션을 참조하세요.

1. Aurora PostgreSQL DB 클러스터의 쓰기 인스턴스를 수정하여 사용자 지정 DB 파라미터 그룹을 사용하도록 합니다. 자세한 내용은 [DB 클러스터에서 DB 인스턴스 수정](Aurora.Modifying.md#Aurora.Modifying.Instance) 섹션을 참조하세요.

1. Aurora PostgreSQL DB 클러스터를 수정하여 사용자 지정 DB 파라미터 그룹을 사용하도록 합니다. 자세한 내용은 [콘솔, CLI, API를 사용하여 DB 클러스터 수정](Aurora.Modifying.md#Aurora.Modifying.Cluster) 섹션을 참조하세요.

1. DB 인스턴스를 재부팅하여 사용자 지정 파라미터 그룹 설정을 활성화합니다.

1. `psql` 또는 `pgAdmin`을 사용하여 Aurora PostgreSQL DB 클러스터의 DB 인스턴스 엔드포인트에 연결합니다. 다음 예에서는 `rds_superuser` 역할에 기본 `postgres` 계정을 사용합니다.

   ```
   psql --host=cluster-instance-1.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=my-db
   ```

1. DB 인스턴스에 다음과 같이 `apg_plan_mgmt` 확장을 생성합니다.

   ```
   labdb=> CREATE EXTENSION apg_plan_mgmt;
   CREATE EXTENSION
   ```
**작은 정보**  
애플리케이션의 템플릿 데이터베이스에 `apg_plan_mgmt` 확장을 설치합니다. 기본 템플릿 데이터베이스의 이름은 `template1`입니다. 자세한 내용은 PostgreSQL 설명서의 [Template Databases](https://www.postgresql.org/docs/current/manage-ag-templatedbs.html)(템플릿 데이터베이스)를 참조하세요.

1. `apg_plan_mgmt.capture_plan_baselines` 파라미터를 `automatic`으로 변경합니다. 이 설정을 사용하면 옵티마이저는 계획되거나 두 번 이상 실행되는 모든 SQL 문에 대한 계획을 생성합니다.
**참고**  
쿼리 계획 관리에는 특정 SQL 문에 사용할 수 있는 *수동* 모드도 있습니다. 자세한 내용은 [Aurora PostgreSQL 실행 계획 캡처](AuroraPostgreSQL.Optimize.CapturePlans.md)를 참조하세요.

1. `apg_plan_mgmt.use_plan_baselines` 파라미터의 값을 '켜기'로 변경합니다. 이 파라미터를 사용하면 최적화 프로그램이 계획 기준에서 문에 대한 계획을 선택합니다. 자세한 내용은 [Aurora PostgreSQL 관리형 계획 사용](AuroraPostgreSQL.Optimize.UsePlans.md)를 참조하세요.
**참고**  
인스턴스를 재부팅하지 않고도 세션의 이러한 동적 파라미터 값을 수정할 수 있습니다.

쿼리 계획 관리 설정이 완료되면 쿼리 계획을 보거나 관리하거나 유지 관리해야 하는 모든 데이터베이스 사용자에게 `apg_plan_mgmt` 역할을 부여해야 합니다.

## Aurora PostgreSQL의 쿼리 계획 관리
<a name="AuroraPostgreSQL.Optimize.Upgrade"></a>

사용 중인 Aurora PostgreSQL 버전의 최신 릴리스로 쿼리 계획 관리 확장을 업그레이드하는 것이 좋습니다.

1. Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 `rds_superuser` 권한을 가진 사용자로 연결합니다. 인스턴스를 설정할 때 기본 이름을 유지했다면 `postgres`로 연결합니다. 이 예에서는 `psql` 사용 방법을 보여주지만 원하는 경우 pgAdmin을 사용할 수도 있습니다.

   ```
   psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
   ```

1. 다음 쿼리를 실행하여 확장을 업그레이드합니다.

   ```
   ALTER EXTENSION apg_plan_mgmt UPDATE TO '2.1';
   ```

1. [apg\$1plan\$1mgmt.validate\$1plans](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.validate_plans) 함수를 사용하여 모든 계획의 해시를 업데이트합니다. 최적화 프로그램은 모든 '승인됨', '승인되지 않음, '거부됨' 상태의 계획을 검증하여 확장의 새 버전에서 실행 가능한 계획인지 확인합니다.

   ```
   SELECT apg_plan_mgmt.validate_plans('update_plan_hash');
   ```

   이 함수 사용에 대한 자세한 내용은 [계획 검증](AuroraPostgreSQL.Optimize.Deleting.md#AuroraPostgreSQL.Optimize.Maintenance.ValidatingPlans) 섹션을 참조하세요.

1. [apg\$1plan\$1mgmt.reload](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.reload) 함수를 사용하여 공유 메모리의 모든 계획을 dba\$1plan 보기에서 검증된 계획으로 새로 고칩니다.

   ```
   SELECT apg_plan_mgmt.reload();
   ```

쿼리 계획 관리에 사용할 수 있는 모든 함수에 대한 자세한 내용은 [Aurora PostgreSQL 쿼리 계획 관리를 위한 함수 참조](AuroraPostgreSQL.Optimize.Functions.md) 섹션을 참조하세요.

## Aurora PostgreSQL 쿼리 계획 관리 비활성화
<a name="AuroraPostgreSQL.Optimize.Enable.turnoff"></a>

언제든지 `apg_plan_mgmt.use_plan_baselines` 및 `apg_plan_mgmt.capture_plan_baselines`를 비활성화하여 쿼리 계획 관리를 비활성화할 수 있습니다.

```
labdb=> SET apg_plan_mgmt.use_plan_baselines = off;

labdb=> SET apg_plan_mgmt.capture_plan_baselines = off;
```

# Aurora PostgreSQL 쿼리 계획 관리에 대한 모범 사례
<a name="AuroraPostgreSQL.Optimize.BestPractice"></a>

쿼리 계획 관리를 사용하면 쿼리 실행 계획을 변경하는 방식과 변경해야 하는 경우를 제어할 수 있습니다. DBA로서 QPM을 사용할 때의 주요 목표는 데이터베이스에 변경 사항이 있을 때 역행을 방지하고, 옵티마이저의 새 계획 사용 여부를 제어하는 것입니다. 아래에서 쿼리 계획 관리를 사용하는 데 권장되는 모범 사례를 확인할 수 있습니다. 사전 대비형 계획 관리와 사후 대응형 계획 관리는 새 계획의 사용이 승인되는 방식과 시점이 다릅니다.

**Contents**
+ [성능 역행 문제를 방지하기 위한 사전 대비형 계획 관리](#AuroraPostgreSQL.Optimize.BestPractice.Proactive)
  + [메이저 버전 업그레이드 후 계획 안정성 보장](#AuroraPostgreSQL.Optimize.BestPractice.MajorVersionUpgrade)
+ [성능 역행을 찾아내어 복구하기 위한 사후 대응형 계획 관리](#AuroraPostgreSQL.Optimize.BestPractice.Reactive)

## 성능 역행 문제를 방지하기 위한 사전 대비형 계획 관리
<a name="AuroraPostgreSQL.Optimize.BestPractice.Proactive"></a>

계획 성능 회귀가 발생하지 않게 하려면, 새로 검색된 계획의 성능을 승인된 계획의 기존 기준 성능과 비교한 다음 가장 빠른 계획 세트를 새 기준으로 자동 승인하는 프로시저를 실행하여 계획 베이스라인을 개선**해야 합니다. 이렇게 하면 시간이 지남에 따라 더 빠른 계획이 검색되어 계획 기준이 개선됩니다.

1. 개발 환경에서 성능 또는 시스템 처리량에 가장 큰 영향을 미치는 SQL 문을 식별합니다. 그런 다음 [특정 SQL 문에 대해 계획을 수동으로 캡처](AuroraPostgreSQL.Optimize.CapturePlans.md#AuroraPostgreSQL.Optimize.CapturePlans.Manual) 및 [계획 자동 캡처](AuroraPostgreSQL.Optimize.CapturePlans.md#AuroraPostgreSQL.Optimize.CapturePlans.Automatic)에 설명된 대로 이러한 설명문에 대해 계획을 캡처합니다.

1. 개발 환경에서 캡처한 계획을 내보내고 프로덕션 환경으로 가져옵니다. 자세한 내용은 [Aurora PostgreSQL용 관리형 계획 내보내기 및 가져오기](AuroraPostgreSQL.Optimize.Maintenance.ExportingImporting.md) 섹션을 참조하세요.

1. 프로덕션 단계에서 애플리케이션을 실행하고 승인된 관리형 계획 사용을 적용합니다. 자세한 내용은 [Aurora PostgreSQL 관리형 계획 사용](AuroraPostgreSQL.Optimize.UsePlans.md) 섹션을 참조하세요. 애플리케이션이 실행되는 동안 최적화 프로그램에서 검색되는 새 계획도 추가합니다. 자세한 내용은 [계획 자동 캡처](AuroraPostgreSQL.Optimize.CapturePlans.md#AuroraPostgreSQL.Optimize.CapturePlans.Automatic) 섹션을 참조하세요.

1. 미승인 계획을 분석하고 잘 수행되는 계획을 승인됩니다. 자세한 내용은 [계획 성능 평가](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance) 섹션을 참조하세요.

1. 애플리케이션이 계속 실행되는 동안 최적화 프로그램은 해당되는 경우 새 계획을 사용하기 시작합니다.

### 메이저 버전 업그레이드 후 계획 안정성 보장
<a name="AuroraPostgreSQL.Optimize.BestPractice.MajorVersionUpgrade"></a>

PostgreSQL의 각 메이저 버전에는 성능 개선을 위해 설계된 쿼리 옵티마이저의 개선 사항 및 변경 사항이 포함되어 있습니다. 하지만 이전 버전에서 옵티마이저가 생성한 쿼리 실행 계획은 새로 업그레이드된 버전에서 성능 회귀를 일으킬 수 있습니다. 쿼리 계획 관리를 사용하여 이 성능 문제를 해결하고 메이저 버전 업그레이드 후 계획 안정성을 보장할 수 있습니다.

최적화 프로그램은 동일한 문에 대해 승인된 계획이 두 개 이상인 경우에도 항상 최소 비용의 승인된 계획을 사용합니다. 업그레이드 후 최적화 프로그램이 새 계획을 발견할 수 있지만 이러한 계획은 승인되지 않은 계획으로 저장됩니다. 이러한 계획은 unapproved\$1plan\$1execution\$1threshold 파라미터와 함께 반응형 계획 관리 스타일을 사용하여 승인된 경우에만 수행됩니다. evolve\$1plan\$1baselines 파라미터와 함께 선제적 스타일의 계획 관리를 사용하면 계획 안정성을 극대화할 수 있습니다. 이는 새 계획의 성과를 기존 계획과 비교하여 차선책보다 10% 이상 빠른 계획을 승인하거나 거부합니다.

업그레이드 후 `evolve_plan_baselines` 함수를 사용하여 쿼리 매개 변수 바인딩을 사용한 업그레이드 전후의 계획 성능을 비교할 수 있습니다. 다음 단계에서는 [Aurora PostgreSQL 관리형 계획 사용](AuroraPostgreSQL.Optimize.UsePlans.md)에 설명된 대로 프로덕션 환경에서 승인된 관리형 계획을 사용하고 있다고 가정합니다.

1. 업그레이드하기 전에 쿼리 계획 관리자가 실행 중인 상태에서 애플리케이션을 실행합니다. 애플리케이션이 실행되는 동안 옵티마이저에서 검색되는 새 계획을 추가합니다. 자세한 내용은 [계획 자동 캡처](AuroraPostgreSQL.Optimize.CapturePlans.md#AuroraPostgreSQL.Optimize.CapturePlans.Automatic) 섹션을 참조하세요.

1. 각 계획의 성능을 평가합니다. 자세한 내용은 [계획 성능 평가](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance) 섹션을 참조하세요.

1. 업그레이드 후 `evolve_plan_baselines` 함수를 사용하여 승인된 계획을 다시 분석합니다. 쿼리 매개 변수 바인딩을 사용하기 전후의 성능을 비교합니다. 새 플랜이 빠른 경우 승인된 계획에 추가하면 됩니다. 동일한 매개 변수 바인딩에 대한 다른 계획보다 빠르면 느린 계획을 거부됨(Rejected)으로 표시할 수 있습니다.

   자세한 내용은 [더 나은 계획 승인](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance.Approving) 섹션을 참조하세요. 이 함수에 대한 자세한 내용은 [apg\$1plan\$1mgmt.evolve\$1plan\$1baselines](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.evolve_plan_baselines) 단원을 참조하세요.

자세한 내용은 [메이저 버전 업그레이드 후 Amazon Aurora PostgreSQL 호환 버전 쿼리 계획 관리를 통해 일관된 성능 보장](https://aws.amazon.com/blogs/database/ensuring-consistent-performance-after-major-version-upgrades-with-amazon-aurora-postgresql-query-plan-management/)을 참조하세요.

**참고**  
논리적 복제 또는 AWS DMS를 사용하여 메이저 버전 업그레이드를 수행하는 경우 기존 계획이 업그레이드된 인스턴스에 복사되도록 `apg_plan_mgmt` 스키마를 복제해야 합니다. 논리적 복제에 대한 자세한 내용은 [논리적 복제를 사용하여 Aurora PostgreSQL에 대한 메이저 버전 업그레이드 수행](AuroraPostgreSQL.MajorVersionUpgrade.md) 섹션을 참조하세요.

## 성능 역행을 찾아내어 복구하기 위한 사후 대응형 계획 관리
<a name="AuroraPostgreSQL.Optimize.BestPractice.Reactive"></a>

애플리케이션이 실행될 때 애플리케이션을 모니터링하여 성능 역행을 발생시키는 계획을 찾아냅니다. 역행을 찾아내면 다음 단계를 따라 좋지 않은 계획을 수동으로 거부하거나 수정합니다.

1. 애플리케이션이 실행되는 동안 관리형 계획의 사용을 적용하고 새로 검색된 계획을 미승인 계획으로 자동 추가합니다. 자세한 내용은 [Aurora PostgreSQL 관리형 계획 사용](AuroraPostgreSQL.Optimize.UsePlans.md) 및 [계획 자동 캡처](AuroraPostgreSQL.Optimize.CapturePlans.md#AuroraPostgreSQL.Optimize.CapturePlans.Automatic) 단원을 참조하십시오.

1. 실행 중인 애플리케이션에서 성능 역행 문제가 있는지 모니터링합니다.

1. 계획 역행 문제를 발견하면 계획의 상태를 `rejected`로 설정합니다. 최적화 프로그램은 다음 번에 SQL 문을 실행할 때 거부된 계획을 자동으로 무시하고 대신에 승인된 다른 계획을 사용합니다. 자세한 내용은 [느린 계획 거부 또는 비활성화](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance.Rejecting) 섹션을 참조하세요.

   경우에 따라 좋지 않은 계획을 거부, 비활성화 또는 삭제하기 보다는 수정하는 것이 더 나을 수도 있습니다. `pg_hint_plan` 확장을 사용하여 계획 개선을 실습해 봅니다. `pg_hint_plan`을 통해 특별 설명을 사용하여 계획의 정상 생성 방식을 재정의하도록 최적화 프로그램에 지정합니다. 자세한 내용은 [pg\$1hint\$1plan을 사용하여 계획 수정](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.pg_hint_plan) 섹션을 참조하세요.

# Aurora PostgreSQL의 쿼리 계획 관리
<a name="AuroraPostgreSQL.Optimize.Start"></a>

Aurora PostgreSQL DB 클러스터에 쿼리 계획 관리를 활성화하면 최적화 프로그램이 두 번 이상 처리하는 모든 SQL 문에 대한 쿼리 실행 계획을 생성하고 저장합니다. 최적화 프로그램은 관리형 문에 대해 생성된 첫 번째 계획의 상태를 항상 `Approved`로 설정하고 `dba_plans` 보기에 저장합니다.

관리형 문에 대해 저장된 승인된 계획의 세트를 *계획 기준*이라고 합니다. 애플리케이션이 실행될 때 최적화 프로그램은 관리형 문에 대한 추가 계획을 생성할 수 있습니다. 최적화 프로그램은 캡처한 추가 계획을 `Unapproved` 상태로 설정합니다.

이후에 `Unapproved` 계획이 잘 작동하는지 판단하고 이 계획을 `Approved`, `Rejected` 또는 `Preferred`로 변경할 수 있습니다. 그러기 위해서는 `apg_plan_mgmt.evolve_plan_baselines` 함수 또는 `apg_plan_mgmt.set_plan_status` 함수를 사용합니다.

최적화 프로그램이 SQL 문에 대한 계획을 생성할 때 쿼리 계획 관리는 이 계획을 `apg_plan_mgmt.plans` 테이블에 저장합니다. `apg_plan_mgmt` 역할이 부여된 데이터베이스 사용자는 `apg_plan_mgmt.dba_plans` 보기를 쿼리하여 계획 세부 정보를 볼 수 있습니다. 예를 들어, 다음 쿼리는 비프로덕션 Aurora PostgreSQL DB 클러스터의 현재 보기에 있는 계획의 세부 정보를 나열합니다.
+ `sql_hash` - SQL 문의 식별자로, SQL 문이 정규화된 텍스트의 해시 값입니다.
+ `plan_hash` - 계획의 고유 식별자로, `sql_hash`와 계획의 해시를 조합한 값입니다.
+ `status` – 계획의 상태입니다. 최적화 프로그램은 승인된 계획을 실행할 수 있습니다.
+ `enabled` - 계획이 사용할 준비가 되었는지(true) 아니면 사용할 준비가 되지 않았는지(false)를 나타냅니다.
+ `plan_outline` - 실제 실행 계획을 다시 생성하는 데 사용되는 계획을 표현합니다. 트리 구조의 연산자는 EXPLAIN 출력의 연산자에 매핑됩니다.

이 `apg_plan_mgmt.dba_plans` 보기에는 계획의 모든 세부 정보(예: 계획이 마지막으로 사용된 날짜)가 포함된 더 많은 열이 있습니다. 자세한 내용은 [Aurora PostgreSQL 호환 에디션의 apg\$1plan\$1mgmt.dba\$1plans 뷰에 대한 참조](AuroraPostgreSQL.Optimize.dba_plans_view_Reference.md) 섹션을 참조하세요.

## 정규화 및 SQL 해시
<a name="AuroraPostgreSQL.Optimize.Start.hash-and-normalization"></a>

`apg_plan_mgmt.dba_plans` 보기에서 SQL 해시 값을 사용하여 관리형 문을 식별할 수 있습니다. SQL 해시는 차이(예: 리터럴 값)를 없앤 SQL 문의 정규화된 표현에서 계산됩니다.

각 SQL 문의 *정규화* 프로세스는 공백과 대/소문자를 보존하므로 SQL 문의 요점을 읽고 이해할 수 있습니다. 정규화는 다음 항목을 제거하거나 대체합니다.
+ 주요 블록 설명
+ EXPLAIN 키워드와 EXPLAIN 옵션 및 EXPLAIN ANALYZE
+ 후행 공백
+ 모든 리터럴

다음 문을 예로 들 수 있습니다.

```
/*Leading comment*/ EXPLAIN SELECT /* Query 1 */ * FROM t WHERE x > 7 AND y = 1; 
```

쿼리 계획 관리는 이 문을 다음과 같이 정규화합니다.

```
SELECT /* Query 1 */ * FROM t WHERE x > CONST AND y = CONST; 
```

정규화는 리터럴 또는 파라미터 값만 다를 수 있는 유사 SQL 문에 대해 동일한 SQL 해시를 사용할 수 있게 합니다. 즉, 동일한 SQL 해시에 대해 서로 다른 조건에서 최적 상태인 서로 다른 계획이 여러 개 있을 수 있습니다.

**참고**  
서로 다른 스키마와 함께 사용되는 단일 SQL 문은 런타임에 특정 스키마에 바인딩되므로 다른 계획을 사용합니다. 플래너는 스키마 바인딩에 대한 통계를 사용하여 최적의 계획을 선택합니다.

최적화 프로그램이 계획을 선택하는 방법에 대한 자세한 내용은 [Aurora PostgreSQL 관리형 계획 사용](AuroraPostgreSQL.Optimize.UsePlans.md) 섹션을 참조하세요. 이 섹션에서는 계획을 실제로 사용하기 전에 `EXPLAIN` 및 `EXPLAIN ANALYZE`를 사용하여 계획을 미리 보는 방법을 배울 수 있습니다. 자세한 내용은 [최적화 프로그램이 선택한 계획 분석](AuroraPostgreSQL.Optimize.UsePlans.md#AuroraPostgreSQL.Optimize.UsePlans.AnalyzePlans)을 참조하세요. 계획 선택 프로세스를 설명하는 이미지는 [최적화 프로그램에서 실행할 계획을 선택하는 방식.](AuroraPostgreSQL.Optimize.UsePlans.md#AuroraPostgreSQL.Optimize.UsePlans.ChoosePlans) 섹션을 참조하세요.

# Aurora PostgreSQL 실행 계획 캡처
<a name="AuroraPostgreSQL.Optimize.CapturePlans"></a>

Aurora PostgreSQL 쿼리 계획 관리에서는 쿼리 실행 계획을 캡처하기 위한 두 가지 모드, 자동 또는 수동을 제공합니다. `apg_plan_mgmt.capture_plans_baselines`의 값을 `automatic` 또는 `manual`로 설정하여 모드를 선택합니다. 수동 계획 캡처를 사용해 특정 SQL 문에 대한 실행 계획을 캡처할 수 있습니다. 또는 자동 계획 캡처를 사용하여 애플리케이션이 실행될 때 두 번 이상 실행되는 모든 (또는 가장 느린) 계획을 캡처할 수 있습니다.

계획을 캡처하면 최적화 프로그램이 관리형 설명문에 대해 캡처된 첫 번째 계획의 상태를 `approved`로 설정합니다. 최적화 프로그램은 관리형 설명문에 대해 캡처된 추가 계획의 상태를 항상 `unapproved`로 설정합니다. 그러나 두 가지 이상의 계획이 `approved` 상태로 저장되는 경우가 가끔 있을 수 있습니다. 이런 일은 설명문에 대해 여러 계획이 병렬적으로 생성될 때와 설명문의 첫 번째 계획이 커밋되기 전에 발생할 수 있습니다.

`dba_plans` 보기에 캡처 및 저장할 수 있는 최대 계획 수를 제어하려면 DB 인스턴스 수준의 파라미터 그룹에서 `apg_plan_mgmt.max_plans` 파라미터를 설정합니다. `apg_plan_mgmt.max_plans` 파라미터를 변경하는 경우 새 값을 적용하려면 DB 인스턴스를 재부팅해야 합니다. 자세한 내용은 [apg\$1plan\$1mgmt.max\$1plans](AuroraPostgreSQL.Optimize.Parameters.md#AuroraPostgreSQL.Optimize.Parameters.max_plans) 파라미터를 참조하세요.

## 특정 SQL 문에 대해 계획을 수동으로 캡처
<a name="AuroraPostgreSQL.Optimize.CapturePlans.Manual"></a>

관리해야 할 SQL 문 세트를 알고 있는 경우 이러한 설명문을 SQL 스크립트 파일에 추가한 후 계획을 수동으로 캡처합니다. 다음은 SQL 문 세트에 대해 쿼리 계획을 수동으로 캡처하는 방법을 보여주는 psql 예제입니다.

```
psql> SET apg_plan_mgmt.capture_plan_baselines = manual;
psql> \i my-statements.sql 
psql> SET apg_plan_mgmt.capture_plan_baselines = off;
```

각 SQL 문에 대한 계획을 캡처하면 최적화 프로그램이 새 행을 `apg_plan_mgmt.dba_plans` 보기에 추가합니다.

SQL 스크립트 파일에서 EXPLAIN 또는 EXPLAIN EXECUTE 문을 사용하는 것이 좋습니다. 관심이 있는 계획을 모두 캡처하려면 파라미터 값에 충분한 변형을 포함해야 합니다.

최적화 프로그램의 최소 비용 계획보다 더 나은 계획을 알고 있으면 최적화 프로그램에서 더 나은 계획을 사용하도록 강제할 수 있습니다. 이를 위해서는 최적화 프로그램 힌트를 하나 이상 지정해야 합니다. 자세한 내용은 [pg\$1hint\$1plan을 사용하여 계획 수정](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.pg_hint_plan) 섹션을 참조하세요. `unapproved` 및 `approved` 계획의 성능을 비교하고 이러한 계획을 승인, 거부 또는 삭제하려면 [계획 성능 평가](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance) 단원을 참조하십시오.

## 계획 자동 캡처
<a name="AuroraPostgreSQL.Optimize.CapturePlans.Automatic"></a>

다음과 같은 상황에서는 자동 계획 캡처를 사용합니다.
+ 관리할 특정 SQL 문을 모르는 경우
+ 관리할 SQL 문이 수백 개 또는 수천 개인 경우
+ 애플리케이션에서 클라이언트 API를 사용하는 경우 예를 들면, JDBC는 psql로 표현할 수 없는 이름이 지정되지 않은 준비된 명령문이나 대량 모드 명령문을 사용합니다.

**계획을 자동으로 캡처하려면**

1. DB 인스턴스 수준의 파라미터 그룹에서 `apg_plan_mgmt.capture_plan_baselines`를 `automatic`으로 설정하여 자동 계획 캡처를 켭니다. 자세한 내용은 [Amazon Aurora에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 섹션을 참조하세요.

1. 애플리케이션이 실행되면 최적화 프로그램이 두 번 이상 실행되는 각 SQL 문에 대해 계획을 캡처합니다.

   애플리케이션이 기본 쿼리 계획 관리 파라미터 설정으로 실행되면 최적화 프로그램이 두 번 이상 실행되는 각 SQL 문에 대해 계획을 캡처합니다. 기본값 사용 중 모든 계획을 캡처하는 작업은 실행 시간 오버헤드가 거의 발생하지 않으며 프로덕션 상태에서 활성화할 수 있습니다.

**자동 계획 캡처를 끄려면**
+ DB 인스턴스 수준의 파라미터 그룹에서 `apg_plan_mgmt.capture_plan_baselines` 파라미터를 `off`로 설정합니다.

미승인 계획의 성능을 측정하고 이러한 계획을 승인, 거부 또는 삭제하려면 [계획 성능 평가](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance) 단원을 참조하세요.

# Aurora PostgreSQL 관리형 계획 사용
<a name="AuroraPostgreSQL.Optimize.UsePlans"></a>

최적화 프로그램에서 관리형 설명문에 대해 캡처한 계획을 사용하려면 파라미터 `apg_plan_mgmt.use_plan_baselines`를 `true`로 설정합니다. 다음은 로컬 인스턴스 예제입니다.

```
SET apg_plan_mgmt.use_plan_baselines = true;
```

애플리케이션이 실행되는 동안 이 설정을 사용하면 최적화 프로그램이 각각의 관리형 문에 대해 유효하고 활성화된 최소 비용, 기본 또는 승인된 계획을 사용합니다.

## 최적화 프로그램이 선택한 계획 분석
<a name="AuroraPostgreSQL.Optimize.UsePlans.AnalyzePlans"></a>

`apg_plan_mgmt.use_plan_baselines` 파라미터가 `true`로 설정된 경우 EXPLAIN ANALYZE SQL 문을 사용하여 최적화 프로그램에서 해당 설명문을 실행해야 하는 경우에 사용할 계획을 표시할 수 있습니다. 다음은 예입니다.

```
EXPLAIN ANALYZE EXECUTE rangeQuery (1,10000);
```

```
                                                    QUERY PLAN           
--------------------------------------------------------------------------
 Aggregate  (cost=393.29..393.30 rows=1 width=8) (actual time=7.251..7.251 rows=1 loops=1)
   ->  Index Only Scan using t1_pkey on t1 t  (cost=0.29..368.29 rows=10000 width=0) (actual time=0.061..4.859 rows=10000 loops=1)
Index Cond: ((id >= 1) AND (id <= 10000))         
         Heap Fetches: 10000
 Planning time: 1.408 ms
 Execution time: 7.291 ms
 Note: An Approved plan was used instead of the minimum cost plan.
 SQL Hash: 1984047223, Plan Hash: 512153379
```

출력에는 실행할 기준의 승인된 계획이 표시됩니다. 그러나 출력에 비용이 더 저렴한 계획을 찾았다고 나와 있습니다. 이 경우, [계획 자동 캡처](AuroraPostgreSQL.Optimize.CapturePlans.md#AuroraPostgreSQL.Optimize.CapturePlans.Automatic)에 설명된 바와 같이 자동 계획 캡처를 켜서 이 새로운 최소 비용 계획을 캡처합니다.

새 계획은 항상 최적화 프로그램에 `Unapproved`로 캡처됩니다. `apg_plan_mgmt.evolve_plan_baselines` 함수를 사용하여 계획을 비교하고 승인됨, 거부됨 또는 비활성화됨으로 변경할 수 있습니다. 자세한 내용은 [계획 성능 평가](AuroraPostgreSQL.Optimize.Maintenance.md#AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance) 섹션을 참조하세요.

## 최적화 프로그램에서 실행할 계획을 선택하는 방식.
<a name="AuroraPostgreSQL.Optimize.UsePlans.ChoosePlans"></a>

실행 계획의 비용은 최적화 프로그램에서 서로 다른 계획을 비교할 때 계산하는 추정치입니다. 계획의 비용을 계산할 때 최적화 프로그램은 해당 계획에 필요한 CPU 및 I/O 작업과 같은 요소를 포함합니다. PostgreSQL 쿼리 플래너 비용 견적에 대해 자세히 알아보려면 [쿼리 계획](https://www.postgresql.org/docs/current/runtime-config-query.html)을 참조하세요.

다음 이미지는 쿼리 계획 관리가 활성 상태일 때와 그렇지 않을 때 주어진 SQL 문에 대해 계획이 선택되는 방법을 보여줍니다.



![\[Aurora PostgreSQL 쿼리 계획 관리 워크플로\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/aurora-query-plan-mgmt_processing-flow.png)


이 흐름은 다음과 같습니다.

1. 최적화 프로그램은 SQL 문에 대한 최소 비용 계획을 생성합니다.

1. 쿼리 계획 관리가 활성화되어 있지 않으면 최적화 프로그램의 계획(A. Run Optimizer's plan)이 즉시 실행됩니다. 쿼리 계획 관리는 및 매개변수가 모두 기본 설정(각각 "off" 및 "false")일 때 비활성화됩니다.

   그렇지 않으면 쿼리 계획 관리가 활성화됩니다. 이 경우 SQL 문과 이에 대한 최적화 프로그램의 계획은 계획이 선택되기 전에 추가로 평가됩니다.
**작은 정보**  
`apg_plan_mgmt` 역할이 있는 데이터베이스 사용자는 사전에 계획을 비교하고, 계획의 상태를 변경하고, 필요에 따라 특정 계획을 강제로 사용할 수 있습니다. 자세한 내용은 [Aurora PostgreSQL 쿼리 계획 개선](AuroraPostgreSQL.Optimize.Maintenance.md) 섹션을 참조하세요.

1. SQL 문에는 이전에 쿼리 계획 관리에 의해 저장되었던 계획이 이미 있을 수 있습니다. 계획은 계획을 생성하는 데 사용된 SQL 문에 대한 정보와 함께 `apg_plan_mgmt.dba_plans`에 저장됩니다. 계획에 대한 정보에는 해당 상태가 포함됩니다. 계획 상태에 따라 다음과 같이 사용 여부가 결정될 수 있습니다.

   1. 계획이 SQL 문에 대해 저장된 계획에 없으면 주어진 SQL 문에 대한 최적화 프로그램에서 이 특정 계획이 처음 생성되었음을 의미합니다. 계획이 캡처 계획 처리 (4)로 전송됩니다.

   1. 저장된 계획 중 해당 계획이 승인됨 또는 선호되면 계획(A. Run Optimizer's plan)이 실행됩니다.

      계획이 저장된 계획에 있지만 승인 또는 선호도가 아닌 경우 계획은 캡처 계획 처리(4)로 전송됩니다.

1. 주어진 SQL 문에 대해 처음으로 계획을 캡처할 때 계획의 상태는 항상 승인됨(P1)으로 설정됩니다. 최적화 프로그램은 이후에 동일한 SQL 문에 대해 동일한 계획을 생성하면 해당 계획의 상태가 미승인(P1\$1n)으로 변경됩니다.

   계획이 캡처되고 상태가 업데이트되면 평가가 다음 단계(5)에서 계속됩니다.

1. 계획의 *기준선*은 SQL 문의 기록과 다양한 상태에서의 계획으로 구성됩니다. 쿼리 계획 관리에서는 계획을 선택할 때 다음과 같이 계획 기준선 사용 옵션의 설정 여부에 따라 기준을 고려할 수 있습니다.
   + `apg_plan_mgmt.use_plan_baselines` 파라미터가 기본값(`false`)으로 설정된 경우 계획 기준선 사용은 'off'입니다. 계획은 실행되기 전에 기준선과 비교되지 않습니다(A. Run Optimizer의 계획).
   + `apg_plan_mgmt.use_plan_baselines` 파라미터가 `true`로 설정된 경우 계획 기준선 사용이 'on'입니다. 계획은 기준선(6)을 사용하여 추가로 평가됩니다.

1. 계획은 기준선의 명령문에 대한 다른 계획과 비교됩니다.

   1. 최적화 프로그램의 계획이 베이스라인에 있는 계획들 중이라면 그 상태를 체크한다(7a).

   1. 최적화 프로그램의 계획이 기준선의 계획에 없는 경우 해당 계획은 명령문의 계획에 새 `Unapproved` 계획으로 추가됩니다.

1. 계획의 상태는 승인되지 않은 경우에만 확인하기 위해 확인됩니다.

   1. 계획의 상태가 미승인인 경우 계획의 예상 비용은 승인되지 않은 실행 계획 임계값에 대해 지정된 예상 비용과 비교됩니다.
      + 계획의 예상 비용이 임계값 미만인 경우 미승인 계획(A. Run Optimizer의 계획)이라도 최적화 프로그램은 이를 사용합니다. 일반적으로 최적화 프로그램은 미승인 계획을 실행하지 않습니다. 그러나 파라미터가 비용 임계값을 지정하면 최적화 프로그램은 승인되지 않은 계획의 비용을 임계값과 비교합니다. 예상 비용이 임계값보다 작으면 최적화 프로그램이 계획을 실행합니다. 자세한 내용은 [apg\$1plan\$1mgmt.unapproved\$1plan\$1execution\$1threshold](AuroraPostgreSQL.Optimize.Parameters.md#AuroraPostgreSQL.Optimize.Parameters.unapproved_plan_execution_threshold) 섹션을 참조하세요.
      + 계획의 예상 비용이 임계값 미만이 아니면 계획의 다른 속성이 확인됩니다(8a).

   1. 계획의 상태가 미승인 상태가 아닌 경우 다른 속성이 확인됩니다(8a).

1. 최적화 프로그램은 비활성화된 계획을 사용하지 않습니다. 즉, `enable` 속성이 'f'(false)로 설정된 계획입니다. 또한 최적화 프로그램은 상태가 거부됨인 계획을 사용하지 않습니다.

   최적화 프로그램은 유효하지 않은 계획을 사용할 수 없습니다. 인덱스 및 테이블 파티션과 같이 계획이 의존하는 개체가 제거되거나 삭제되면 계획이 유효하지 않게 될 수 있습니다.

   1. 명령문에 활성화되고 유효한 선호 계획이 있는 경우 최적화 프로그램은 이 SQL 문에 대해 저장된 선호 계획 중에서 최소 비용 계획을 선택합니다. 그런 다음 최적화 프로그램은 최소 비용 선호 계획을 실행합니다.

   1. 명령문에 활성화되고 유효한 기본 계획이 없으면 다음 단계(9)에서 평가됩니다.

1. 명령문에 활성화되고 유효한 승인됨 계획이 있는 경우 최적화 프로그램은 이 SQL 문에 대해 저장된 승인됨 계획 중에서 최소 비용 계획을 선택합니다. 그런 다음 최적화 프로그램은 최소 비용 승인된 계획을 실행합니다.

   명령문에 유효하고 활성화된 승인된 계획이 없으면 최적화 프로그램은 최소 비용 계획을 사용합니다(A. 옵티마이저의 계획 실행).

# dba\$1plans 보기에서 Aurora PostgreSQL 쿼리 계획 검사
<a name="AuroraPostgreSQL.Optimize.ViewPlans"></a>

`apg_plan_mgmt` 역할이 부여된 데이터베이스 사용자 및 관리자는 `apg_plan_mgmt.dba_plans`에 저장된 계획을 보고 관리할 수 있습니다. Aurora PostgreSQL DB 클러스터의 관리자(`rds_superuser` 권한이 있는 사람)는 쿼리 계획 관리를 사용해야 하는 데이터베이스 사용자에게 이 역할을 명시적으로 부여해야 합니다.

`apg_plan_mgmt` 보기에는 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 있는 모든 데이터베이스의 모든 관리형 SQL 문에 대한 계획 기록이 포함됩니다. 이 보기를 통해 계획, 상태, 마지막 사용 시점 및 기타 모든 관련 세부 정보를 검토할 수 있습니다.

[정규화 및 SQL 해시](AuroraPostgreSQL.Optimize.Start.md#AuroraPostgreSQL.Optimize.Start.hash-and-normalization)에서 설명한 대로 각 관리형 계획은 SQL 해시 값과 계획 해시 값의 조합으로 식별됩니다. 이러한 식별자를 사용하면 Amazon RDS 성능 개선 도우미와 같은 도구를 사용하여 개별 계획 성능을 추적할 수 있습니다. 성능 개선 도우미에 대한 자세한 내용은 [Amazon RDS 성능 개선 도우미 사용]( https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html) 단원을 참조하세요.

## 관리형 계획 나열
<a name="AuroraPostgreSQL.Optimize.ViewPlans.List"></a>

관리형 계획을 나열하려면 `apg_plan_mgmt.dba_plans` 보기에서 SELECT 문을 사용합니다. 다음 예제는 `dba_plans`(승인 및 미승인 계획을 나타냄)와 같은 `status` 보기의 일부 열을 보여줍니다.

```
SELECT sql_hash, plan_hash, status, enabled, stmt_name 
FROM apg_plan_mgmt.dba_plans; 

 sql_hash   | plan_hash |   status   | enabled | stmt_name
------------+-----------+------------+---------+------------
 1984047223 | 512153379 | Approved   | t       | rangequery 
 1984047223 | 512284451 | Unapproved | t       | rangequery 
 (2 rows)
```

읽기 쉽게 하기 위해, 표시된 쿼리와 출력에는 `dba_plans` 보기에 있는 몇 개의 열만 나열되어 있습니다. 전체 정보는 [Aurora PostgreSQL 호환 에디션의 apg\$1plan\$1mgmt.dba\$1plans 뷰에 대한 참조](AuroraPostgreSQL.Optimize.dba_plans_view_Reference.md) 섹션을 참조하세요.

# Aurora PostgreSQL 쿼리 계획 개선
<a name="AuroraPostgreSQL.Optimize.Maintenance"></a>

계획 성과를 평가하고 계획을 수정하여 쿼리 계획 관리를 개선합니다. 쿼리 계획을 개선하는 방법에 대한 자세한 내용은 다음 주제를 참조하세요.

**Topics**
+ [계획 성능 평가](#AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance)
+ [pg\$1hint\$1plan을 사용하여 계획 수정](#AuroraPostgreSQL.Optimize.Maintenance.pg_hint_plan)

## 계획 성능 평가
<a name="AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance"></a>

최적화 프로그램이 계획을 미승인 계획으로 캡처한 후 `apg_plan_mgmt.evolve_plan_baselines` 함수를 사용하여 실제 성능에 따라 계획을 비교합니다. 성능 실험의 결과에 따라 승인되지 않음에서 승인됨 또는 거부됨으로 계획의 상태를 변경할 수 있습니다. 대신에 `apg_plan_mgmt.evolve_plan_baselines` 함수를 사용하여 요구 사항을 충족하지 않을 경우 계획을 일시적으로 비활성화하도록 결정할 수 있습니다.

### 더 나은 계획 승인
<a name="AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance.Approving"></a>

다음 예제에서는 `apg_plan_mgmt.evolve_plan_baselines` 함수를 사용하여 관리형 계획의 상태를 승인됨으로 변경하는 방법을 보여줍니다.

```
SELECT apg_plan_mgmt.evolve_plan_baselines (
   sql_hash, 
   plan_hash, 
   min_speedup_factor := 1.0, 
   action := 'approve'
) 
FROM apg_plan_mgmt.dba_plans WHERE status = 'Unapproved';
```

```
NOTICE:     rangequery (1,10000)
NOTICE:     Baseline   [ Planning time 0.761 ms, Execution time 13.261 ms]
NOTICE:     Baseline+1 [ Planning time 0.204 ms, Execution time 8.956 ms]
NOTICE:     Total time benefit: 4.862 ms, Execution time benefit: 4.305 ms
NOTICE:     Unapproved -> Approved
evolve_plan_baselines 
-----------------------
0
(1 row)
```

출력에 파라미터 바인딩이 1과 10,000인 `rangequery` 문에 대한 성능 보고서가 표시됩니다. 새로운 미승인 계획(`Baseline+1`)이 이전에 승인된 계획 최상의 계획(`Baseline`)보다 더 낫습니다. 새 계획이 `Approved` 상태인지 확인하려면 `apg_plan_mgmt.dba_plans` 보기를 확인합니다.

```
SELECT sql_hash, plan_hash, status, enabled, stmt_name 
FROM apg_plan_mgmt.dba_plans;
```

```
sql_hash  | plan_hash |  status  | enabled | stmt_name  
------------+-----------+----------+---------+------------
1984047223 | 512153379 | Approved | t       | rangequery
1984047223 | 512284451 | Approved | t       | rangequery
(2 rows)
```

이제 관리형 계획에 설명문의 계획 기준인 승인된 계획 두 개가 포함됩니다. 또한 `apg_plan_mgmt.set_plan_status` 함수를 호출하여 계획의 상태 필드를 `'Approved'`, `'Rejected'`, `'Unapproved'` 또는 `'Preferred'`로 직접 설정할 수도 있습니다.

### 느린 계획 거부 또는 비활성화
<a name="AuroraPostgreSQL.Optimize.Maintenance.EvaluatingPerformance.Rejecting"></a>

계획을 거부하거나 비활성화하려면 `'reject'` 또는 `'disable' `을 `apg_plan_mgmt.evolve_plan_baselines` 함수에 작업 파라미터로 전달합니다. 이 예제에서는 해당 문에 대한 최상의 `Unapproved` 계획보다 최소 10% 더 느린 캡처된 `Approved` 계획을 비활성화합니다.

```
SELECT apg_plan_mgmt.evolve_plan_baselines(
sql_hash,  -- The managed statement ID
plan_hash, -- The plan ID
1.1,       -- number of times faster the plan must be 
'disable'  -- The action to take. This sets the enabled field to false.
)
FROM apg_plan_mgmt.dba_plans
WHERE status = 'Unapproved' AND   -- plan is Unapproved
origin = 'Automatic';       -- plan was auto-captured
```

또한 계획을 거부됨 또는 비활성화됨으로 즉시 설정할 수도 있습니다. 계획의 활성화 필드를 `true` 또는 `false`로 즉시 설정하려면 `apg_plan_mgmt.set_plan_enabled` 함수를 호출합니다. 계획의 상태 필드를 `'Approved'`, `'Rejected'`, `'Unapproved'` 또는 `'Preferred'`로 즉시 설정하려면 `apg_plan_mgmt.set_plan_status` 함수를 호출합니다.

현재 유효하지 않고 앞으로도 유효하지 않을 것으로 예상되는 계획을 삭제하려면 `apg_plan_mgmt.validate_plans` 함수를 사용하세요. 이 함수를 사용하면 유효하지 않은 계획을 삭제하거나 비활성화할 수 있습니다. 자세한 내용은 [계획 검증](AuroraPostgreSQL.Optimize.Deleting.md#AuroraPostgreSQL.Optimize.Maintenance.ValidatingPlans) 섹션을 참조하세요.

## pg\$1hint\$1plan을 사용하여 계획 수정
<a name="AuroraPostgreSQL.Optimize.Maintenance.pg_hint_plan"></a>

쿼리 최적화 프로그램은 모든 설명문에 대한 최적 계획을 찾도록 설계되었으며, 대부분의 경우 최적화 프로그램은 좋은 계획을 찾아냅니다. 하지만 경우에 따라 최적화 프로그램에서 생성된 것보다 훨씬 더 나은 계획이 존재한다는 것을 알게 될 수도 있습니다. 최적화 프로그램을 통해 원하는 계획을 생성하기 위한 두 가지 권장 방법은 PostgreSQL에서 `pg_hint_plan` 확장을 사용하거나 Grand Unified Configuration(GUC) 변수를 설정하는 것입니다.
+ `pg_hint_plan` 확장 – PostgreSQL의 `pg_hint_plan` 확장을 사용하여 플래너의 작동 방식을 수정하려면 "힌트(hint)"를 지정합니다. `pg_hint_plan` 확장을 설치하고 사용하는 방법은 [pg\$1hint\$1plan 설명서](https://github.com/ossc-db/pg_hint_plan)를 참조하십시오.
+ GUC 변수 – 하나 이상의 비용 모델 파라미터 또는 다른 최적화 프로그램 파라미터(예: `from_collapse_limit` 또는 `GEQO_threshold`)를 재정의합니다.

이러한 기술 중 하나를 사용하여 쿼리 최적화 프로그램에서 계획을 사용하도록 지정할 경우 쿼리 계획 관리를 사용하여 새 계획을 캡처하고 사용하도록 설정할 수도 있습니다.

`pg_hint_plan` 확장을 사용하여 SQL 문의 조인 순서, 조인 방법 또는 액세스 경로를 변경할 수 있습니다. 특수 `pg_hint_plan` 구문과 함께 SQL 설명을 사용하여 최적화 프로그램에서 계획을 생성하는 방식을 수정할 수 있습니다. 예를 들어 문제의 SQL 문에 양방향 조인이 있다고 가정해 보겠습니다.

```
SELECT * 
FROM t1, t2 
WHERE t1.id = t2.id;
```

또한 최적화 프로그램에서는 조인 순서(t1, t2)를 선택하지만 조인 순서(t2, t1)가 더 빠름을 알고 있다고 가정해 보겠습니다. 다음 힌트는 최적화 프로그램에서 더 빠른 조인 순서(t2, t1)를 사용하도록 지정합니다. 최적화 프로그램에서 SQL 문에 대한 계획을 생성하되 해당 문을 실행하지 않도록 EXPLAIN을 포함합니다. (출력이 표시되지 않음)

```
/*+ Leading ((t2 t1)) */ EXPLAIN SELECT * 
FROM t1, t2 
WHERE t1.id = t2.id;
```

다음 단계에서는 `pg_hint_plan`을 사용하는 방법을 보여줍니다.

**최적화 프로그램의 생성된 계획을 수정하고 pg\$1hint\$1plan을 사용하여 계획을 캡처하려면**

1. 수동 캡처 모드를 켭니다.

   ```
   SET apg_plan_mgmt.capture_plan_baselines = manual;
   ```

1. 관심 SQL 문에 대한 힌트를 지정합니다.

   ```
   /*+ Leading ((t2 t1)) */ EXPLAIN SELECT * 
   FROM t1, t2 
   WHERE t1.id = t2.id;
   ```

   이 실행 후 최적화 프로그램이 `apg_plan_mgmt.dba_plans` 보기에서 해당 계획을 캡처합니다. 캡처한 계획은 특수 `pg_hint_plan` 설명 구문을 포함하지 않습니다. 쿼리 계획 관리 기능이 선행 설명을 제거하여 설명문을 정규화하기 때문입니다.

1. `apg_plan_mgmt.dba_plans` 보기를 사용하여 관리형 계획을 확인합니다.

   ```
   SELECT sql_hash, plan_hash, status, sql_text, plan_outline 
   FROM apg_plan_mgmt.dba_plans;
   ```

1. 계획의 상태를 `Preferred`로 설정합니다. 그러면 최적화 프로그램에서 최소 비용 계획이 아직 `Approved` 또는 `Preferred`가 아닐 때 승인된 계획 세트에서 선택하는 대신 해당 계획을 실행합니다.

   ```
   SELECT apg_plan_mgmt.set_plan_status(sql-hash, plan-hash, 'preferred' ); 
   ```

1. 수동 계획 캡처를 끄고 관리형 계획을 사용하도록 설정합니다.

   ```
   SET apg_plan_mgmt.capture_plan_baselines = false;
   SET apg_plan_mgmt.use_plan_baselines = true;
   ```

   이제는 원본 SQL 문이 실행될 때 최적화 프로그램이 `Approved` 또는 `Preferred` 계획을 선택합니다. 최소 비용 계획이 `Approved` 또는 `Preferred`가 아니면 최적화 프로그램은 `Preferred` 계획을 선택합니다.

# Aurora PostgreSQL 쿼리 계획 삭제
<a name="AuroraPostgreSQL.Optimize.Deleting"></a>

사용하지 않는 실행 계획 또는 유효하지 않은 계획을 삭제합니다. 계획 삭제에 대한 자세한 내용은 다음 섹션을 참조하세요.

**Topics**
+ [계획 삭제](#AuroraPostgreSQL.Optimize.Maintenance.DeletingPlans)
+ [계획 검증](#AuroraPostgreSQL.Optimize.Maintenance.ValidatingPlans)

## 계획 삭제
<a name="AuroraPostgreSQL.Optimize.Maintenance.DeletingPlans"></a>

한 달 이상, 구체적으로 32일 동안 사용하지 않은 계획은 자동으로 삭제됩니다. 이것이 `apg_plan_mgmt.plan_retention_period` 파라미터의 기본 설정입니다. 값을 1부터 시작해서 계획 보존 기간을 더 긴 기간으로 변경하거나 더 짧은 기간으로 변경할 수 있습니다. 현재 날짜에서 `last_used` 날짜를 빼서 계획의 마지막으로 사용된 이후 일수를 계산합니다. `last_used` 날짜는 최적화 프로그램이 계획을 최소 비용 계획으로 선택했거나 계획이 실행된 가장 최근 날짜입니다. 계획의 날짜가 `apg_plan_mgmt.dba_plans` 보기에 저장됩니다.

장시간 사용하지 않았거나 유용하지 않은 계획을 삭제하는 것이 좋습니다. 최적화 프로그램이 계획을 실행하거나 해당 계획을 문에 대한 최소 비용 계획으로 선택할 때마다 최적화 프로그램이 업데이트하는 `last_used` 날짜가 각 계획에 지정되어 있습니다. 안전하게 삭제할 수 있는 계획을 확인하려면 마지막 `last_used` 날짜를 확인하세요.

다음 쿼리는 총 계획 수, 삭제에 실패한 계획 및 성공적으로 삭제된 계획이 포함된 3열 테이블을 반환합니다. 여기에는 `apg_plan_mgmt.delete_plan` 함수를 사용하여 지난 31일 동안 최소 비용 계획으로 선택되지 않았으며 `Rejected` 상태가 아닌 모든 계획을 삭제하는 방법의 예인 중첩 쿼리가 있습니다.

```
SELECT (SELECT COUNT(*) from apg_plan_mgmt.dba_plans) total_plans,
       COUNT(*) FILTER (WHERE result = -1) failed_to_delete,
       COUNT(*) FILTER (WHERE result = 0) successfully_deleted
       FROM (
            SELECT apg_plan_mgmt.delete_plan(sql_hash, plan_hash) as result
            FROM apg_plan_mgmt.dba_plans
            WHERE last_used < (current_date - interval '31 days')
            AND status <> 'Rejected'
            ) as dba_plans ;
```

```
 total_plans | failed_to_delete | successfully_deleted
-------------+------------------+----------------------
           3 |                0 |                    2
```

자세한 내용은 [apg\$1plan\$1mgmt.delete\$1plan](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.delete_plan) 섹션을 참조하세요.

현재 유효하지 않고 앞으로도 유효하지 않을 것으로 예상되는 계획을 삭제하려면 `apg_plan_mgmt.validate_plans` 함수를 사용하세요. 이 함수를 사용하면 유효하지 않은 계획을 삭제하거나 비활성화할 수 있습니다. 자세한 내용은 [계획 검증](#AuroraPostgreSQL.Optimize.Maintenance.ValidatingPlans) 섹션을 참조하세요.

**중요**  
유효하지 않은 계획을 정리하지 않을 경우 결국에는 쿼리 계획 관리용으로 별도 보관되어 있는 공유 메모리가 부족해질 수 있습니다. 관리형 계획에 사용할 수 있는 메모리의 양을 제어하려면 `apg_plan_mgmt.max_plans` 파라미터를 사용합니다. 사용자 지정 DB 파라미터 그룹에서 이 파라미터를 설정하고 DB 인스턴스를 재부팅하여 변경 내용을 적용합니다. 자세한 내용은 [apg\$1plan\$1mgmt.max\$1plans](AuroraPostgreSQL.Optimize.Parameters.md#AuroraPostgreSQL.Optimize.Parameters.max_plans) 파라미터를 참조하세요.

## 계획 검증
<a name="AuroraPostgreSQL.Optimize.Maintenance.ValidatingPlans"></a>

`apg_plan_mgmt.validate_plans` 함수를 사용하여 유효하지 않은 계획을 삭제하거나 비활성화할 수 있습니다.

인덱스나 테이블 같은 종속된 객체가 제거되면 계획이 유효하지 않게 되거나 기한 경과 상태가 될 수 있습니다. 하지만 제거된 객체가 다시 생성되는 경우에는 계획이 실시적으로 잘못될 수 있습니다. 유효하지 않은 계획이 나중에 유효 상태가 될 수 있는 경우 유효하지 않은 계획을 삭제하기 보다는 비활성화하거나 아무 작업도 하지 않는 것이 더 나을 수 있습니다.

유효하지 않고 지난 주에 사용한 적이 없는 모든 계획을 찾아서 삭제하려면 다음과 같이 `apg_plan_mgmt.validate_plans `함수를 사용합니다.

```
SELECT apg_plan_mgmt.validate_plans(sql_hash, plan_hash, 'delete') 
FROM apg_plan_mgmt.dba_plans
WHERE last_used < (current_date - interval '7 days');
```

계획을 직접 활성화하거나 비활성화하려면 `apg_plan_mgmt.set_plan_enabled` 함수를 사용합니다.

# Aurora PostgreSQL용 관리형 계획 내보내기 및 가져오기
<a name="AuroraPostgreSQL.Optimize.Maintenance.ExportingImporting"></a>

관리형 계획을 내보내고 다른 DB 인스턴스로 가져올 수 있습니다.

**관리형 계획을 내보내려면**  
권한 있는 사용자는 `apg_plan_mgmt.plans` 테이블의 일부를 다른 테이블에 복사한 후, `pg_dump` 명령을 사용하여 저장할 수 있습니다. 다음은 예제입니다.

```
CREATE TABLE plans_copy AS SELECT * 
FROM apg_plan_mgmt.plans [ WHERE predicates ] ;
```

```
% pg_dump --table apg_plan_mgmt.plans_copy -Ft mysourcedatabase > plans_copy.tar
```

```
DROP TABLE apg_plan_mgmt.plans_copy;
```

**관리형 계획을 가져오려면**

1. 내보낸 관리형 계획의 .tar 파일을 계획이 복원되어야 할 시스템으로 복사합니다.

1. `pg_restore` 명령을 사용하여 tar 파일을 새 테이블로 복사합니다.

   ```
   % pg_restore --dbname mytargetdatabase -Ft plans_copy.tar
   ```

1. 다음 예제와 같이 `plans_copy` 테이블과 `apg_plan_mgmt.plans` 테이블을 병합합니다.
**참고**  
어떤 경우에는 한 버전의 `apg_plan_mgmt` 확장에서 덤프하여 다른 버전으로 복원할 수 있습니다. 이 경우 계획 테이블의 열은 다를 수 있습니다. 다른 경우에는 SELECT \$1를 사용하는 대신에 열에 명시적으로 이름을 지정합니다.

   ```
   INSERT INTO apg_plan_mgmt.plans SELECT * FROM plans_copy
    ON CONFLICT ON CONSTRAINT plans_pkey
    DO UPDATE SET
    status = EXCLUDED.status,
    enabled = EXCLUDED.enabled,
    -- Save the most recent last_used date 
    --
    last_used = CASE WHEN EXCLUDED.last_used > plans.last_used 
    THEN EXCLUDED.last_used ELSE plans.last_used END, 
    -- Save statistics gathered by evolve_plan_baselines, if it ran:
    --
    estimated_startup_cost = EXCLUDED.estimated_startup_cost,
    estimated_total_cost = EXCLUDED.estimated_total_cost,
    planning_time_ms = EXCLUDED.planning_time_ms,
    execution_time_ms = EXCLUDED.execution_time_ms,
    total_time_benefit_ms = EXCLUDED.total_time_benefit_ms, 
    execution_time_benefit_ms = EXCLUDED.execution_time_benefit_ms;
   ```

1. 관리형 계획을 공유 메모리에 다시 로드하고 임시 계획 테이블을 제거합니다.

   ```
   SELECT apg_plan_mgmt.reload(); -- refresh shared memory
   DROP TABLE plans_copy;
   ```

# Aurora PostgreSQL 쿼리 계획 관리를 위한 파라미터 참조
<a name="AuroraPostgreSQL.Optimize.Parameters"></a>

이 섹션에 나열된 파라미터를 사용하여 `apg_plan_mgmt` 확장에 대한 기본 설정을 지정할 수 있습니다 사용자 지정 DB 클러스터 파라미터 및 Aurora PostgreSQL DB 클러스터와 연결된 DB 파라미터 그룹에서 사용할 수 있습니다. 이러한 파라미터는 쿼리 계획 관리 기능의 동작과 이것이 최적화 프로그램에 미치는 영향을 제어합니다. 쿼리 계획 관리를 설정하는 방법에 대한 자세한 내용은 [Aurora PostgreSQL 쿼리 계획 관리 활성화](AuroraPostgreSQL.Optimize.overview.md#AuroraPostgreSQL.Optimize.Enable) 단원을 참조하세요. `apg_plan_mgmt` 확장이 해당 섹션에 설명된 대로 설정되지 않은 경우 다음 파라미터를 변경해도 효과가 없습니다. 파라미터 수정에 대한 자세한 정보는 [Amazon Aurora에서 DB 클러스터 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.ModifyingCluster.md) 및 [Amazon Aurora DB 인스턴스용 DB 파라미터 그룹](USER_WorkingWithDBInstanceParamGroups.md) 단원을 참조하세요.

**Topics**
+ [apg\$1plan\$1mgmt.capture\$1plan\$1baselines](#AuroraPostgreSQL.Optimize.Parameters.capture_plan_baselines)
+ [apg\$1plan\$1mgmt.plan\$1capture\$1threshold](#AuroraPostgreSQL.Optimize.Parameters.plan_capture_threshold)
+ [apg\$1plan\$1mgmt.explain\$1hashes](#AuroraPostgreSQL.Optimize.Parameters.explain_hashes)
+ [apg\$1plan\$1mgmt.log\$1plan\$1enforcement\$1result](#AuroraPostgreSQL.Optimize.Parameters.log_plan_enforcement_result)
+ [apg\$1plan\$1mgmt.max\$1databases](#AuroraPostgreSQL.Optimize.Parameters.max_databases)
+ [apg\$1plan\$1mgmt.max\$1plans](#AuroraPostgreSQL.Optimize.Parameters.max_plans)
+ [apg\$1plan\$1mgmt.plan\$1hash\$1version](#AuroraPostgreSQL.Optimize.Parameters.plan_hash_version)
+ [apg\$1plan\$1mgmt.plan\$1retention\$1period](#AuroraPostgreSQL.Optimize.Parameters.plan_retention_period)
+ [apg\$1plan\$1mgmt.unapproved\$1plan\$1execution\$1threshold](#AuroraPostgreSQL.Optimize.Parameters.unapproved_plan_execution_threshold)
+ [apg\$1plan\$1mgmt.use\$1plan\$1baselines](#AuroraPostgreSQL.Optimize.Parameters.use_plan_baselines)
+ [auto\$1explain.hashes](#AuroraPostgreSQL.Optimize.Parameters.auto_explain.hashes)

## apg\$1plan\$1mgmt.capture\$1plan\$1baselines
<a name="AuroraPostgreSQL.Optimize.Parameters.capture_plan_baselines"></a>

각 SQL 문에 대해 최적화 프로그램에서 생성한 쿼리 실행 계획을 캡처하여 `dba_plans` 뷰에 저장합니다. 기본적으로 저장할 수 있는 최대 계획 수는 `apg_plan_mgmt.max_plans` 파라미터에서 지정한 대로 10,000개입니다. 참조 정보는 [apg\$1plan\$1mgmt.max\$1plans](#AuroraPostgreSQL.Optimize.Parameters.max_plans) 단원을 참조하세요.

사용자 지정 DB 클러스터 파라미터 그룹 또는 사용자 지정 DB 파라미터 그룹에서 이 파라미터를 설정할 수 있습니다. 이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Parameters.html)

자세한 내용은 [Aurora PostgreSQL 실행 계획 캡처](AuroraPostgreSQL.Optimize.CapturePlans.md) 섹션을 참조하세요.

## apg\$1plan\$1mgmt.plan\$1capture\$1threshold
<a name="AuroraPostgreSQL.Optimize.Parameters.plan_capture_threshold"></a>

쿼리 실행 계획의 총 비용이 임계값 미만인 경우 계획이 `apg_plan_mgmt.dba_plans` 뷰에 캡처되지 않도록 임계값을 지정합니다.

이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.


| 기본값 | 허용된 값 | 설명 | 
| --- | --- | --- | 
| 0 | 0 - 1.79769e\$1308 | 캡처 계획을 위한 `apg_plan_mgmt` 쿼리 계획 총 실행 비용의 임계값을 설정합니다.  | 

자세한 내용은 [dba\$1plans 보기에서 Aurora PostgreSQL 쿼리 계획 검사](AuroraPostgreSQL.Optimize.ViewPlans.md) 섹션을 참조하세요.

## apg\$1plan\$1mgmt.explain\$1hashes
<a name="AuroraPostgreSQL.Optimize.Parameters.explain_hashes"></a>

`EXPLAIN [ANALYZE]`에서 출력 끝에 `sql_hash` 및 `plan_hash`를 표시할지 지정합니다. 이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Parameters.html)

## apg\$1plan\$1mgmt.log\$1plan\$1enforcement\$1result
<a name="AuroraPostgreSQL.Optimize.Parameters.log_plan_enforcement_result"></a>

QPM 관리형 계획이 제대로 사용되는지 확인하기 위해 결과를 기록해야 할지 지정합니다. 저장된 일반 계획을 사용하면 로그 파일에 레코드가 기록되지 않습니다. 이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Parameters.html)

## apg\$1plan\$1mgmt.max\$1databases
<a name="AuroraPostgreSQL.Optimize.Parameters.max_databases"></a>

쿼리 계획 관리를 사용할 수 있는 Aurora PostgreSQL DB 클러스터의 작성기 인스턴스에 있는 최대 데이터베이스 수를 지정합니다. 기본적으로 최대 10개의 데이터베이스에서 쿼리 계획 관리를 사용할 수 있습니다. 인스턴스에 10개 이상의 데이터베이스가 있는 경우 이 설정의 값을 변경할 수 있습니다. 특정 인스턴스에 있는 데이터베이스 수를 확인하려면 `psql`을 사용하여 인스턴스에 연결합니다. 그런 다음 psql 메타 명령, `\l`을 사용하여 데이터베이스를 나열합니다.

이 파라미터의 값을 변경하려면 설정을 적용하려면 인스턴스를 재부팅해야 합니다.


| 기본값 | 허용된 값 | 설명 | 
| --- | --- | --- | 
| 10 | 10-2147483647 | 인스턴스에서 쿼리 계획 관리를 사용할 수 있는 최대 데이터베이스 수입니다. | 

사용자 지정 DB 클러스터 파라미터 그룹 또는 사용자 지정 DB 파라미터 그룹에서 이 파라미터를 설정할 수 있습니다.

## apg\$1plan\$1mgmt.max\$1plans
<a name="AuroraPostgreSQL.Optimize.Parameters.max_plans"></a>

쿼리 계획 관리자가 `apg_plan_mgmt.dba_plans` 보기에서 유지할 수 있는 최대 SQL 문 수를 설정합니다. 모든 Aurora PostgreSQL 버전에서 이 파라미터를 `10000` 또는 그 이상으로 설정하는 것이 좋습니다.

사용자 지정 DB 클러스터 파라미터 그룹 또는 사용자 지정 DB 파라미터 그룹에서 이 파라미터를 설정할 수 있습니다. 이 파라미터의 값을 변경하려면 설정을 적용하려면 인스턴스를 재부팅해야 합니다.


| 기본값 | 허용된 값 | 설명 | 
| --- | --- | --- | 
| 10000 | 10-2147483647 | `apg_plan_mgmt.dba_plans` 보기에 저장할 수 있는 최대 계획 수입니다. Aurora PostgreSQL 버전 10 및 이전 버전의 기본값은 1000입니다.  | 

자세한 내용은 [dba\$1plans 보기에서 Aurora PostgreSQL 쿼리 계획 검사](AuroraPostgreSQL.Optimize.ViewPlans.md) 섹션을 참조하세요.

## apg\$1plan\$1mgmt.plan\$1hash\$1version
<a name="AuroraPostgreSQL.Optimize.Parameters.plan_hash_version"></a>

plan\$1hash 계산이 처리하도록 설계된 사용 사례를 지정합니다. 상위 `apg_plan_mgmt.plan_hash_version` 버전에는 하위 버전의 모든 기능이 포함됩니다. 예를 들어, 버전 3은 버전 2에서 지원하는 사용 사례를 지원합니다.

 이 파라미터의 값을 변경한 다음 `apg_plan_mgmt.validate_plans('update_plan_hash')`로 호출해야 합니다. apg\$1plan\$1mgmt가 설치되어 있고 계획 테이블에 항목이 있는 각 데이터베이스의 plan\$1hash 값을 업데이트합니다. 자세한 내용은 [계획 검증](AuroraPostgreSQL.Optimize.Deleting.md#AuroraPostgreSQL.Optimize.Maintenance.ValidatingPlans) 섹션을 참조하세요.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Parameters.html)

## apg\$1plan\$1mgmt.plan\$1retention\$1period
<a name="AuroraPostgreSQL.Optimize.Parameters.plan_retention_period"></a>

`apg_plan_mgmt.dba_plans` 보기에서 계획을 유지할 일 수를 지정하고 이후에는 자동으로 삭제됩니다. 기본적으로 계획이 마지막으로 사용된 후 32일이 경과하면 계획이 삭제됩니다(`apg_plan_mgmt.dba_plans` 보기의 `last_used` 열). 이 설정을 1 이상의 숫자로 변경할 수 있습니다.

이 파라미터의 값을 변경하려면 설정을 적용하려면 인스턴스를 재부팅해야 합니다.


| 기본값 | 허용된 값 | 설명 | 
| --- | --- | --- | 
| 32 | 1-2147483647 | 계획이 삭제되기 전에 마지막으로 사용된 이후 최대 일수입니다. | 

자세한 내용은 [dba\$1plans 보기에서 Aurora PostgreSQL 쿼리 계획 검사](AuroraPostgreSQL.Optimize.ViewPlans.md) 섹션을 참조하세요.

## apg\$1plan\$1mgmt.unapproved\$1plan\$1execution\$1threshold
<a name="AuroraPostgreSQL.Optimize.Parameters.unapproved_plan_execution_threshold"></a>

최적화 프로그램에서 승인되지 않은 계획을 사용할 수 있는 비용 임계값을 지정합니다. 기본적으로 임계값은 0이므로 최적화 프로그램은 미승인 계획을 실행하지 않습니다. 이 파라미터를 매우 낮은 임계값(예: 100)으로 설정하면 사소한 계획에 대한 계획 적용 오버헤드를 피할 수 있습니다. 반응형 계획 관리 스타일을 사용하여 이 파라미터를 10000000과 같은 매우 큰 값으로 설정할 수도 있습니다. 이렇게 하면 최적화 프로그램이 계획 적용 오버헤드 없이 선택한 모든 계획을 사용할 수 있습니다. 하지만 잘못된 계획이 발견되면 다음 번에 사용되지 않도록 수동으로 '거부됨'으로 표시할 수 있습니다.

이 파라미터의 값은 주어진 계획을 실행하기 위한 예상 비용을 나타냅니다. 승인되지 않은 계획이 예상 비용보다 낮으면 최적화 프로그램은 SQL 문에 이를 사용합니다. 캡처된 계획과 해당 상태(승인됨, 승인되지 않음)를 `dba_plans` 보기에서 볼 수 있습니다. 자세한 내용은 [dba\$1plans 보기에서 Aurora PostgreSQL 쿼리 계획 검사](AuroraPostgreSQL.Optimize.ViewPlans.md)를 참조하세요.

이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.


| 기본값 | 허용된 값 | 설명 | 
| --- | --- | --- | 
| 0 | 0-2147483647 | 승인되지 않은 계획이 사용되는 아래의 예상 계획 비용입니다. | 

자세한 내용은 [Aurora PostgreSQL 관리형 계획 사용](AuroraPostgreSQL.Optimize.UsePlans.md) 섹션을 참조하세요.

## apg\$1plan\$1mgmt.use\$1plan\$1baselines
<a name="AuroraPostgreSQL.Optimize.Parameters.use_plan_baselines"></a>

최적화 프로그램이 `apg_plan_mgmt.dba_plans` 보기에 캡처되고 저장된 승인된 계획 중 하나를 사용해야 함을 지정합니다. 기본적으로 이 파라미터는 꺼져 있으므로(거짓) 최적화 프로그램은 추가 평가 없이 생성한 최소 비용 계획을 사용합니다. 이 파라미터를 켜면(true로 설정) 최적화 프로그램이 계획 기준선에서 명령문에 대한 쿼리 실행 계획을 선택하도록 합니다. 자세한 내용은 [Aurora PostgreSQL 관리형 계획 사용](AuroraPostgreSQL.Optimize.UsePlans.md) 섹션을 참조하세요. 이 프로세스를 자세히 설명하는 이미지를 찾으려면 [최적화 프로그램에서 실행할 계획을 선택하는 방식.](AuroraPostgreSQL.Optimize.UsePlans.md#AuroraPostgreSQL.Optimize.UsePlans.ChoosePlans) 단원을 참조하세요.

사용자 지정 DB 클러스터 파라미터 그룹 또는 사용자 지정 DB 파라미터 그룹에서 이 파라미터를 설정할 수 있습니다. 이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Parameters.html)

필요에 따라 다른 캡처된 계획의 응답 시간을 평가하고 계획 상태를 변경할 수 있습니다. 자세한 내용은 [Aurora PostgreSQL 쿼리 계획 개선](AuroraPostgreSQL.Optimize.Maintenance.md) 섹션을 참조하세요.

## auto\$1explain.hashes
<a name="AuroraPostgreSQL.Optimize.Parameters.auto_explain.hashes"></a>

auto\$1explain 출력에 sql\$1hash 및 plan\$1hash가 표시되는지 지정합니다. 이 파라미터의 값을 변경하면 재부팅이 필요하지 않습니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Parameters.html)

# Aurora PostgreSQL 쿼리 계획 관리를 위한 함수 참조
<a name="AuroraPostgreSQL.Optimize.Functions"></a>

`apg_plan_mgmt` 확장은 다음 함수를 제공합니다.

**Topics**
+ [apg\$1plan\$1mgmt.copy\$1outline](#AuroraPostgreSQL.Optimize.Functions.copy_outline)
+ [apg\$1plan\$1mgmt.delete\$1plan](#AuroraPostgreSQL.Optimize.Functions.delete_plan)
+ [apg\$1plan\$1mgmt.evolve\$1plan\$1baselines](#AuroraPostgreSQL.Optimize.Functions.evolve_plan_baselines)
+ [apg\$1plan\$1mgmt.get\$1explain\$1plan](#AuroraPostgreSQL.Optimize.Functions.get_explain_plan)
+ [apg\$1plan\$1mgmt.plan\$1last\$1used](#AuroraPostgreSQL.Optimize.Functions.plan_last_used)
+ [apg\$1plan\$1mgmt.reload](#AuroraPostgreSQL.Optimize.Functions.reload)
+ [apg\$1plan\$1mgmt.set\$1plan\$1enabled](#AuroraPostgreSQL.Optimize.Functions.set_plan_enabled)
+ [apg\$1plan\$1mgmt.set\$1plan\$1status](#AuroraPostgreSQL.Optimize.Functions.set_plan_status)
+ [apg\$1plan\$1mgmt.update\$1plans\$1last\$1used](#AuroraPostgreSQL.Optimize.Functions.update_plans_last_used)
+ [apg\$1plan\$1mgmt.validate\$1plans](#AuroraPostgreSQL.Optimize.Functions.validate_plans)

## apg\$1plan\$1mgmt.copy\$1outline
<a name="AuroraPostgreSQL.Optimize.Functions.copy_outline"></a>

지정된 SQL 계획 해시 및 계획 아웃라인을 대상 SQL 계획 해시 및 아웃라인에 복사하여 대상의 계획 해시 및 아웃라인을 덮어씁니다. 이 함수는 `apg_plan_mgmt` 2.3 이상 릴리스에서 사용할 수 있습니다.

**구문**:

```
apg_plan_mgmt.copy_outline(
    source_sql_hash,
    source_plan_hash,
    target_sql_hash,
    target_plan_hash,
    force_update_target_plan_hash
)
```

**반환 값**  
복사가 성공하면 0을 반환합니다. 입력이 잘못된 경우 예외를 발생시킵니다.

**파라미터**


****  

| 파라미터 | 설명 | 
| --- | --- | 
| source\$1sql\$1hash  | 대상 쿼리에 복사할 plan\$1hash와 관련된 sql\$1hash ID입니다. | 
| source\$1plan\$1hash  | 대상 쿼리에 복사할 plan\$1hash ID입니다. | 
| target\$1sql\$1hash | 소스 플랜 해시 및 아웃라인으로 업데이트할 쿼리의 sql\$1hash ID입니다. | 
| target\$1plan\$1hash | 소스 플랜 해시 및 아웃라인으로 업데이트할 쿼리의 plan\$1hash ID입니다. | 
| force\$1update\$1target\$1plan\$1hash | (선택 사항) target\$1sql\$1hash에 대한 소스 계획을 재현할 수 없는 경우에도 쿼리의 target\$1plan\$1hash ID가 업데이트됩니다. true로 설정하면 함수를 사용하여 관계 이름과 열이 일치하는 스키마 간에 계획을 복사할 수 있습니다. | 

**사용 노트**:

이 함수를 사용하면 힌트를 사용하는 계획 해시 및 계획 개요를 다른 유사한 문에 복사할 수 있으므로, 대상 문에서 발생할 때마다 인라인 힌트 문을 사용하지 않아도 됩니다. 업데이트된 대상 쿼리 때문에 잘못된 계획이 생성되는 경우, 이 함수는 오류를 발생시키고 시도한 업데이트를 롤백합니다.

## apg\$1plan\$1mgmt.delete\$1plan
<a name="AuroraPostgreSQL.Optimize.Functions.delete_plan"></a>

관리형 계획을 삭제합니다.

**구문**:

```
apg_plan_mgmt.delete_plan(
    sql_hash,
    plan_hash
)
```

**반환 값**  
삭제가 성공한 경우 0을 반환하고, 실패한 경우 -1을 반환합니다.

**파라미터**


****  

| 파라미터 | 설명 | 
| --- | --- | 
| sql\$1hash  | 계획의 관리형 SQL 문의 sql\$1hash ID. | 
| plan\$1hash | 관리형 계획의 plan\$1hash ID. | 

 

## apg\$1plan\$1mgmt.evolve\$1plan\$1baselines
<a name="AuroraPostgreSQL.Optimize.Functions.evolve_plan_baselines"></a>

이미 승인된 계획이 더 빠른지 여부 또는 쿼리 최적화 프로그램에서 최소 비용 계획으로 식별된 계획이 더 빠른지 여부를 확인합니다.

**구문**:

```
apg_plan_mgmt.evolve_plan_baselines(
    sql_hash, 
    plan_hash,
    min_speedup_factor,
    action
)
```

**반환 값**

승인된 최상의 계획보다 빠르지 않은 계획 수.

**파라미터**


****  

| 파라미터 | 설명 | 
| --- | --- | 
| sql\$1hash | 계획의 관리형 SQL 문의 sql\$1hash ID. | 
| plan\$1hash | 관리형 계획의 plan\$1hash ID. sql\$1hash ID 값이 동일한 모든 계획의 평균을 구하려면 NULL을 사용합니다. | 
| min\$1speedup\$1factor |  *최소 속도 향상 인수*는 계획이 승인되려면 이미 승인된 계획 중 최상의 계획보다 몇 배 더 빨라야 하는지를 지정합니다. 또는 거부되거나 비활성화되려면 몇 배 더 느려야 하는지를 지정할 수도 있습니다. 이 값은 양수 부동 값입니다.  | 
| action |  함수가 수행해야 할 작업입니다. 유효 값에는 다음이 포함됩니다. 대/소문자를 구분하지 않습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Functions.html)  | 

**사용 노트**

계획 \$1 실행 시간이 설정한 인수만큼 최상의 승인된 계획보다 더 빠른지 여부에 따라 지정된 계획을 승인됨, 거부됨 또는 비활성화됨으로 설정합니다. 이 작업 파라미터를 `'approve'` 또는 `'reject'`로 설정하여 성능 기준을 충족하는 계획을 자동으로 승인하거나 거부할 수 있습니다. 또는 "(빈 문자열)로 설정하여 성능 실험을 수행한 후 보고서만 생성하고 아무런 작업도 취하지 않을 수 있습니다.

최근에 실행된 계획에 대해 `apg_plan_mgmt.evolve_plan_baselines` 함수를 무의미하게 다시 실행하는 일을 방지할 수 있습니다. 이를 위해서는 최근에 생성한 미승인 계획까지만 계획을 제한하십시오. 또는 최근 `apg_plan_mgmt.evolve_plan_baselines` 타임스탬프가 있는 승인된 계획에서만 `last_verified` 함수를 실행하지 않도록 할 수 있습니다.

성능 실험을 수행하여 기준 내 다른 계획과 각 계획의 계획 \$1 실행 시간을 비교합니다. 경우에 따라서는 설명문에 대해 계획 하나만 있고 해당 계획이 승인된 계획일 수 있습니다. 이러한 경우에는 계획의 계획 \$1 실행 시간과 아무런 계획도 사용하지 않을 때의 계획 \$1 실행 시간을 비교합니다.

각 계획의 증분형 이점(또는 단점)이 `apg_plan_mgmt.dba_plans` 열의 `total_time_benefit_ms` 보기에 기록됩니다. 이 값이 양수이면 기준에 이 계획을 포함할 경우 주목할 만한 성능 개선이 있는 것입니다.

각 후보 계획의 계획 \$1 실행 시간을 수집할 뿐만 아니라, `last_verified` 보기의 `apg_plan_mgmt.dba_plans` 열이 `current_timestamp`로 업데이트됩니다. `last_verified` 타임스탬프를 사용하면 최근에 성능이 확인된 계획에 대해 이 함수가 다시 실행되지 않도록 할 수 있습니다.

## apg\$1plan\$1mgmt.get\$1explain\$1plan
<a name="AuroraPostgreSQL.Optimize.Functions.get_explain_plan"></a>

지정한 SQL 문에 대한 `EXPLAIN` 문의 텍스트를 생성합니다.

**구문**:

```
apg_plan_mgmt.get_explain_plan(
    sql_hash,
    plan_hash,
    [explainOptionList]
)
```

**반환 값**  
지정한 SQL 문에 대한 런타임 통계를 반환합니다. 간단한 `explainOptionList` 계획을 반환하려면 `EXPLAIN` 없이 사용합니다.

**파라미터**


****  

| 파라미터 | 설명 | 
| --- | --- | 
| sql\$1hash  | 계획의 관리형 SQL 문의 sql\$1hash ID. | 
| plan\$1hash | 관리형 계획의 plan\$1hash ID. | 
| explainOptionList | 설명 옵션을 쉼표로 구분한 목록입니다. 유효한 값으로는 `'analyze'`, `'verbose'`, `'buffers'`, `'hashes'` 및 `'format json'`이 있습니다. `explainOptionList`가 NULL이거나 빈 문자열('')인 경우 이 함수는 통계 데이터 없이 `EXPLAIN` 문을 생성합니다.  | 

 

**사용 노트**

`explainOptionList`의 경우 `EXPLAIN` 문에 사용하는 것과 동일한 옵션 중 하나를 사용할 수 있습니다. Aurora PostgreSQL 옵티마이저는 사용자가 `EXPLAIN` 문에 제공항하는 옵션 목록을 연결합니다.

## apg\$1plan\$1mgmt.plan\$1last\$1used
<a name="AuroraPostgreSQL.Optimize.Functions.plan_last_used"></a>

공유 메모리에서 지정된 계획의 `last_used` 날짜를 반환합니다.

**참고**  
공유 메모리의 값은 DB 클러스터의 기본 DB 인스턴스에서 항상 최신 상태입니다. 값은 `apg_plan_mgmt.dba_plans` 뷰의 `last_used` 열에 주기적으로 플러시됩니다.

**구문**:

```
apg_plan_mgmt.plan_last_used(
    sql_hash,
    plan_hash
)
```

**반환 값**  
`last_used` 날짜를 반환합니다.

**파라미터**


****  

| 파라미터 | 설명 | 
| --- | --- | 
| sql\$1hash  | 계획의 관리형 SQL 문의 sql\$1hash ID. | 
| plan\$1hash | 관리형 계획의 plan\$1hash ID. | 

 

## apg\$1plan\$1mgmt.reload
<a name="AuroraPostgreSQL.Optimize.Functions.reload"></a>

계획을 `apg_plan_mgmt.dba_plans` 보기에서 공유 메모리로 다시 로드합니다.

**구문**:

```
apg_plan_mgmt.reload()
```

**반환 값**

없음.

**파라미터**

없음.

**사용 노트**

다음 상황의 경우 `reload`를 호출합니다.
+ 새 계획이 복제본으로 전파될 때까지 기다리기 보다는 이 함수를 사용하여 읽기 전용 복제본의 공유 메모리를 즉시 새로 고칩니다.
+ 관리형 계획을 가져온 후에 사용합니다.



## apg\$1plan\$1mgmt.set\$1plan\$1enabled
<a name="AuroraPostgreSQL.Optimize.Functions.set_plan_enabled"></a>

관리형 계획을 활성화하거나 비활성화합니다.

**구문**:

```
apg_plan_mgmt.set_plan_enabled(
    sql_hash, 
    plan_hash, 
    [true | false]
)
```

**반환 값**

설정이 성공한 경우 0을 반환하고, 실패한 경우 -1을 반환합니다.

**파라미터**


****  

| 파라미터 | 설명 | 
| --- | --- | 
| sql\$1hash | 계획의 관리형 SQL 문의 sql\$1hash ID. | 
| plan\$1hash | 관리형 계획의 plan\$1hash ID. | 
| enabled |  부울 값(true 또는 false): [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Functions.html)  | 

 

## apg\$1plan\$1mgmt.set\$1plan\$1status
<a name="AuroraPostgreSQL.Optimize.Functions.set_plan_status"></a>

관리된 계획의 상태를 `Approved`, `Unapproved`, `Rejected` 또는 `Preferred`로 설정합니다.

**구문**:

```
apg_plan_mgmt.set_plan_status(
    sql_hash, 
    plan_hash, 
    status
)
```

**반환 값**

설정이 성공한 경우 0을 반환하고, 실패한 경우 -1을 반환합니다.

**파라미터**


****  

| 파라미터 | 설명 | 
| --- | --- | 
| sql\$1hash | 계획의 관리형 SQL 문의 sql\$1hash ID. | 
| plan\$1hash | 관리형 계획의 plan\$1hash ID. | 
| status |  다음 값 중 하나를 가진 문자열: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Functions.html) 대문자를 사용하든 소문자를 사용하든 `apg_plan_mgmt.dba_plans` 보기에서 상태 값은 초기 대문자로 설정됩니다. 이러한 값에 대한 자세한 내용은 `status`의 [Aurora PostgreSQL 호환 에디션의 apg\$1plan\$1mgmt.dba\$1plans 뷰에 대한 참조](AuroraPostgreSQL.Optimize.dba_plans_view_Reference.md)를 참조하세요.  | 

 

## apg\$1plan\$1mgmt.update\$1plans\$1last\$1used
<a name="AuroraPostgreSQL.Optimize.Functions.update_plans_last_used"></a>

공유 메모리에 저장됭 `last_used` 날짜로 계획 테이블을 즉시 업데이트합니다.

**구문**:

```
apg_plan_mgmt.update_plans_last_used()
```

**반환 값**

없음.

**파라미터**

없음.

**사용 노트**

`dba_plans.last_used` 열에 대항하는 쿼리가 가장 최신 정보를 사용하도록 `update_plans_last_used`를 호출합니다. 만약 `last_used` 날짜가 즉시 업데이트되지 않는다면, 백그라운드 프로세스가 계획 테이블을 `last_used` 날짜로 1시간에 한 번씩(기본값) 업데이트합니다.

예를 들어, 특정 `sql_hash`가 있는 명령문이 느리게 실행되기 시작하면, 성능 회귀 분석이 시작된 이후 해당 명령문에 대해 어떤 계획이 실행되었는지 확인할 수 있습니다. 이렇게 하려면 먼저 공유 메모리의 데이터를 디스크로 플러시하여 `last_used` 날짜가 현재 날짜이고, 그런 다음 성능 회귀가 있는 명령문의 `sql_hash`의 모든 계획을 쿼리합니다. 쿼리에서 `last_used` 날짜가 성능 회귀 분석이 시작된 날짜보다 크거나 같은지 확인하세요. 쿼리는 성과 회귀를 담당할 수 있는 계획 또는 계획 집합을 식별합니다. `apg_plan_mgmt.get_explain_plan`과 `explainOptionList`를 사용하여 `verbose, hashes`로 설정할 수 있습니다. 또한 `apg_plan_mgmt.evolve_plan_baselines`를 통해 계획과 더 나은 성능을 발휘할 수 있는 대체 계획을 분석할 수 있습니다.

`update_plans_last_used` 함수는 DB 클러스터의 기본 DB 인스턴스에만 영향을 줍니다.

## apg\$1plan\$1mgmt.validate\$1plans
<a name="AuroraPostgreSQL.Optimize.Functions.validate_plans"></a>

최적화 프로그램에서 계획을 여전히 다시 생성할 수 있는지 검증합니다. 최적화 프로그램은 계획의 활성 또는 비활성 여부와 상관없이 `Approved`, `Unapproved` 및 `Preferred` 계획을 검증합니다. `Rejected` 계획은 검증되지 않습니다. 원할 경우 `apg_plan_mgmt.validate_plans` 함수를 사용하여 유효하지 않은 계획을 삭제하거나 비활성화할 수 있습니다.

**구문**:

```
apg_plan_mgmt.validate_plans(
    sql_hash, 
    plan_hash, 
    action)
            
apg_plan_mgmt.validate_plans(
    action)
```

**반환 값**

잘못된 계획 수.

**파라미터**


****  

| 파라미터 | 설명 | 
| --- | --- | 
| sql\$1hash | 계획의 관리형 SQL 문의 sql\$1hash ID. | 
| plan\$1hash | 관리형 계획의 plan\$1hash ID. 동일한 sql\$1hash ID 값에 대한 모든 계획의 평균을 구하려면 NULL을 사용합니다. | 
| action |  함수에서 잘못된 계획에 대해 수행할 작업. 유효한 문자열 값에는 다음이 포함됩니다. 대/소문자를 구분하지 않습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.Functions.html) 그 밖의 값은 빈 문자열로 간주됩니다.  | 

**사용 노트**

전체 `validate_plans(action)` 보기의 모든 관리형 설명문에 대해 모든 관리형 계획을 검증하려면 `apg_plan_mgmt.dba_plans` 형태를 사용합니다.

`validate_plans(sql_hash, plan_hash, action)`가 지정된 관리형 설명문의 경우 `plan_hash`가 지정된 관리형 계획을 검증하려면 `sql_hash` 형태를 사용합니다.

`validate_plans(sql_hash, NULL, action)`가 지정된 관리형 설명문에 대해 모든 관리형 계획을 검증하려면 `sql_hash` 형태를 사용합니다.

# Aurora PostgreSQL 호환 에디션의 apg\$1plan\$1mgmt.dba\$1plans 뷰에 대한 참조
<a name="AuroraPostgreSQL.Optimize.dba_plans_view_Reference"></a>

`apg_plan_mgmt.dba_plans` 보기의 계획 정보 열에는 다음이 포함됩니다.


| dba\$1plans 열 | 설명 | 
| --- | --- | 
| cardinality\$1error |  예상 카디널리티와 실제 카디널리티 간의 오차를 측정합니다. *카디널리티*는 계획에서 처리할 테이블 행 개수입니다. 카디널리티 오차가 크면 계획이 최적 상태가 아닐 가능성이 높습니다. 이 열은 [apg\$1plan\$1mgmt.evolve\$1plan\$1baselines](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.evolve_plan_baselines) 함수에 의해 작성됩니다.  | 
| compatibility\$1level |  이 파라미터는 쿼리 계획이 마지막으로 검증된 시기를 보여줍니다. Aurora PostgreSQL 버전 12.19, 13.15, 14.12, 15.7, 16.3 이상에서는 Aurora 버전 번호가 표시됩니다. 이전 버전의 경우 기능별 버전 번호가 표시됩니다.  이 파라미터 값을 기본 설정으로 유지합니다. Aurora PostgreSQL은 이 값을 자동으로 설정하고 업데이트합니다.   | 
| created\$1by | 계획을 생성한 인증된 사용자(session\$1user)입니다. | 
| enabled |  계획의 활성화/비활성화 여부를 나타내는 지표입니다. 모든 계획은 기본적으로 활성화되어 있습니다. 계획을 비활성화하여 최적화 프로그램에서 사용되지 않도록 할 수 있습니다. 이 값을 수정하려면 [apg\$1plan\$1mgmt.set\$1plan\$1enabled](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.set_plan_enabled) 함수를 사용합니다.  | 
| environment\$1variables |  최적화 프로그램이 계획이 캡처될 때 재정의한 PostgreSQL Grand Unified Configuration(GUC) 파라미터와 값입니다.  | 
| estimated\$1startup\$1cost | 최적화 프로그램애서 테이블의 행을 전송하기 전 최적화 프로그램 설정 예상 비용입니다. | 
| estimated\$1total\$1cost | 최종 테이블 행을 전송하는 데 드는 최적화 프로그램 예상 비용입니다. | 
| execution\$1time\$1benefit\$1ms | 계획 활성화 시 실행 시간 편익(밀리초)입니다. 이 열은 [apg\$1plan\$1mgmt.evolve\$1plan\$1baselines](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.evolve_plan_baselines) 함수에 의해 작성됩니다. | 
| execution\$1time\$1ms | 계획이 실행될 예상 시간(밀리초)입니다. 이 열은 [apg\$1plan\$1mgmt.evolve\$1plan\$1baselines](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.evolve_plan_baselines) 함수에 의해 작성됩니다. | 
| has\$1side\$1effects | SQL 문이 데이터 조작 언어(DML) 문이거나 VOLATILE 함수를 포함하는 SELECT 문임을 나타내는 값입니다. | 
| last\$1used | 이 값은 계획이 실행될 때마다 또는 계획이 쿼리 최적화 프로그램의 최소 비용 계획일 경우 현재 날짜로 업데이트됩니다. 이 값은 공유 메모리에 저장되고 정기적으로 디스크로 플러시됩니다. 최신 값을 가져오려면 apg\$1plan\$1mgmt.plan\$1last\$1used(sql\$1hash, plan\$1hash) 값을 읽는 대신 last\$1used 함수를 호출하여 공유 메모리에서 날짜를 읽습니다. 자세한 내용은 [apg\$1plan\$1mgmt.plan\$1retention\$1period](AuroraPostgreSQL.Optimize.Parameters.md#AuroraPostgreSQL.Optimize.Parameters.plan_retention_period) 파라미터를 참조하십시오. | 
| last\$1validated | [apg\$1plan\$1mgmt.validate\$1plans](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.validate_plans) 함수 또는 [apg\$1plan\$1mgmt.evolve\$1plan\$1baselines](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.evolve_plan_baselines) 함수로 계획을 다시 생성할 수 있음이 확인된 최근 날짜 및 시간입니다. | 
| last\$1verified | 계획이 [apg\$1plan\$1mgmt.evolve\$1plan\$1baselines](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.evolve_plan_baselines) 함수에 의해 지정된 파라미터에 대한 최적 수행 계획인 것으로 확인된 최근 날짜 및 시간입니다. | 
| origin |  [apg\$1plan\$1mgmt.capture\$1plan\$1baselines](AuroraPostgreSQL.Optimize.Parameters.md#AuroraPostgreSQL.Optimize.Parameters.capture_plan_baselines) 파라미터를 사용하여 계획을 캡처한 방법입니다. 유효한 값은 다음과 같습니다. `M` – 수동 계획 캡처 기능을 사용하여 계획을 캡처했습니다. `A` – 자동 계획 캡처 기능을 사용하여 계획을 캡처했습니다.  | 
| param\$1list |  준비된 설명문인 경우 문으로 전달된 파라미터 값입니다.  | 
| plan\$1created | 계획이 생성된 날짜 및 시간입니다. | 
| plan\$1hash | 계획 식별자입니다. plan\$1hash 및 sql\$1hash의 조합은 특정 계획을 고유하게 식별합니다. | 
| plan\$1outline | 실제 실행 계획을 다시 생성하는 데 사용되고 데이터베이스에 독립적인 계획을 표현합니다. EXPLAIN 출력에 나타나는 연산자에 해당하는 트리의 연산자입니다. | 
| planning\$1time\$1ms |  플래너를 실행할 실제 시간(밀리초)입니다. 이 열은 [apg\$1plan\$1mgmt.evolve\$1plan\$1baselines](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.evolve_plan_baselines) 함수에 의해 작성됩니다.  | 
| queryId | pg\$1stat\$1statements 확장을 통해 계산된 설명문 해시입니다. 이 식별자는 객체 식별자(OID)에 종속되므로 안정형 또는 데이터베이스 독립형 식별자가 아닙니다. 쿼리 계획을 캡처할 때 compute\$1query\$1id가 off면 값이 0이 됩니다. | 
| sql\$1hash | 정규화된(리터럴이 제거됨), SQL 문 텍스트의 해시 값입니다. | 
| sql\$1text | SQL 문의 전체 텍스트입니다. | 
| status |  최적화 프로그램에서 계획을 사용하는 방법을 결정하는 계획의 상태입니다. 유효 값에는 다음이 포함됩니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.dba_plans_view_Reference.html)  | 
| stmt\$1name | PREPARE 문 안에 있는 SQL 문의 이름입니다. 이름이 지정되지 않은 준비된 설명문의 경우 이 값이 빈 문자열입니다. 준비되지 않은 설명문의 경우 이 값이 NULL입니다. | 
| total\$1time\$1benefit\$1ms |  이 계획 활성화 시 총 시간 편익(밀리초)입니다. 이 값은 계획 시간 및 실행 시간을 모두 고려합니다. 이 값이 음수이면 이 계획을 활성화하는 것이 불리합니다. 이 열은 [apg\$1plan\$1mgmt.evolve\$1plan\$1baselines](AuroraPostgreSQL.Optimize.Functions.md#AuroraPostgreSQL.Optimize.Functions.evolve_plan_baselines) 함수에 의해 작성됩니다.  | 

# 쿼리 계획 관리의 고급 기능
<a name="AuroraPostgreSQL.QPM.Advanced"></a>

아래에서 Aurora PostgreSQL 쿼리 계획 관리(QPM)의 고급 기능에 대한 정보를 찾을 수 있습니다.

**Topics**
+ [복제본에서 Aurora PostgreSQL 실행 계획 캡처](AuroraPostgreSQL.QPM.Plancapturereplicas.md)
+ [테이블 파티션 지원](AuroraPostgreSQL.QPM.Partitiontable.md)

# 복제본에서 Aurora PostgreSQL 실행 계획 캡처
<a name="AuroraPostgreSQL.QPM.Plancapturereplicas"></a>

쿼리 계획 관리(QPM)를 사용하면 Aurora 복제본에서 생성된 쿼리 계획을 캡처하여 Aurora DB 클러스터의 기본 DB 인스턴스에 저장할 수 있습니다. 모든 Aurora 복제본에서 쿼리 계획을 수집하고 기본 인스턴스의 중앙 영구 테이블에서 최적의 계획 집합을 유지 관리할 수 있습니다. 그런 다음 필요할 때 이 계획을 다른 복제본에 적용할 수 있습니다. 이를 통해 실행 계획의 안정성을 유지하고 DB 클러스터 및 엔진 버전 전반의 쿼리 성능을 개선할 수 있습니다.

**Topics**
+ [사전 조건](#AuroraPostgreSQL.QPM.Plancapturereplicas.Prereq)
+ [Aurora 복제본의 계획 캡처 관리](#AuroraPostgreSQL.QPM.Plancapturereplicas.managing)
+ [문제 해결](#AuroraPostgreSQL.QPM.Plancapturereplicas.Troubleshooting)

## 사전 조건
<a name="AuroraPostgreSQL.QPM.Plancapturereplicas.Prereq"></a>

**Aurora 복제본에서 `capture_plan_baselines parameter` 켜기** - Aurora 복제본에서 계획을 캡처하려면 `capture_plan_baselines` 파라미터를 자동 또는 수동으로 설정합니다. 자세한 내용은 [apg\$1plan\$1mgmt.capture\$1plan\$1baselines](AuroraPostgreSQL.Optimize.Parameters.md#AuroraPostgreSQL.Optimize.Parameters.capture_plan_baselines) 단원을 참조하십시오.

**postgres\$1fdw 확장 설치** - Aurora 복제본에서 계획을 캡처하려면 `postgres_fdw` 외부 데이터 래퍼 확장을 설치해야 합니다. 각 데이터베이스에서 다음 명령을 실행하여 확장을 설치합니다.

```
postgres=> CREATE EXTENSION IF NOT EXISTS postgres_fdw;
```

## Aurora 복제본의 계획 캡처 관리
<a name="AuroraPostgreSQL.QPM.Plancapturereplicas.managing"></a>

**Aurora 복제본의 계획 캡처 켜기**  
Aurora 복제본에서 계획 캡처를 생성하거나 제거하려면 `rds_superuser` 권한이 있어야 합니다. 사용자 역할 및 권한에 대한 자세한 내용은 [PostgreSQL 역할 및 권한 이해](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Roles.html)를 참조하세요.

계획을 캡처하려면 다음과 같이 라이터 DB 인스턴스에서 apg\$1plan\$1mgmt.create\$1replica\$1plan\$1capture 함수를 호출하세요.

```
postgres=> CALL apg_plan_mgmt.create_replica_plan_capture('endpoint', 'password');
```
+ 엔드포인트 - Aurora Global Database 라이터 엔드포인트 또는 cluster\$1endpoint는 Aurora 복제본의 계획 캡처에 대한 장애 조치 지원을 제공합니다.

  Aurora Global Database 라이터 엔드포인트에 대한 자세한 내용은 [Amazon Aurora Global Database의 엔드포인트 보기](aurora-global-database-connecting.md#viewing-endpoints) 섹션을 참조하시기 바랍니다.

  클러스터 엔드포인트에 대한 자세한 내용은 [Amazon Aurora용 클러스터 엔드포인트](Aurora.Endpoints.Cluster.md) 섹션을 참조하세요.
+ 암호 - 보안을 강화하려면 암호를 생성할 때 아래 지침을 따르는 것이 좋습니다.
  + 최소 8개의 문자를 포함해야 합니다.
  + 최소한 대문자 1개, 소문자 1개 및 숫자 1개를 포함해야 합니다.
  + 하나 이상의 특수 문자(`?`, `!`, `#`, `<`, `>`, `*` 등)가 있어야 합니다.

**참고**  
엔드포인트, 암호 또는 포트 번호를 변경하는 경우 엔드포인트 및 암호를 사용하여 `apg_plan_mgmt.create_replica_plan_capture()`를 다시 실행하여 계획 캡처를 다시 초기화해야 합니다. 이렇게 하지 않으면 Aurora 복제본에서 계획을 캡처하는 데 실패합니다.

**Aurora 복제본의 계획 캡처 끄기**  
파라미터 그룹에서 값을 `off`로 설정하여 Aurora 복제본의 `capture_plan_baselines` 파라미터를 끌 수 있습니다.

**Aurora 복제본의 계획 캡처 제거**  
Aurora 복제본에서 계획 캡처를 완전히 제거할 수 있지만 먼저 확인할 것이 있습니다. 계획 캡처를 제거하려면 다음과 같이 `apg_plan_mgmt.remove_replica_plan_capture`를 호출합니다.

```
postgres=> CALL apg_plan_mgmt.remove_replica_plan_capture();
```

Aurora 복제본에서 계획 캡처를 설정하려면 엔드포인트와 암호를 사용하여 apg\$1plan\$1mgmt.create\$1replica\$1plan\$1capture()를 다시 호출해야 합니다.

## 문제 해결
<a name="AuroraPostgreSQL.QPM.Plancapturereplicas.Troubleshooting"></a>

Aurora 복제본에서 계획이 예상대로 캡처되지 않는 경우 아래에서 문제 해결 아이디어와 해결 방법을 찾을 수 있습니다.
+ **파라미터 설정** - `capture_plan_baselines` 파라미터가 계획 캡처를 켜도록 적절한 값으로 설정되어 있는지 확인합니다.
+ **`postgres_fdw` 확장 설치** - 다음 쿼리를 사용하여 `postgres_fdw` 설치 여부를 확인합니다.

  ```
  postgres=> SELECT * FROM pg_extension WHERE extname = 'postgres_fdw'
  ```
+ **create\$1replica\$1plan\$1capture()가 호출됨** - 다음 명령을 사용하여 사용자 매핑이 종료되는지 확인합니다. 그렇지 않으면 `create_replica_plan_capture()`를 호출하여 기능을 초기화합니다.

  ```
  postgres=> SELECT * FROM pg_foreign_server WHERE srvname = 'apg_plan_mgmt_writer_foreign_server';
  ```
+ **엔드포인트 및 포트 번호** - 해당하는 경우 엔드포인트 및 포트 번호를 확인합니다. 값이 올바르지 않으면 오류 메시지가 표시되지 않습니다.

  다음 명령을 사용하여 create()에 엔드포인트가 사용되었는지 확인하고 엔드포인트가 있는 데이터베이스를 확인합니다.

  ```
  postgres=> SELECT srvoptions FROM pg_foreign_server WHERE srvname = 'apg_plan_mgmt_writer_foreign_server';
  ```
+ **reload()** - 삭제 함수를 유효하게 하려면 Aurora 복제본에서 apg\$1plan\$1mgmt.delete\$1plan()을 호출한 후 apg\$1plan\$1mgmt.reload()를 호출해야 합니다. 이렇게 하면 변경 사항을 성공적으로 구현할 수 있습니다.
+ **암호** - 앞서 언급한 지침에 따라 create\$1replica\$1plan\$1capture()에 암호를 입력해야 합니다. 이렇게 하지 않으면 오류 메시지가 수신됩니다. 자세한 내용은 [Aurora 복제본의 계획 캡처 관리](#AuroraPostgreSQL.QPM.Plancapturereplicas.managing) 섹션을 참조하세요. 요구 사항에 맞는 다른 암호를 사용하세요.
+ **리전 간 연결** - Aurora 복제본의 계획 캡처는 Aurora Global Database에서도 지원됩니다. Aurora Global Database에서는 라이터 인스턴스와 Aurora 복제본이 서로 다른 리전에 있을 수 있습니다. Aurora Global Database 라이터 엔드포인트를 사용하여 장애 조치 또는 전환 이벤트 후 연결을 유지해야 합니다. Aurora Global Database 엔드포인트에 대한 자세한 내용은 [Amazon Aurora Global Database의 엔드포인트 보기](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-global-database-connecting.html#viewing-endpoints)를 참조하시기 바랍니다. 라이터 인스턴스와 리전 간 복제본은 VPC 피어링을 사용하여 통신할 수 있어야 합니다. 자세한 내용은 [VPC 피어링](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html)을 참조하세요. 리전 간 장애 조치가 발생하는 경우 엔드포인트를 새 기본 DB 클러스터 엔드포인트로 재구성해야 합니다.
**참고**  
Aurora Global Database 라이터 엔드포인트 대신 클러스터 엔드포인트를 사용하는 경우 전역 장애 조치 또는 전환 작업을 수행한 후 클러스터 엔드포인트를 업데이트해야 합니다.

# 테이블 파티션 지원
<a name="AuroraPostgreSQL.QPM.Partitiontable"></a>

Aurora PostgreSQL 쿼리 계획 관리(QPM)는 다음 버전에서 선언적 테이블 파티셔닝을 지원합니다.
+ 15.3 이상의 15 버전
+ 14.8 이상의 14 버전
+ 13.11 이상의 13 버전

자세한 내용은 [테이블 파티셔닝](https://www.postgresql.org/docs/current/ddl-partitioning.html)을 참조하세요.

**Topics**
+ [테이블 파티션 설정](#AuroraPostgreSQL.QPM.Partitiontable.setup)
+ [테이블 파티션에 대한 계획 캡처](#AuroraPostgreSQL.QPM.Partitiontable.capture)
+ [테이블 파티션 계획 적용](#AuroraPostgreSQL.QPM.Partitiontable.enforcement)
+ [이름 지정 규칙](#AuroraPostgreSQL.QPM.Partitiontable.naming.convention)

## 테이블 파티션 설정
<a name="AuroraPostgreSQL.QPM.Partitiontable.setup"></a>

 Aurora PostgreSQL QPM에서 테이블 파티션을 설정하려면 다음 작업을 수행합니다.

1. DB 클러스터 파라미터 그룹에서 `apg_plan_mgmt.plan_hash_version`을 3 이상으로 설정합니다.

1. 쿼리 계획 관리를 사용하고 `apg_plan_mgmt.dba_plans` 보기에 항목이 있는 데이터베이스로 이동합니다.

1. `apg_plan_mgmt.validate_plans('update_plan_hash')`를 호출하여 계획 테이블의 `plan_hash` 값을 업데이트합니다.

1. `apg_plan_mgmt.dba_plans` 보기에 항목이 있으며 쿼리 계획 관리가 활성화된 모든 데이터베이스에 대해 2\$13단계를 반복합니다.

이런 파라미터에 대한 자세한 내용은 [Aurora PostgreSQL 쿼리 계획 관리를 위한 파라미터 참조](AuroraPostgreSQL.Optimize.Parameters.md) 섹션을 참조하세요.

## 테이블 파티션에 대한 계획 캡처
<a name="AuroraPostgreSQL.QPM.Partitiontable.capture"></a>

QPM에서는 다양한 계획이 `plan_hash` 값으로 구분됩니다. `plan_hash`가 어떻게 변하는지 이해하려면 먼저 비슷한 종류의 계획을 이해해야 합니다.

계획이 동일한 것으로 간주되려면 Append 노드 수준에서 누적된 액세스 방법, 숫자 제거 인덱스 이름 및 숫자 제거 파티션 이름의 조합이 일정해야 합니다. 계획에서 액세스하는 특정 파티션은 중요하지 않습니다. 다음 예제에서는 파티션이 4개인 `tbl_a` 테이블이 생성됩니다.

```
postgres=>create table tbl_a(i int, j int, k int, l int, m int) partition by range(i);
CREATE TABLE
postgres=>create table tbl_a1 partition of tbl_a for values from (0) to (1000);
CREATE TABLE
postgres=>create table tbl_a2 partition of tbl_a for values from (1001) to (2000);
CREATE TABLE
postgres=>create table tbl_a3 partition of tbl_a for values from (2001) to (3000);
CREATE TABLE
postgres=>create table tbl_a4 partition of tbl_a for values from (3001) to (4000);
CREATE TABLE
postgres=>create index t_i on tbl_a using btree (i);
CREATE INDEX
postgres=>create index t_j on tbl_a using btree (j);
CREATE INDEX
postgres=>create index t_k on tbl_a using btree (k);
CREATE INDEX
```

다음 계획은 쿼리에서 조회하는 파티션 수에 관계없이 단일 스캔 방법을 사용하여 `tbl_a`를 스캔하기 때문에 동일한 것으로 간주됩니다.

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 999 and j < 9910 and k > 50;
            
                        QUERY PLAN
-------------------------------------------------------------------
Seq Scan on tbl_a1 tbl_a
    Filter: ((i >= 990) AND (i <= 999) AND (j < 9910) AND (k > 50))
SQL Hash: 1553185667, Plan Hash: -694232056
(3 rows)
```

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 1100 and j < 9910 and k > 50;
            
                        QUERY PLAN
-------------------------------------------------------------------
Append
    ->  Seq Scan on tbl_a1 tbl_a_1
            Filter: ((i >= 990) AND (i <= 1100) AND (j < 9910) AND (k > 50))
    ->  Seq Scan on tbl_a2 tbl_a_2
            Filter: ((i >= 990) AND (i <= 1100) AND (j < 9910) AND (k > 50))
    SQL Hash: 1553185667, Plan Hash: -694232056
    (6 rows)
```

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 2100 and j < 9910 and k > 50;
            
                QUERY PLAN
--------------------------------------------------------------------------
 Append
   ->  Seq Scan on tbl_a1 tbl_a_1
         Filter: ((i >= 990) AND (i <= 2100) AND (j < 9910) AND (k > 50))
   ->  Seq Scan on tbl_a2 tbl_a_2
         Filter: ((i >= 990) AND (i <= 2100) AND (j < 9910) AND (k > 50))
   ->  Seq Scan on tbl_a3 tbl_a_3
         Filter: ((i >= 990) AND (i <= 2100) AND (j < 9910) AND (k > 50))
 SQL Hash: 1553185667, Plan Hash: -694232056
(8 rows)
```

상위 수준에서 액세스 방법, 숫자 제거 인덱스 이름 및 숫자 제거 파티션 이름이 `SeqScan tbl_a`, `IndexScan (i_idx) tbl_a`이므로 다음 3가지 계획도 동일한 것으로 간주됩니다.

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 1100 and j < 9910 and k > 50;
            
                                QUERY PLAN
--------------------------------------------------------------------------
 Append
   ->  Seq Scan on tbl_a1 tbl_a_1
         Filter: ((i >= 990) AND (i <= 1100) AND (j < 9910) AND (k > 50))
   ->  Index Scan using tbl_a2_i_idx on tbl_a2 tbl_a_2
         Index Cond: ((i >= 990) AND (i <= 1100))
         Filter: ((j < 9910) AND (k > 50))
 SQL Hash: 1553185667, Plan Hash: -993736942
(7 rows)
```

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 2100 and j < 9910 and k > 50;
            
                                QUERY PLAN
--------------------------------------------------------------------------
 Append
   ->  Index Scan using tbl_a1_i_idx on tbl_a1 tbl_a_1
         Index Cond: ((i >= 990) AND (i <= 2100))
         Filter: ((j < 9910) AND (k > 50))
   ->  Seq Scan on tbl_a2 tbl_a_2
         Filter: ((i >= 990) AND (i <= 2100) AND (j < 9910) AND (k > 50))
   ->  Index Scan using tbl_a3_i_idx on tbl_a3 tbl_a_3
         Index Cond: ((i >= 990) AND (i <= 2100))
         Filter: ((j < 9910) AND (k > 50))
 SQL Hash: 1553185667, Plan Hash: -993736942
(10 rows)
```

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 3100 and j < 9910 and k > 50;
            
                                QUERY PLAN
--------------------------------------------------------------------------
 Append
   ->  Seq Scan on tbl_a1 tbl_a_1
         Filter: ((i >= 990) AND (i <= 3100) AND (j < 9910) AND (k > 50))
   ->  Seq Scan on tbl_a2 tbl_a_2
         Filter: ((i >= 990) AND (i <= 3100) AND (j < 9910) AND (k > 50))
   ->  Seq Scan on tbl_a3 tbl_a_3
         Filter: ((i >= 990) AND (i <= 3100) AND (j < 9910) AND (k > 50))
   ->  Index Scan using tbl_a4_i_idx on tbl_a4 tbl_a_4
         Index Cond: ((i >= 990) AND (i <= 3100))
         Filter: ((j < 9910) AND (k > 50))
 SQL Hash: 1553185667, Plan Hash: -993736942
(11 rows)
```

하위 파티션의 순서 및 발생 횟수에 관계없이 액세스 방법, 숫자 제거 인덱스 이름 및 숫자 제거 파티션 이름은 위의 각 계획에 대해 상위 수준에서 일정합니다.

그러나 다음 조건 중 하나라도 충족되면 계획이 다른 것으로 간주됩니다.
+ 계획에 추가 액세스 방법이 사용됩니다.

  ```
  postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 2100 and j < 9910 and k > 50;
                      
                                  QUERY PLAN
  --------------------------------------------------------------------------
   Append
     ->  Seq Scan on tbl_a1 tbl_a_1
           Filter: ((i >= 990) AND (i <= 2100) AND (j < 9910) AND (k > 50))
     ->  Seq Scan on tbl_a2 tbl_a_2
           Filter: ((i >= 990) AND (i <= 2100) AND (j < 9910) AND (k > 50))
     ->  Bitmap Heap Scan on tbl_a3 tbl_a_3
           Recheck Cond: ((i >= 990) AND (i <= 2100))
           Filter: ((j < 9910) AND (k > 50))
           ->  Bitmap Index Scan on tbl_a3_i_idx
                 Index Cond: ((i >= 990) AND (i <= 2100))
   SQL Hash: 1553185667, Plan Hash: 1134525070
  (11 rows)
  ```
+ 계획의 모든 액세스 방법이 더 이상 사용되지 않습니다.

  ```
  postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 1100 and j < 9910 and k > 50;
                      
                                 QUERY PLAN
  --------------------------------------------------------------------------
   Append
     ->  Seq Scan on tbl_a1 tbl_a_1
           Filter: ((i >= 990) AND (i <= 1100) AND (j < 9910) AND (k > 50))
     ->  Seq Scan on tbl_a2 tbl_a_2
           Filter: ((i >= 990) AND (i <= 1100) AND (j < 9910) AND (k > 50))
   SQL Hash: 1553185667, Plan Hash: -694232056
  (6 rows)
  ```
+ 인덱스 방법과 연결된 인덱스가 변경됩니다.

  ```
  postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 1100 and j < 9910 and k > 50;
                      
                               QUERY PLAN
  --------------------------------------------------------------------------
   Append
     ->  Seq Scan on tbl_a1 tbl_a_1
           Filter: ((i >= 990) AND (i <= 1100) AND (j < 9910) AND (k > 50))
     ->  Index Scan using tbl_a2_j_idx on tbl_a2 tbl_a_2
           Index Cond: (j < 9910)
           Filter: ((i >= 990) AND (i <= 1100) AND (k > 50))
   SQL Hash: 1553185667, Plan Hash: -993343726
  (7 rows)
  ```

## 테이블 파티션 계획 적용
<a name="AuroraPostgreSQL.QPM.Partitiontable.enforcement"></a>

파티셔닝된 테이블에 대한 승인된 계획은 위치 대응과 함께 적용됩니다. 계획은 파티션에만 국한되지 않으며, 원래 쿼리에서 참조된 계획이 아닌 다른 파티션에도 적용할 수 있습니다. 또한 계획에는 원래 승인된 개요와 다른 수의 파티션에 액세스하는 쿼리에 적용할 수 있는 기능이 있습니다.

예를 들어 승인된 개요가 아래 계획에 대한 것이라면 다음과 같습니다.

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 2100 and j < 9910 and k > 50;
            
                                QUERY PLAN
--------------------------------------------------------------------------
 Append
   ->  Index Scan using tbl_a1_i_idx on tbl_a1 tbl_a_1
         Index Cond: ((i >= 990) AND (i <= 2100))
         Filter: ((j < 9910) AND (k > 50))
   ->  Seq Scan on tbl_a2 tbl_a_2
         Filter: ((i >= 990) AND (i <= 2100) AND (j < 9910) AND (k > 50))
   ->  Index Scan using tbl_a3_i_idx on tbl_a3 tbl_a_3
         Index Cond: ((i >= 990) AND (i <= 2100))
         Filter: ((j < 9910) AND (k > 50))   
 SQL Hash: 1553185667, Plan Hash: -993736942
(10 rows)
```

그런 다음 2개, 4개 이상의 파티션을 참조하는 SQL 쿼리에도 이 계획을 적용할 수 있습니다. 2개 및 4개 파티션 액세스에 대한 이러한 시나리오에서 발생할 수 있는 계획은 다음과 같습니다.

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 1100 and j < 9910 and k > 50;
            
                                QUERY PLAN
----------------------------------------------------------------------------------
 Append
   ->  Index Scan using tbl_a1_i_idx on tbl_a1 tbl_a_1
         Index Cond: ((i >= 990) AND (i <= 1100))
         Filter: ((j < 9910) AND (k > 50))
   ->  Seq Scan on tbl_a2 tbl_a_2
         Filter: ((i >= 990) AND (i <= 1100) AND (j < 9910) AND (k > 50))
 Note: An Approved plan was used instead of the minimum cost plan. 
 SQL Hash: 1553185667, Plan Hash: -993736942, Minimum Cost Plan Hash: -1873216041
(8 rows)
```

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 3100 and j < 9910 and k > 50;
            
                                QUERY PLAN
--------------------------------------------------------------------------
 Append
   ->  Index Scan using tbl_a1_i_idx on tbl_a1 tbl_a_1
         Index Cond: ((i >= 990) AND (i <= 3100))
         Filter: ((j < 9910) AND (k > 50))
   ->  Seq Scan on tbl_a2 tbl_a_2
         Filter: ((i >= 990) AND (i <= 3100) AND (j < 9910) AND (k > 50))
   ->  Index Scan using tbl_a3_i_idx on tbl_a3 tbl_a_3
         Index Cond: ((i >= 990) AND (i <= 3100))
         Filter: ((j < 9910) AND (k > 50))
   ->  Seq Scan on tbl_a4 tbl_a_4
         Filter: ((i >= 990) AND (i <= 3100) AND (j < 9910) AND (k > 50))
 Note: An Approved plan was used instead of the minimum cost plan.
 SQL Hash: 1553185667, Plan Hash: -993736942, Minimum Cost Plan Hash: -1873216041 
(12 rows)
```

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 3100 and j < 9910 and k > 50;
            
                                QUERY PLAN
----------------------------------------------------------------------------------
 Append
   ->  Index Scan using tbl_a1_i_idx on tbl_a1 tbl_a_1
         Index Cond: ((i >= 990) AND (i <= 3100))
         Filter: ((j < 9910) AND (k > 50))
   ->  Seq Scan on tbl_a2 tbl_a_2
         Filter: ((i >= 990) AND (i <= 3100) AND (j < 9910) AND (k > 50))
   ->  Index Scan using tbl_a3_i_idx on tbl_a3 tbl_a_3
         Index Cond: ((i >= 990) AND (i <= 3100))
         Filter: ((j < 9910) AND (k > 50))
   ->  Index Scan using tbl_a4_i_idx on tbl_a4 tbl_a_4
         Index Cond: ((i >= 990) AND (i <= 3100))
         Filter: ((j < 9910) AND (k > 50))
 Note: An Approved plan was used instead of the minimum cost plan.
 SQL Hash: 1553185667, Plan Hash: -993736942, Minimum Cost Plan Hash: -1873216041
(14 rows)
```

각 파티션마다 다른 액세스 방법을 사용하는 승인된 다른 계획을 고려해 보세요.

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 2100 and j < 9910 and k > 50;
            
                                QUERY PLAN
--------------------------------------------------------------------------
 Append
   ->  Index Scan using tbl_a1_i_idx on tbl_a1 tbl_a_1
         Index Cond: ((i >= 990) AND (i <= 2100))
         Filter: ((j < 9910) AND (k > 50))
   ->  Seq Scan on tbl_a2 tbl_a_2
         Filter: ((i >= 990) AND (i <= 2100) AND (j < 9910) AND (k > 50))
   ->  Bitmap Heap Scan on tbl_a3 tbl_a_3
         Recheck Cond: ((i >= 990) AND (i <= 2100))
         Filter: ((j < 9910) AND (k > 50))
         ->  Bitmap Index Scan on tbl_a3_i_idx
               Index Cond: ((i >= 990) AND (i <= 2100))
 SQL Hash: 1553185667, Plan Hash: 2032136998
(12 rows)
```

이 경우 두 파티션에서 읽어 들이는 계획은 실행되지 않습니다. 승인된 계획의 모든 조합(액세스 방법, 인덱스 이름)을 사용할 수 없으면 계획을 적용할 수 없습니다. 예를 들어 다음 계획에는 서로 다른 계획 해시가 있으며 이러한 경우에는 승인된 계획을 적용할 수 없습니다.

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 1900 and j < 9910 and k > 50;
            
                              QUERY PLAN
-------------------------------------------------------------------------
 Append
   ->  Bitmap Heap Scan on tbl_a1 tbl_a_1
         Recheck Cond: ((i >= 990) AND (i <= 1900))
         Filter: ((j < 9910) AND (k > 50))
         ->  Bitmap Index Scan on tbl_a1_i_idx
               Index Cond: ((i >= 990) AND (i <= 1900))
   ->  Bitmap Heap Scan on tbl_a2 tbl_a_2
         Recheck Cond: ((i >= 990) AND (i <= 1900))
         Filter: ((j < 9910) AND (k > 50))
         ->  Bitmap Index Scan on tbl_a2_i_idx
               Index Cond: ((i >= 990) AND (i <= 1900))
  Note: This is not an Approved plan.  No usable Approved plan was found.
  SQL Hash: 1553185667, Plan Hash: -568647260
(13 rows)
```

```
postgres=>explain (hashes true, costs false) select j, k from tbl_a where i between 990 and 1900 and j < 9910 and k > 50;
            
                              QUERY PLAN
--------------------------------------------------------------------------
 Append
   ->  Index Scan using tbl_a1_i_idx on tbl_a1 tbl_a_1
         Index Cond: ((i >= 990) AND (i <= 1900))
         Filter: ((j < 9910) AND (k > 50))
   ->  Seq Scan on tbl_a2 tbl_a_2
         Filter: ((i >= 990) AND (i <= 1900) AND (j < 9910) AND (k > 50))
 Note: This is not an Approved plan.  No usable Approved plan was found.
 SQL Hash: 1553185667, Plan Hash: -496793743
(8 rows)
```

## 이름 지정 규칙
<a name="AuroraPostgreSQL.QPM.Partitiontable.naming.convention"></a>

QPM에서 선언적 파티셔닝된 테이블을 사용하여 계획을 적용하려면 상위 테이블, 테이블 파티션 및 인덱스에 대한 특정 이름 지정 규칙을 따라야 합니다.
+ **상위 테이블 이름** - 이 이름은 숫자만이 아니라 알파벳이나 특수 문자로 구분해야 합니다. 예를 들어 tA, tB 및 tC는 개별 상위 테이블에 사용할 수 있는 이름이지만, t1, t2 및 t3는 사용할 수 없습니다.
+ **개별 파티션 테이블 이름** - 동일한 상위 파티션의 파티션은 숫자만 달라야 합니다. 예를 들어 tA의 허용 가능한 파티션 이름은 tA1, tA2 또는 t1A, t2A나 여러 자리 숫자일 수 있습니다.

  문자, 특수 문자로 차이를 두면 계획 적용이 보장되지 않습니다.
+ **인덱스 이름** - 파티션 테이블 계층 구조에서 모든 인덱스의 이름이 고유하도록 해야 합니다. 즉, 이름에서 숫자가 아닌 부분이 달라야 합니다. 예를 들어 이름이 `tA`인 파티셔닝 테이블에 인덱스 이름이 `tA_col1_idx1`인 인덱스가 있는 경우 이름이 `tA_col1_idx2`인 다른 인덱스를 포함할 수 없습니다. 하지만 이름이 `tA_a_col1_idx2`인 인덱스는 포함할 수 있습니다. 이름에서 숫자가 아닌 부분이 고유하기 때문입니다. 이 규칙은 상위 테이블과 개별 파티션 테이블 모두에 생성된 인덱스에 적용됩니다.

 위의 이름 지정 규칙을 준수하지 않을 경우 승인된 계획 적용이 실패할 수 있습니다. 다음은 실패한 적용의 예를 보여줍니다.

```
postgres=>create table t1(i int, j int, k int, l int, m int) partition by range(i);
CREATE TABLE
postgres=>create table t1a partition of t1 for values from (0) to (1000);
CREATE TABLE
postgres=>create table t1b partition of t1 for values from (1001) to (2000);
CREATE TABLE
postgres=>SET apg_plan_mgmt.capture_plan_baselines TO 'manual';
SET
postgres=>explain (hashes true, costs false) select count(*) from t1 where i > 0;

                            QUERY PLAN
--------------------------------------------------------------------------
 Aggregate
   ->  Append
         ->  Seq Scan on t1a t1_1
               Filter: (i > 0)
         ->  Seq Scan on t1b t1_2
               Filter: (i > 0)
 SQL Hash: -1720232281, Plan Hash: -1010664377
(7 rows)
```

```
postgres=>SET apg_plan_mgmt.use_plan_baselines TO 'on';
SET
postgres=>explain (hashes true, costs false) select count(*) from t1 where i > 1000;

                            QUERY PLAN
-------------------------------------------------------------------------
 Aggregate
   ->  Seq Scan on t1b t1
         Filter: (i > 1000)
 Note: This is not an Approved plan. No usable Approved plan was found.
 SQL Hash: -1720232281, Plan Hash: 335531806
(5 rows)
```

두 계획이 동일하게 보일 수도 있지만 하위 테이블의 이름 때문에 `Plan Hash` 값이 다릅니다. 테이블 이름이 숫자만이 아닌 영문자에 따라 다양하므로 적용이 실패합니다.

# 확장 및 외부 데이터 래퍼 작업
<a name="Appendix.PostgreSQL.CommonDBATasks"></a>

Aurora PostgreSQL 호환 버전 DB 클러스터의 기능을 확장하기 위해 다양한 PostgreSQL *확장*을 설치하고 사용할 수 있습니다. 예를 들어 사용 사례에서 매우 큰 테이블에 집중적인 데이터 입력이 필요한 경우 `[pg\$1partman](https://pgxn.org/dist/pg_partman/doc/pg_partman.html)` 확장을 설치하여 데이터를 분할하고 워크로드를 분산할 수 있습니다.

**참고**  
Aurora PostgreSQL 14.5부터 Aurora PostgreSQL은 PostgreSQL용 신뢰할 수 있는 언어 확장을 지원합니다. 이 기능은 Aurora PostgreSQL에 추가할 수 있는 `pg_tle` 확장으로 구현됩니다. 이 확장을 사용하면 개발자는 설정 및 구성 요구 사항을 간소화하고 새 확장에 대한 많은 예비 테스트를 줄일 수 있는 안전한 환경에서 자체 PostgreSQL 확장을 만들 수 있습니다. 자세한 내용은 [PostgreSQL용 신뢰할 수 있는 언어 확장 작업](PostgreSQL_trusted_language_extension.md) 섹션을 참조하세요.

경우에 따라 확장을 설치하는 대신 Aurora PostgreSQL DB 클러스터의 사용자 지정 DB 클러스터 파라미터 그룹의 `shared_preload_libraries` 목록에 특정 *모듈*을 추가할 수 있습니다. 일반적으로 기본 DB 클러스터 파라미터 그룹은 `pg_stat_statements`만 로드하지만 목록에 추가할 수 있는 다른 모듈도 몇 개 있습니다. 예를 들어, [PostgreSQL pg\$1cron 확장을 사용하여 유지 관리 예약](PostgreSQL_pg_cron.md)에 자세히 설명된 대로 `pg_cron` 모듈을 추가하여 스케줄링 기능을 추가할 수 있습니다. 또 다른 예로, `auto_explain` 모듈을 로드하여 쿼리 실행 계획을 로깅할 수 있습니다. 자세히 알아보려면 AWS 지식 센터에서 [쿼리 실행 계획 로깅](https://aws.amazon.com/premiumsupport/knowledge-center/rds-postgresql-tune-query-performance/#)을 참조하세요.

외부 데이터에 대한 액세스를 제공하는 확장을 구체적으로 *외부 데이터 래퍼*(FDW)라고 합니다. 하나의 예로는 `oracle_fdw` 확장을 사용하면 Aurora PostgreSQL DB 클러스터가 Oracle 데이터베이스와 함께 작동할 수 있는 경우가 있습니다.

또한 Aurora PostgreSQL DB 인스턴스에 설치할 수 있는 확장 프로그램을 `rds.allowed_extensions` 파라미터에 나열하여 정확하게 지정할 수 있습니다. 자세한 내용은 [PostgreSQL 확장 프로그램의 설치 제한](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.Extensions.Restriction.html)을 참조하세요.

아래에서 Aurora PostgreSQL에 사용할 수 있는 일부 확장, 모듈 및 FDW 설정과 사용에 대한 정보를 확인할 수 있습니다. 간단히 이 모든 것을 '확장'이라고 합니다. 현재 사용 가능한 Aurora PostgreSQL 버전에서 사용할 수 있는 확장 목록은 Aurora PostgreSQL 릴리스 정보**에서 [Extension versions for Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html)(Aurora PostgreSQL 확장 버전)을 참조하세요.
+ [lo 모듈을 사용하여 대형 객체 관리](PostgreSQL_large_objects_lo_extension.md)
+ [PostGIS 확장을 사용하여 공간 데이터 관리](Appendix.PostgreSQL.CommonDBATasks.PostGIS.md)
+ [pg\$1partman 확장자를 사용하여 PostgreSQL 파티션 관리하기](PostgreSQL_Partitions.md)
+ [PostgreSQL pg\$1cron 확장을 사용하여 유지 관리 예약](PostgreSQL_pg_cron.md)
+ [pgAudit를 사용하여 데이터베이스 활동 로깅](Appendix.PostgreSQL.CommonDBATasks.pgaudit.md)
+ [pglogical을 사용하여 인스턴스 간 데이터 동기화](Appendix.PostgreSQL.CommonDBATasks.pglogical.md)
+ [oracle\$1fdw 확장을 사용하여 Oracle 데이터베이스 작업](postgresql-oracle-fdw.md)
+ [tds\$1fdw 확장을 사용하여 SQL Server 데이터베이스 작업](postgresql-tds-fdw.md)

# PostgreSQL에 대한 Amazon Aurora 위임 확장 지원 사용
<a name="Aurora_delegated_ext"></a>

PostgreSQL에 대한 Amazon Aurora 위임 확장 지원을 사용하면 `rds_superuser` 역할이 아닌 사용자에게도 확장 관리를 위임할 수 있습니다. 이 위임 확장 지원을 통해 `rds_extension`이라는 새 역할이 생성되며, 이 역할이 할당되어야 해당 사용자가 다른 확장을 관리할 수 있습니다. 이 역할은 확장을 생성하고, 업데이트하고, 삭제할 수 있습니다.

Aurora PostgreSQL DB 인스턴스에 설치할 수 있는 확장을 `rds.allowed_extensions` 파라미터에 등록하여 지정할 수 있습니다. 자세한 내용은 [Amazon RDS for PostgreSQL로 PostgreSQL 확장 사용](https://docs.aws.amazon.com//AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.Extensions.html)을 참조하세요.

`rds.allowed_delegated_extensions` 파라미터를 사용하여 `rds_extension` 역할이 있는 사용자가 관리할 수 있는 가용 확장 목록을 제한할 수 있습니다.

위임 확장 지원은 다음 버전에서 사용할 수 있습니다.
+ 모든 상위 버전
+ 15.5 이상의 15 버전
+ 14.10 이상의 14 버전
+ 13.13 이상의 13 버전
+ 12.17 이상의 12 버전

**Topics**
+ [사용자에게 위임 확장 지원 활성화](#AuroraPostgreSQL.delegated_ext_mgmt)
+ [Aurora 위임 확장 지원에서 PostgreSQL에 대해 사용되는 구성](#AuroraPostgreSQL.delegated_ext_config)
+ [위임 확장에 대한 지원 비활성화](#AuroraPostgreSQL.delegated_ext_disable)
+ [Amazon Aurora 위임 확장 지원 사용의 이점](#AuroraPostgreSQL.delegated_ext_benefits)
+ [PostgreSQL에 대한 Aurora 위임 확장 지원 제한](#AuroraPostgreSQL.delegated_ext_limit)
+ [특정 확장에 필요한 권한](#AuroraPostgreSQL.delegated_ext_perm)
+ [보안 고려 사항](#AuroraPostgreSQL.delegated_ext_sec)
+ [확장 삭제 캐스케이드 비활성화](#AuroraPostgreSQL.delegated_ext_drop)
+ [위임 확장 지원을 사용하여 추가할 수 있는 확장의 예](#AuroraPostgreSQL.delegated_ext_support)

## 사용자에게 위임 확장 지원 활성화
<a name="AuroraPostgreSQL.delegated_ext_mgmt"></a>

사용자에게 위임 확장 지원을 활성화하려면 다음을 수행해야 합니다.

1. **사용자에게 `rds_extension` 역할 부여** - `rds_superuser` 권한으로 데이터베이스에 연결하고 다음 명령을 실행합니다.

   ```
   Postgres => grant rds_extension to user_name;
   ```

1. **위임된 사용자가 관리할 수 있는 확장 목록 설정** - `rds.allowed_delegated_extensions`를 통해 DB 클러스터 파라미터에서 `rds.allowed_extensions`를 사용하여 가용 확장의 하위 집합을 지정할 수 있습니다. 다음 수준 중 하나에서 이 작업을 수행할 수 있습니다.
   + 클러스터 또는 인스턴스 파라미터 그룹에서 AWS Management Console 또는 API를 통해 가능합니다. 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.
   + 데이터베이스 수준에서 다음 명령을 사용하세요.

     ```
     alter database database_name set rds.allowed_delegated_extensions = 'extension_name_1,
                         extension_name_2,...extension_name_n';
     ```
   + 사용자 수준에서 다음 명령을 사용하세요.

     ```
     alter user user_name set rds.allowed_delegated_extensions = 'extension_name_1,
                         extension_name_2,...extension_name_n';
     ```
**참고**  
`rds.allowed_delegated_extensions` 동적 파라미터를 변경한 후에는 데이터베이스를 다시 시작할 필요가 없습니다.

1. **확장 생성 프로세스 중에 생성된 객체에 대한 위임된 사용자 액세스 허용** - 특정 확장에서는 추가 권한을 부여해야 `rds_extension` 역할을 가진 사용자가 해당 개체에 액세스할 수 있는 개체를 만들 수 있습니다. `rds_superuser`는 위임된 사용자에게 해당 객체에 대한 액세스 권한을 부여해야 합니다. 이벤트 트리거를 사용하여 위임된 사용자에게 권한을 자동으로 부여하는 것도 한 가지 방법입니다.

   **이벤트 트리거 예제**

   확장 생성 시 만들어진 객체에 대한 권한 설정이 필요한 확장을 `rds_extension` 권한이 있는 위임된 사용자가 사용할 수 있도록 하려면, 아래 이벤트 트리거 예제를 사용자 지정하고 위임된 사용자가 전체 기능에 액세스할 수 있도록 하려는 확장만 추가하면 됩니다. 이 이벤트 트리거는 template1(기본 템플릿)에서 만들 수 있으므로, template1에서 만든 모든 데이터베이스에는 해당 이벤트 트리거가 있습니다. 위임된 사용자가 확장을 설치하면 이 트리거는 확장에서 생성된 객체에 대한 소유권을 자동으로 부여합니다.

   ```
   CREATE OR REPLACE FUNCTION create_ext()
   
     RETURNS event_trigger AS $$
   
   DECLARE
   
     schemaname TEXT;
     databaseowner TEXT;
   
     r RECORD;
   
   BEGIN
   
     IF tg_tag = 'CREATE EXTENSION' and current_user != 'rds_superuser' THEN
       RAISE NOTICE 'SECURITY INVOKER';
       RAISE NOTICE 'user: %', current_user;
       FOR r IN SELECT * FROM pg_catalog.pg_event_trigger_ddl_commands()
       LOOP
           CONTINUE WHEN r.command_tag != 'CREATE EXTENSION' OR r.object_type != 'extension';
   
           schemaname = (
               SELECT n.nspname
               FROM pg_catalog.pg_extension AS e
               INNER JOIN pg_catalog.pg_namespace AS n
               ON e.extnamespace = n.oid
               WHERE e.oid = r.objid
           );
   
           databaseowner = (
               SELECT pg_catalog.pg_get_userbyid(d.datdba)
               FROM pg_catalog.pg_database d
               WHERE d.datname = current_database()
           );
           RAISE NOTICE 'Record for event trigger %, objid: %,tag: %, current_user: %, schema: %, database_owenr: %', r.object_identity, r.objid, tg_tag, current_user, schemaname, databaseowner;
           IF r.object_identity = 'address_standardizer_data_us' THEN
               EXECUTE pg_catalog.format('GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE %I.us_gaz TO %I WITH GRANT OPTION;', schemaname, databaseowner);
               EXECUTE pg_catalog.format('GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE %I.us_lex TO %I WITH GRANT OPTION;', schemaname, databaseowner);
               EXECUTE pg_catalog.format('GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE %I.us_rules TO %I WITH GRANT OPTION;', schemaname, databaseowner);
           ELSIF r.object_identity = 'dict_int' THEN
               EXECUTE pg_catalog.format('ALTER TEXT SEARCH DICTIONARY %I.intdict OWNER TO %I;', schemaname, databaseowner);
           ELSIF r.object_identity = 'pg_partman' THEN
               EXECUTE pg_catalog.format('GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE %I.part_config TO %I WITH GRANT OPTION;', schemaname, databaseowner);
               EXECUTE pg_catalog.format('GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE %I.part_config_sub TO %I WITH GRANT OPTION;', schemaname, databaseowner);
               EXECUTE pg_catalog.format('GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE %I.custom_time_partitions TO %I WITH GRANT OPTION;', schemaname, databaseowner);
           ELSIF r.object_identity = 'postgis_topology' THEN
               EXECUTE pg_catalog.format('GRANT SELECT, UPDATE, INSERT, DELETE ON ALL TABLES IN SCHEMA topology TO %I WITH GRANT OPTION;', databaseowner);
               EXECUTE pg_catalog.format('GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA topology TO %I WITH GRANT OPTION;', databaseowner);
               EXECUTE pg_catalog.format('GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA topology TO %I WITH GRANT OPTION;', databaseowner);
               EXECUTE pg_catalog.format('GRANT USAGE ON SCHEMA topology TO %I WITH GRANT OPTION;', databaseowner);
           END IF;
       END LOOP;
     END IF;
   END;
   $$ LANGUAGE plpgsql SECURITY DEFINER;
   
   CREATE EVENT TRIGGER log_create_ext ON ddl_command_end EXECUTE PROCEDURE create_ext();
   ```

## Aurora 위임 확장 지원에서 PostgreSQL에 대해 사용되는 구성
<a name="AuroraPostgreSQL.delegated_ext_config"></a>


| 구성 이름 | 설명 | 기본값 | 참고 | 권한을 수정하거나 부여할 수 있는 사람 | 
| --- | --- | --- | --- | --- | 
| `rds.allowed_delegated_extensions` | 이 파라미터는 rds\$1extension 역할이 데이터베이스에서 관리할 수 있는 확장을 제한합니다. rds.allowed\$1extensions의 하위 집합이어야 합니다. | 빈 문자열 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/Aurora_delegated_ext.html) 이 파라미터 설정에 대한 자세한 내용은 [사용자에게 위임 확장 지원 활성화](#AuroraPostgreSQL.delegated_ext_mgmt) 섹션을 참조하세요. | rds\$1superuser | 
| `rds.allowed_extensions` | 이 파라미터를 사용하면 고객이 Aurora PostgreSQL DB 인스턴스에 설치할 수 있는 확장을 제한할 수 있습니다. 자세한 내용은 [PostgreSQL 확장 설치 제한](https://docs.aws.amazon.com//AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html#PostgreSQL.Concepts.General.FeatureSupport.Extensions.Restriction)을 참조하세요. | "\$1" | 기본적으로 이 파라미터는 ‘\$1’로 설정되어 있습니다. 즉, RDS for PostgreSQL과 Aurora PostgreSQL에서 지원되는 모든 확장은 필요한 권한이 있는 사용자가 만들 수 있습니다. 이 값이 비어 있으면 Aurora PostgreSQL DB 인스턴스에 확장을 설치할 수 없습니다. | 관리자 | 
| `rds-delegated_extension_allow_drop_cascade` | 이 파라미터는 `rds_extension` 권한이 있는 사용자가 캐스케이드 옵션을 사용하여 확장을 삭제할 수 있는 기능을 제어합니다. | 끄기 | 기본적으로 `rds-delegated_extension_allow_drop_cascade`는 `off`로 설정됩니다. 즉, `rds_extension` 사용자는 캐스케이드 옵션을 사용하여 확장 프로그램을 삭제할 수 없습니다. 이 기능을 부여하려면 `rds.delegated_extension_allow_drop_cascade` 파라미터를 `on`으로 설정해야 합니다. | rds\$1superuser | 

## 위임 확장에 대한 지원 비활성화
<a name="AuroraPostgreSQL.delegated_ext_disable"></a>

**부분적으로 비활성화**  
위임된 사용자는 새 확장을 만들 수는 없지만 기존 확장을 계속 업데이트할 수는 있습니다.
+ DB 클러스터 파라미터 그룹에서 `rds.allowed_delegated_extensions`를 기본값으로 재설정합니다.
+ 데이터베이스 수준에서 다음 명령을 사용하세요.

  ```
  alter database database_name reset rds.allowed_delegated_extensions;
  ```
+ 사용자 수준에서 다음 명령을 사용하세요.

  ```
  alter user user_name reset rds.allowed_delegated_extensions;
  ```

**전체적으로 비활성화**  
사용자로부터 `rds_extension` 역할을 취소하면 사용자는 표준 권한으로 되돌아갑니다. 해당 사용자는 더 이상 확장을 생성, 업데이트 또는 삭제할 수 없습니다.

```
postgres => revoke rds_extension from user_name;
```

## Amazon Aurora 위임 확장 지원 사용의 이점
<a name="AuroraPostgreSQL.delegated_ext_benefits"></a>

PostgreSQL에 대한 Amazon Aurora 위임 확장 지원을 사용하면 `rds_superuser` 역할이 아닌 사용자에게도 확장 관리를 안전하게 위임할 수 있습니다. 이 기능에는 다음과 같은 이점이 있습니다.
+ 원하는 사용자에게 확장 관리를 쉽게 위임할 수 있습니다.
+ 이 작업에는 `rds_superuser` 역할이 필요하지 않습니다.
+ 동일한 DB 클러스터의 여러 데이터베이스에 대해 서로 다른 확장 세트를 지원하는 기능을 제공합니다.

## PostgreSQL에 대한 Aurora 위임 확장 지원 제한
<a name="AuroraPostgreSQL.delegated_ext_limit"></a>
+ 확장 생성 프로세스 중에 생성되는 객체에서 확장이 제대로 작동하려면 추가 권한이 필요할 수 있습니다.

## 특정 확장에 필요한 권한
<a name="AuroraPostgreSQL.delegated_ext_perm"></a>

다음과 같은 확장을 생성, 사용 또는 업데이트하려면 위임된 사용자에게 다음과 같은 함수, 테이블 및 스키마에 대해 필요한 권한이 있어야 합니다.


| 소유권이나 권한이 필요한 확장 | 함수 | 테이블 | 스키마 | 텍스트 검색 사전 | 설명 | 
| --- | --- | --- | --- | --- | --- | 
| address\$1standardizer\$1data\$1us |  | us\$1gaz, us\$1lex, us\$1lex, I.us\$1rules |   |  |  | 
| amcheck | bt\$1index\$1check, bt\$1index\$1parent\$1check |  |   |  |  | 
| dict\$1int |  |  |  | intdict |  | 
| pg\$1partman |  | custom\$1time\$1partitions, part\$1config, part\$1config\$1sub |  |  |  | 
| pg\$1stat\$1statements |  |  |  |  |  | 
| PostGIS | st\$1tileenvelope | spatial\$1ref\$1sys |  |  |  | 
| postgis\$1raster |  |  |  |  |  | 
| postgis\$1topology |  | topology, layer | topology |  | 위임된 사용자는 데이터베이스 소유자여야 함 | 
| log\$1fdw | create\$1foreign\$1table\$1for\$1log\$1file |  |  |  |  | 
| rds\$1tools | role\$1password\$1encryption\$1type |  |  |  |  | 
| postgis\$1tiger\$1geocoder |  | geocode\$1settings\$1default, geocode\$1settings | tiger |  |  | 
| pg\$1freespacemap | pg\$1freespace |  |  |  |  | 
| pg\$1visibility | pg\$1visibility |  |  |  |  | 

## 보안 고려 사항
<a name="AuroraPostgreSQL.delegated_ext_sec"></a>

 `rds_extension` 역할이 있는 사용자는 접속 권한이 있는 모든 데이터베이스의 확장을 관리할 수 있다는 점을 기억하세요. 위임된 사용자가 단일 데이터베이스의 확장을 관리하도록 하려는 경우, 각 데이터베이스의 모든 공개 권한을 취소한 다음 해당 특정 데이터베이스의 연결 권한을 위임 사용자에게 명시적으로 부여하는 것이 좋습니다.

 사용자가 여러 데이터베이스의 정보에 액세스할 수 있도록 하는 확장에는 여러 가지가 있습니다. 이러한 확장을 `rds.allowed_delegated_extensions`에 추가하기 전에 `rds_extension` 권한을 부여한 사용자가 데이터베이스 간 기능을 사용할 수 있는지 확인하세요. 예를 들어, `postgres_fdw` 및 `dblink`는 동일한 인스턴스 또는 원격 인스턴스의 여러 데이터베이스를 쿼리할 수 있는 기능을 제공합니다. `log_fdw`는 인스턴스의 모든 데이터베이스에 대한 postgres 엔진 로그 파일을 읽습니다. 이 로그 파일에는 여러 데이터베이스의 느린 쿼리나 오류 메시지가 포함될 수 있습니다. `pg_cron`은 예약된 백그라운드 작업을 DB 인스턴스에서 실행할 수 있도록 하고 작업이 다른 데이터베이스에서 실행되도록 구성할 수 있습니다.

## 확장 삭제 캐스케이드 비활성화
<a name="AuroraPostgreSQL.delegated_ext_drop"></a>

 `rds_extension` 역할의 사용자가 캐스케이드 옵션을 사용하여 확장을 삭제하는 기능은 `rds.delegated_extension_allow_drop_cascade` 파라미터에 의해 제어됩니다. 기본적으로 `rds-delegated_extension_allow_drop_cascade`는 `off`로 설정됩니다. 즉, `rds_extension` 역할의 사용자는 아래 쿼리에 나와 있는 캐스케이드 옵션으로 확장을 삭제할 수 없습니다.

```
DROP EXTENSION CASCADE;
```

이렇게 하면 확장에 종속된 객체와 해당 객체에 종속된 모든 객체가 자동으로 삭제되기 때문입니다. 캐스케이드 옵션을 사용하려고 시도하면 오류가 발생합니다.

 이 기능을 부여하려면 `rds.delegated_extension_allow_drop_cascade` 파라미터를 `on`으로 설정해야 합니다.

 `rds.delegated_extension_allow_drop_cascade` 동적 파라미터를 변경하기 위해 데이터베이스를 다시 시작할 필요가 없습니다. 다음 수준 중 하나에서 이 작업을 수행할 수 있습니다.
+ 클러스터 또는 인스턴스 파라미터 그룹에서 AWS Management Console 또는 API를 통해 가능합니다.
+ 데이터베이스 수준에서 다음 명령을 사용하세요.

  ```
  alter database database_name set rds.delegated_extension_allow_drop_cascade = 'on';
  ```
+ 사용자 수준에서 다음 명령을 사용하세요.

  ```
  alter role tenant_user set rds.delegated_extension_allow_drop_cascade = 'on';
  ```

## 위임 확장 지원을 사용하여 추가할 수 있는 확장의 예
<a name="AuroraPostgreSQL.delegated_ext_support"></a>
+ `rds_tools`

  ```
  extension_test_db=> create extension rds_tools;
  CREATE EXTENSION
  extension_test_db=> SELECT * from rds_tools.role_password_encryption_type() where rolname = 'pg_read_server_files';
  ERROR: permission denied for function role_password_encryption_type
  ```
+ `amcheck`

  ```
  extension_test_db=> CREATE TABLE amcheck_test (id int);
  CREATE TABLE
  extension_test_db=> INSERT INTO amcheck_test VALUES (generate_series(1,100000));
  INSERT 0 100000
  extension_test_db=> CREATE INDEX amcheck_test_btree_idx ON amcheck_test USING btree (id);
  CREATE INDEX
  extension_test_db=> create extension amcheck;
  CREATE EXTENSION
  extension_test_db=> SELECT bt_index_check('amcheck_test_btree_idx'::regclass);
  ERROR: permission denied for function bt_index_check
  extension_test_db=> SELECT bt_index_parent_check('amcheck_test_btree_idx'::regclass);
  ERROR: permission denied for function bt_index_parent_check
  ```
+ `pg_freespacemap`

  ```
  extension_test_db=> create extension pg_freespacemap;
  CREATE EXTENSION
  extension_test_db=> SELECT * FROM pg_freespace('pg_authid');
  ERROR: permission denied for function pg_freespace
  extension_test_db=> SELECT * FROM pg_freespace('pg_authid',0);
  ERROR: permission denied for function pg_freespace
  ```
+ `pg_visibility`

  ```
  extension_test_db=> create extension pg_visibility;
  CREATE EXTENSION
  extension_test_db=> select * from pg_visibility('pg_database'::regclass);
  ERROR: permission denied for function pg_visibility
  ```
+ `postgres_fdw`

  ```
  extension_test_db=> create extension postgres_fdw;
  CREATE EXTENSION
  extension_test_db=> create server myserver foreign data wrapper postgres_fdw options (host 'foo', dbname 'foodb', port '5432');
  ERROR: permission denied for foreign-data wrapper postgres_fdw
  ```

# lo 모듈을 사용하여 대형 객체 관리
<a name="PostgreSQL_large_objects_lo_extension"></a>

lo 모듈(확장)은 JDBC 또는 ODBC 드라이버를 통해 PostgreSQL 데이터베이스로 작업하는 데이터베이스 사용자 및 개발자를 위한 것입니다. JDBC와 ODBC는 모두 참조가 변경될 때 데이터베이스에서 대형 객체의 삭제를 처리할 것으로 예상합니다. 그러나 PostgreSQL은 이런 식으로 작동하지 않습니다. PostgreSQL 참조가 변경될 때 객체를 삭제해야 한다고 가정하지 않습니다. 따라서 객체는 참조되지 않고 디스크에 남아 있게 됩니다. lo 확장에는 필요한 경우 객체를 삭제하기 위해 참조 변경 사항을 트리거하는 데 사용하는 함수가 포함되어 있습니다.

**작은 정보**  
데이터베이스가 lo 확장의 이점을 누릴 수 있는지 확인하려면 `vacuumlo` 유틸리티를 사용하여 분리되어 있는 대형 객체가 있는지 확인합니다. 작업을 수행하지 않고 분리되어 있는 대형 객체 수를 확인하려면 `-n` 옵션(no-op)과 함께 유틸리티를 실행하면 됩니다. 자세한 방법은 다음 [vacuumlo utility](#vacuumlo-utility) 섹션을 참조하세요.

lo 모듈은 Aurora PostgreSQL 13.7, 12.11, 11.16, 10.21 이상 마이너 버전에서 사용할 수 있습니다.

모듈(확장)을 설치하려면 `rds_superuser` 권한이 필요합니다. lo 확장을 설치하면 데이터베이스에 다음이 추가됩니다.
+ `lo` - 바이너리 대형 객체(BLOB) 및 기타 대형 객체에 사용할 수 있는 대형 객체(lo) 데이터 유형입니다. `lo` 데이터 유형은 `oid` 데이터 유형의 영역에 있습니다. 바꿔 말하면 선택적 제약 조건이 포함된 객체 식별자입니다. 자세한 내용은 PostgreSQL 설명서의 [객체 식별자](https://www.postgresql.org/docs/14/datatype-oid.html)를 참조하세요. 간단히 말해, `lo` 데이터 유형을 사용하여 대형 객체 참조가 들어 있는 데이터베이스 열을 다른 객체 식별자(OID)와 구별할 수 있습니다.
+ `lo_manage` - 대형 객체 참조가 포함된 테이블 열의 트리거에 사용할 수 있는 함수입니다. 대형 객체를 참조하는 값을 삭제하거나 수정할 때마다 트리거는 객체(`lo_unlink`)를 참조에서 분리합니다. 열이 대형 객체에 대한 유일한 데이터베이스 참조인 경우에만 열에 트리거를 사용합니다.

대형 객체 모듈에 대한 자세한 내용은 PostgreSQL 설명서의 [lo](https://www.postgresql.org/docs/current/lo.html)를 참조하세요.

## lo 확장 설치
<a name="PostgreSQL_large_objects_lo_extension.install"></a>

lo 확장을 설치하려면 `rds_superuser` 권한이 필요합니다.

**lo 확장 설치**

1. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 프라이머리 DB 인스턴스에 연결합니다.

   ```
   psql --host=your-cluster-instance-1.666666666666.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
   ```

   메시지가 표시되면 암호를 입력합니다. `psql` 클라이언트는 기본 관리 연결 데이터베이스인 `postgres=>`를 연결하고 프롬프트로 표시합니다.

1. 다음과 같이 확장을 설치합니다.

   ```
   postgres=> CREATE EXTENSION lo;
   CREATE EXTENSION
   ```

이제 `lo` 데이터 유형을 사용하여 테이블의 열을 정의할 수 있습니다. 예를 들어, 래스터 이미지 데이터가 들어 있는 테이블(`images`)을 생성할 수 있습니다. 테이블을 생성하는 다음 예와 같이 열 `raster`에 `lo` 데이터 유형을 사용할 수 있습니다.

```
postgres=> CREATE TABLE images (image_name text, raster lo);
```

## lo\$1manage 트리거 함수를 사용하여 객체 삭제
<a name="PostgreSQL_large_objects_lo_extension.using"></a>

`lo`의 트리거 또는 다른 대형 객체 열에서 `lo_manage` 함수를 사용하여 `lo`가 업데이트되거나 삭제될 때 분리된 객체를 지우거나 발생하지 않도록 방지할 수 있습니다.

**대형 객체를 참조하는 열에 트리거 설정**
+ 다음 중 하나를 수행하세요.
  + 인수의 열 이름을 사용하여 대형 객체에 대한 고유한 참조를 포함하도록 각 열에 BEFORE UPDATE OR DELETE 트리거를 생성합니다.

    ```
    postgres=> CREATE TRIGGER t_raster BEFORE UPDATE OR DELETE ON images
        FOR EACH ROW EXECUTE FUNCTION lo_manage(raster);
    ```
  + 열이 업데이트되는 경우에만 트리거를 적용합니다.

    ```
    postgres=> CREATE TRIGGER t_raster BEFORE UPDATE OF images
        FOR EACH ROW EXECUTE FUNCTION lo_manage(raster);
    ```

`lo_manage` 트리거 함수는 트리거를 정의하는 방법에 따라 열 데이터를 삽입하거나 삭제하는 맥락에서만 작동합니다. 데이터베이스에서 `DROP` 또는 `TRUNCATE` 작업을 수행할 때는 영향을 미치지 않습니다. 즉, 삭제하기 전에 테이블에서 객체 열을 삭제하여 분리된 객체가 생성되지 않도록 해야 합니다.

예를 들어, `images` 테이블을 포함하는 데이터베이스를 삭제한다고 가정해 봅니다. 다음과 같이 열을 삭제합니다.

```
postgres=> DELETE FROM images COLUMN raster
```

해당 열에 삭제를 처리하는 `lo_manage` 함수가 정의되어 있다는 가정하에 이제 테이블을 안전하게 삭제할 수 있습니다.

## `vacuumlo`를 사용하여 고립된 대형 객체 제거
<a name="PostgreSQL_large_objects_lo_extension.vacuumlo-utility"></a>

 `vacuumlo` 유틸리티는 데이터베이스에서 고립된 대형 객체를 식별하고 제거할 수 있습니다. 이 유틸리티는 PostgreSQL 9.1.24부터 지원됩니다. 데이터베이스 사용자가 대형 객체로 자주 작업하는 경우 가끔 `vacuumlo`를 실행하여 분리되어 있는 대형 객체를 정리하는 것이 좋습니다.

lo 확장을 설치하기 전에 `vacuumlo`를 사용하여 Aurora PostgreSQL DB 클러스터의 이점을 얻을 수 있는지를 평가할 수 있습니다. 이렇게 하려면 다음과 같이 `-n` 옵션(no-op)과 함께 `vacuumlo`를 실행하여 제거할 항목을 표시합니다.

```
$ vacuumlo -v -n -h your-cluster-instance-1.666666666666.aws-region.rds.amazonaws.com -p 5433 -U postgres docs-lab-spatial-db
Password:*****
Connected to database "docs-lab-spatial-db"
Test run: no large objects will be removed!
Would remove 0 large objects from database "docs-lab-spatial-db".
```

출력에서 알 수 있듯이 분리된 대형 객체는 이 특정 데이터베이스에서는 문제가 되지 않습니다.

유틸리티에 대한 자세한 내용은 PostgreSQL 설명서의 [https://www.postgresql.org/docs/current/vacuumlo.html](https://www.postgresql.org/docs/current/vacuumlo.html) 섹션을 참조하세요.

## `vacuumlo` 작동 방식 이해
<a name="PostgreSQL_large_objects_lo_extension.vacuumlo-remove"></a>

 `vacuumlo` 명령은 사용자 테이블에 영향을 미치거나 충돌하지 않고 PostgreSQL 데이터베이스에서 고립된 대형 객체(LO)를 제거합니다.

명령은 다음과 같이 작동합니다.

1. `vacuumlo`는 데이터베이스에 있는 대형 객체의 모든 객체 ID(OID)가 포함된 임시 테이블을 만드는 것으로 시작합니다.

1. 그런 다음 `vacuumlo`는 데이터 유형 `oid` 또는 `lo`를 사용하는 데이터베이스의 모든 열을 스캔합니다. `vacuumlo`가 이러한 열에서 일치하는 OID를 찾으면 임시 테이블에서 OID를 제거합니다. `vacuumlo`는 이러한 유형을 기반으로 하는 도메인이 아니라 이름이 `oid` 또는 `lo`인 열만 검사합니다.

1. 임시 테이블의 나머지 항목은 고립된 LO를 나타내며, `vacuumlo`가 안전하게 제거합니다.

## `vacuumlo` 성능 개선
<a name="PostgreSQL_large_objects_lo_extension.vacuumlo-improve"></a>

 `-l` 옵션을 사용하여 배치 크기를 늘려 `vacuumlo`의 성능을 잠재적으로 개선할 수 있습니다. 이렇게 하면 `vacuumlo`가 한 번에 더 많은 LO를 처리할 수 있습니다.

 시스템에 충분한 메모리가 있고 메모리에 임시 테이블을 완전히 수용할 수 있는 경우 데이터베이스 수준에서 `temp_buffers` 설정을 늘리면 성능이 향상될 수 있습니다. 이렇게 하면 테이블이 메모리에 완전히 상주할 수 있으므로 전체 성능이 향상될 수 있습니다.

다음 쿼리는 임시 테이블의 크기를 추정합니다.

```
SELECT
    pg_size_pretty(SUM(pg_column_size(oid))) estimated_lo_temp_table_size
FROM
    pg_largeobject_metadata;
```

## 대형 객체에 대한 고려 사항
<a name="PostgreSQL_large_objects_lo_extension.vacuumlo-consider"></a>

다음은 대형 객체로 작업할 때 유의해야 할 몇 가지 중요한 고려 사항입니다.
+ 현재 고립된 LO를 제거하는 다른 방법이 없기 때문에 `Vacuumlo`가 유일한 솔루션입니다.
+ pglogical, 네이티브 논리적 복제, 복제 기술을 사용하는 AWS DMS와 같은 도구는 대형 객체 복제를 지원하지 않습니다.
+ 데이터베이스 스키마를 설계할 때는 가능하면 대형 객체를 사용하지 말고 `bytea`와 같은 대체 데이터 유형을 사용하는 것이 좋습니다.
+ 고립된 LO 관련 문제를 방지하려면 최소 매주 정기적으로 `vacuumlo`를 실행합니다.
+ 대형 객체를 저장하는 테이블에서 `lo_manage` 함수와 함께 트리거를 사용하면 고립된 LO가 만들어지는 것을 방지할 수 있습니다.

# PostGIS 확장을 사용하여 공간 데이터 관리
<a name="Appendix.PostgreSQL.CommonDBATasks.PostGIS"></a>

PostGIS는 공간 정보를 저장하고 관리하기 위해 PostgreSQL을 확장한 것입니다. PostGIS에 대한 자세한 내용은 [PostGIS.net](https://postgis.net/)을 참조하세요.

버전 10.5부터 PostgreSQL은 맵 상자 벡터 타일 데이터 작업을 위해 PostGIS에서 사용하는 libprotobuf 1.3.0 라이브러리를 지원합니다.

PostGIS 확장을 설정하려면 `rds_superuser` 권한이 필요합니다. PostGIS 확장 프로그램 및 공간 데이터를 관리할 사용자(역할)를 생성하는 것이 좋습니다. PostGIS 확장 프로그램 및 관련 구성 요소는 PostgreSQL에 수천 개의 함수를 추가합니다. 사용 사례에 적합한 경우 자체 스키마에서 PostGIS 확장 프로그램을 만드는 것이 좋습니다. 다음 예제에서는 자체 데이터베이스에 확장 프로그램을 설치하는 방법을 보여주지만, 필수 사항은 아닙니다.

**Topics**
+ [1단계: PostGIS 확장을 관리할 사용자(역할) 생성](#Appendix.PostgreSQL.CommonDBATasks.PostGIS.Connect)
+ [2단계: PostGIS 확장 모듈을 로드합니다.](#Appendix.PostgreSQL.CommonDBATasks.PostGIS.LoadExtensions)
+ [3단계: 확장 스키마 소유권 이전](#Appendix.PostgreSQL.CommonDBATasks.PostGIS.TransferOwnership)
+ [4단계: PostGIS 테이블 소유권 이전](#Appendix.PostgreSQL.CommonDBATasks.PostGIS.TransferObjects)
+ [5단계: 확장 모듈을 테스트합니다.](#Appendix.PostgreSQL.CommonDBATasks.PostGIS.Test)
+ [6단계: PostGIS 확장 업그레이드](#Appendix.PostgreSQL.CommonDBATasks.PostGIS.Update)
+ [PostGIS 확장 버전](#CHAP_PostgreSQL.Extensions.PostGIS)
+ [PostGIS 2를 PostGIS 3으로 업그레이드](#PostgreSQL.Extensions.PostGIS.versions.upgrading.2-to-3)

## 1단계: PostGIS 확장을 관리할 사용자(역할) 생성
<a name="Appendix.PostgreSQL.CommonDBATasks.PostGIS.Connect"></a>

먼저 `rds_superuser` 권한이 있는 사용자로 RDS for PostgreSQL DB 인스턴스에 연결합니다. 인스턴스를 설정할 때 기본 이름을 유지했다면 `postgres`로 연결합니다.

```
psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
```

PostGIS 확장을 관리하기 위해 별도의 역할(사용자)을 생성합니다.

```
postgres=>  CREATE ROLE gis_admin LOGIN PASSWORD 'change_me';
CREATE ROLE
```

역할이 확장을 설치하도록 허용하려면 이 역할 `rds_superuser` 권한을 부여합니다.

```
postgres=> GRANT rds_superuser TO gis_admin;
GRANT
```

PostGIS 아티팩트에 사용할 데이터베이스를 만듭니다. 이 단계는 선택 사항입니다. 또는 PostGIS 확장을 위해 사용자 데이터베이스에 스키마를 생성할 수 있지만 이 역시 필수 사항은 아닙니다.

```
postgres=> CREATE DATABASE lab_gis;
CREATE DATABASE
```

`gis_admin`에게 `lab_gis` 데이터베이스에 대한 모든 권한을 부여합니다.

```
postgres=> GRANT ALL PRIVILEGES ON DATABASE lab_gis TO gis_admin;
GRANT
```

세션을 종료하고 다음과 같이 RDS for PostgreSQL DB 인스턴스에 `gis_admin`으로 다시 연결합니다.

```
postgres=> psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=gis_admin --password --dbname=lab_gis
Password for user gis_admin:...
lab_gis=>
```

다음 단계에 설명된 대로 확장 프로그램을 계속 설정합니다.

## 2단계: PostGIS 확장 모듈을 로드합니다.
<a name="Appendix.PostgreSQL.CommonDBATasks.PostGIS.LoadExtensions"></a>

PostGIS 확장에는 지리 공간 기능을 제공하기 위해 함께 작동하는 여러 관련 확장이 포함되어 있습니다. 사용 사례에 따라 이 단계에서 만든 확장이 모두 필요하지 않을 수 있습니다.

`CREATE EXTENSION` 문을 사용하여 PostGIS 확장 모듈을 로드합니다.

```
CREATE EXTENSION postgis;
CREATE EXTENSION
CREATE EXTENSION postgis_raster;
CREATE EXTENSION
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION
CREATE EXTENSION postgis_tiger_geocoder;
CREATE EXTENSION
CREATE EXTENSION postgis_topology;
CREATE EXTENSION
CREATE EXTENSION address_standardizer_data_us;
CREATE EXTENSION
```

다음 예에 표시된 확장 및 해당 소유자가 나열된 SQL 쿼리를 실행하여 결과를 확인할 수 있습니다.

```
SELECT n.nspname AS "Name",
  pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner"
  FROM pg_catalog.pg_namespace n
  WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'
  ORDER BY 1;
List of schemas
     Name     |   Owner
--------------+-----------
 public       | postgres
 tiger        | rdsadmin
 tiger_data   | rdsadmin
 topology     | rdsadmin
(4 rows)
```

## 3단계: 확장 스키마 소유권 이전
<a name="Appendix.PostgreSQL.CommonDBATasks.PostGIS.TransferOwnership"></a>

ALTER SCHEMA 문을 사용하여 스키마 소유권을 `gis_admin` 역할로 이전합니다.

```
ALTER SCHEMA tiger OWNER TO gis_admin;
ALTER SCHEMA
ALTER SCHEMA tiger_data OWNER TO gis_admin; 
ALTER SCHEMA
ALTER SCHEMA topology OWNER TO gis_admin;
ALTER SCHEMA
```

다음 SQL 쿼리를 실행하여 소유권 변경을 확인할 수 있습니다. 또는 psql 명령줄에서 `\dn` 메타 명령을 사용할 수 있습니다.

```
SELECT n.nspname AS "Name",
  pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner"
  FROM pg_catalog.pg_namespace n
  WHERE n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'
  ORDER BY 1;

       List of schemas
     Name     |     Owner
--------------+---------------
 public       | postgres
 tiger        | gis_admin
 tiger_data   | gis_admin
 topology     | gis_admin
(4 rows)
```

## 4단계: PostGIS 테이블 소유권 이전
<a name="Appendix.PostgreSQL.CommonDBATasks.PostGIS.TransferObjects"></a>

**참고**  
PostGIS 함수의 소유권을 변경하지 마세요. PostGIS를 올바르게 운영하고 향후 업그레이드하려면 이러한 함수가 원래 소유권을 유지해야 합니다. PostGIS 권한에 대한 자세한 내용은 [PostgreSQL 보안](https://postgis.net/workshops/postgis-intro/security.html)을 참조하세요.

다음 함수를 사용하여 PostGIS 테이블 소유권을 `gis_admin` 역할로 이전합니다. psql 프롬프트에서 다음 문을 실행하여 함수를 생성합니다.

```
CREATE FUNCTION exec(text) returns text language plpgsql volatile AS $f$ BEGIN EXECUTE $1; RETURN $1; END; $f$;
CREATE FUNCTION
```

그런 다음 쿼리로 `exec` 함수를 실행하면 함수가 해당하는 문을 실행하여 권한을 변경합니다.

```
SELECT exec('ALTER TABLE ' || quote_ident(s.nspname) || '.' || quote_ident(s.relname) || ' OWNER TO gis_admin;')
  FROM (
    SELECT nspname, relname
    FROM pg_class c JOIN pg_namespace n ON (c.relnamespace = n.oid) 
    WHERE nspname in ('tiger','topology') AND
    relkind IN ('r','S','v') ORDER BY relkind = 'S')
s;
```

## 5단계: 확장 모듈을 테스트합니다.
<a name="Appendix.PostgreSQL.CommonDBATasks.PostGIS.Test"></a>

스키마 이름을 지정할 필요가 없도록 하려면 다음 명령을 사용하여 검색 경로에 `tiger` 스키마를 추가하세요.

```
SET search_path=public,tiger;
SET
```

다음 SELECT 문을 사용하여 `tiger` 스키마를 테스트합니다.

```
SELECT address, streetname, streettypeabbrev, zip
 FROM normalize_address('1 Devonshire Place, Boston, MA 02109') AS na;
address | streetname | streettypeabbrev |  zip
---------+------------+------------------+-------
       1 | Devonshire | Pl               | 02109
(1 row)
```

이 확장에 대한 자세한 내용은 PostGIS 문서에서 [Tiger Geocoder](https://postgis.net/docs/Extras.html#Tiger_Geocoder)를 참조하세요.

다음 `SELECT` 문을 사용하여 `topology` 스키마를 테스트합니다. 이렇게 하면 지정된 공간 참조 식별자(26986) 및 기본 허용 오차(0.5)를 사용하여 새 토폴로지 개체(my\$1new\$1topo)를 등록하는 `createtopology` 함수를 호출합니다. 자세한 내용은 PostgreSQL의 [CreateTopology](https://postgis.net/docs/CreateTopology.html) 문서를 참조하세요.

```
SELECT topology.createtopology('my_new_topo',26986,0.5);
 createtopology
----------------
              1
(1 row)
```

## 6단계: PostGIS 확장 업그레이드
<a name="Appendix.PostgreSQL.CommonDBATasks.PostGIS.Update"></a>

PostgreSQL의 각 새 릴리스는 해당 릴리스와 호환되는 하나 이상의 PostGIS 확장 버전을 지원합니다. PostgreSQL 엔진을 새 버전으로 업그레이드해도 PostGIS 확장은 자동으로 업그레이드되지 않습니다. PostgreSQL 엔진을 업그레이드하려면 일반적으로 PostGIS를 현재 PostgreSQL 버전에서 사용 가능한 최신 버전으로 업그레이드를 먼저 해야 합니다. 자세한 내용은 [PostGIS 확장 버전](#CHAP_PostgreSQL.Extensions.PostGIS) 단원을 참조하세요.

PostgreSQL 엔진 업그레이드 후 PostGIS 확장을 새로 업그레이드된 PostgreSQL 엔진 버전에 대해 지원되는 버전으로 다시 업그레이드합니다. PostgreSQL 엔진 업그레이드에 대한 자세한 내용은 [새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)  단원을 따라가세요.

Aurora PostgreSQL DB 클러스터 에서 사용 가능한 PostGIS 확장 버전 업데이트를 언제든지 확인할 수 있습니다. 이렇게 하려면 다음 명령을 실행합니다. 이 기능은 PostGIS 2.5.0 이상 버전에서 사용할 수 있습니다.

```
SELECT postGIS_extensions_upgrade();
```

애플리케이션이 최신 PostGIS 버전을 지원하지 않는 경우에도 다음과 같이 사용 중인 메이저 버전에서 사용할 수 있는 이전 버전의 PostGIS를 설치할 수 있습니다.

```
CREATE EXTENSION postgis VERSION "2.5.5";
```

이전 버전에서 특정 PostGIS 버전으로 업그레이드하려는 경우 다음 명령을 사용할 수도 있습니다.

```
ALTER EXTENSION postgis UPDATE TO "2.5.5";
```

업그레이드하는 버전에 따라 이 기능을 다시 사용해야 할 수도 있습니다. 기능의 첫 번째 실행 결과에 따라 추가 업그레이드 기능이 필요한지 여부가 결정됩니다. PostGIS 2에서 PostGIS 3으로 업그레이드하는 경우를 예로 들 수 있습니다. 자세한 내용은 [PostGIS 2를 PostGIS 3으로 업그레이드](#PostgreSQL.Extensions.PostGIS.versions.upgrading.2-to-3)을 참조하세요.

PostgreSQL 엔진의 메이저 버전 업그레이드를 준비하기 위해 이 확장을 업그레이드했다면 다른 예비 작업을 계속할 수 있습니다. 자세한 내용은 [새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary) 단원을 참조하세요. 

## PostGIS 확장 버전
<a name="CHAP_PostgreSQL.Extensions.PostGIS"></a>

*Aurora PostgreSQL 릴리스 정보*의 [Aurora PostgreSQL 호환 버전용 확장 버전](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html)에 나열된 PostGIS와 같은 모든 확장 버전을 설치하는 것이 좋습니다. *Amazon RDS for PostgreSQL 릴리스 정보*의 릴리스에서 사용 가능한 버전 목록을 얻으려면 다음 명령을 사용하세요.

```
SELECT * FROM pg_available_extension_versions WHERE name='postgis';
```

*Aurora PostgreSQL 릴리스 정보*의 다음 단원에서 버전 정보를 찾을 수 있습니다.
+ [Aurora PostgreSQL 확장 버전 14](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html#AuroraPostgreSQL.Extensions.14)
+ [Aurora PostgreSQL 호환 버전의 확장 버전 13](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html#AuroraPostgreSQL.Extensions.13)
+ [Aurora PostgreSQL 호환 버전의 확장 버전 12](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html#AuroraPostgreSQL.Extensions.12)
+ [Aurora PostgreSQL 호환 버전의 확장 버전 11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html#AuroraPostgreSQL.Extensions.11)
+ [Aurora PostgreSQL 호환 버전의 확장 버전 10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html#AuroraPostgreSQL.Extensions.10)
+ [Aurora PostgreSQL 호환 버전의 확장 버전 9.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html#AuroraPostgreSQL.Extensions.96)

## PostGIS 2를 PostGIS 3으로 업그레이드
<a name="PostgreSQL.Extensions.PostGIS.versions.upgrading.2-to-3"></a>

버전 3.0부터 PostGIS 래스터 기능이 이제 별도의 확장인 `postgis_raster`입니다. 이 확장에는 자체 설치 및 업그레이드 경로가 있습니다. 이러한 경로를 통해 코어에서 핵심 `postgis` 확장에서 래스터 이미지 처리에 필요한 수십 가지 기능, 데이터 유형 및 기타 아티팩트를 제거합니다. 즉, 사용 사례에 래스터 처리가 필요하지 않은 경우 `postgis_raster` 확장을 설치할 필요가 없습니다.

다음 업그레이드 예에서 첫 번째 업그레이드 명령은 래스터 기능을 `postgis_raster` 확장으로 추출합니다. 그런 다음 `postgis_raster`를 새 버전으로 업그레이드하려면 두 번째 업그레이드 명령이 필요합니다.

**PostGIS 2에서 PostGIS 3으로 업그레이드하려면**

1. Aurora PostgreSQL DB 클러스터의 PostgreSQL 버전에 사용할 수 있는 PostGIS의 기본 버전을 식별합니다. 이렇게 하려면 다음 쿼리를 실행합니다.

   ```
   SELECT * FROM pg_available_extensions
       WHERE default_version > installed_version;
     name   | default_version | installed_version |                          comment
   ---------+-----------------+-------------------+------------------------------------------------------------
    postgis | 3.1.4           | 2.3.7             | PostGIS geometry and geography spatial types and functions
   (1 row)
   ```

1. Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에서 각 데이터베이스에 설치된 PostGIS 버전을 식별합니다. 즉, 다음과 같이 각 사용자 데이터베이스를 쿼리합니다.

   ```
   SELECT
       e.extname AS "Name",
       e.extversion AS "Version",
       n.nspname AS "Schema",
       c.description AS "Description"
   FROM
       pg_catalog.pg_extension e
       LEFT JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace
       LEFT JOIN pg_catalog.pg_description c ON c.objoid = e.oid
       AND c.classoid = 'pg_catalog.pg_extension'::pg_catalog.regclass
   WHERE
       e.extname LIKE '%postgis%'
   ORDER BY
       1;
     Name   | Version | Schema |                             Description
   ---------+---------+--------+---------------------------------------------------------------------
    postgis | 2.3.7   | public | PostGIS geometry, geography, and raster spatial types and functions
   (1 row)
   ```

   기본 버전(PostGIS 3.1.4)과 설치된 버전(PostGIS 2.3.7) 간의 이러한 불일치는 PostGIS 확장을 업그레이드해야 함을 의미합니다.

   ```
   ALTER EXTENSION postgis UPDATE;
   ALTER EXTENSION
   WARNING: unpackaging raster
   WARNING: PostGIS Raster functionality has been unpackaged
   ```

1. 다음 쿼리를 실행하여 래스터 기능이 이제 자체 패키지에 포함되어 있는지 확인합니다.

   ```
   SELECT
       probin,
       count(*)
   FROM
       pg_proc
   WHERE
       probin LIKE '%postgis%'
   GROUP BY
       probin;
             probin          | count
   --------------------------+-------
    $libdir/rtpostgis-2.3    | 107
    $libdir/postgis-3        | 487
   (2 rows)
   ```

   출력 결과를 통해 여전히 버전 간에 여전히 차이가 있음을 알 수 있습니다. PostGIS 함수는 버전 3(postgis-3)이고 래스터 함수(rtpostgis)는 버전 2(rtpostgis-2.3)입니다. 업그레이드를 완료하려면 다음과 같이 upgrade 명령을 다시 실행합니다.

   ```
   postgres=> SELECT postgis_extensions_upgrade();
   ```

   경고 메시지는 무시해도 됩니다. 다음 쿼리를 다시 실행하여 업그레이드가 완료되었는지 확인합니다. PostGIS 및 모든 관련 확장 프로그램이 업그레이드 필요 항목으로 표시되지 않으면 업그레이드가 완료된 것입니다.

   ```
   SELECT postgis_full_version();
   ```

1. 다음 쿼리를 사용하여 완료된 업그레이드 프로세스와 별도로 패키징된 확장을 확인하고 해당 버전이 일치하는지 확인합니다.

   ```
   SELECT
       e.extname AS "Name",
       e.extversion AS "Version",
       n.nspname AS "Schema",
       c.description AS "Description"
   FROM
       pg_catalog.pg_extension e
       LEFT JOIN pg_catalog.pg_namespace n ON n.oid = e.extnamespace
       LEFT JOIN pg_catalog.pg_description c ON c.objoid = e.oid
           AND c.classoid = 'pg_catalog.pg_extension'::pg_catalog.regclass
   WHERE
       e.extname LIKE '%postgis%'
   ORDER BY
       1;
         Name      | Version | Schema |                             Description
   ----------------+---------+--------+---------------------------------------------------------------------
    postgis        | 3.1.5   | public | PostGIS geometry, geography, and raster spatial types and functions
    postgis_raster | 3.1.5   | public | PostGIS raster types and functions
   (2 rows)
   ```

   출력은 PostGIS 2 확장이 PostGIS 3으로 업그레이드되었으며 `postgis`와 현재 별도의 `postgis_raster` 확장이 모두 버전 3.1.5임을 보여줍니다.

이 업그레이드가 완료된 후 래스터 기능을 사용하지 않으려는 경우 다음과 같이 확장을 삭제할 수 있습니다.

```
DROP EXTENSION postgis_raster;
```

# pg\$1partman 확장자를 사용하여 PostgreSQL 파티션 관리하기
<a name="PostgreSQL_Partitions"></a>

PostgreSQL 테이블 파티셔닝은 데이터 입력 및보고의 고성능 처리를 위한 프레임워크를 제공합니다. 대량의 데이터를 매우 빠르게 입력해야 하는 데이터베이스의 경우 파티셔닝을 사용합니다. 파티셔닝은 큰 테이블의 빠른 쿼리를 제공합니다. 파티셔닝은 I/O 리소스가 적기 때문에 데이터베이스 인스턴스에 영향을 주지 않고 데이터를 유지 관리하는 데 도움이 됩니다.

파티셔닝을 사용하면 데이터를 사용자 지정 크기의 청크로 분할하여 처리할 수 있습니다. 예를 들어, 시간별, 일별, 주별, 월별, 분기별, 연도별, 사용자 지정 또는 이러한 조합과 같은 범위의 시계열 데이터를 분할할 수 있습니다. 시계열 데이터 예제의 경우 테이블을 시간별로 분할한 경우 각 파티션에는 1시간의 데이터가 포함됩니다. 시계열 테이블을 일별로 분할한 경우 파티션에는 하루 분량의 데이터가 저장되는 식입니다. 파티션 키는 파티션의 크기를 제어합니다.

분할된 테이블에서 `INSERT` 또는 `UPDATE` SQL 명령을 사용하는 경우 데이터베이스 엔진은 데이터를 적절한 파티션으로 라우팅합니다. 데이터를 저장하는 PostgreSQL 테이블 파티션은 기본 테이블의 하위 테이블입니다.

데이터베이스 쿼리를 읽는 동안 PostgreSQL 최적화 프로그램은 쿼리 `WHERE` 절을 검사하고 가능한 경우 데이터베이스 스캔을 관련 파티션에만 보냅니다.

버전 10부터, PostgreSQL은 선언적 분할을 사용하여 테이블 분할을 구현합니다. 이를 네이티브 PostgreSQL 파티셔닝이라고도 합니다. PostgreSQL 버전 10 이전에는 트리거를 사용하여 파티션을 구현했습니다.

PostgreSQL 테이블 분할은 다음과 같은 기능을 제공합니다:
+ 언제든지 새 파티션을 만들 수 있습니다.
+ 가변 분할 영역 범위입니다.
+ 데이터 정의 언어(DDL) 문을 사용하여 분리 및 재연결 가능한 파티션

  예를 들어 분리 가능한 파티션은 주 파티션에서 기록 데이터를 제거하지만 분석을 위해 기록 데이터를 유지하는 데 유용합니다.
+ 새 파티션은 다음을 포함하여 상위 데이터베이스 테이블 속성을 상속합니다.
  + 인덱스
  + 파티션 키 열을 포함해야 하는 기본 키
  + 외래 키
  + 제약 점검
  + 참조
+ 전체 테이블 또는 각 특정 파티션에 대한 인덱스 생성

개별 파티션에 대한 스키마를 변경할 수 없습니다. 그러나 분할 영역에 전파되는 상위 테이블 (예: 새 열 추가) 을 변경할 수 있습니다.

**Topics**
+ [PostgreSQL pg\$1partman 확장 개요](#PostgreSQL_Partitions.pg_partman)
+ [pg\$1partman 확장 활성화](#PostgreSQL_Partitions.enable)
+ [create\$1parent 함수를 사용하여 파티션 구성](#PostgreSQL_Partitions.create_parent)
+ [run\$1maintenance\$1proc 함수를 사용하여 파티션 유지 관리 구성](#PostgreSQL_Partitions.run_maintenance_proc)

## PostgreSQL pg\$1partman 확장 개요
<a name="PostgreSQL_Partitions.pg_partman"></a>

PostgreSQL `pg_partman` 확장을 사용하여 테이블 파티션의 생성 및 유지 관리를 자동화할 수 있습니다. 자세한 내용은 `pg_partman` 문서의 [PG 파티션 관리자](https://github.com/pgpartman/pg_partman)를 참조하세요.

**참고**  
`pg_partman` 확장은 Aurora PostgreSQL 버전 12.6 이상에서 지원됩니다.

각 파티션을 수동으로 생성하지 않고 다음 설정으로 `pg_partman`을 구성합니다.
+ 분할할 테이블
+ 파티션 유형
+ 파티션 키
+ 분할 영역 세분성
+ 파티션 사전 생성 및 관리 옵션

PostgreSQL 분할 테이블을 만든 후, `create_parent` 함수를 호출하여 `pg_partman`에 등록합니다. 이렇게 하면 함수에 전달하는 파라미터를 기반으로 필요한 파티션이 생성됩니다.

`pg_partman` 확장은 예약된 시간에 호출하여 파티션을 자동으로 관리할 수 있는 `run_maintenance_proc` 함수도 제공합니다. 필요에 따라 적절한 파티션이 생성되도록 하려면 이 기능을 주기적으로 실행하도록 예약합니다(예: 매 시간). 파티션이 자동으로 삭제되게 할 수도 있습니다.

## pg\$1partman 확장 활성화
<a name="PostgreSQL_Partitions.enable"></a>

파티션을 관리하려는 동일한 PostgreSQL DB 인스턴스 내에 여러 개의 데이터베이스가 있는 경우 각 데이터베이스별로 별도로 `pg_partman` 확장을 활성화해야 합니다. 특정 데이터베이스에 대해 `pg_partman` 확장을 활성화하려면 파티션 유지 관리 스키마를 생성한 후 다음과 같이 `pg_partman` 확장을 생성합니다.

```
CREATE SCHEMA partman;
CREATE EXTENSION pg_partman WITH SCHEMA partman;
```

**참고**  
`pg_partman` 확장을 만들려면 `rds_superuser` 권한이 있는지 확인하세요.

다음과 같은 오류가 발생하면 계정에 `rds_superuser` 권한을 부여하거나 수퍼유저 계정을 사용하십시오.

```
ERROR: permission denied to create extension "pg_partman"
HINT: Must be superuser to create this extension.
```

`rds_superuser` 권한을 부여하려면 수퍼유저 계정으로 연결하고 다음 명령을 실행합니다.

```
GRANT rds_superuser TO user-or-role;
```

pg\$1partman 확장 사용 방법을 보여 주는 예제에서는 다음 예제 데이터베이스 테이블 및 파티션을 사용합니다. 이 데이터베이스는 타임스탬프를 기반으로 분할된 테이블을 사용합니다. `data_mart` 스키마에는 라는 열이 `events` 있는 테이블이 포함되어 `created_at`있습니다. 이 `events` 테이블에는 다음과 같은 설정이 포함되어 있습니다.
+  기본 키 `event_id` 및 `created_at`파티션을 안내하는 데 사용되는 열이 있어야 합니다.
+ `ck_valid_operation` 테이블 열에 대한 값을 `operation` 적용하는 CHECK 제약 조건.
+ 두 개의 외래 키. 하나는 외부 테이블을`fk_orga_membership)` `organization` 가리키고 다른 하나는 자체 참조 외래 키입니다.`fk_parent_event_id`
+ 두 개의 인덱스. 여기서 하나 (`idx_org_id`) 는 외래 키용이고 다른 인덱스 (`idx_event_type`) 는 이벤트 유형용입니다.

다음 DDL 명령문은 각 파티션에 자동으로 포함되는 이러한 객체를 만듭니다.

```
CREATE SCHEMA data_mart;
CREATE TABLE data_mart.organization ( org_id BIGSERIAL,
        org_name TEXT,
        CONSTRAINT pk_organization PRIMARY KEY (org_id)  
    );

CREATE TABLE data_mart.events(
        event_id        BIGSERIAL, 
        operation       CHAR(1), 
        value           FLOAT(24), 
        parent_event_id BIGINT, 
        event_type      VARCHAR(25), 
        org_id          BIGSERIAL, 
        created_at      timestamp, 
        CONSTRAINT pk_data_mart_event PRIMARY KEY (event_id, created_at), 
        CONSTRAINT ck_valid_operation CHECK (operation = 'C' OR operation = 'D'), 
        CONSTRAINT fk_orga_membership 
            FOREIGN KEY(org_id) 
            REFERENCES data_mart.organization (org_id),
        CONSTRAINT fk_parent_event_id 
            FOREIGN KEY(parent_event_id, created_at) 
            REFERENCES data_mart.events (event_id,created_at)
    ) PARTITION BY RANGE (created_at);

CREATE INDEX idx_org_id     ON  data_mart.events(org_id);
CREATE INDEX idx_event_type ON  data_mart.events(event_type);
```



## create\$1parent 함수를 사용하여 파티션 구성
<a name="PostgreSQL_Partitions.create_parent"></a>

`pg_partman` 확장을 활성화한 후에는 `create_parent` 함수를 사용하여 파티션 유지 관리 스키마 내에 파티션을 구성합니다. 다음 예에서는 `events`에서 만든 [pg\$1partman 확장 활성화run\$1maintenance\$1proc 함수를 사용하여 파티션 유지 관리 구성](#PostgreSQL_Partitions.enable) 테이블 예제를 사용합니다. `create_parent` 함수를 다음과 같이 호출합니다.

```
SELECT partman.create_parent( 
 p_parent_table => 'data_mart.events',
 p_control      => 'created_at',
 p_type         => 'range',
 p_interval     => '1 day',
 p_premake      => 30);
```

파라미터는 다음과 같습니다.
+ `p_parent_table` – 상위 분할 테이블입니다. 이 테이블은 이미 존재해야 하며 스키마를 포함하여 정규화되어야 합니다.
+ `p_control` – 분할이 기반으로되는 열입니다. 데이터 유형은 정수 또는 시간 기반이어야 합니다.
+ `p_type` - 유형은 `'range'` 또는 `'list'`입니다.
+ `p_interval` – 각 파티션에 대한 시간 간격 또는 정수 범위입니다. 값의 예로는 `1 day`, `1 hour` 등이 포함됩니다.
+ `p_premake` – 새 삽입을 지원하기 위해 미리 생성할 분할 영역 수입니다.

`create_parent` 함수에 대한 자세한 설명은 `pg_partman` 설명서에서 [생성 함수](https://github.com/pgpartman/pg_partman/blob/master/doc/pg_partman.md#user-content-creation-functions)를 참조하세요.

## run\$1maintenance\$1proc 함수를 사용하여 파티션 유지 관리 구성
<a name="PostgreSQL_Partitions.run_maintenance_proc"></a>

파티션 유지 관리 작업을 실행하여 자동으로 새 파티션을 생성하거나, 파티션을 분리하거나, 이전 파티션을 제거할 수 있습니다. 파티션 유지 관리에는 내부 스케줄러를 시작하는 `pg_partman` 확장 및 `pg_cron` 확장의 `run_maintenance_proc` 함수가 사용됩니다. `pg_cron` 스케줄러는 데이터베이스에 정의된 SQL 문, 함수 및 프로시저를 자동으로 실행합니다.

다음 예제에서는 에서 만든 `events` 테이블 예제를 [pg\$1partman 확장 활성화run\$1maintenance\$1proc 함수를 사용하여 파티션 유지 관리 구성](#PostgreSQL_Partitions.enable) 사용하여 파티션 유지 관리 작업이 자동으로 실행되도록 설정합니다. 전제 조건으로 `pg_cron`을 DB 인스턴스의 파라미터 그룹의 `shared_preload_libraries` 파라미터에 추가합니다.

```
CREATE EXTENSION pg_cron;

UPDATE partman.part_config 
SET infinite_time_partitions = true,
    retention = '3 months', 
    retention_keep_table=true 
WHERE parent_table = 'data_mart.events';
SELECT cron.schedule('@hourly', $$CALL partman.run_maintenance_proc()$$);
```

다음으로, 앞의 예제에 대한 단계별 설명을 찾을 수 있습니다.

1. DB 인스턴스와 연결된 파라미터 그룹을 수정하고 `pg_cron` 파라미터 값에 `shared_preload_libraries` 추가합니다. 이 변경 사항을 적용하려면 DB 인스턴스를 다시 시작해야 합니다. 자세한 내용은 [Amazon Aurora에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 섹션을 참조하세요.

1. `CREATE EXTENSION pg_cron;` 권한이 있는 계정을 사용하여 `rds_superuser` 명령을 실행합니다. 이렇게 하면 `pg_cron` 확장이 활성화됩니다. 자세한 내용은 [PostgreSQL pg\$1cron 확장을 사용하여 유지 관리 예약](PostgreSQL_pg_cron.md) 섹션을 참조하세요.

1. `UPDATE partman.part_config` 명령을 실행하여 `data_mart.events` 테이블에 대한 `pg_partman` 설정을 조정합니다.

1. `SET` 명령을 실행합니다. `data_mart.events` 테이블을 구성하려면 다음 절을 함께 사용합니다.

   1. `infinite_time_partitions = true,` – 제한 없이 자동으로 새 파티션을 만들 수 있도록 테이블을 구성합니다.

   1. `retention = '3 months',` – 최대 보존 기간이 3개월이 되도록 테이블을 구성합니다.

   1. `retention_keep_table=true `– 보존 기간이 만료될 때 테이블이 자동으로 삭제되지 않도록 테이블을 구성합니다. 대신 보존 기간보다 오래된 파티션은 상위 테이블에서만 분리됩니다.

1. `SELECT cron.schedule` 명령을 실행합니다. `pg_cron` 함수를 호출하려면 이 호출은 스케줄러가 `pg_partman` 유지 관리 프로시저 `partman.run_maintenance_proc`를 실행하는 빈도를 정의합니다. 이 예제에서는 프로시저가 매 시간 실행됩니다.

`run_maintenance_proc` 함수에 대한 자세한 설명은 `pg_partman` 설명서에서 [유지 관리 함수](https://github.com/pgpartman/pg_partman/blob/master/doc/pg_partman.md#maintenance-functions)를 참조하세요.

# PostgreSQL pg\$1cron 확장을 사용하여 유지 관리 예약
<a name="PostgreSQL_pg_cron"></a>

PostgreSQL `pg_cron` 확장을 사용하여 PostgreSQL 데이터베이스 내에서 유지 관리 명령을 예약할 수 있습니다. 확장에 대한 자세한 내용은 pg\$1cron 설명서의 [pg\$1cron이란 무엇입니까?](https://github.com/citusdata/pg_cron) 섹션을 참조하십시오.

`pg_cron` 확장은 Aurora PostgreSQL 엔진 버전 12.6 이상에서 지원됩니다.

`pg_cron` 사용에 대한 자세한 내용은 [RDS for PostgreSQL 또는 Aurora PostgreSQL 호환 에디션 데이터베이스에서 pg\$1cron을 사용하여 작업 예약](https://aws.amazon.com/blogs/database/schedule-jobs-with-pg_cron-on-your-amazon-rds-for-postgresql-or-amazon-aurora-for-postgresql-databases/)을 참조하세요.

**참고**  
`pg_cron` 확장 버전은 pg\$1available\$1extensions 보기에 1.6과 같은 2자리 버전으로 표시됩니다. 일부 컨텍스트에 나열된 1.6.4 또는 1.6.5와 같은 세 자리 버전이 표시될 수 있지만, 확장 업그레이드를 수행할 때 두 자리 버전을 지정해야 합니다.

**Topics**
+ [pg\$1cron 확장 설정](#PostgreSQL_pg_cron.enable)
+ [데이터베이스 사용자에게 pg\$1cron 사용 권한 부여](#PostgreSQL_pg_cron.permissions)
+ [pg\$1cron 작업 예약](#PostgreSQL_pg_cron.examples)
+ [pg\$1cron 확장에 대한 참조](#PostgreSQL_pg_cron.reference)

## pg\$1cron 확장 설정
<a name="PostgreSQL_pg_cron.enable"></a>

다음과 같이 `pg_cron` 확장을 설정합니다.

1. `shared_preload_libraries` 파라미터 값에 `pg_cron` 을 추가하여 PostgreSQL DB 인스턴스와 연결된 사용자 지정 파라미터 그룹을 수정합니다.

   파라미터 그룹에 대한 변경 사항을 적용하려면 PostgreSQL DB 인스턴스를 다시 시작합니다. 파라미터 그룹 사용에 대한 자세한 내용은 [Amazon Aurora PostgreSQL parameters](AuroraPostgreSQL.Reference.ParameterGroups.md). 섹션을 참조하십시오.

1. PostgreSQL DB 인스턴스가 다시 시작된 후 `rds_superuser` 권한이 있는 계정을 사용하여 다음 명령을 수행합니다. 예를 들어 Aurora PostgreSQL DB 클러스터를 생성할 때 기본 설정을 사용한 경우 사용자 `postgres`로 연결하고 확장을 생성합니다.

   ```
   CREATE EXTENSION pg_cron;
   ```

   `pg_cron` 스케줄러는 `postgres`라는 기본 PostgreSQL 데이터베이스에 설정됩니다. `pg_cron` 객체가 이 `postgres` 데이터베이스에 생성되고 모든 예약 작업이 이 데이터베이스에서 실행됩니다.

1. 기본 설정을 사용하거나 PostgreSQL DB 인스턴스 내의 다른 데이터베이스에서 실행되도록 작업을 예약할 수 있습니다. PostgreSQL DB 인스턴스 내의 다른 데이터베이스에 대한 작업을 예약하려면 [기본 데이터베이스 이외의 데이터베이스에 대한 cron 작업 예약](#PostgreSQL_pg_cron.otherDB)의 예제를 참조하세요.

## 데이터베이스 사용자에게 pg\$1cron 사용 권한 부여
<a name="PostgreSQL_pg_cron.permissions"></a>

`pg_cron` 확장을 설치하려면 `rds_superuser` 권한이 필요합니다. 그러나 `pg_cron` 사용 권한은 (`rds_superuser` 그룹/역할의 구성원에 의해) 다른 데이터베이스 사용자에게 부여되어 자신의 작업을 예약할 수 있습니다. 프로덕션 환경에서 작업을 개선하는 경우 필요한 경우에만 `cron` 스키마에 권한을 부여하는 것이 좋습니다.

`cron` 스키마에서 데이터베이스 사용자 권한을 부여하려면 다음 명령을 실행합니다.

```
postgres=> GRANT USAGE ON SCHEMA cron TO db-user;
```

이렇게 하면 액세스 권한이 있는 개체에 대해 cron 작업을 예약하기 위해 `cron` 스키마에 액세스할 수 있는 권한이 *db-user*에게 부여됩니다. 데이터베이스 사용자에게 권한이 없으면 다음과 같이 `postgresql.log` 파일에 오류 메시지를 게시한 후 작업이 실패합니다.

```
2020-12-08 16:41:00 UTC::@:[30647]:ERROR: permission denied for table table-name
2020-12-08 16:41:00 UTC::@:[27071]:LOG: background worker "pg_cron" (PID 30647) exited with exit code 1
```

즉, `cron` 스키마에 대한 사용 권한이 부여된 데이터베이스 사용자는 예약하려는 개체(테이블, 스키마 등)에 대한 사용 권한도 있어야 합니다.

cron 작업 및 성공 또는 실패에 대한 세부 정보도 `cron.job_run_details` 테이블에 캡처됩니다. 자세한 내용은 [작업 예약 및 상태 캡처를 위한 테이블](#PostgreSQL_pg_cron.tables) 섹션을 참조하세요.

## pg\$1cron 작업 예약
<a name="PostgreSQL_pg_cron.examples"></a>

다음 단원에서는 `pg_cron` 작업을 사용하여 다양한 관리 태스크를 예약하는 방법을 보여 줍니다.

**참고**  
`pg_cron` 작업을 생성할 때 `max_worker_processes` 설정이 `cron.max_running_jobs` 개수보다 큰지 확인하십시오. 백그라운드 작업자 프로세스가 부족하면 `pg_cron` 작업은 실패합니다. 기본 `pg_cron` 작업 수는 `5`입니다. 자세한 내용은 [pg\$1cron 확장을 관리하기 위한 파라미터](#PostgreSQL_pg_cron.parameters) 섹션을 참조하십시오.

**Topics**
+ [테이블 베큠](#PostgreSQL_pg_cron.vacuum)
+ [pg\$1cron 기록 테이블 지우기](#PostgreSQL_pg_cron.job_run_details)
+ [postgresql.log 파일에만 오류 로깅](#PostgreSQL_pg_cron.log_run)
+ [기본 데이터베이스 이외의 데이터베이스에 대한 cron 작업 예약](#PostgreSQL_pg_cron.otherDB)

### 테이블 베큠
<a name="PostgreSQL_pg_cron.vacuum"></a>

Autovacuum은 대부분의 경우 정리 유지 관리를 처리합니다. 하지만 선택한 시간에 특정 테이블을 베큠하도록 예약해야 하는 경우도 있습니다.

다음은 매일 22:00(GMT)에 특정 테이블에 `cron.schedule`를 사용하는 작업을 설정하는 `VACUUM FREEZE` 함수의 사용 예입니다.

```
SELECT cron.schedule('manual vacuum', '0 22 * * *', 'VACUUM FREEZE pgbench_accounts');
 schedule
----------
1
(1 row)
```

앞의 예제를 실행한 후, 다음과 같이 `cron.job_run_details` 테이블에서 기록을 확인할 수 있습니다.

```
postgres=> SELECT * FROM cron.job_run_details;
jobid  | runid | job_pid | database | username | command                        | status    | return_message | start_time                    | end_time
-------+-------+---------+----------+----------+--------------------------------+-----------+----------------+-------------------------------+-------------------------------
 1     | 1     | 3395    | postgres | adminuser| vacuum freeze pgbench_accounts | succeeded | VACUUM         | 2020-12-04 21:10:00.050386+00 | 2020-12-04 21:10:00.072028+00
(1 row)
```

다음은 실패한 작업을 확인하기 위한 `cron.job_run_details` 테이블의 쿼리입니다.

```
postgres=> SELECT * FROM cron.job_run_details WHERE status = 'failed';
jobid | runid | job_pid | database | username | command                       | status | return_message                                   | start_time                    | end_time
------+-------+---------+----------+----------+-------------------------------+--------+--------------------------------------------------+-------------------------------+------------------------------
 5    | 4     | 30339   | postgres | adminuser| vacuum freeze pgbench_account | failed | ERROR: relation "pgbench_account" does not exist | 2020-12-04 21:48:00.015145+00 | 2020-12-04 21:48:00.029567+00
(1 row)
```

자세한 내용은 [작업 예약 및 상태 캡처를 위한 테이블](#PostgreSQL_pg_cron.tables) 섹션을 참조하세요.

### pg\$1cron 기록 테이블 지우기
<a name="PostgreSQL_pg_cron.job_run_details"></a>

`cron.job_run_details` 테이블에는 시간이 지남에 따라 매우 커질 수 있는 cron 작업 기록이 포함되어 있습니다. 이 테이블을 지우는 작업을 예약하는 것이 좋습니다. 예를 들어, 1 주일 분량의 항목을 보관하면 문제 해결을 위해 충분할 수 있습니다.

다음 예에서는 [cron.schedule](#PostgreSQL_pg_cron.schedule) 함수를 사용하여, 매일 자정에 실행되어 `cron.job_run_details` 테이블을 지우는 작업을 예약합니다. 이 작업은 지난 7 일 동안의 항목만 유지합니다. `rds_superuser` 계정을 사용하여 다음과 같은 작업을 예약합니다.

```
SELECT cron.schedule('0 0 * * *', $$DELETE 
    FROM cron.job_run_details 
    WHERE end_time < now() - interval '7 days'$$);
```

자세한 내용은 [작업 예약 및 상태 캡처를 위한 테이블](#PostgreSQL_pg_cron.tables) 섹션을 참조하세요.

### postgresql.log 파일에만 오류 로깅
<a name="PostgreSQL_pg_cron.log_run"></a>

`cron.job_run_details` 테이블에 대한 쓰기 작업을 완전히 차단하려면 PostgreSQL DB 인스턴스와 연결된 파라미터 그룹을 수정하고 `cron.log_run` 파라미터를 '꺼짐'으로 설정합니다. `pg_cron` 확장이 더 이상 테이블에 기록하지 않고 `postgresql.log` 파일에만 오류를 캡처합니다. 자세한 내용은 [Amazon Aurora에서 DB 파라미터 그룹의 파라미터 수정](USER_WorkingWithParamGroups.Modifying.md) 섹션을 참조하세요.

다음 명령을 사용하여 `cron.log_run` 파라미터 값을 확인합니다.

```
postgres=> SHOW cron.log_run;
```

자세한 내용은 [pg\$1cron 확장을 관리하기 위한 파라미터](#PostgreSQL_pg_cron.parameters) 섹션을 참조하세요.

### 기본 데이터베이스 이외의 데이터베이스에 대한 cron 작업 예약
<a name="PostgreSQL_pg_cron.otherDB"></a>

`pg_cron`의 메타데이터는 모두 `postgres`라는 PostgreSQL 기본 데이터베이스에 보관됩니다. 백그라운드 작업자는 유지 관리 cron 작업을 실행하는 데 사용되므로 PostgreSQL DB 인스턴스 내의 모든 데이터베이스에서 작업을 예약할 수 있습니다.

**참고**  
`rds_superuser` 역할 또는 `rds_superuser` 권한이 있는 사용자만 데이터베이스의 모든 cron 작업을 나열할 수 있습니다. 다른 사용자는 `cron.job` 테이블에서 자신의 작업만 볼 수 있습니다.

1. cron 데이터베이스에서 정상적으로 [cron.schedule](#PostgreSQL_pg_cron.schedule)을(를) 사용하는 것처럼 작업을 예약합니다.

   ```
   postgres=> SELECT cron.schedule('database1 manual vacuum', '29 03 * * *', 'vacuum freeze test_table');
   ```

1. `rds_superuser` 역할을 가진 사용자는 방금 생성한 작업에 대한 데이터베이스 열을 업데이트하여 PostgreSQL DB 인스턴스 내의 다른 데이터베이스에서 실행되도록 합니다.

   ```
   postgres=> UPDATE cron.job SET database = 'database1' WHERE jobid = 106;
   ```

1.  `cron.job` 테이블을 쿼리하여 확인합니다.

   ```
   postgres=> SELECT * FROM cron.job;
   jobid | schedule    | command                        | nodename  | nodeport | database | username  | active | jobname
   ------+-------------+--------------------------------+-----------+----------+----------+-----------+--------+-------------------------
   106   | 29 03 * * * | vacuum freeze test_table       | localhost | 8192     | database1| adminuser | t      | database1 manual vacuum
     1   | 59 23 * * * | vacuum freeze pgbench_accounts | localhost | 8192     | postgres | adminuser | t      | manual vacuum
   (2 rows)
   ```

**참고**  
경우에 따라, 다른 데이터베이스에서 실행하고자 하는 cron 작업을 추가할 수 있습니다. 이 경우, 올바른 데이터베이스 열을 업데이트하기 전에 작업이 기본 데이터베이스(`postgres`)에서 실행을 시도할 수 있습니다. 사용자 이름에 권한이 있으면 작업이 기본 데이터베이스에서 성공적으로 실행됩니다.

## pg\$1cron 확장에 대한 참조
<a name="PostgreSQL_pg_cron.reference"></a>

`pg_cron` 확장과 함께 다음 파라미터, 함수 및 테이블을 사용할 수 있습니다. 자세한 내용은 pg\$1cron 설명서의 [pg\$1cron이란 무엇입니까?](https://github.com/citusdata/pg_cron) 섹션을 참조하세요.

**Topics**
+ [pg\$1cron 확장을 관리하기 위한 파라미터](#PostgreSQL_pg_cron.parameters)
+ [함수 참조: cron.schedule](#PostgreSQL_pg_cron.schedule)
+ [함수 참조: cron.unschedule](#PostgreSQL_pg_cron.unschedule)
+ [작업 예약 및 상태 캡처를 위한 테이블](#PostgreSQL_pg_cron.tables)

### pg\$1cron 확장을 관리하기 위한 파라미터
<a name="PostgreSQL_pg_cron.parameters"></a>

다음은 `pg_cron` 확장 동작을 제어하는 파라미터의 목록입니다.


| 파라미터 | 설명 | 
| --- | --- | 
| cron.database\$1name |  `pg_cron` 메타데이터가 보관되는 데이터베이스입니다.  | 
| cron.host |  PostgreSQL에 연결할 호스트 이름입니다. 이 값은 수정할 수 없습니다.  | 
| cron.log\$1run |  `job_run_details` 테이블에서 실행되는 모든 작업을 로깅합니다. 유효한 값은 `on` 또는 `off`입니다. 자세한 내용은 [작업 예약 및 상태 캡처를 위한 테이블](#PostgreSQL_pg_cron.tables) 섹션을 참조하세요.  | 
| cron.log\$1statement |  모든 cron 문을 실행하기 전에 기록합니다. 유효한 값은 `on` 또는 `off`입니다.  | 
| cron.max\$1running\$1jobs |  동시에 실행할 수 있는 최대 작업 수입니다.  | 
| cron.use\$1background\$1workers |  클라이언트 세션 대신 백그라운드 작업자를 사용합니다. 이 값은 수정할 수 없습니다.  | 

다음 SQL 명령을 사용하여 이러한 파라미터와 해당 값을 표시합니다.

```
postgres=> SELECT name, setting, short_desc FROM pg_settings WHERE name LIKE 'cron.%' ORDER BY name;
```

### 함수 참조: cron.schedule
<a name="PostgreSQL_pg_cron.schedule"></a>

이 함수는 cron 작업을 예약합니다. 작업은 처음에 기본 `postgres` 데이터베이스에서 예약됩니다. 이 함수는 작업 식별자를 나타내는 `bigint` 값을 반환합니다. PostgreSQL DB 인스턴스 내의 다른 데이터베이스에서 작업이 실행되도록 예약하려면 [기본 데이터베이스 이외의 데이터베이스에 대한 cron 작업 예약](#PostgreSQL_pg_cron.otherDB)의 예제를 참조하세요.

이 함수에는 두 가지 구문 형식이 있습니다.

**구문**  

```
cron.schedule (job_name,
    schedule,
    command
);

cron.schedule (schedule,
    command
);
```

**파라미터**      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/PostgreSQL_pg_cron.html)

**예제**  

```
postgres=> SELECT cron.schedule ('test','0 10 * * *', 'VACUUM pgbench_history');
 schedule
----------
      145
(1 row)

postgres=> SELECT cron.schedule ('0 15 * * *', 'VACUUM pgbench_accounts');
 schedule
----------
      146
(1 row)
```

### 함수 참조: cron.unschedule
<a name="PostgreSQL_pg_cron.unschedule"></a>

이 함수는 cron 작업을 삭제합니다. `job_name` 또는 `job_id`를 지정할 수 있습니다. 정책은 사용자가 작업 일정을 제거할 수 있는 소유자인지를 확인합니다. 이 함수는 성공 또는 실패를 나타내는 부울 값을 반환합니다.

함수의 구문 형식은 다음과 같습니다.

**구문**  

```
cron.unschedule (job_id);

cron.unschedule (job_name);
```

**파라미터**      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/PostgreSQL_pg_cron.html)

**예제**  

```
postgres=> SELECT cron.unschedule(108);
 unschedule
------------
 t
(1 row)

postgres=> SELECT cron.unschedule('test');
 unschedule
------------
 t
(1 row)
```

### 작업 예약 및 상태 캡처를 위한 테이블
<a name="PostgreSQL_pg_cron.tables"></a>

다음 표는 cron 작업을 예약하고 작업 완료 방법을 기록하는 데 사용됩니다.


| 표 | 설명 | 
| --- | --- | 
| cron.job |  예약된 각 작업에 대한 메타데이터를 포함합니다. 이 테이블과의 대부분의 상호 작용은 `cron.schedule` 및 `cron.unschedule` 함수를 사용하여 수행해야 합니다.  이 테이블에 직접 업데이트 또는 삽입 권한을 부여하지 않는 것이 좋습니다. 이렇게 하면 사용자가 `username`(으)로 실행되도록 `rds-superuser` 열을 업데이트할 수 있습니다.   | 
| cron.job\$1run\$1details |  이전에 예약된 작업 실행에 대한 기록 정보를 포함합니다. 이는 실행한 작업에서 상태, 반환 메시지, 시작 및 종료 시간을 조사하는 데 유용합니다.  이 테이블이 무한정 증가하지 않게 하려면 정기적으로 삭제하세요. 관련 예제는 [pg\$1cron 기록 테이블 지우기](#PostgreSQL_pg_cron.job_run_details) 섹션을 참조하세요   | 

# pgAudit를 사용하여 데이터베이스 활동 로깅
<a name="Appendix.PostgreSQL.CommonDBATasks.pgaudit"></a>

금융 기관, 정부 기관 및 많은 업계에서는 규제 요구 사항을 충족하기 위해 감사 로그를** 보관해야 합니다. Aurora PostgreSQL DB 클러스터와 함께 PostgreSQL Audit 확장(pgAudit)을 사용하면 감사자가 일반적으로 필요로 하거나 규제 요구 사항을 충족하는 데 필요한 세부 레코드를 캡처할 수 있습니다. 예를 들어 특정 데이터베이스 및 테이블의 변경 내용을 추적하고 변경한 사용자 및 기타 여러 세부 정보를 기록하도록 pgAudit 확장을 설정할 수 있습니다.

pgAudit 확장은 네이티브 PostgreSQL 로깅 인프라의 기능을 기반으로 로그 메시지를 더 자세히 확장한 것입니다. 즉, 다른 로그 메시지를 보는 것과 동일한 접근 방식을 사용하여 감사 로그를 볼 수 있습니다. PostgreSQL 로깅에 대한 자세한 내용은 [Aurora PostgreSQL 데이터베이스 로그 파일](USER_LogAccess.Concepts.PostgreSQL.md) 섹션을 참조하세요.

pgAudit 확장은 일반 텍스트 암호와 같은 민감한 데이터를 로그에서 삭제합니다. Aurora PostgreSQL DB 클러스터가 [Aurora PostgreSQL DB 클러스터 에 쿼리 로깅을 활성화합니다.](USER_LogAccess.Concepts.PostgreSQL.Query_Logging.md)에 설명된 대로 데이터 조작 언어(DML) 문을 로깅하도록 구성된 경우 PostgreSQL Audit 확장을 사용하여 일반 텍스트 암호 문제를 방지할 수 있습니다.

매우 구체적으로 데이터베이스 인스턴스에 대한 감사를 구성할 수 있습니다. 모든 데이터베이스와 모든 사용자를 감사할 수 있습니다. 또는 특정 데이터베이스, 사용자 및 기타 객체만 감사하도록 선택할 수 있습니다. 특정 사용자 및 데이터베이스를 감사에서 명시적으로 제외할 수도 있습니다. 자세한 내용은 [감사 로깅에서 사용자 또는 데이터베이스 제외](Appendix.PostgreSQL.CommonDBATasks.pgaudit.exclude-user-db.md) 단원을 참조하십시오.

캡처할 수 있는 세부 정보의 양을 고려하여 pgAudit를 사용하는 경우 스토리지 사용량을 모니터링하는 것이 좋습니다.

pgAudit 확장은 사용 가능한 모든 Aurora PostgreSQL 버전에서 지원됩니다. Aurora PostgreSQL 버전에서 지원되는 pgAudit 버전 목록을 보려면 **Aurora PostgreSQL 릴리스 정보의 [Extension versions for Amazon Aurora PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html)(Amazon Aurora PostgreSQL 확장 버전)을 참조하세요. 

**Topics**
+ [pgAudit 확장 설정](Appendix.PostgreSQL.CommonDBATasks.pgaudit.basic-setup.md)
+ [데이터베이스 객체 감사](Appendix.PostgreSQL.CommonDBATasks.pgaudit.auditing.md)
+ [감사 로깅에서 사용자 또는 데이터베이스 제외](Appendix.PostgreSQL.CommonDBATasks.pgaudit.exclude-user-db.md)
+ [pgAudit 확장 프로그램에 대한 참조](Appendix.PostgreSQL.CommonDBATasks.pgaudit.reference.md)

# pgAudit 확장 설정
<a name="Appendix.PostgreSQL.CommonDBATasks.pgaudit.basic-setup"></a>

Aurora PostgreSQL DB 클러스터에 pgAudit 확장을 설정하려면 먼저 Aurora PostgreSQL DB 클러스터용 사용자 지정 DB 클러스터 파라미터 그룹의 공유 라이브러리에 pgAudit을 추가해야 합니다. 사용자 지정 DB 클러스터 파라미터 그룹을 만드는 방법에 관한 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요. 다음으로 pgAudit 확장을 설치합니다. 마지막으로, 감사하려는 데이터베이스 및 객체를 지정합니다. 이 섹션에 절차가 설명되어 있습니다. AWS Management Console 또는 AWS CLI를 사용할 수 있습니다.

이 모든 작업을 수행하려면 `rds_superuser` 역할의 권한이 있어야 합니다.

다음 단계에서는 사용자의 Aurora PostgreSQL DB 클러스터가 사용자 지정 DB 클러스터에 연결되어 있다고 가정합니다.

## 콘솔
<a name="Appendix.PostgreSQL.CommonDBATasks.pgaudit.basic-setup.CON"></a>

**pgAudit 확장 설정 방법**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 선택합니다.

1. Aurora PostgreSQL DB 클러스터 라이터 인스턴스의 **구성** 탭을 엽니다. 인스턴스 세부 정보 중에서 **파라미터 그룹** 링크를 찾습니다.

1. 링크를 선택하여 Aurora PostgreSQL DB 클러스터와 연결된 사용자 지정 파라미터를 엽니다. 

1. **파라미터** 검색 필드에 `shared_pre`를 입력하여 `shared_preload_libraries` 파라미터를 찾습니다.

1. **파라미터 편집**을 선택하여 속성 값에 액세스합니다.

1. **값** 필드의 목록에 `pgaudit`를 추가합니다. 쉼표를 사용하여 값 목록에서 항목을 구분합니다.  
![\[pgAudit가 추가된 shared_preload_libaries 파라미터 이미지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg_rpg_shared_preload_pgaudit.png)

1. Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 `shared_preload_libraries` 파라미터 변경 사항이 적용되도록 합니다.

1. 인스턴스를 사용할 수 있게 되면 pgAudit가 초기화되었는지 확인합니다. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결하고 다음 명령을 실행합니다.

   ```
   SHOW shared_preload_libraries;
   shared_preload_libraries 
   --------------------------
   rdsutils,pgaudit
   (1 row)
   ```

1. pgAudit가 초기화되었으므로 이제 확장을 생성할 수 있습니다. 확장은 라이브러리를 초기화한 후에 생성해야 합니다. `pgaudit` 확장이 데이터 정의 언어(DDL) 문 감사를 위한 이벤트 트리거를 설치하기 때문입니다.

   ```
   CREATE EXTENSION pgaudit;
   ```

1. `psql` 세션을 닫습니다.

   ```
   labdb=> \q
   ```

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

1. 목록에서 `pgaudit.log` 파라미터를 찾아 사용 사례에 적합한 값으로 설정합니다. 예를 들어, 다음 이미지처럼 `pgaudit.log` 파라미터를 `write`로 설정하면 로그에 대한 삽입, 업데이트, 삭제 및 기타 유형의 변경 사항이 캡처됩니다.  
![\[pgaudit.log 파라미터의 설정 이미지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/rpg_set_pgaudit-log-level.png)

   `pgaudit.log` 파라미터에 다음 값 중 하나를 선택할 수도 있습니다.
   + 없음 - 기본값입니다. 데이터베이스 변경 사항이 로깅되지 않습니다.
   + 모두 - 모든 항목(읽기, 쓰기, 함수, 역할, ddl, 기타)을 로깅합니다.
   + ddl - `ROLE` 클래스에 포함되지 않은 모든 데이터 정의 언어(DDL) 문을 로깅합니다.
   + 함수 - 함수 호출 및 `DO` 블록을 로깅합니다.
   + 기타 – 기타 명령(예: `DISCARD`, `FETCH`, `CHECKPOINT`, `VACUUM`, `SET`)을 로깅합니다.
   + 읽기 – 원본이 관계(예: 테이블) 또는 쿼리인 경우 `SELECT` 및 `COPY`를 로깅합니다.
   + 역할 - 역할 및 권한과 관련된 문을 로깅합니다(예: `GRANT`, `REVOKE`, `CREATE ROLE`, `ALTER ROLE`, `DROP ROLE`).
   + 쓰기 - 대상이 관계(테이블)인 경우 `INSERT`, `UPDATE`, `DELETE`, `TRUNCATE`, `COPY`를 로깅합니다.

1. **Save changes**(변경 사항 저장)를 선택합니다.

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 데이터베이스 목록에서 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스 를 선택합니다.

## AWS CLI
<a name="Appendix.PostgreSQL.CommonDBATasks.pgaudit.basic-setup.CLI"></a>

**pgAudit 설정 방법**

AWS CLI를 사용하여 pgAudit를 설정하려면 다음 절차와 같이 [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) 작업을 호출하여 사용자 지정 파라미터 그룹의 감사 로그 파라미터를 수정합니다.

1. 다음 AWS CLI 명령을 사용하여 `shared_preload_libraries` 파라미터에 `pgaudit`를 추가합니다.

   ```
   aws rds modify-db-parameter-group \
      --db-parameter-group-name custom-param-group-name \
      --parameters "ParameterName=shared_preload_libraries,ParameterValue=pgaudit,ApplyMethod=pending-reboot" \
      --region aws-region
   ```

1. 다음 AWS CLI 명령으로 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 pgaudit 라이브러리가 초기화되도록 합니다.

   ```
   aws rds reboot-db-instance \
       --db-instance-identifier writer-instance \
       --region aws-region
   ```

1. 인스턴스를 사용할 수 있게 되면 `pgaudit`가 초기화되었는지 확인할 수 있습니다. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결하고 다음 명령을 실행합니다.

   ```
   SHOW shared_preload_libraries;
   shared_preload_libraries 
   --------------------------
   rdsutils,pgaudit
   (1 row)
   ```

   pgAudit가 초기화되었으므로 이제 확장을 생성할 수 있습니다.

   ```
   CREATE EXTENSION pgaudit;
   ```

1. AWS CLI를 사용할 수 있도록 `psql` 세션을 닫습니다.

   ```
   labdb=> \q
   ```

1. 다음 AWS CLI 명령을 사용하여 세션 감사 로깅을 통해 로깅할 문의 클래스를 지정합니다. 이 예에서는 `pgaudit.log` 파라미터를 `write`로 설정하여 로그에 대한 삽입, 업데이트 및 삭제를 캡처합니다.

   ```
   aws rds modify-db-parameter-group \
      --db-parameter-group-name custom-param-group-name \
      --parameters "ParameterName=pgaudit.log,ParameterValue=write,ApplyMethod=pending-reboot" \
      --region aws-region
   ```

   `pgaudit.log` 파라미터에 다음 값 중 하나를 선택할 수도 있습니다.
   + 없음 - 기본값입니다. 데이터베이스 변경 사항이 로깅되지 않습니다.
   + 모두 - 모든 항목(읽기, 쓰기, 함수, 역할, ddl, 기타)을 로깅합니다.
   + ddl - `ROLE` 클래스에 포함되지 않은 모든 데이터 정의 언어(DDL) 문을 로깅합니다.
   + 함수 - 함수 호출 및 `DO` 블록을 로깅합니다.
   + 기타 – 기타 명령(예: `DISCARD`, `FETCH`, `CHECKPOINT`, `VACUUM`, `SET`)을 로깅합니다.
   + 읽기 – 원본이 관계(예: 테이블) 또는 쿼리인 경우 `SELECT` 및 `COPY`를 로깅합니다.
   + 역할 - 역할 및 권한과 관련된 문을 로깅합니다(예: `GRANT`, `REVOKE`, `CREATE ROLE`, `ALTER ROLE`, `DROP ROLE`).
   + 쓰기 - 대상이 관계(테이블)인 경우 `INSERT`, `UPDATE`, `DELETE`, `TRUNCATE`, `COPY`를 로깅합니다.

   다음 AWS CLI 명령으로 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅합니다.

   ```
   aws rds reboot-db-instance \
       --db-instance-identifier writer-instance \
       --region aws-region
   ```

# 데이터베이스 객체 감사
<a name="Appendix.PostgreSQL.CommonDBATasks.pgaudit.auditing"></a>

Aurora PostgreSQL DB 클러스터에 pgAudit를 설정하고 요구 사항에 맞게 구성하면 PostgreSQL 로그에 더 자세한 정보가 캡처됩니다. 예를 들어 기본 PostgreSQL 로깅 구성은 데이터베이스 테이블에서 변경 사항이 적용된 날짜 및 시간을 식별하지만 pgAudit 확장을 사용하면 확장 파라미터의 구성에 따라 스키마, 변경한 사용자 및 기타 세부 정보가 로그 항목에 포함될 수 있습니다. 감사를 설정하여 다음 방법으로 변경 사항을 추적할 수 있습니다.
+ 세션마다 사용자별로 추적. 세션 수준에서 정규화된 명령 텍스트를 캡처할 수 있습니다.
+ 객체마다 사용자별, 데이터베이스별로 추적 

객체 감사 기능은 시스템에서 `rds_pgaudit` 역할을 만든 다음, 사용자 지정 파라미터 그룹의 `pgaudit.role` 파라미터에 이 역할을 추가하면 활성화됩니다. 기본적으로 `pgaudit.role` 파라미터는 설정되어 있지 않으며 유일하게 허용되는 값은 `rds_pgaudit`입니다. 다음 단계에서는 `pgaudit`가 초기화되었고 [pgAudit 확장 설정](Appendix.PostgreSQL.CommonDBATasks.pgaudit.basic-setup.md)의 절차에 따라 `pgaudit` 확장을 만든 것으로 가정합니다.

![\[pgAudit를 설정한 후의 PostgreSQL 로그 파일 이미지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/pgaudit-log-example.png)


이 예에서 볼 수 있듯이 LOG: AUDIT: SESSION 행은 테이블 및 해당 스키마를 비롯한 세부 정보를 제공합니다.

**객체 감사를 설정하는 방법**

1. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결합니다.

   ```
   psql --host=your-instance-name.aws-region.rds.amazonaws.com --port=5432 --username=postgrespostgres --password --dbname=labdb
   ```

1. 다음 명령을 사용하여 `rds_pgaudit`라는 데이터베이스 역할을 생성합니다.

   ```
   labdb=> CREATE ROLE rds_pgaudit;
   CREATE ROLE
   labdb=>
   ```

1. `psql` 세션을 닫습니다.

   ```
   labdb=> \q
   ```

   이어질 몇 단계에서는 AWS CLI를 사용하여 사용자 지정 파라미터 그룹에서 감사 로그 파라미터를 수정합니다.

1. 다음 AWS CLI 명령을 사용하여 `rds_pgaudit`에 `pgaudit.role` 파라미터를 추가합니다. 기본적으로 이 파라미터는 설정되어 있지 않으며 유일하게 허용되는 값은 `rds_pgaudit`입니다.

   ```
   aws rds modify-db-parameter-group \
      --db-parameter-group-name custom-param-group-name \
      --parameters "ParameterName=pgaudit.role,ParameterValue=rds_pgaudit,ApplyMethod=pending-reboot" \
      --region aws-region
   ```

1. 다음 AWS CLI 명령으로 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 파라미터 변경 사항이 적용되도록 합니다.

   ```
   aws rds reboot-db-instance \
       --db-instance-identifier writer-instance \
       --region aws-region
   ```

1. 다음 명령을 실행하여 `pgaudit.role`이 `rds_pgaudit`로 설정되었는지 확인합니다.

   ```
   SHOW pgaudit.role;
   pgaudit.role 
   ------------------
   rds_pgaudit
   ```

pgAudit 로깅을 테스트하기 위해 감사하려는 몇 가지 예제 명령을 실행할 수 있습니다. 예를 들어 다음과 같은 명령을 실행할 수 있습니다.

```
CREATE TABLE t1 (id int);
GRANT SELECT ON t1 TO rds_pgaudit;
SELECT * FROM t1;
id 
----
(0 rows)
```

데이터베이스 로그에는 다음과 유사한 항목이 포함됩니다.

```
...
2017-06-12 19:09:49 UTC:...:rds_test@postgres:[11701]:LOG: AUDIT:
OBJECT,1,1,READ,SELECT,TABLE,public.t1,select * from t1;
...
```

로그 확인에 대한 자세한 내용은 [Amazon Aurora 로그 파일 모니터링](USER_LogAccess.md) 단원을 참조하십시오.

pgAudit 확장 프로그램에 대한 자세한 내용은 GitHub에서 [pgAudit](https://github.com/pgaudit/pgaudit/blob/master/README.md)을 참조하세요.

# 감사 로깅에서 사용자 또는 데이터베이스 제외
<a name="Appendix.PostgreSQL.CommonDBATasks.pgaudit.exclude-user-db"></a>

[Aurora PostgreSQL 데이터베이스 로그 파일](USER_LogAccess.Concepts.PostgreSQL.md)에서 설명한 대로 PostgreSQL 로그는 스토리지 공간을 사용합니다. pgAudit 확장을 사용하면 추적하는 변경 사항에 따라 로그에 수집된 데이터 양이 다양한 수준으로 늘어납니다. Aurora PostgreSQL DB 클러스터의 모든 사용자 또는 데이터베이스를 감사할 필요는 없을 수도 있습니다. 

스토리지에 미치는 영향을 최소화하고 불필요하게 감사 레코드를 캡처하지 않도록 사용자 및 데이터베이스를 감사에서 제외할 수 있습니다. 지정된 세션 내에서 로깅을 변경할 수도 있습니다. 다음 예에서는 그 방법을 보여줍니다.

**참고**  
세션 수준의 파라미터 설정은 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 대한 사용자 지정 DB 파라미터 그룹의 설정보다 우선합니다. 데이터베이스 사용자가 감사 로깅 구성 설정을 우회하지 못하게 하려면 사용자의 권한을 변경해야 합니다.

Aurora PostgreSQL DB 클러스터 가 모든 사용자 및 데이터베이스에 대해 동일한 수준의 활동을 감사하도록 구성되어 있다고 가정하겠습니다. 그런데 사용자 `myuser`를 감사하지 않기로 결정한다면 다음 SQL 명령으로 `myuser`에 대한 감사를 해제할 수 있습니다.

```
ALTER USER myuser SET pgaudit.log TO 'NONE';
```

그런 다음 다음 쿼리를 사용하여 `pgaudit.log`의 `user_specific_settings` 열에서 파라미터가 `NONE`으로 설정되었는지 확인할 수 있습니다.

```
SELECT
    usename AS user_name,
    useconfig AS user_specific_settings
FROM
    pg_user
WHERE
    usename = 'myuser';
```

출력은 다음과 같습니다.

```
 user_name | user_specific_settings
-----------+------------------------
 myuser    | {pgaudit.log=NONE}
(1 row)
```

다음 명령을 사용하여 데이터베이스 세션 중에 특정 사용자에 대한 로깅을 해제할 수 있습니다.

```
ALTER USER myuser IN DATABASE mydatabase SET pgaudit.log TO 'none';
```

다음 쿼리를 사용하여 pgaudit.log의 설정 열에서 특정 사용자 및 데이터베이스 조합을 확인할 수 있습니다.

```
SELECT
    usename AS "user_name",
    datname AS "database_name",
    pg_catalog.array_to_string(setconfig, E'\n') AS "settings"
FROM
    pg_catalog.pg_db_role_setting s
    LEFT JOIN pg_catalog.pg_database d ON d.oid = setdatabase
    LEFT JOIN pg_catalog.pg_user r ON r.usesysid = setrole
WHERE
    usename = 'myuser'
    AND datname = 'mydatabase'
ORDER BY
    1,
    2;
```

출력은 다음과 비슷합니다.

```
  user_name | database_name |     settings
-----------+---------------+------------------
 myuser    | mydatabase    | pgaudit.log=none
(1 row)
```

`myuser`에 대한 감사를 해제한 후 `mydatabase`에 대한 변경 내용을 추적하지 않기로 결정한다면 다음 명령을 사용하여 특정 데이터베이스에 대한 감사를 해제합니다.

```
ALTER DATABASE mydatabase SET pgaudit.log to 'NONE';
```

그런 다음, 다음 쿼리를 사용하여 database\$1specific\$1settings 열에서 pgaudit.log가 NONE으로 설정되어 있는지 확인합니다.

```
SELECT
a.datname AS database_name,
b.setconfig AS database_specific_settings
FROM
pg_database a
FULL JOIN pg_db_role_setting b ON a.oid = b.setdatabase
WHERE
a.datname = 'mydatabase';
```

출력은 다음과 같습니다.

```
 database_name | database_specific_settings
---------------+----------------------------
 mydatabase    | {pgaudit.log=NONE}
(1 row)
```

myuser의 설정을 기본 설정으로 되돌리려면 다음 명령을 사용합니다.

```
ALTER USER myuser RESET pgaudit.log;
```

데이터베이스의 설정을 기본 설정으로 되돌리려면 다음 명령을 사용합니다.

```
ALTER DATABASE mydatabase RESET pgaudit.log;
```

사용자와 데이터베이스를 기본 설정으로 초기화하려면 다음 명령을 사용합니다.

```
ALTER USER myuser IN DATABASE mydatabase RESET pgaudit.log;
```

`pgaudit.log`를 `pgaudit.log` 파라미터에 허용되는 다른 값 중 하나로 설정하여 특정 이벤트를 로그에 캡처할 수도 있습니다. 자세한 내용은 [`pgaudit.log` 파라미터에 허용되는 설정 목록](Appendix.PostgreSQL.CommonDBATasks.pgaudit.reference.md#Appendix.PostgreSQL.CommonDBATasks.pgaudit.reference.pgaudit-log-settings) 단원을 참조하십시오.

```
ALTER USER myuser SET pgaudit.log TO 'read';
ALTER DATABASE mydatabase SET pgaudit.log TO 'function';
ALTER USER myuser IN DATABASE mydatabase SET pgaudit.log TO 'read,function'
```

# pgAudit 확장 프로그램에 대한 참조
<a name="Appendix.PostgreSQL.CommonDBATasks.pgaudit.reference"></a>

이 섹션에 나열된 파라미터를 하나 이상 변경하여 감사 로그의 세부 정보 수준을 지정할 수 있습니다.

## pgAudit 동작 제어
<a name="Appendix.PostgreSQL.CommonDBATasks.pgaudit.reference.basic-setup.parameters"></a>

다음 표에 나열된 파라미터 중 하나 이상을 변경하여 감사 로깅을 제어할 수 있습니다.


| 파라미터 | 설명 | 
| --- | --- | 
| `pgaudit.log`  | 세션 감사 로깅으로 로깅될 문의 클래스를 지정합니다. 허용되는 값에는 ddl, 함수, 기타, 읽기, 역할, 쓰기, 없음, 모두 등이 포함됩니다. 자세한 내용은 [`pgaudit.log` 파라미터에 허용되는 설정 목록](#Appendix.PostgreSQL.CommonDBATasks.pgaudit.reference.pgaudit-log-settings) 섹션을 참조하세요. | 
| `pgaudit.log_catalog` | 활성화(1로 설정)하면 문의 모든 관계가 pg\$1catalog에 있는 경우 감사 추적에 문을 추가합니다. | 
| `pgaudit.log_level` | 로그 항목에 사용할 로그 수준을 지정합니다. 허용되는 값은 ebug5, debug4, debug3, debug2, debug1, 정보, 알림, 경고, 로그입니다. | 
| `pgaudit.log_parameter` | 활성화(1로 설정)하면 문과 함께 전달된 파라미터가 감사 로그에 캡처됩니다. | 
| `pgaudit.log_relation` | 활성화(1로 설정)하면 세션의 감사 로그에서 SELECT 또는 DML 문에서 참조되는 각 관계(TABLE, VIEW 등) 에 대해 별도의 로그 항목을 생성합니다. | 
| `pgaudit.log_statement_once` | 로깅에 문/하위 문 조합에 대한 첫 번째 로그 항목이 있는 문 텍스트 및 파라미터를 포함할지 아니면 모든 항목이 있는 문 텍스트 및 파라미터를 포함할지를 지정합니다. | 
| `pgaudit.role` | 객체 감사 로깅에 사용할 마스터 역할을 지정합니다. 유일하게 허용되는 항목은 `rds_pgaudit`입니다. | 

## `pgaudit.log` 파라미터에 허용되는 설정 목록
<a name="Appendix.PostgreSQL.CommonDBATasks.pgaudit.reference.pgaudit-log-settings"></a>

 


| 값 | 설명 | 
| --- | --- | 
| 없음 | 이 값이 기본값입니다. 데이터베이스 변경 사항이 로깅되지 않습니다. | 
| 모두 | 모든 항목(읽기, 쓰기, 함수, 역할, ddl, 기타)을 로깅합니다. | 
| ddl | `ROLE` 클래스에 포함되지 않은 모든 데이터 정의 언어(DDL) 문을 로깅합니다. | 
| 함수 | 함수 호출 및 `DO` 블록을 로깅합니다. | 
| 기타 | 기타 명령을 로깅합니다(예: `DISCARD`, `FETCH`, `CHECKPOINT`, `VACUUM`, `SET`). | 
| 읽기 | 원본이 관계(예: 테이블) 또는 쿼리인 경우 `SELECT` 및 `COPY`를 로깅합니다. | 
| 역할 | 역할 및 권한과 관련된 문을 로깅합니다(예: `GRANT`, `REVOKE`, `CREATE ROLE`, `ALTER ROLE`, `DROP ROLE`). | 
| write | 대상이 관계(테이블)인 경우 `INSERT`, `UPDATE`, `DELETE`, `TRUNCATE`, `COPY`를 로깅합니다. | 

세션 감사를 사용하여 여러 이벤트 유형을 기록하려면 쉼표로 구분된 목록을 사용합니다. 모든 이벤트 유형을 기록하려면 `pgaudit.log`를 `ALL`로 설정합니다. DB 인스턴스를 재부팅하여 변경 사항을 적용합니다.

객체 감사를 사용하면 특정 관계를 사용하도록 감사 로깅을 구체화할 수 있습니다. 예를 들어 하나 이상의 테이블에서 `READ` 작업에 대한 감사 로깅을 지정할 수 있습니다.

# pglogical을 사용하여 인스턴스 간 데이터 동기화
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical"></a>

현재 사용 가능한 모든 Aurora PostgreSQL 버전은 `pglogical` 확장을 지원합니다. pglogical 확장은 PostgreSQL 버전 10에서 도입된 기능적으로 유사한 논리적 복제 기능보다 먼저 출시되었습니다. 자세한 내용은 [Aurora에서의 PostgreSQL 논리적 복제 개요](AuroraPostgreSQL.Replication.Logical.md) 단원을 참조하세요. 

`pglogical` 확장은 둘 이상의 Aurora PostgreSQL DB 클러스터 간의 논리적 복제를 지원합니다. 서로 다른 PostgreSQL 버전 간의 복제와 PostgreSQL DB 인스턴스용 RDS 및 Aurora PostgreSQL DB 클러스터에서 실행되는 데이터베이스 간의 복제도 지원합니다. `pglogical` 확장은 게시-구독 모델을 사용하여 게시자의 테이블 및 기타 객체(예: 시퀀스)의 변경 사항을 구독자에 복제합니다. 이 확장은 복제 슬롯을 사용하여, 다음과 같이 게시자 노드의 변경 사항이 구독자 노드로 동기화되게 합니다.
+ *게시자 노드*는 다른 노드에 복제할 데이터의 소스인 Aurora PostgreSQL DB 클러스터입니다. 게시자 노드는 게시 세트에서 복제될 테이블을 정의합니다.
+ *구독자 노드*는 게시자로부터 WAL 업데이트를 받는 Aurora PostgreSQL DB 클러스터입니다. 구독자는 구독을 생성하여 게시자에 연결하고 디코딩된 WAL 데이터를 얻습니다. 구독자가 구독을 생성하면 게시자 노드에서 복제 슬롯이 생성됩니다.

아래에서 `pglogical` 확장 설정 관련 정보를 확인할 수 있습니다.

**Topics**
+ [plogical 확장에 대한 요구 사항 및 제한](#Appendix.PostgreSQL.CommonDBATasks.pglogical.requirements-limitations)
+ [pglogical 확장 설정](Appendix.PostgreSQL.CommonDBATasks.pglogical.basic-setup.md)
+ [Aurora PostgreSQL DB 클러스터용 논리적 복제 설정](Appendix.PostgreSQL.CommonDBATasks.pglogical.setup-replication.md)
+ [메이저 업그레이드 후 논리적 복제 재설정](Appendix.PostgreSQL.CommonDBATasks.pglogical.recover-replication-after-upgrade.md)
+ [Aurora PostgreSQL 용 논리적 복제 슬롯 관리](Appendix.PostgreSQL.CommonDBATasks.pglogical.handle-slots.md)
+ [plogical 확장용 파라미터 참조](Appendix.PostgreSQL.CommonDBATasks.pglogical.reference.md)

## plogical 확장에 대한 요구 사항 및 제한
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.requirements-limitations"></a>

현재 사용 가능한 모든 Aurora PostgreSQL 릴리스는 `pglogical` 확장을 지원합니다.

게시자 노드와 구독자 노드 모두가 논리적 복제를 할 수 있도록 설정되어야 합니다.

게시자에서 구독자로 복제할 테이블은 이름과 스키마가 동일해야 합니다. 또한 이러한 테이블은 동일한 열을 포함해야 하며, 각 열은 동일한 데이터 유형을 사용해야 합니다. 게시자와 구독자 테이블 모두 프라이머리 키가 동일해야 합니다. PRIMARY KEY만 고유 제약 조건으로 사용하는 것이 좋습니다.

구독자 노드의 테이블에는 CHECK 제약 조건 및 NOT NULL 제약 조건에 대해 게시자 노드의 테이블에 있는 것보다 더 많은 허용 제약 조건이 존재할 수 있습니다.

`pglogical` 확장은 PostgreSQL(버전 10 이상)에 내장된 논리적 복제 기능에서는 지원하지 않는 양방향 복제 같은 기능을 제공합니다. 자세한 내용은 [pglogical을 사용한 PostgreSQL 양방향 복제](https://aws.amazon.com/blogs/database/postgresql-bi-directional-replication-using-pglogical/)를 참조하십시오.

# pglogical 확장 설정
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.basic-setup"></a>

 Aurora PostgreSQL DB 클러스터에 `pglogical` 확장을 설정하려면 Aurora PostgreSQL DB 클러스터용 사용자 지정 DB 클러스터 파라미터 그룹의 공유 라이브러리에 `pglogical`을 추가해야 합니다. 논리적 디코딩을 켜려면 `rds.logical_replication` 파라미터의 값을 `1`로 설정해야 합니다. 마지막으로, 데이터베이스에서 확장을 만듭니다. 이러한 작업에는 AWS Management Console 또는 AWS CLI를 사용할 수 있습니다.

이러한 작업을 수행하려면 `rds_superuser` 역할의 권한이 있어야 합니다.

다음 단계에서는 사용자의 Aurora PostgreSQL DB 클러스터 가 사용자 지정 DB 클러스터 파라미터 그룹에 연결되어 있다고 가정합니다. 사용자 지정 DB 클러스터 파라미터 그룹을 만드는 방법에 관한 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.

## 콘솔
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.basic-setup.CON"></a>

**pglogical 확장 설정 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 선택합니다.

1. Aurora PostgreSQL DB 클러스터 라이터 인스턴스의 **구성** 탭을 엽니다. 인스턴스 세부 정보 중에서 **파라미터 그룹** 링크를 찾습니다.

1. 링크를 선택하여 Aurora PostgreSQL DB 클러스터와 연결된 사용자 지정 파라미터를 엽니다. 

1. **파라미터** 검색 필드에 `shared_pre`를 입력하여 `shared_preload_libraries` 파라미터를 찾습니다.

1. **파라미터 편집**을 선택하여 속성 값에 액세스합니다.

1. **값** 필드의 목록에 `pglogical`를 추가합니다. 쉼표를 사용하여 값 목록에서 항목을 구분합니다.  
![\[pglogical이 추가된 shared_preload_libraries 파라미터 이미지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg_rpg_shared_preload_pglogical.png)

1. `rds.logical_replication` 파라미터를 찾아 `1`로 설정하여 논리적 복제를 켭니다.

1. Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 파라미터 변경 사항이 적용되게 합니다.

1. 인스턴스를 사용할 수 있다면 `psql`(또는 pgAdmin)을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결할 수 있습니다.

   ```
   psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
   ```

1. plogical이 초기화되었는지 확인하려면 다음 명령을 실행합니다.

   ```
   SHOW shared_preload_libraries;
   shared_preload_libraries 
   --------------------------
   rdsutils,pglogical
   (1 row)
   ```

1. 논리적 디코딩을 활성화하는 설정을 다음과 같이 확인합니다.

   ```
   SHOW wal_level;
   wal_level
   -----------
    logical
   (1 row)
   ```

1. 다음과 같이 확장을 생성합니다.

   ```
   CREATE EXTENSION pglogical;
   EXTENSION CREATED
   ```

1. **변경 사항 저장**을 선택합니다.

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 데이터베이스 목록에서 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 선택한 다음, 작업 메뉴에서 **재부팅**을 선택합니다.

## AWS CLI
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.basic-setup.CLI"></a>

**plogical 확장 설정 방법**

AWS CLI를 사용하여 pglogical을 설정하려면 다음 절차와 같이 [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) 작업을 호출하여 사용자 지정 파라미터 그룹의 특정 파라미터를 수정합니다.

1. 다음 AWS CLI 명령을 사용하여 `shared_preload_libraries` 파라미터에 `pglogical`를 추가합니다.

   ```
   aws rds modify-db-parameter-group \
      --db-parameter-group-name custom-param-group-name \
      --parameters "ParameterName=shared_preload_libraries,ParameterValue=pglogical,ApplyMethod=pending-reboot" \
      --region aws-region
   ```

1. 다음 AWS CLI 명령을 사용하여 `rds.logical_replication`을 `1`로 설정하여 Aurora PostgreSQL DB 클러스터터의 라이터 인스턴스용 논리적 디코딩 기능을 켭니다. 

   ```
   aws rds modify-db-parameter-group \
      --db-parameter-group-name custom-param-group-name \
      --parameters "ParameterName=rds.logical_replication,ParameterValue=1,ApplyMethod=pending-reboot" \
      --region aws-region
   ```

1. 다음 AWS CLI 명령으로 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 pglogical 라이브러리가 초기화되도록 합니다.

   ```
   aws rds reboot-db-instance \
       --db-instance-identifier writer-instance \
       --region aws-region
   ```

1. 인스턴스를 사용할 수 있다면 `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결합니다.

   ```
   psql --host=111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
   ```

1. 다음과 같이 확장을 생성합니다.

   ```
   CREATE EXTENSION pglogical;
   EXTENSION CREATED
   ```

1. 다음 AWS CLI 명령으로 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅합니다.

   ```
   aws rds reboot-db-instance \
       --db-instance-identifier writer-instance \
       --region aws-region
   ```

# Aurora PostgreSQL DB 클러스터용 논리적 복제 설정
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.setup-replication"></a>

다음 절차는 Aurora PostgreSQL DB 클러스터 간에 논리적 복제를 시작하는 방법을 보여줍니다. 다음 단계에서는 원본(게시자)과 대상(구독자) 모두에 [pglogical 확장 설정](Appendix.PostgreSQL.CommonDBATasks.pglogical.basic-setup.md)에서 설명하는 방법에 따라 `pglogical` 확장이 설정되어 있다고 가정합니다.

**참고**  
구독자 노드의 `node_name`은 `rds`로 시작할 수 없습니다.

**게시자 노드를 생성하고 복제할 테이블을 정의하는 방법**

이 단계에서는 Aurora PostgreSQL DB 클러스터에 라이터 인스턴스와 데이터베이스가 하나씩 있고 이러한 데이터베이스에는 다른 노드에 복제할 하나 이상의 테이블이 있다고 가정합니다. 구독자의 테이블 구조를 게시자에서 다시 만들어야 하므로, 필요한 경우 먼저 테이블 구조를 가져와야 합니다. 이렇게 하려면 `psql` 메타 명령 `\d tablename`을 사용한 다음 구독자 인스턴스에서 동일한 테이블을 생성해야 합니다. 다음 절차에서는 시연을 위해 게시자(원본)에서 예제 테이블을 만듭니다.

1. `psql`을 사용하여 구독자용 소스로 사용할 테이블이 있는 인스턴스에 연결합니다.

   ```
   psql --host=source-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
   ```

   복제하려는 기존 테이블이 없는 경우 다음과 같이 샘플 테이블을 생성할 수 있습니다.

   1. 다음 SQL 문을 사용하여 예제 테이블을 생성합니다.

      ```
      CREATE TABLE docs_lab_table (a int PRIMARY KEY);
      ```

   1. 다음 SQL 문을 사용하여 테이블에 생성된 데이터를 입력합니다.

      ```
      INSERT INTO docs_lab_table VALUES (generate_series(1,5000));
      INSERT 0 5000
      ```

   1. 다음 SQL 문을 사용하여 테이블에 데이터가 있는지 확인합니다.

      ```
      SELECT count(*) FROM docs_lab_table;
      ```

1. 다음과 같이 이 Aurora PostgreSQL DB 클러스터를 게시자 노드로 식별합니다.

   ```
   SELECT pglogical.create_node(
       node_name := 'docs_lab_provider',
       dsn := 'host=source-instance.aws-region.rds.amazonaws.com port=5432 dbname=labdb');
    create_node
   -------------
      3410995529
   (1 row)
   ```

1. 복제할 테이블을 기본 복제 세트에 추가합니다. 복제 세트에 대한 자세한 내용은 pglogical 설명서의 [복제 세트](https://github.com/2ndQuadrant/pglogical/tree/REL2_x_STABLE/docs#replication-sets)를 참조하십시오.

   ```
   SELECT pglogical.replication_set_add_table('default', 'docs_lab_table', 'true', NULL, NULL);
    replication_set_add_table
     ---------------------------
     t
     (1 row)
   ```

게시자 노드 설정이 완료되었습니다. 이제 게시자로부터 업데이트를 수신하도록 구독자 노드를 설정할 수 있습니다.

**구독자 노드를 설정하고, 업데이트를 수신할 구독을 만드는 방법**

이 단계에서는 Aurora PostgreSQL DB 클러스터 가 `pglogical` 확장을 이용해 설정되었다고 가정합니다. 자세한 내용은 [pglogical 확장 설정](Appendix.PostgreSQL.CommonDBATasks.pglogical.basic-setup.md) 섹션을 참조하세요.

1. `psql`을 사용하여 게시자로부터 업데이트를 수신할 인스턴스에 연결합니다.

   ```
   psql --host=target-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
   ```

1. 구독자 Aurora PostgreSQL DB 클러스터 에서 게시자에 존재하는 것과 동일한 테이블을 만듭니다. 이 예제에서 테이블은 `docs_lab_table`입니다. 다음과 같이 테이블을 만들 수 있습니다.

   ```
   CREATE TABLE docs_lab_table (a int PRIMARY KEY);
   ```

1. 이 테이블이 비어 있는지 확인합니다.

   ```
   SELECT count(*) FROM docs_lab_table;
    count
   -------
     0
   (1 row)
   ```

1. 다음과 같이 이 Aurora PostgreSQL DB 클러스터를 구독자 노드로 식별합니다.

   ```
   SELECT pglogical.create_node(
       node_name := 'docs_lab_target',
       dsn := 'host=target-instance.aws-region.rds.amazonaws.com port=5432 sslmode=require dbname=labdb user=postgres password=********');
    create_node
   -------------
      2182738256
   (1 row)
   ```

1. 구독을 생성합니다.

   ```
   SELECT pglogical.create_subscription(
      subscription_name := 'docs_lab_subscription',
      provider_dsn := 'host=source-instance.aws-region.rds.amazonaws.com port=5432 sslmode=require dbname=labdb user=postgres password=*******',
      replication_sets := ARRAY['default'],
      synchronize_data := true,
      forward_origins := '{}' );  
    create_subscription
   ---------------------
   1038357190
   (1 row)
   ```

   이 단계를 완료하면 게시자 테이블의 데이터가 구독자 테이블에서 생성됩니다. 다음 SQL 쿼리를 사용하면 이 문제가 발생했는지 확인할 수 있습니다.

   ```
   SELECT count(*) FROM docs_lab_table;
    count
   -------
     5000
   (1 row)
   ```

이 시점 이후로는 게시자의 테이블에 적용한 변경 사항이 구독자의 테이블에 복제됩니다.

# 메이저 업그레이드 후 논리적 복제 재설정
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.recover-replication-after-upgrade"></a>

논리적 복제용 게시자 노드로 설정된 Aurora PostgreSQL DB 클러스터 의 메이저 버전 업그레이드를 수행하려면, 먼저 활성화되지 않는 슬롯을 포함한 모든 복제 슬롯을 삭제해야 합니다. 게시자 노드에서 데이터베이스 트랜잭션을 일시적으로 전환하고, 복제 슬롯을 삭제하고, Aurora PostgreSQL DB 클러스터를 업그레이드한 다음 복제를 다시 설정하고 재시작하는 것이 좋습니다.

복제 슬롯은 게시자 노드에서만 호스팅됩니다. 논리적 복제 시나리오에서 Aurora PostgreSQL 구독자 노드는 삭제할 슬롯이 없습니다. Aurora PostgreSQL 메이저 버전 업그레이드 프로세스에서는 게시자 노드와 별개로 구독자를 PostgreSQL의 새 메이저 버전으로 업그레이드할 수 있습니다. 그러나 업그레이드 프로세스를 진행하면 복제 프로세스가 중단되고 게시자 노드와 구독자 노드 간의 WAL 데이터 동기화가 간섭을 받습니다. 게시자나 구독자 또는 둘 항목 모두를 업그레이드한 후에는 게시자와 구독자 간의 논리적 복제를 다시 설정해야 합니다. 다음 절차에서는 복제가 중단되었는지 판단하는 방법과 문제를 해결하는 방법을 확인할 수 있습니다.  

## 논리적 복제가 중단되었는지 확인
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.recover-replication-after-upgrade.identifying-the-issue"></a>

다음과 같이 게시자 노드 또는 구독자 노드를 쿼리하면 복제 프로세스 중단 여부를 확인할 수 있습니다.

**게시자 노드를 확인하는 방법**
+ `psql`을 사용하여 게시자 노드에 연결한 다음 `pg_replication_slots` 함수를 쿼리합니다. 활성 열의 값을 기록해 둡니다. 일반적으로 이 값은 `t`(true)를 반환하며, 복제가 활성 상태라는 뜻입니다. 쿼리가 `f`(false)를 반환한다면 구독자로의 복제가 중단되었다는 뜻입니다.

  ```
  SELECT slot_name,plugin,slot_type,active FROM pg_replication_slots;
                      slot_name              |      plugin      | slot_type | active
  -------------------------------------------+------------------+-----------+--------
   pgl_labdb_docs_labcb4fa94_docs_lab3de412c | pglogical_output | logical   | f
  (1 row)
  ```

**구독자 노드를 확인하는 방법**

구독자 노드에서는 세 가지 방법으로 복제 상태를 확인할 수 있습니다.
+ 구독자 노드의 PostgreSQL 로그를 확인하여 실패 메시지를 찾습니다. 로그는 다음과 같이 종료 코드 1을 포함하는 메시지를 이용해 실패를 식별합니다.

  ```
  2022-07-06 16:17:03 UTC::@:[7361]:LOG: background worker "pglogical apply 16404:2880255011" (PID 14610) exited with exit code 1
  2022-07-06 16:19:44 UTC::@:[7361]:LOG: background worker "pglogical apply 16404:2880255011" (PID 21783) exited with exit code 1
  ```
+ `pg_replication_origin` 함수를 쿼리합니다. 다음과 같이 `psql`을 사용하여 구독자 노드의 데이터베이스에 연결하고 `pg_replication_origin` 함수를 쿼리합니다.

  ```
  SELECT * FROM pg_replication_origin;
   roident | roname
  ---------+--------
  (0 rows)
  ```

  결과 집합이 비어 있다면 복제가 중단되었다는 뜻입니다. 일반적인 출력은 다음과 같습니다.

  ```
     roident |                       roname
    ---------+----------------------------------------------------
           1 | pgl_labdb_docs_labcb4fa94_docs_lab3de412c
    (1 row)
  ```
+ 다음 예제와 같이 `pglogical.show_subscription_status` 함수를 쿼리합니다.

  ```
  SELECT subscription_name,status,slot_name FROM pglogical.show_subscription_status();
       subscription_name | status |              slot_name
  ---====----------------+--------+-------------------------------------
   docs_lab_subscription | down   | pgl_labdb_docs_labcb4fa94_docs_lab3de412c
  (1 row)
  ```

  이 출력은 복제가 중단되었음을 보여줍니다. 상태는 `down`입니다. 일반적으로 출력에서는 상태가 `replicating`으로 표시됩니다.

논리적 복제 프로세스가 중단된 경우 다음 단계에 따라 복제를 재설정할 수 있습니다.

**게시자와 구독자 노드 간의 논리적 복제를 재설정하는 방법**

복제를 다시 설정하려면 먼저 게시자 노드에서 구독자의 연결을 끊은 다음, 다음 단계의 설명에 따라 구독을 다시 설정합니다.

1. 다음과 같이 `psql`을 사용하여 구독자 노드에 연결합니다.

   ```
   psql --host=222222222222.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=labdb
   ```

1. `pglogical.alter_subscription_disable` 함수를 사용하여 구독을 비활성화합니다.

   ```
   SELECT pglogical.alter_subscription_disable('docs_lab_subscription',true);
    alter_subscription_disable
   ----------------------------
    t
   (1 row)
   ```

1. 다음과 같이 `pg_replication_origin`을 쿼리하여 게시자 노드의 식별자를 가져옵니다.

   ```
   SELECT * FROM pg_replication_origin;
    roident |               roname
   ---------+-------------------------------------
          1 | pgl_labdb_docs_labcb4fa94_docs_lab3de412c
   (1 row)
   ```

1. 이전 단계의 응답을 `pg_replication_origin_create` 명령과 함께 사용하여, 구독을 다시 설정할 때 사용할 수 있는 식별자를 할당합니다.

   ```
   SELECT pg_replication_origin_create('pgl_labdb_docs_labcb4fa94_docs_lab3de412c');
     pg_replication_origin_create
   ------------------------------
                               1
   (1 row)
   ```

1. 다음 예제와 같이 구독의 이름을 `true` 상태로 전달하여 구독을 활성화합니다.

   ```
   SELECT pglogical.alter_subscription_enable('docs_lab_subscription',true);
     alter_subscription_enable
   ---------------------------
    t
   (1 row)
   ```

노드의 상태를 확인합니다. 노드의 상태는 이 예제에서처럼 `replicating`이어야 합니다.

```
SELECT subscription_name,status,slot_name
  FROM pglogical.show_subscription_status();
             subscription_name |   status    |              slot_name
-------------------------------+-------------+-------------------------------------
 docs_lab_subscription         | replicating | pgl_labdb_docs_lab98f517b_docs_lab3de412c
(1 row)
```

게시자 노드에서 구독자 복제 슬롯의 상태를 확인합니다. 슬롯의 `active` 열은 `t`(true)를 반환해야 하며, 복제가 다시 설정되었다는 뜻입니다.

```
SELECT slot_name,plugin,slot_type,active
  FROM pg_replication_slots;
                    slot_name              |      plugin      | slot_type | active
-------------------------------------------+------------------+-----------+--------
 pgl_labdb_docs_lab98f517b_docs_lab3de412c | pglogical_output | logical   | t
(1 row)
```

# Aurora PostgreSQL 용 논리적 복제 슬롯 관리
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.handle-slots"></a>

논리적 복제 시나리오에서 게시자 노드 역할을 하는 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스 의 메이저 버전 업그레이드를 수행하려면, 먼저 인스턴스에서 복제 슬롯을 삭제해야 합니다. 메이저 버전 업그레이드 사전 점검 프로세스에서는 업그레이드를 진행하려면 슬롯을 삭제해야 한다는 메시지가 표시됩니다.

`pglogical` 확장을 사용하여 만든 복제 슬롯을 식별하려면 각 데이터베이스에 로그인하여 노드 이름을 확인하십시오. 구독자 노드를 쿼리하면 이 예제에서처럼 출력에 게시자와 구독자 노드가 모두 표시됩니다.

```
SELECT * FROM pglogical.node;
node_id   |     node_name
------------+-------------------
 2182738256 | docs_lab_target
 3410995529 | docs_lab_provider
(2 rows)
```

다음 쿼리를 사용하면 구독 세부 정보를 확인할 수 있습니다.

```
SELECT sub_name,sub_slot_name,sub_target
  FROM pglogical.subscription;
 sub_name |         sub_slot_name          | sub_target
----------+--------------------------------+------------
  docs_lab_subscription     | pgl_labdb_docs_labcb4fa94_docs_lab3de412c | 2182738256
(1 row)
```

이제 다음과 같이 구독을 삭제할 수 있습니다.

```
SELECT pglogical.drop_subscription(subscription_name := 'docs_lab_subscription');
 drop_subscription
-------------------
                 1
(1 row)
```

구독을 삭제한 후에는 노드를 삭제해도 됩니다.

```
SELECT pglogical.drop_node(node_name := 'docs-lab-subscriber');
 drop_node
-----------
 t
(1 row)
```

다음과 같은 방법을 이용해 노드가 더 이상 존재하지 않는지 확인할 수 있습니다.

```
SELECT * FROM pglogical.node;
 node_id | node_name
---------+-----------
(0 rows)
```

# plogical 확장용 파라미터 참조
<a name="Appendix.PostgreSQL.CommonDBATasks.pglogical.reference"></a>

표에서는 `pglogical` 확장과 관련된 파라미터를 확인할 수 있습니다. `pglogical.conflict_log_level` 및 `pglogical.conflict_resolution` 같은 파라미터는 업데이트 충돌을 처리하는 용도로 사용합니다. 게시자의 변경 사항을 구독한 테이블과을 로컬로 변경하면 충돌이 발생할 수 있습니다. 양방향 복제 또는 동일한 게시자로부터 여러 구독자를 복제하는 경우를 비롯한 다양한 시나리오에서도 충돌이 발생할 수 있습니다. 자세한 내용은 [pglogical을 사용한 PostgreSQL 양방향 복제](https://aws.amazon.com/blogs/database/postgresql-bi-directional-replication-using-pglogical/)를 참조하십시오.


| 파라미터 | 설명 | 
| --- | --- | 
| pglogical.batch\$1inserts | 가능한 경우 배치를 삽입합니다. 기본적으로는 설정되지 않습니다. 켜려면 '1'로 변경하고 해제하려면 '0'으로 변경합니다. | 
| pglogical.conflict\$1log\$1level | 해결된 충돌을 로깅하는 데 사용할 로그 수준을 설정합니다. 지원되는 문자열 값은 debug5, debug4, debug3, debug2, debug1, info, notice, warning, error, log, fatal 및 panic입니다. | 
| pglogical.conflict\$1resolution | 해결할 수 있는 충돌인 경우 충돌을 해결하는 데 사용할 메서드를 설정합니다. 지원되는 문자열 값은 error, apply\$1remote, keep\$1local, last\$1update\$1wins 및 first\$1update\$1wins입니다. | 
| pglogical.extra\$1connection\$1options | 모든 피어 노드 연결에 추가할 연결 옵션입니다. | 
| pglogical.synchronous\$1commit | pglogical 특정 동기 커밋 값입니다. | 
| pglogical.use\$1spi | 하위 수준 API 대신 SPI(서버 프로그래밍 인터페이스)를 사용하여 변경 사항을 적용합니다. 켜려면 '1'로 설정하고 해제하려면 '0'으로 설정합니다. SPI에 대한 자세한 내용은 PostgreSQL 설명서의 [서버 프로그래밍 인터페이스](https://www.postgresql.org/docs/current/spi.html)를 참조하십시오. | 

# Amazon Aurora PostgreSQL용 지원되는 외부 데이터 래퍼 작업
<a name="Appendix.PostgreSQL.CommonDBATasks.Extensions.foreign-data-wrappers"></a>

외부 데이터 래퍼(FDW)는 외부 데이터에 대한 액세스를 제공하는 특정 유형의 확장입니다. 예를 들어 `oracle_fdw` 확장을 사용하면 Aurora PostgreSQL DB 인스턴스 가 Oracle 데이터베이스와 함께 작동할 수 있습니다. 

아래에서는 여러 지원되는 PostgreSQL 외부 데이터 래퍼에 관한 정보를 확인할 수 있습니다.

**Topics**
+ [log\$1fdw 확장으로 SQL을 사용하여 DB 로그에 액세스](CHAP_PostgreSQL.Extensions.log_fdw.md)
+ [postgres\$1fdw 확장을 사용하여 외부 데이터 액세스](postgresql-commondbatasks-fdw.md)
+ [mysql\$1fdw 확장을 사용하여 MySQL 데이터베이스 작업](postgresql-mysql-fdw.md)
+ [oracle\$1fdw 확장을 사용하여 Oracle 데이터베이스 작업](postgresql-oracle-fdw.md)
+ [tds\$1fdw 확장을 사용하여 SQL Server 데이터베이스 작업](postgresql-tds-fdw.md)

# log\$1fdw 확장으로 SQL을 사용하여 DB 로그에 액세스
<a name="CHAP_PostgreSQL.Extensions.log_fdw"></a>

Aurora PostgreSQL DB 클러스터는 SQL 인터페이스를 사용하여 데이터베이스 엔진 로그에 액세스할 수 있는 `log_fdw` 확장을 지원합니다. `log_fdw` 확장은 데이터베이스 로그용 외부 테이블을 간편하게 생성할 수 있게 해주는 2가지 함수를 제공합니다.
+ `list_postgres_log_files` – 데이터베이스 로그 디렉터리의 파일과 파일 크기(단위: 바이트)를 나열합니다.
+ `create_foreign_table_for_log_file(table_name text, server_name text, log_file_name text)` – 현재 데이터베이스에서 지정된 파일에 대해 외부 테이블을 빌드합니다.

`log_fdw`가 생성하는 모든 함수는 `rds_superuser`가 소유합니다. `rds_superuser` 역할의 구성원은 다른 데이터베이스 사용자에게 이러한 함수에 대한 액세스 권한을 부여할 수 있습니다.

기본적으로 로그 파일은 `log_destination` 파라미터에 명시된 대로 Amazon Aurora에 의해 `stderr`(표준 오류) 형식으로 생성됩니다. 이 파라미터에는 두 가지 옵션만 있습니다. `stderr` 및 `csvlog`(쉼표로 구분된 값, CSV)입니다. 파라미터에 `csvlog` 옵션을 추가하는 경우 Amazon Aurora가 `stderr` 및 `csvlog` 로그를 모두 생성합니다. 이는 DB 클러스터의 스토리지 용량에 영향을 줄 수 있으므로 로그 처리에 영향을 주는 다른 파라미터를 알고 있어야 합니다. 자세한 내용은 [로그 대상 설정(`stderr`, `csvlog`)](USER_LogAccess.Concepts.PostgreSQL.overview.parameter-groups.md#USER_LogAccess.Concepts.PostgreSQL.Log_Format) 섹션을 참조하세요.

`csvlog` 로그를 생성할 때의 한 가지 이점은 `log_fdw` 확장을 사용하여 여러 열로 깔끔하게 분할된 데이터로 외부 테이블을 작성할 수 있다는 점입니다. 그러려면 인스턴스를 사용자 지정 DB 파라미터 그룹과 연결해야 `log_destination`에 대한 설정을 변경할 수 있습니다. 이에 관한 정보는 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.

다음 예제에서는 `log_destination` 파라미터에 `cvslog`가 포함된 것으로 간주합니다.

**log\$1fdw 확장을 사용하려면**

1. `log_fdw` 확장을 설치합니다.

   ```
   postgres=> CREATE EXTENSION log_fdw;
   CREATE EXTENSION
   ```

1. 로그 서버를 외부 데이터 래퍼로 생성합니다.

   ```
   postgres=> CREATE SERVER log_server FOREIGN DATA WRAPPER log_fdw;
   CREATE SERVER
   ```

1. 로그 파일 목록에서 모든 파일을 선택합니다.

   ```
   postgres=> SELECT * FROM list_postgres_log_files() ORDER BY 1;
   ```

   샘플 응답은 다음과 같습니다.

   ```
             file_name           | file_size_bytes
   ------------------------------+-----------------
    postgresql.log.2023-08-09-22.csv |            1111
    postgresql.log.2023-08-09-23.csv |            1172
    postgresql.log.2023-08-10-00.csv |            1744
    postgresql.log.2023-08-10-01.csv |            1102
   (4 rows)
   ```

1. 선택한 파일에 대해 단일 'log\$1entry' 열이 있는 테이블을 생성합니다.

   ```
   postgres=> SELECT create_foreign_table_for_log_file('my_postgres_error_log',
        'log_server', 'postgresql.log.2023-08-09-22.csv');
   ```

   응답은 테이블이 현재 존재한다는 것 외에는 세부 정보를 제공하지 않습니다.

   ```
   -----------------------------------
   (1 row)
   ```

1. 로그 파일의 샘플을 선택합니다. 다음 코드는 로그 시간 및 오류 메시지 설명을 검색합니다.

   ```
   postgres=> SELECT log_time, message FROM my_postgres_error_log ORDER BY 1;
   ```

   샘플 응답은 다음과 같습니다.

   ```
                log_time             |                                  message
   ----------------------------------+---------------------------------------------------------------------------
   Tue Aug 09 15:45:18.172 2023 PDT | ending log output to stderr
   Tue Aug 09 15:45:18.175 2023 PDT | database system was interrupted; last known up at 2023-08-09 22:43:34 UTC
   Tue Aug 09 15:45:18.223 2023 PDT | checkpoint record is at 0/90002E0
   Tue Aug 09 15:45:18.223 2023 PDT | redo record is at 0/90002A8; shutdown FALSE
   Tue Aug 09 15:45:18.223 2023 PDT | next transaction ID: 0/1879; next OID: 24578
   Tue Aug 09 15:45:18.223 2023 PDT | next MultiXactId: 1; next MultiXactOffset: 0
   Tue Aug 09 15:45:18.223 2023 PDT | oldest unfrozen transaction ID: 1822, in database 1
   (7 rows)
   ```

# postgres\$1fdw 확장을 사용하여 외부 데이터 액세스
<a name="postgresql-commondbatasks-fdw"></a>

[postgres\$1fdw](https://www.postgresql.org/docs/current/static/postgres-fdw.html) 확장으로 원격 데이터베이스에 있는 테이블의 데이터에 액세스할 수 있습니다. PostgreSQL DB 인스턴스에서 원격 연결을 설정하는 경우 읽기 전용 복제본에도 액세스할 수 있습니다.

**postgres\$1fdw로 원격 데이터베이스 서버에 액세스하려면**

1. postgres\$1fdw 확장을 설치합니다.

   ```
   CREATE EXTENSION postgres_fdw;
   ```

1. CREATE SERVER로 외부 데이터 서버를 생성합니다.

   ```
   CREATE SERVER foreign_server
   FOREIGN DATA WRAPPER postgres_fdw
   OPTIONS (host 'xxx.xx.xxx.xx', port '5432', dbname 'foreign_db');
   ```

1. 원격 서버에 사용할 역할 식별을 위하여 사용자 매핑을 생성합니다.
**중요**  
로그에 표시되지 않도록 암호를 수정하려면 세션 수준에서 `log_statement=none`을 설정합니다. 파라미터 수준에서 설정하면 암호가 수정되지 않습니다.

   ```
   CREATE USER MAPPING FOR local_user
   SERVER foreign_server
   OPTIONS (user 'foreign_user', password 'password');
   ```

1. 원격 서버에서 테이블을 매핑할 테이블을 생성합니다.

   ```
   CREATE FOREIGN TABLE foreign_table (
           id integer NOT NULL,
           data text)
   SERVER foreign_server
   OPTIONS (schema_name 'some_schema', table_name 'some_table');
   ```

# mysql\$1fdw 확장을 사용하여 MySQL 데이터베이스 작업
<a name="postgresql-mysql-fdw"></a>

Aurora PostgreSQL DB 클러스터에서 MySQL 호환 데이터베이스에 액세스하려면 `mysql_fdw` 확장을 설치하고 사용하면 됩니다. 이 외부 데이터 래퍼를 사용하면 RDS for MySQL, Aurora MySQL, MariaDB 및 기타 MySQL 호환 데이터베이스로 작업할 수 있습니다. Aurora PostgreSQL DB 클러스터에서 MySQL 데이터베이스로의 연결은 클라이언트 및 서버 구성에 따라 최선의 방식으로 암호화됩니다. 그러나 원하는 경우 암호화를 적용할 수 있습니다. 자세한 내용은 [확장에서 전송 중 암호화 사용](#postgresql-mysql-fdw.encryption-in-transit) 섹션을 참조하세요.

`mysql_fdw` 확장은 Amazon Aurora PostgreSQL 버전 15.4, 14.9, 13.12, 12.16 이상에서 지원됩니다. RDS for PostgreSQL DB에서 MySQL 호환 데이터베이스 인스턴스의 테이블에 대한 선택, 삽입, 업데이트 및 삭제를 지원합니다.

**Topics**
+ [mysql\$1fdw 확장을 사용하도록 Aurora PostgreSQL DB 설정](#postgresql-mysql-fdw.setting-up)
+ [예: Aurora PostgreSQL에서 Aurora MySQL 데이터베이스로 작업](#postgresql-mysql-fdw.using-mysql_fdw)
+ [확장에서 전송 중 암호화 사용](#postgresql-mysql-fdw.encryption-in-transit)

## mysql\$1fdw 확장을 사용하도록 Aurora PostgreSQL DB 설정
<a name="postgresql-mysql-fdw.setting-up"></a>

Aurora PostgreSQL DB 클러스터에서 `mysql_fdw` 확장을 설정하려면 DB 클러스터에서 확장을 로드한 다음 MySQL DB 인스턴스에 대한 연결 지점을 생성해야 합니다. 이 작업을 수행하려면 MySQL DB 인스턴스에 대한 다음과 같은 세부 정보가 필요합니다.
+ 호스트 이름 또는 엔드포인트. Aurora MySQL DB 클러스터의 경우 콘솔을 사용하여 엔드포인트를 찾을 수 있습니다. 연결 및 보안(Connectivity & security) 탭을 선택하고 '엔드포인트 및 포트(Endpoint and port)' 섹션을 살펴봅니다.
+ 포트 번호. MySQL의 기본 포트 번호는 3306입니다.
+ 데이터베이스 이름 DB 식별자입니다.

또한 MySQL 포트 3306의 액세스 제어 목록(ACL) 또는 보안 그룹에 대한 액세스를 제공해야 합니다. Aurora PostgreSQL DB 클러스터와 Aurora MySQL DB 클러스터에 포트 3306에 대한 액세스 권한이 있어야 합니다. 액세스가 올바르게 구성되지 않은 경우 MySQL 호환 테이블에 연결하려고 하면 다음과 비슷한 오류 메시지가 표시됩니다.

```
ERROR: failed to connect to MySQL: Can't connect to MySQL server on 'hostname.aws-region.rds.amazonaws.com:3306' (110)
```

다음 절차에서는 `rds_superuser` 계정으로 외부 서버를 생성합니다. 그런 다음 특정 사용자에게 외부 서버에 대한 액세스 권한을 부여합니다. 그러면 이러한 사용자가 MySQL DB 인스턴스로 작업하기 위해 적절한 MySQL 사용자 계정에 대한 자체 매핑을 생성합니다.

**mysql\$1fdw로 MySQL 데이터베이스 서버에 액세스하려면**

1. `rds_superuser` 역할이 있는 계정을 사용하여 PostgreSQL DB 인스턴스에 연결합니다. Aurora PostgreSQL DB 클러스터를 생성할 때 기본값을 수락한 경우 사용자 이름은 `postgres`이고 다음과 같이 `psql` 명령줄 도구를 사용하여 연결할 수 있습니다.

   ```
   psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres –-password
   ```

1. 다음과 같이 `mysql_fdw` 확장을 설치합니다.

   ```
   postgres=> CREATE EXTENSION mysql_fdw;
   CREATE EXTENSION
   ```

Aurora PostgreSQL DB 클러스터에 확장을 설치한 후 MySQL 데이터베이스에 대한 연결을 제공하는 외부 서버를 설정합니다.

**외부 서버를 생성하려면**

Aurora PostgreSQL DB 클러스터에서 작업을 수행합니다. 이러한 단계에서는 `postgres`와 같은 `rds_superuser` 권한이 있는 사용자로 연결되어 있다고 가정합니다.

1. Aurora PostgreSQL DB 클러스터에서 외부 서버를 생성합니다.

   ```
   postgres=> CREATE SERVER mysql-db FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'db-name.111122223333.aws-region.rds.amazonaws.com', port '3306');
   CREATE SERVER
   ```

1. 적절한 사용자에게 외부 서버에 대한 액세스 권한을 부여합니다. 관리자가 아닌 사용자, 즉 `rds_superuser` 역할이 없는 사용자여야 합니다.

   ```
   postgres=> GRANT USAGE ON FOREIGN SERVER mysql-db to user1;
   GRANT
   ```

PostgreSQL 사용자는 외부 서버를 통해 MySQL 데이터베이스에 대한 자체 연결을 생성하고 관리합니다.

## 예: Aurora PostgreSQL에서 Aurora MySQL 데이터베이스로 작업
<a name="postgresql-mysql-fdw.using-mysql_fdw"></a>

Aurora PostgreSQL DB 인스턴스에 간단한 테이블이 있다고 가정합니다. Aurora PostgreSQL 사용자는 해당 테이블에 대해 (`SELECT`), `INSERT`, `UPDATE`, `DELETE` 항목을 쿼리하려고 합니다. 앞의 절차에서 설명한 대로 RDS for PostgreSQL DB 인스턴스에 `mysql_fdw` 확장이 생성되었다고 가정합니다. `rds_superuser` 권한이 있는 사용자로 RDS for PostgreSQL DB 인스턴스에 연결한 후 다음 단계를 진행할 수 있습니다.

1. Aurora PostgreSQL DB 인스턴스에서 외부 서버를 생성합니다.

   ```
   test=> CREATE SERVER mysqldb FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'your-DB.aws-region.rds.amazonaws.com', port '3306');
   CREATE SERVER
   ```

1. `rds_superuser` 권한이 없는 사용자(예: `user1`)에게 사용 권한을 부여합니다.

   ```
   test=> GRANT USAGE ON FOREIGN SERVER mysqldb TO user1;
   GRANT
   ```

1. *user1*으로 연결한 다음 MySQL 사용자에 대한 매핑을 생성합니다.

   ```
   test=> CREATE USER MAPPING FOR user1 SERVER mysqldb OPTIONS (username 'myuser', password 'mypassword');
   CREATE USER MAPPING
   ```

1. MySQL 테이블에 연결된 외부 테이블을 만듭니다.

   ```
   test=> CREATE FOREIGN TABLE mytab (a int, b text) SERVER mysqldb OPTIONS (dbname 'test', table_name '');
   CREATE FOREIGN TABLE
   ```

1. 외부 테이블에 대한 간단한 쿼리를 실행합니다.

   ```
   test=> SELECT * FROM mytab;
   a |   b
   ---+-------
   1 | apple
   (1 row)
   ```

1. MySQL 테이블에서 데이터를 추가, 변경 및 제거할 수 있습니다. 예를 들면 다음과 같습니다.

   ```
   test=> INSERT INTO mytab values (2, 'mango');
   INSERT 0 1
   ```

   `SELECT` 쿼리를 다시 실행하여 결과를 확인합니다.

   ```
   test=> SELECT * FROM mytab ORDER BY 1;
    a |   b
   ---+-------
   1 | apple
   2 | mango
   (2 rows)
   ```

## 확장에서 전송 중 암호화 사용
<a name="postgresql-mysql-fdw.encryption-in-transit"></a>

Aurora PostgreSQL에서 MySQL에 대한 연결은 기본적으로 전송 중 암호화(TLS/SSL)를 사용합니다. 그러나 클라이언트와 서버 구성이 다를 경우 연결이 암호화되지 않은 상태로 폴백됩니다. RDS for MySQL 사용자 계정에서 `REQUIRE SSL` 옵션을 지정하여 나가는 모든 연결에 대해 암호화를 적용할 수 있습니다. 이와 동일한 접근 방식이 MariaDB 및 Aurora MySQL 사용자 계정에서도 작동합니다.

`REQUIRE SSL`로 구성된 MySQL 사용자 계정의 경우 보안 연결을 설정할 수 없으면 연결 시도가 실패합니다.

기존 MySQL 데이터베이스 사용자 계정에 암호화를 적용하려면 `ALTER USER` 명령을 사용할 수 있습니다. 구문은 다음 표에 나온 대로 MySQL 버전에 따라 다릅니다. 자세한 내용은 *MySQL 참조 매뉴얼*의 [ALTER USER](https://dev.mysql.com/doc/refman/8.0/en/alter-user.html)를 참조하세요.


| MySQL 5.7, MySQL 8.0 | MySQL 5.6 | 
| --- | --- | 
|  `ALTER USER 'user'@'%' REQUIRE SSL;`  |  `GRANT USAGE ON *.* to 'user'@'%' REQUIRE SSL;`  | 

`mysql_fdw` 확장에 대한 자세한 내용은 [mysql\$1fdw](https://github.com/EnterpriseDB/mysql_fdw) 설명서를 참조하세요.

# oracle\$1fdw 확장을 사용하여 Oracle 데이터베이스 작업
<a name="postgresql-oracle-fdw"></a>

Aurora PostgreSQL DB 클러스터 에서 Oracle 데이터베이스에 액세스하려면 `oracle_fdw` 확장을 설치하고 사용할 수 있습니다. 이 확장은 Oracle 데이터베이스의 외부 데이터 래퍼입니다. 이 확장 프로그램에 대해 자세히 알아보려면 [oracle\$1fdw](https://github.com/laurenz/oracle_fdw) 문서를 참조하세요.

`oracle_fdw` 확장은 Aurora PostgreSQL 12.7(Amazon Aurora 릴리스 4.2) 이상에서 지원됩니다.

**Topics**
+ [oracle\$1fdw 확장 켜기](#postgresql-oracle-fdw.enabling)
+ [예제: Amazon RDS for Oracle Database에 연결된 외부 서버 사용](#postgresql-oracle-fdw.example)
+ [전송 중 암호화 작업](#postgresql-oracle-fdw.encryption)
+ [pg\$1user\$1mappings 보기 및 권한 이해](#postgresql-oracle-fdw.permissions)

## oracle\$1fdw 확장 켜기
<a name="postgresql-oracle-fdw.enabling"></a>

oracle\$1fdw 확장을 사용하려면 다음 절차를 수행하십시오.

**oracle\$1fdw 확장을 켜려면**
+ `rds_superuser` 권한이 있는 계정을 사용하여 다음 명령을 실행합니다.

  ```
  CREATE EXTENSION oracle_fdw;
  ```

## 예제: Amazon RDS for Oracle Database에 연결된 외부 서버 사용
<a name="postgresql-oracle-fdw.example"></a>

다음 예에서는 Amazon RDS for Oracle Database에 연결된 외부 서버를 사용하는 방법을 보여줍니다.

**RDS for Oracle Database에 연결된 외부 서버를 만들려면**

1. RDS for Oracle DB 인스턴스에서는 다음 사항에 유의하세요.
   + Endpoint
   + 포트
   + 데이터베이스 이름

1. 외부 서버를 만듭니다.

   ```
   test=> CREATE SERVER oradb FOREIGN DATA WRAPPER oracle_fdw OPTIONS (dbserver '//endpoint:port/DB_name');
   CREATE SERVER
   ```

1. `rds_superuser` 권한이 없는 사용자(예: `user1`)에게 사용 권한을 부여합니다.

   ```
   test=> GRANT USAGE ON FOREIGN SERVER oradb TO user1;
   GRANT
   ```

1. `user1`로 연결하고 Oracle 사용자에 대한 매핑을 생성합니다.

   ```
   test=> CREATE USER MAPPING FOR user1 SERVER oradb OPTIONS (user 'oracleuser', password 'mypassword');
   CREATE USER MAPPING
   ```

1. Oracle 테이블에 연결된 외부 테이블을 만듭니다.

   ```
   test=> CREATE FOREIGN TABLE mytab (a int) SERVER oradb OPTIONS (table 'MYTABLE');
   CREATE FOREIGN TABLE
   ```

1. 외부 테이블을 쿼리합니다.

   ```
   test=>  SELECT * FROM mytab;
   a
   ---
   1
   (1 row)
   ```

쿼리에서 다음 오류를 보고하면 보안 그룹 및 액세스 제어 목록(ACL)을 확인하여 두 인스턴스가 모두 통신할 수 있는지 확인합니다.

```
ERROR: connection for foreign table "mytab" cannot be established
DETAIL: ORA-12170: TNS:Connect timeout occurred
```

## 전송 중 암호화 작업
<a name="postgresql-oracle-fdw.encryption"></a>

PostgreSQL에서 Oracle 간의 전송 중인 암호화는 클라이언트와 서버 구성 파라미터의 조합을 기반으로 합니다. Oracle 21c를 사용하는 예제는 Oracle 문서의 [About the Values for Negotiating Encryption and Integrity](https://docs.oracle.com/en/database/oracle/oracle-database/21/dbseg/configuring-network-data-encryption-and-integrity.html#GUID-3A2AF4AA-AE3E-446B-8F64-31C48F27A2B5)를 참조하세요. Amazon RDS에서 oracle\$1fdw에 사용되는 클라이언트는 `ACCEPTED`로 구성됩니다. 즉, Oracle 데이터베이스 서버 구성에 따라 암호화가 달라지며, 암호화에 Oracle Security Library(libnnz)를 사용한다는 의미입니다.

데이터베이스가 RDS for Oracle에 있는 경우 암호화를 구성하려면 [Oracle 기본 네트워크 암호화](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.NetworkEncryption.html)를 참조하세요.

## pg\$1user\$1mappings 보기 및 권한 이해
<a name="postgresql-oracle-fdw.permissions"></a>

PostgreSQL 카탈로그 `pg_user_mapping`에서 Aurora PostgreSQL 사용자의 매핑을 외부 데이터(원격) 서버의 사용자에게 저장합니다. 카탈로그에 대한 액세스는 제한되어 있지만 `pg_user_mappings` 보기를 사용하여 매핑을 확인합니다. 다음에서는 예제 Oracle 데이터베이스를 통해 권한이 적용되는 방법을 보여 주는 예제를 확인할 수 있지만, 이 정보는 다른 외부 데이터 래퍼에도 일반적으로 적용됩니다.

다음 결과에서는 세 가지 예제 사용자에 매핑된 역할 및 권한을 찾을 수 있습니다. 사용자 `rdssu1`과 `rdssu2`는 `rds_superuser` 역할이며 `user1`은 아닙니다. 다음 예제에서는 `psql` 메타 명령 `\du`를 사용하여 기존 역할을 나열합니다.

```
test=>  \du
                                                               List of roles
    Role name    |                         Attributes                         |                          Member of
-----------------+------------------------------------------------------------+-------------------------------------------------------------
 rdssu1          |                                                            | {rds_superuser}
 rdssu2          |                                                            | {rds_superuser}
 user1           |                                                            | {}
```

`rds_superuser` 권한이 있는 사용자를 포함한 모든 사용자는 `pg_user_mappings` 테이블에서 자신의 사용자 매핑(`umoptions`)을 볼 수 있습니다. 다음 예제와 같이 `rdssu1`이 모든 사용자 매핑을 얻으려고 하면 `rdssu1``rds_superuser` 권한에도 불구하고 오류가 발생합니다.

```
test=> SELECT * FROM pg_user_mapping;
ERROR: permission denied for table pg_user_mapping
```

다음은 일부 예입니다.

```
test=> SET SESSION AUTHORIZATION rdssu1;
SET
test=> SELECT * FROM pg_user_mappings;
 umid  | srvid | srvname | umuser | usename    |            umoptions
-------+-------+---------+--------+------------+----------------------------------
 16414 | 16411 | oradb   |  16412 | user1      |
 16423 | 16411 | oradb   |  16421 | rdssu1     | {user=oracleuser,password=mypwd}
 16424 | 16411 | oradb   |  16422 | rdssu2     |
 (3 rows)

test=> SET SESSION AUTHORIZATION rdssu2;
SET
test=> SELECT * FROM pg_user_mappings;
 umid  | srvid | srvname | umuser | usename    |            umoptions
-------+-------+---------+--------+------------+----------------------------------
 16414 | 16411 | oradb   |  16412 | user1      |
 16423 | 16411 | oradb   |  16421 | rdssu1     |
 16424 | 16411 | oradb   |  16422 | rdssu2     | {user=oracleuser,password=mypwd}
 (3 rows)

test=> SET SESSION AUTHORIZATION user1;
SET
test=> SELECT * FROM pg_user_mappings;
 umid  | srvid | srvname | umuser | usename    |           umoptions
-------+-------+---------+--------+------------+--------------------------------
 16414 | 16411 | oradb   |  16412 | user1      | {user=oracleuser,password=mypwd}
 16423 | 16411 | oradb   |  16421 | rdssu1     |
 16424 | 16411 | oradb   |  16422 | rdssu2     |
 (3 rows)
```

`information_schema._pg_user_mappings` 및 `pg_catalog.pg_user_mappings`의 구현 차이점 때문에 수동으로 생성된 `rds_superuser`는 `pg_catalog.pg_user_mappings`에서 암호를 보려면 추가 권한이 필요합니다.

`information_schema._pg_user_mappings`에서 암호를 보려면 `rds_superuser`에 대한 추가 권한은 필요하지 않습니다.

`rds_superuser` 역할이 없는 사용자는 다음 조건에서만 `pg_user_mappings`에서 암호를 볼 수 있습니다.
+ 현재 사용자는 매핑되는 사용자이며 서버를 소유하거나 서버에 대한 `USAGE` 권한을 보유하고 있습니다.
+ 현재 사용자는 서버 소유자이고 매핑은 `PUBLIC`에 대한 것입니다.

# tds\$1fdw 확장을 사용하여 SQL Server 데이터베이스 작업
<a name="postgresql-tds-fdw"></a>

PostgreSQL `tds_fdw` 확장을 사용하여 Sybase 및 Microsoft SQL Server 데이터베이스와 같은 테이블 형식 데이터 스트림(TDS) 프로토콜을 지원하는 데이터베이스에 액세스할 수 있습니다. 이 외부 데이터 래퍼를 사용하면 Aurora PostgreSQL DB 클러스터에서 Amazon RDS for Microsoft SQL Server를 포함하여 TDS 프로토콜을 사용하는 데이터베이스에 연결할 수 있습니다. 자세한 내용은 GitHub에서 [tds-fdw/tds\$1fdw](https://github.com/tds-fdw/tds_fdw) 설명서를 참조하세요.

`tds_fdw` 확장은 Amazon Aurora PostgreSQL 버전 13.6 이상에서 지원됩니다.

## tds\$1fdw 확장을 사용하도록 Aurora PostgreSQL DB 설정
<a name="postgresql-tds-fdw-setting-up"></a>

다음 절차에서는 Aurora PostgreSQL DB 클러스터와 함께 `tds_fdw`를 설정하고 사용하는 예를 확인할 수 있습니다. `tds_fdw`를 사용하여 SQL Server 데이터베이스에 연결하기 전에 인스턴스에 대한 다음 세부 정보를 확인해야 합니다.
+ 호스트 이름 또는 엔드포인트. RDS for SQL Server DB 인스턴스의 경우 콘솔을 사용하여 엔드포인트를 찾을 수 있습니다. 연결 및 보안(Connectivity & security) 탭을 선택하고 '엔드포인트 및 포트(Endpoint and port)' 섹션을 살펴봅니다.
+ 포트 번호. Microsoft SQL Server의 기본 포트 번호는 포트 1433입니다.
+ 데이터베이스 이름 DB 식별자입니다.

또한 SQL Server 포트 1433의 액세스 제어 목록(ACL) 또는 보안 그룹에 대한 액세스를 제공해야 합니다. Aurora PostgreSQL DB 클러스터와 RDS for MySQL DB 인스턴스가 모두 포트 1433에 액세스할 수 있어야 합니다. 액세스가 올바르게 구성되지 않은 경우 Microsoft SQL Server를 쿼리하려고 할 때 다음 오류 메시지가 나타납니다.

```
ERROR: DB-Library error: DB #: 20009, DB Msg: Unable to connect:
Adaptive Server is unavailable or does not exist (mssql2019.aws-region.rds.amazonaws.com), OS #: 0, OS Msg: Success, Level: 9
```

**tds\$1fdw를 사용하여 SQL Server 데이터베이스에 연결하려면**

1. `rds_superuser` 역할이 있는 계정을 사용하여 Aurora PostgreSQL DB 클러스터의 기본 인스턴스에 연결합니다.

   ```
   psql --host=your-cluster-name-instance-1.aws-region.rds.amazonaws.com --port=5432 --username=test –-password
   ```

1. `tds_fdw` 확장을 설치합니다.

   ```
   test=> CREATE EXTENSION tds_fdw;
   CREATE EXTENSION
   ```

Aurora PostgreSQL DB 클러스터 에 확장을 설치한 후 외부 서버를 설정합니다.

**외부 서버를 생성하려면**

`rds_superuser` 권한이 있는 계정을 사용하여 Aurora PostgreSQL DB 클러스터에서 다음과 같은 작업을 수행합니다.

1. Aurora PostgreSQL DB 클러스터에서 외부 서버를 생성합니다.

   ```
   test=> CREATE SERVER sqlserverdb FOREIGN DATA WRAPPER tds_fdw OPTIONS (servername 'mssql2019.aws-region.rds.amazonaws.com', port '1433', database 'tds_fdw_testing');
   CREATE SERVER
   ```

   SQLServer 측에서 ASCII가 아닌 데이터에 액세스하려면 Aurora PostgreSQL DB 클러스터에서 character\$1set 옵션을 사용하여 서버 링크를 생성합니다.

   ```
   test=> CREATE SERVER sqlserverdb FOREIGN DATA WRAPPER tds_fdw OPTIONS (servername 'mssql2019.aws-region.rds.amazonaws.com', port '1433', database 'tds_fdw_testing', character_set 'UTF-8');
   CREATE SERVER
   ```

1. `rds_superuser` 역할 권한이 없는 사용자(예: `user1`)에게 권한을 부여합니다.

   ```
   test=> GRANT USAGE ON FOREIGN SERVER sqlserverdb TO user1;
   ```

1. user1으로 연결한 다음 SQL Server 사용자에 대한 매핑을 생성합니다.

   ```
   test=> CREATE USER MAPPING FOR user1 SERVER sqlserverdb OPTIONS (username 'sqlserveruser', password 'password');
   CREATE USER MAPPING
   ```

1. SQL Server 테이블에 연결된 외부 테이블을 만듭니다.

   ```
   test=> CREATE FOREIGN TABLE mytab (a int) SERVER sqlserverdb OPTIONS (table 'MYTABLE');
   CREATE FOREIGN TABLE
   ```

1. 외부 테이블을 쿼리합니다.

   ```
   test=> SELECT * FROM mytab;
    a
   ---
    1
   (1 row)
   ```

### 연결에 전송 중 암호화 사용
<a name="postgresql-tds-fdw-ssl-tls-encryption"></a>

Aurora PostgreSQL에서 SQL Server로의 연결은 SQL Server 데이터베이스 구성에 따라 전송 중 암호화(TLS/SSL)를 사용합니다. SQL Server에 암호화가 구성되지 않은 경우 SQL Server 데이터베이스에 대한 요청을 수행하는 RDS for PostgreSQL 클라이언트가 암호화되지 않은 상태로 폴백됩니다.

`rds.force_ssl` 파라미터를 설정하여 RDS for SQL Server DB 인스턴스에 대한 연결에 암호화를 적용할 수 있습니다. 자세한 방법은 [DB 인스턴스 연결이 SSL을 사용하도록 지정](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.SSL.Using.html#SQLServer.Concepts.General.SSL.Forcing)을 참조하세요. RDS for SQL Server에 대한 SSL/TLS 구성과 관련된 자세한 내용은 [Microsoft SQL Server DB 인스턴스와 함께 SSL 사용](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Concepts.General.SSL.Using.html)을 참조하세요.

# PostgreSQL용 신뢰할 수 있는 언어 확장 작업
<a name="PostgreSQL_trusted_language_extension"></a>

PostgreSQL용 신뢰할 수 있는 언어 확장은 PostgreSQL 확장을 구축하기 위한 오픈 소스 개발 키트입니다. 이를 통해 고성능 PostgreSQL 확장을 구축하고 Aurora PostgreSQL DB 클러스터에서 안전하게 실행할 수 있습니다. PostgreSQL용 신뢰할 수 있는 언어 확장(TLE)을 사용하면 PostgreSQL 기능 확장을 위해 문서화된 접근 방식을 따르는 PostgreSQL 확장을 생성할 수 있습니다. 자세한 내용은 PostgreSQL 설명서에서 [Packaging Related Objects into an Extension](https://www.postgresql.org/docs/current/extend-extensions.html)을 참조하세요.

TLE의 주요 이점 중 하나는 PostgreSQL 인스턴스의 기반이 되는 파일 시스템에 대한 액세스를 제공하지 않는 환경에서 사용할 수 있다는 것입니다. 이전에는 새 확장을 설치하려면 파일 시스템에 액세스해야 했습니다. TLE는 이러한 제약을 제거합니다. TLE는 Aurora PostgreSQL DB 클러스터에서 실행되는 데이터베이스를 포함하여 모든 PostgreSQL 데이터베이스를 위한 새 확장을 생성할 수 있는 개발 환경을 제공합니다.

TLE는 TLE를 사용하여 만든 확장의 안전하지 않은 리소스에 대한 액세스를 방지하도록 설계되었습니다. 런타임 환경은 확장 결함이 미치는 영향을 단일 데이터베이스 연결로 제한합니다. 또한 TLE는 데이터베이스 관리자에게 확장을 설치할 수 있는 사용자를 세밀하게 제어할 수 있도록 하며, 확장을 실행하기 위한 권한 모델을 제공합니다.

TLE는 Aurora PostgreSQL 버전 14.5 이상 버전에서 지원됩니다.

신뢰할 수 있는 언어 확장 개발 환경 및 런타임은 `pg_tle` PostgreSQL 확장 버전 1.0.1로 패키징됩니다. JavaScript, Perl, Tcl, PL/pgSQL 및 SQL에서 확장 생성을 지원합니다. 다른 PostgreSQL 확장을 설치하는 것과 동일한 방식으로 Aurora PostgreSQL DB 클러스터에 `pg_tle` 확장을 설치합니다. `pg_tle`가 설정되면 개발자는 이를 사용하여 *TLE 확장*이라는 새 PostgreSQL 확장을 생성할 수 있습니다.

 

다음 주제에는 신뢰할 수 있는 언어 확장 설정 방법 및 자체 TLE 확장 생성 시작 방법에 대한 정보가 나와 있습니다.

**Topics**
+ [용어](PostgreSQL_trusted_language_extension-terminology.md)
+ [PostgreSQL용 신뢰할 수 있는 언어 확장을 사용하기 위한 요구 사항](PostgreSQL_trusted_language_extension-requirements.md)
+ [Aurora PostgreSQL DB 클러스터에서 신뢰할 수 있는 언어 확장 설정](PostgreSQL_trusted_language_extension-setting-up.md)
+ [PostgreSQL용 신뢰할 수 있는 언어 확장 개요](PostgreSQL_trusted_language_extension.overview.md)
+ [Aurora PostgreSQL용 TLE 확장 생성](PostgreSQL_trusted_language_extension-creating-TLE-extensions.md)
+ [데이터베이스에서 TLE 확장 삭제](PostgreSQL_trusted_language_extension-creating-TLE-extensions.dropping-TLEs.md)
+ [PostgreSQL용 신뢰할 수 있는 언어 확장 제거](PostgreSQL_trusted_language_extension-uninstalling-pg_tle-devkit.md)
+ [TLE 확장과 함께 PostgreSQL 후크 사용](PostgreSQL_trusted_language_extension.overview.tles-and-hooks.md)
+ [PostgreSQL용 신뢰할 수 있는 언어 확장에 대한 함수 참조](PostgreSQL_trusted_language_extension-functions-reference.md)
+ [PostgreSQL용 신뢰할 수 있는 언어 확장에 대한 후크 참조](PostgreSQL_trusted_language_extension-hooks-reference.md)

# 용어
<a name="PostgreSQL_trusted_language_extension-terminology"></a>

신뢰할 수 있는 언어 확장을 더 잘 이해하려면 이 항목에서 사용되는 용어에 대한 다음 용어집을 참조하세요.

**PostgreSQL용 신뢰할 수 있는 언어 확장**  
*PostgreSQL용 신뢰할 수 있는 언어 확장*은 `pg_tle` 확장으로 패키징된 오픈 소스 개발 키트의 공식 이름입니다. 모든 PostgreSQL 시스템에서 사용할 수 있습니다. 자세한 내용은 GitHub의 [aws/pg\$1tle](https://github.com/aws/pg_tle)를 참조하세요.

**신뢰할 수 있는 언어 확장**  
*신뢰할 수 있는 언어 확장*은 PostgreSQL용 신뢰할 수 있는 언어 확장의 약칭입니다. 이 설명서에서는 이 약칭과 약어(TLE)도 사용됩니다.

**신뢰할 수 있는 언어**  
*신뢰할 수 있는 언어*는 특정 보안 속성을 가진 프로그래밍 또는 스크립팅 언어입니다. 예를 들어 신뢰할 수 있는 언어는 일반적으로 파일 시스템에 대한 액세스를 제한하며, 지정된 네트워킹 속성의 사용을 제한합니다. TLE 개발 키트는 신뢰할 수 있는 언어를 지원하도록 설계되었습니다. PostgreSQL은 신뢰할 수 있거나 신뢰할 수 없는 확장 생성에 사용되는 여러 언어를 지원합니다. 예제는 PostgreSQL 설명서의 [Trusted and Untrusted PL/Perl](https://www.postgresql.org/docs/current/plperl-trusted.html)을 참조하세요. 신뢰할 수 있는 언어 확장을 사용하여 생성한 확장은 기본적으로 신뢰할 수 있는 언어 메커니즘을 사용합니다.

**TLE 확장**  
*TLE 확장*은 신뢰할 수 있는 언어 확장(TLE) 개발 키트를 사용하여 생성된 PostgreSQL 확장입니다.

# PostgreSQL용 신뢰할 수 있는 언어 확장을 사용하기 위한 요구 사항
<a name="PostgreSQL_trusted_language_extension-requirements"></a>

TLE 개발 키트를 설정하고 사용하기 위한 요구 사항은 다음과 같습니다.
+ ** Aurora PostgreSQL 버전 ** – 신뢰할 수 있는 언어 확장은 Aurora PostgreSQL 버전 14.5 이상 버전에서만 지원됩니다.
  + Aurora PostgreSQL DB 클러스터,를 업그레이드해야 하는 경우, [Amazon Aurora PostgreSQL DB 클러스터 업그레이드](USER_UpgradeDBInstance.PostgreSQL.md) 를 참조하세요.
  + PostgreSQL을 실행하는 Aurora DB 클러스터 가 아직 없는 경우 새로 생성할 수 있습니다. 자세한 내용은 [Aurora PostgreSQL DB 클러스터 생성 및 연결](CHAP_GettingStartedAurora.CreatingConnecting.AuroraPostgreSQL.md) 섹션을 참조하세요. 
+ **`rds_superuser` 권한 필요** - `pg_tle` 확장을 설정하고 구성하려면 데이터베이스 사용자 역할에 `rds_superuser` 역할의 권한이 있어야 합니다. 기본적으로 이 역할은 Aurora PostgreSQL DB 클러스터를 생성한 `postgres` 사용자에게 부여됩니다. 
+ **사용자 지정 DB 파라미터 그룹 필요** - Aurora PostgreSQL DB 클러스터는 사용자 지정 DB 파라미터 그룹을 사용하여 구성해야 합니다. 사용자 지정 DB 파라미터 그룹은 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 사용합니다.
  + Aurora PostgreSQL DB 클러스터 가 사용자 지정 DB 파라미터 그룹을 사용하여 구성되지 않은 경우, 파라미터 그룹을 하나 생성하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결해야 합니다. 단계에 대한 간략한 요약은 [사용자 지정 DB 파라미터 그룹 생성 및 적용](#PostgreSQL_trusted_language_extension-requirements-create-custom-params) 섹션을 참조하세요.
  + Aurora PostgreSQL DB 클러스터 가 이미 사용자 지정 DB 파라미터 그룹을 사용하여 구성되어 있는 경우 신뢰할 수 있는 언어 확장을 설정할 수 있습니다. 자세한 내용은 [Aurora PostgreSQL DB 클러스터에서 신뢰할 수 있는 언어 확장 설정](PostgreSQL_trusted_language_extension-setting-up.md)을 참조하세요.

## 사용자 지정 DB 파라미터 그룹 생성 및 적용
<a name="PostgreSQL_trusted_language_extension-requirements-create-custom-params"></a>

다음 단계를 사용하여 사용자 지정 DB 파라미터 그룹을 생성하고 이를 사용하도록 Aurora PostgreSQL DB 클러스터를 구성합니다.

### 콘솔
<a name="PostgreSQL_trusted_language_extension-requirements-custom-parameters.CON"></a>

**사용자 지정 DB 파라미터 그룹을 생성하고 Aurora PostgreSQL DB 클러스터 에 사용하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. Amazon RDS 메뉴에서 Parameter groups(파라미터 그룹)를 선택합니다.

1. **Create parameter group**(파라미터 그룹 생성)을 선택합니다.

1. **Parameter group details**(파라미터 그룹 세부 정보) 페이지에서 다음 정보를 입력합니다.
   + **Parameter group family**(파라미터 그룹 패밀리)에서 aurora-postgresql14 를 선택합니다.
   + **Type**(유형)에서 DB Parameter Group을 선택합니다.
   + **Group name**(그룹 이름)에서 작업 컨텍스트에서 의미 있는 파라미터 그룹 이름을 지정합니다.
   + **Description**(설명)에 다른 팀원이 쉽게 찾을 수 있도록 유용한 설명을 입력합니다.

1. **Create**(생성)를 선택합니다. 사용자 지정 DB 파라미터 그룹이 AWS 리전에 생성됩니다. 이제 다음 단계에 따라 파라미터 그룹을 사용하도록 Aurora PostgreSQL DB 클러스터를 수정할 수 있습니다.

1. Amazon RDS 메뉴에서 **Databases**(데이터베이스)를 선택합니다.

1. 나열된 항목 중에서 TLE와 함께 사용할 Aurora PostgreSQL DB 클러스터를 선택한 다음 **Modify**(수정)를 선택합니다.

1. Modify DB Cluster settings(DB 클러스터 설정 수정) 페이지에서 **데이터베이스 옵션**을 찾은 다음 선택기를 사용하여 사용자 지정 DB 파라미터 그룹을 선택합니다.  

1. **Continue**(계속)를 선택하여 변경 내용을 저장합니다.

1. **Apply immediately**(즉시 적용)를 선택하면 TLE를 사용하도록 Aurora PostgreSQL DB 클러스터를 계속 설정할 수 있습니다.

신뢰할 수 있는 언어 확장을 사용하도록 시스템을 계속 설정하려면 [Aurora PostgreSQL DB 클러스터에서 신뢰할 수 있는 언어 확장 설정](PostgreSQL_trusted_language_extension-setting-up.md) 섹션을 참조하세요.

DB 클러스터 및 DB 파라미터 그룹 작업에 대한 자세한 내용은 [Amazon Aurora DB 클러스터의 DB 클러스터 파라미터 그룹](USER_WorkingWithDBClusterParamGroups.md) 섹션을 참조하세요. 

### AWS CLI
<a name="PostgreSQL_trusted_language_extension-requirements-custom-parameters-CLI"></a>

기본 AWS 리전으로 AWS CLI를 구성하면 CLI 명령을 사용할 때 `--region` 인수를 지정하지 않아도 됩니다. 자세한 내용은 *AWS Command Line Interface 사용 설명서*의 [구성 기초](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) 섹션을 참조하세요.

**사용자 지정 DB 파라미터 그룹을 생성하고 Aurora PostgreSQL DB 클러스터 에 사용하는 방법**

1. [create-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-parameter-group.html) AWS CLI 명령을 사용하여 사용자 AWS 리전의 aurora-postgresql14 를 기반으로 사용자 지정 DB 파라미터 그룹을 만들 수 있습니다. 이 단계에서는 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 적용할 DB 파라미터 그룹을 생성합니다. 

   대상 LinuxmacOS, 또는Unix:

   ```
   aws rds create-db-parameter-group \
     --region aws-region \
     --db-parameter-group-name custom-params-for-pg-tle \
     --db-parameter-group-family aurora-postgresql14 \
     --description "My custom DB parameter group for Trusted Language Extensions"
   ```

   Windows의 경우:

   ```
   aws rds create-db-parameter-group ^
     --region aws-region ^
     --db-parameter-group-name custom-params-for-pg-tle ^
     --db-parameter-group-family aurora-postgresql14 ^
     --description "My custom DB parameter group for Trusted Language Extensions"
   ```

   사용자 지정 DB 파라미터 그룹은 AWS 리전에서 사용할 수 있으므로 파라미터 그룹을 사용하도록 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 수정할 수 있습니다.

1. [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) AWS CLI 명령을 사용하여 사용자 지정 DB 파라미터 그룹을 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 적용합니다. 이 명령은 활성 인스턴스를 즉시 재부팅합니다.

   대상 LinuxmacOS, 또는Unix:

   ```
   aws rds modify-db-instance \
     --region aws-region \
     --db-instance-identifier your-writer-instance-name \
     --db-parameter-group-name custom-params-for-pg-tle \
     --apply-immediately
   ```

   Windows의 경우:

   ```
   aws rds modify-db-instance ^
     --region aws-region ^
     --db-instance-identifier your-writer-instance-name ^
     --db-parameter-group-name custom-params-for-pg-tle ^
     --apply-immediately
   ```

신뢰할 수 있는 언어 확장을 사용하도록 시스템을 계속 설정하려면 [Aurora PostgreSQL DB 클러스터에서 신뢰할 수 있는 언어 확장 설정](PostgreSQL_trusted_language_extension-setting-up.md) 섹션을 참조하세요.

자세한 내용은 [Amazon Aurora DB 인스턴스용 DB 파라미터 그룹](USER_WorkingWithDBInstanceParamGroups.md) 단원을 참조하세요.

# Aurora PostgreSQL DB 클러스터에서 신뢰할 수 있는 언어 확장 설정
<a name="PostgreSQL_trusted_language_extension-setting-up"></a>

다음 단계에서는 사용자의 Aurora PostgreSQL DB 클러스터 가 사용자 지정 DB 클러스터 파라미터 그룹에 연결되어 있다고 가정합니다. 이러한 단계에 AWS Management Console 또는 AWS CLI를 사용할 수 있습니다.

Aurora PostgreSQL DB 클러스터 에 신뢰할 수 있는 언어 확장을 설정하는 경우 특정 데이터베이스 권한이 있는 데이터베이스 사용자가 사용할 수 있도록 특정 데이터베이스에 설치합니다.

## 콘솔
<a name="PostgreSQL_trusted_language_extension-setting-up.CON"></a>

**신뢰할 수 있는 언어 확장 설정 방법**

`rds_superuser` 그룹(역할)의 구성원인 계정을 사용하여 다음 단계를 수행합니다.

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 선택합니다.

1. Aurora PostgreSQL DB 클러스터 라이터 인스턴스의 **구성** 탭을 엽니다. 인스턴스 세부 정보 중에서 **파라미터 그룹** 링크를 찾습니다.

1. 링크를 선택하여 Aurora PostgreSQL DB 클러스터와 연결된 사용자 지정 파라미터를 엽니다. 

1. **파라미터** 검색 필드에 `shared_pre`를 입력하여 `shared_preload_libraries` 파라미터를 찾습니다.

1. **파라미터 편집**을 선택하여 속성 값에 액세스합니다.

1. **값** 필드의 목록에 `pg_tle`를 추가합니다. 쉼표를 사용하여 값 목록에서 항목을 구분합니다.  
![\[pg_tle가 추가된 shared_preload_libraries 파라미터 이미지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg_rpg_shared_preload_pg_tle.png)

1. Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하여 `shared_preload_libraries` 파라미터 변경 사항이 적용되도록 합니다.

1. 인스턴스를 사용할 수 있게 되면 `pg_tle`가 초기화되었는지 확인합니다. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결하고 다음 명령을 실행합니다.

   ```
   SHOW shared_preload_libraries;
   shared_preload_libraries 
   --------------------------
   rdsutils,pg_tle
   (1 row)
   ```

1. `pg_tle` 확장이 초기화되었으므로 이제 확장을 생성할 수 있습니다.

   ```
   CREATE EXTENSION pg_tle;
   ```

   다음 `psql` 메타 명령을 사용하여 확장이 설치되었는지 확인할 수 있습니다.

   ```
   labdb=> \dx
                            List of installed extensions
     Name   | Version |   Schema   |                Description
   ---------+---------+------------+--------------------------------------------
    pg_tle  | 1.0.1   | pgtle      | Trusted-Language Extensions for PostgreSQL
    plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
   ```

1. PostgreSQL DB 인스턴스를 설정할 때 Aurora PostgreSQL DB 클러스터를 위해 만든 기본 사용자 이름에 `pgtle_admin` 역할을 부여합니다. 기본값을 수락했다면 `postgres`입니다.

   ```
   labdb=> GRANT pgtle_admin TO postgres;
   GRANT ROLE
   ```

   다음 예제와 같이 `psql` 메타 명령을 사용하여 역할이 부여되었는지 확인할 수 있습니다. `pgtle_admin` 및`postgres` 역할만 출력에 표시됩니다. 자세한 내용은 [PostgreSQL 역할 및 권한 이해](Appendix.PostgreSQL.CommonDBATasks.Roles.md). 섹션을 참조하세요.

   ```
   labdb=> \du
                             List of roles
       Role name    |           Attributes            |               Member of
   -----------------+---------------------------------+-----------------------------------
   pgtle_admin     | Cannot login                     | {}
   postgres        | Create role, Create DB          +| {rds_superuser,pgtle_admin}
                   | Password valid until infinity    |...
   ```

1. `\q` 메타 명령을 사용하여`psql` 세션을 닫습니다.

   ```
   \q
   ```

TLE 확장 생성을 시작하려면 [예: SQL을 사용하여 신뢰할 수 있는 언어 확장 생성](PostgreSQL_trusted_language_extension-creating-TLE-extensions.md#PostgreSQL_trusted_language_extension-simple-example) 섹션을 참조하세요.

## AWS CLI
<a name="PostgreSQL_trusted_language_extension-setting-up-CLI"></a>

기본 AWS 리전으로 AWS CLI를 구성하면 CLI 명령을 사용할 때 `--region` 인수를 지정하지 않아도 됩니다. 자세한 내용은 *AWS Command Line Interface 사용 설명서*의 [구성 기초](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) 섹션을 참조하세요.

**신뢰할 수 있는 언어 확장 설정 방법**

1. [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) AWS CLI 명령을 사용하여 `pg_tle`를 `shared_preload_libraries` 파라미터에 추가합니다.

   ```
   aws rds modify-db-parameter-group \
      --db-parameter-group-name custom-param-group-name \
      --parameters "ParameterName=shared_preload_libraries,ParameterValue=pg_tle,ApplyMethod=pending-reboot" \
      --region aws-region
   ```

1. [reboot-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/reboot-db-instance) AWS CLI 명령을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 재부팅하고 `pg_tle` 라이브러리를 초기화합니다.

   ```
   aws rds reboot-db-instance \
       --db-instance-identifier writer-instance \
       --region aws-region
   ```

1. 인스턴스를 사용할 수 있게 되면 `pg_tle`가 초기화되었는지 확인할 수 있습니다. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결하고 다음 명령을 실행합니다.

   ```
   SHOW shared_preload_libraries;
   shared_preload_libraries 
   --------------------------
   rdsutils,pg_tle
   (1 row)
   ```

   `pg_tle`이 초기화되었으므로 이제 확장을 생성할 수 있습니다.

   ```
   CREATE EXTENSION pg_tle;
   ```

1. PostgreSQL DB 인스턴스를 설정할 때 Aurora PostgreSQL DB 클러스터를 위해 만든 기본 사용자 이름에 `pgtle_admin` 역할을 부여합니다. 기본값을 수락했다면 `postgres`입니다.

   ```
   GRANT pgtle_admin TO postgres;
   GRANT ROLE
   ```

1. 다음과 같이 `psql` 세션을 닫습니다.

   ```
   labdb=> \q
   ```

TLE 확장 생성을 시작하려면 [예: SQL을 사용하여 신뢰할 수 있는 언어 확장 생성](PostgreSQL_trusted_language_extension-creating-TLE-extensions.md#PostgreSQL_trusted_language_extension-simple-example) 섹션을 참조하세요.

# PostgreSQL용 신뢰할 수 있는 언어 확장 개요
<a name="PostgreSQL_trusted_language_extension.overview"></a>

PostgreSQL용 신뢰할 수 있는 언어 확장은 다른 PostgreSQL 확장을 설정하는 것과 동일한 방식으로 Aurora PostgreSQL DB 클러스터에 설치하는 PostgreSQL 확장입니다. PgAdmin 클라이언트 도구에 있는 예제 데이터베이스의 다음 이미지에서 `pg_tle` 확장을 구성하는 일부 구성 요소를 볼 수 있습니다.

![\[TLE 개발 키트를 구성하는 일부 구성 요소를 보여 주는 이미지.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-pg_tle-installed-view-in-pgAdmin.png)


다음 세부 정보를 볼 수 있습니다.

1. PostgreSQL용 신뢰할 수 있는 언어 확장(TLE)은 `pg_tle` 확장으로 패키징된 개발 키트입니다. 따라서 `pg_tle`는 설치되는 데이터베이스의 사용 가능한 확장에 추가됩니다.

1. TLE에는 자체 스키마 `pgtle`이 있습니다. 이 스키마에는 생성한 확장을 설치하고 관리하는 도우미 함수(3)가 포함되어 있습니다.

1. TLE는 확장 설치, 등록, 관리를 위한 12개 이상의 도우미 함수를 제공합니다. 이러한 함수에 대한 자세한 내용은 [PostgreSQL용 신뢰할 수 있는 언어 확장에 대한 함수 참조](PostgreSQL_trusted_language_extension-functions-reference.md) 섹션을 참조하세요.

`pg_tle` 확장의 기타 구성 요소에는 다음이 포함됩니다.
+ **`pgtle_admin` 역할** - `pg_tle` 확장이 설치될 때 `pgtle_admin` 역할이 생성됩니다. 이 역할은 권한이 부여되므로 그에 따라 취급되어야 합니다. 데이터베이스 사용자에게 `pgtle_admin` 역할을 부여할 때는 *최소 권한* 원칙을 따르는 것이 좋습니다. 즉, 새 TLE 확장을 생성, 설치, 관리할 수 있는 데이터베이스 사용자에게만 `pgtle_admin` 역할을 부여합니다(예: `postgres`).
+ **`pgtle.feature_info` 테이블** - `pgtle.feature_info` 테이블은 TLE, 후크, TLE와 후크가 사용하는 사용자 지정 저장 프로시저 및 함수에 대한 정보가 포함된 보호된 테이블입니다. `pgtle_admin` 권한이 있는 경우 다음과 같은 신뢰할 수 있는 언어 확장 함수를 사용하여 테이블에서 해당 정보를 추가하고 업데이트할 수 있습니다.
  + [pgtle.register\$1feature](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.register_feature)
  + [pgtle.register\$1feature\$1if\$1not\$1exists](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.register_feature_if_not_exists)
  + [pgtle.unregister\$1feature](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.unregister_feature)
  + [pgtle.unregister\$1feature\$1if\$1exists](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.unregister_feature_if_exists)

# Aurora PostgreSQL용 TLE 확장 생성
<a name="PostgreSQL_trusted_language_extension-creating-TLE-extensions"></a>

`pg_tle` 확장이 설치된 Aurora PostgreSQL DB 클러스터 에서 TLE를 사용하여 생성한 확장을 설치할 수 있습니다. `pg_tle` 확장은 설치된 PostgreSQL 데이터베이스로 범위가 지정됩니다. TLE를 사용하여 생성한 확장은 동일한 데이터베이스로 범위가 지정됩니다.

다양한 `pgtle` 함수를 사용하여 TLE 확장을 구성하는 코드를 설치하세요. 다음과 같은 신뢰할 수 있는 언어 확장 함수는 모두 `pgtle_admin` 역할이 필요합니다.
+ [pgtle.install\$1extension](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.install_extension)
+ [pgtle.install\$1update\$1path](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.install_update_path)
+ [pgtle.register\$1feature](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.register_feature)
+ [pgtle.register\$1feature\$1if\$1not\$1exists](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.register_feature_if_not_exists)
+ [pgtle.set\$1default\$1version](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.set_default_version)
+ [pgtle.uninstall\$1extension(name)](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.uninstall_extension-name)
+ [pgtle.uninstall\$1extension(name, version)](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.uninstall_extension-name-version)
+ [pgtle.uninstall\$1extension\$1if\$1exists](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.uninstall_extension_if_exists)
+ [pgtle.uninstall\$1update\$1path](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.uninstall_update_path)
+ [pgtle.uninstall\$1update\$1path\$1if\$1exists](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.uninstall_update_path_if_exists)
+ [pgtle.unregister\$1feature](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.unregister_feature)
+ [pgtle.unregister\$1feature\$1if\$1exists](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.unregister_feature_if_exists)

## 예: SQL을 사용하여 신뢰할 수 있는 언어 확장 생성
<a name="PostgreSQL_trusted_language_extension-simple-example"></a>

다음 예제는 다양한 공식을 사용하여 거리를 계산하는 몇 가지 SQL 함수가 포함된 `pg_distance`라는 TLE 확장을 생성하는 방법을 보여 줍니다. 목록에서 맨해튼 거리를 계산하는 함수와 유클리드 거리를 계산하는 함수를 찾을 수 있습니다. 이러한 공식의 차이에 대한 자세한 내용은 Wikipedia의 [Taxicab geometry](https://en.wikipedia.org/wiki/Taxicab_geometry)와 [Euclidean geometry](https://en.wikipedia.org/wiki/Euclidean_geometry)를 참조하세요.

[Aurora PostgreSQL DB 클러스터에서 신뢰할 수 있는 언어 확장 설정](PostgreSQL_trusted_language_extension-setting-up.md)에 설명된 대로 `pg_tle` 확장을 설정한 경우 자체 Aurora PostgreSQL DB 클러스터 에서 이 예제를 사용할 수 있습니다.

**참고**  
이 절차를 수행하려면 `pgtle_admin` 역할의 권한이 있어야 합니다.

**예제 TLE 확장을 생성하는 방법**

다음 단계에서는 `labdb`라는 예제 데이터베이스를 사용합니다. 이 데이터베이스는 `postgres` 기본 사용자가 소유합니다. `postgres` 역할에는 `pgtle_admin` 역할의 권한도 있습니다.

1. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결합니다. 

   ```
   psql --host=db-instance-123456789012.aws-region.rds.amazonaws.com
   --port=5432 --username=postgres --password --dbname=labdb
   ```

1. 다음 코드를 복사하고 `psql` 세션 콘솔에 붙여넣어 이름이 `pg_distance`인 TLE 확장을 생성합니다.

   ```
   SELECT pgtle.install_extension
   (
    'pg_distance',
    '0.1',
     'Distance functions for two points',
   $_pg_tle_$
       CREATE FUNCTION dist(x1 float8, y1 float8, x2 float8, y2 float8, norm int)
       RETURNS float8
       AS $$
         SELECT (abs(x2 - x1) ^ norm + abs(y2 - y1) ^ norm) ^ (1::float8 / norm);
       $$ LANGUAGE SQL;
   
       CREATE FUNCTION manhattan_dist(x1 float8, y1 float8, x2 float8, y2 float8)
       RETURNS float8
       AS $$
         SELECT dist(x1, y1, x2, y2, 1);
       $$ LANGUAGE SQL;
   
       CREATE FUNCTION euclidean_dist(x1 float8, y1 float8, x2 float8, y2 float8)
       RETURNS float8
       AS $$
         SELECT dist(x1, y1, x2, y2, 2);
       $$ LANGUAGE SQL;
   $_pg_tle_$
   );
   ```

   출력은 다음과 같습니다.

   ```
   install_extension
   ---------------
    t
   (1 row)
   ```

   `pg_distance` 확장을 구성하는 아티팩트가 이제 데이터베이스에 설치되었습니다. 이러한 아티팩트에는 제어 파일과 확장 코드가 포함되며, 이러한 항목은 `CREATE EXTENSION` 명령을 사용하여 확장을 생성하려면 있어야 하는 항목입니다. 즉, 데이터베이스 사용자가 확장의 함수를 사용할 수 있도록 하려면 확장을 생성해야 합니다.

1. 확장을 생성하려면 다른 확장과 마찬가지로 `CREATE EXTENSION` 명령을 사용하세요. 다른 확장과 마찬가지로 데이터베이스 사용자는 데이터베이스에서 `CREATE` 권한이 있어야 합니다.

   ```
   CREATE EXTENSION pg_distance;
   ```

1. `pg_distance` TLE 확장을 테스트하려면 TLE 확장을 사용하여 네 점 사이의 [맨해튼 거리](https://en.wikipedia.org/wiki/Taxicab_geometry)를 계산하면 됩니다.

   ```
   labdb=> SELECT manhattan_dist(1, 1, 5, 5);
   8
   ```

   동일한 점 집합 간의 [유클리드 거리](https://en.wikipedia.org/wiki/Euclidean_geometry)를 계산하려면 다음을 사용하면 됩니다.

   ```
   labdb=> SELECT euclidean_dist(1, 1, 5, 5);
   5.656854249492381
   ```

`pg_distance` 확장은 데이터베이스에 함수를 로드하여 데이터베이스에서 권한이 있는 모든 사용자가 사용할 수 있도록 합니다.

## TLE 확장 수정
<a name="PostgreSQL_trusted_language_extension-simple-example.modify"></a>

이 TLE 확장에 패키징된 함수의 쿼리 성능을 향상시키려면 다음 두 PostgreSQL 속성을 해당 사양에 추가합니다.
+ `IMMUTABLE` - `IMMUTABLE` 속성은 쿼리 최적화 프로그램이 최적화를 통해 쿼리 응답 시간을 개선할 수 있도록 합니다. 자세한 내용은 PostgreSQL 설명서에서 [Function Volatility Categories](https://www.postgresql.org/docs/current/xfunc-volatility.html)를 참조하세요.
+ `PARALLEL SAFE` - `PARALLEL SAFE` 속성은 PostgreSQL이 병렬 모드에서 함수를 실행할 수 있도록 하는 또 다른 속성입니다. 자세한 내용은 PostgreSQL 설명서에서 [CREATE FUNCTION](https://www.postgresql.org/docs/current/sql-createfunction.html)을 참조하십시오.

다음 예제에서는 `pgtle.install_update_path` 함수를 사용하여 각 함수에 이러한 속성을 추가하여 `pg_distance` TLE 확장의 `0.2` 버전을 생성하는 방법을 확인할 수 있습니다. 이 함수에 대한 자세한 내용은 [pgtle.install\$1update\$1path](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.install_update_path) 단원을 참조하세요. 이 작업을 수행하려면 `pgtle_admin` 역할이 있어야 합니다.

**기존 TLE 확장을 업데이트하고 기본 버전을 지정하는 방법**

1. `psql` 또는 pgAdmin 같은 다른 클라이언트 도구를 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스 에 연결합니다.

   ```
   psql --host=db-instance-123456789012.aws-region.rds.amazonaws.com
   --port=5432 --username=postgres --password --dbname=labdb
   ```

1. 다음 코드를 복사하고 `psql` 세션 콘솔에 붙여넣어 기존 TLE 확장을 수정합니다.

   ```
   SELECT pgtle.install_update_path
   (
    'pg_distance',
    '0.1',
    '0.2',
   $_pg_tle_$
       CREATE OR REPLACE FUNCTION dist(x1 float8, y1 float8, x2 float8, y2 float8, norm int)
       RETURNS float8
       AS $$
         SELECT (abs(x2 - x1) ^ norm + abs(y2 - y1) ^ norm) ^ (1::float8 / norm);
       $$ LANGUAGE SQL IMMUTABLE PARALLEL SAFE;
   
       CREATE OR REPLACE FUNCTION manhattan_dist(x1 float8, y1 float8, x2 float8, y2 float8)
       RETURNS float8
       AS $$
         SELECT dist(x1, y1, x2, y2, 1);
       $$ LANGUAGE SQL IMMUTABLE PARALLEL SAFE;
   
       CREATE OR REPLACE FUNCTION euclidean_dist(x1 float8, y1 float8, x2 float8, y2 float8)
       RETURNS float8
       AS $$
         SELECT dist(x1, y1, x2, y2, 2);
       $$ LANGUAGE SQL IMMUTABLE PARALLEL SAFE;
   $_pg_tle_$
   );
   ```

   다음과 비슷한 응답이 나타납니다.

   ```
   install_update_path
   ---------------------
    t
   (1 row)
   ```

   이 확장 버전을 기본 버전으로 지정하면 데이터베이스 사용자가 데이터베이스에서 확장을 생성 또는 업데이트할 때 버전을 지정하지 않아도 됩니다.

1. TLE 확장의 수정된 버전(버전 0.2)을 기본 버전으로 지정하려면 다음 예제와 같이 `pgtle.set_default_version` 함수를 사용하세요.

   ```
   SELECT pgtle.set_default_version('pg_distance', '0.2');
   ```

   이 함수에 대한 자세한 내용은 [pgtle.set\$1default\$1version](PostgreSQL_trusted_language_extension-functions-reference.md#pgtle.set_default_version) 단원을 참조하세요.

1. 코드가 준비되면 다음과 같이 `ALTER EXTENSION ... UPDATE` 명령을 사용하여 일반적인 방법으로 설치된 TLE 확장을 업데이트할 수 있습니다.

   ```
   ALTER EXTENSION pg_distance UPDATE;
   ```

# 데이터베이스에서 TLE 확장 삭제
<a name="PostgreSQL_trusted_language_extension-creating-TLE-extensions.dropping-TLEs"></a>

다른 PostgreSQL 확장과 동일한 방식으로 `DROP EXTENSION` 명령을 사용하여 TLE 확장을 삭제할 수 있습니다. 확장을 삭제해도 확장을 구성하는 설치 파일은 제거되지 않으므로 사용자가 확장을 다시 생성할 수 있습니다. 확장 및 해당 설치 파일을 제거하려면 다음 2단계 프로세스를 수행하세요.

**TLE 확장을 삭제하고 해당 설치 파일을 제거하는 방법**

1. `psql` 또는 다른 클라이언트 도구를 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결합니다.

   ```
   psql --host=cluster-instance-1.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=dbname
   ```

1. 다른 PostgreSQL 확장과 같은 방법으로 확장을 삭제합니다.

   ```
   DROP EXTENSION your-TLE-extension
   ```

   예를 들어 [예: SQL을 사용하여 신뢰할 수 있는 언어 확장 생성](PostgreSQL_trusted_language_extension-creating-TLE-extensions.md#PostgreSQL_trusted_language_extension-simple-example)에 설명된 대로 `pg_distance` 확장을 생성한 경우 다음과 같이 확장을 삭제할 수 있습니다.

   ```
   DROP EXTENSION pg_distance;
   ```

   다음과 같이 확장이 삭제되었음을 확인하는 출력이 표시됩니다.

   ```
   DROP EXTENSION
   ```

   이 시점에서 확장은 더 이상 데이터베이스에서 활성 상태가 아닙니다. 그러나 설치 파일과 제어 파일은 여전히 데이터베이스에서 사용할 수 있으므로 데이터베이스 사용자는 원하는 경우 확장을 다시 생성할 수 있습니다.
   + 데이터베이스 사용자가 TLE 확장자를 생성할 수 있도록 확장 파일을 그대로 두려면 여기서 멈추면 됩니다.
   + 확장을 구성하는 모든 파일을 제거하려면 다음 단계를 계속합니다.

1. 확장의 모든 설치 파일을 제거하려면 `pgtle.uninstall_extension` 함수를 사용하세요. 이 함수는 확장의 모든 코드와 제어 파일을 제거합니다.

   ```
   SELECT pgtle.uninstall_extension('your-tle-extension-name');
   ```

   예를 들어 모든 `pg_distance` 설치 파일을 제거하려면 다음 명령을 사용합니다.

   ```
   SELECT pgtle.uninstall_extension('pg_distance');
    uninstall_extension
   ---------------------
    t
   (1 row)
   ```

# PostgreSQL용 신뢰할 수 있는 언어 확장 제거
<a name="PostgreSQL_trusted_language_extension-uninstalling-pg_tle-devkit"></a>

더 이상 TLE를 사용하여 TLE 확장을 직접 생성하지 않으려면 `pg_tle` 확장을 삭제하고 모든 아티팩트를 제거하면 됩니다. 이 작업에는 데이터베이스의 모든 TLE 확장 삭제 및 `pgtle` 스키마 삭제가 포함됩니다.

**데이터베이스에서 `pg_tle` 확장 및 해당 스키마를 삭제하는 방법**

1. `psql` 또는 다른 클라이언트 도구를 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결합니다.

   ```
   psql --host=cluster-instance-1.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password --dbname=dbname
   ```

1. 데이터베이스에서 `pg_tle` 확장을 삭제합니다. 데이터베이스에서 자체 TLE 확장이 아직 실행 중인 경우 해당 확장도 삭제해야 합니다. 이를 위해 다음과 같이 `CASCADE` 키워드를 사용할 수 있습니다.

   ```
   DROP EXTENSION pg_tle CASCADE;
   ```

   `pg_tle` 확장이 데이터베이스에서 아직 활성 상태가 아닌 경우 `CASCADE` 키워드를 사용할 필요가 없습니다.

1. `pgtle` 스키마를 삭제합니다. 이 작업을 수행하면 데이터베이스에서 모든 관리 함수가 제거됩니다.

   ```
   DROP SCHEMA pgtle CASCADE;
   ```

   이 명령은 프로세스가 완료되면 다음을 반환합니다.

   ```
   DROP SCHEMA
   ```

   `pg_tle` 확장, 해당 스키마와 함수, 모든 아티팩트가 제거됩니다. TLE를 사용하여 새 확장을 생성하려면 설정 프로세스를 다시 진행하세요. 자세한 내용은 [Aurora PostgreSQL DB 클러스터에서 신뢰할 수 있는 언어 확장 설정](PostgreSQL_trusted_language_extension-setting-up.md) 단원을 참조하십시오.

# TLE 확장과 함께 PostgreSQL 후크 사용
<a name="PostgreSQL_trusted_language_extension.overview.tles-and-hooks"></a>

*후크*는 PostgreSQL에서 사용할 수 있는 콜백 메커니즘으로, 개발자가 일반 데이터베이스 작업 중에 사용자 지정 함수 또는 기타 루틴을 호출할 수 있습니다. TLE 개발 키트는 PostgreSQL 후크를 지원하므로 런타임에 사용자 지정 함수를 PostgreSQL 동작과 통합할 수 있습니다. 예를 들어 후크를 사용하여 인증 프로세스를 사용자 지정 코드와 연결하거나 특정 요구 사항에 맞게 쿼리 계획 및 실행 프로세스를 수정할 수 있습니다.

TLE 확장은 후크를 사용할 수 있습니다. 후크의 범위가 전역적이면 모든 데이터베이스에 적용됩니다. 따라서 TLE 확장이 전역 후크를 사용하는 경우 사용자가 액세스할 수 있는 모든 데이터베이스에 TLE 확장을 생성해야 합니다.

`pg_tle` 확장을 사용하여 신뢰할 수 있는 언어 확장을 직접 구축하는 경우 SQL API에서 사용 가능한 후크를 사용하여 확장의 함수를 구축할 수 있습니다. 모든 후크는 `pg_tle`에 등록해야 합니다. 일부 후크의 경우 다양한 구성 파라미터를 설정해야 할 수도 있습니다. 예를 들어 `passcode` 확인 후크는 켜기, 해제 또는 필수로 설정할 수 있습니다. 사용 가능한 `pg_tle` 후크의 특정 요구 사항에 대한 자세한 내용은 [PostgreSQL용 신뢰할 수 있는 언어 확장에 대한 후크 참조](PostgreSQL_trusted_language_extension-hooks-reference.md) 섹션을 참조하세요.

## 예: PostgreSQL 후크를 사용하는 확장 생성
<a name="PostgreSQL_trusted_language_extension-example-hook"></a>

이 섹션에서 설명하는 예제에서는 PostgreSQL 후크를 사용하여 특정 SQL 작업 중에 제공된 암호를 확인하고 데이터베이스 사용자가 `password_check.bad_passwords` 테이블에 포함된 암호로 암호를 설정하지 못하도록 합니다. 이 테이블에는 가장 일반적으로 사용되지만 쉽게 깰 수 있는 상위 10개 암호가 나와 있습니다.

이 예제를 Aurora PostgreSQL DB 클러스터 에서 설정하려면 신뢰할 수 있는 언어 확장이 이미 설치되어 있어야 합니다. 자세한 내용은 [Aurora PostgreSQL DB 클러스터에서 신뢰할 수 있는 언어 확장 설정](PostgreSQL_trusted_language_extension-setting-up.md)을 참조하세요.

**암호 확인 후크 예제를 설정하는 방법**

1. `psql`을 사용하여 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 연결합니다. 

   ```
   psql --host=db-instance-123456789012.aws-region.rds.amazonaws.com
   --port=5432 --username=postgres --password --dbname=labdb
   ```

1. [암호 확인 후크 코드 목록](#PostgreSQL_trusted_language_extension-example-hook_code_listing)에서 코드를 복사하여 데이터베이스에 붙여넣습니다.

   ```
   SELECT pgtle.install_extension (
     'my_password_check_rules',
     '1.0',
     'Do not let users use the 10 most commonly used passwords',
   $_pgtle_$
     CREATE SCHEMA password_check;
     REVOKE ALL ON SCHEMA password_check FROM PUBLIC;
     GRANT USAGE ON SCHEMA password_check TO PUBLIC;
   
     CREATE TABLE password_check.bad_passwords (plaintext) AS
     VALUES
       ('123456'),
       ('password'),
       ('12345678'),
       ('qwerty'),
       ('123456789'),
       ('12345'),
       ('1234'),
       ('111111'),
       ('1234567'),
       ('dragon');
     CREATE UNIQUE INDEX ON password_check.bad_passwords (plaintext);
   
     CREATE FUNCTION password_check.passcheck_hook(username text, password text, password_type pgtle.password_types, valid_until timestamptz, valid_null boolean)
     RETURNS void AS $$
       DECLARE
         invalid bool := false;
       BEGIN
         IF password_type = 'PASSWORD_TYPE_MD5' THEN
           SELECT EXISTS(
             SELECT 1
             FROM password_check.bad_passwords bp
             WHERE ('md5' || md5(bp.plaintext || username)) = password
           ) INTO invalid;
           IF invalid THEN
             RAISE EXCEPTION 'Cannot use passwords from the common password dictionary';
           END IF;
         ELSIF password_type = 'PASSWORD_TYPE_PLAINTEXT' THEN
           SELECT EXISTS(
             SELECT 1
             FROM password_check.bad_passwords bp
             WHERE bp.plaintext = password
           ) INTO invalid;
           IF invalid THEN
             RAISE EXCEPTION 'Cannot use passwords from the common password dictionary';
           END IF;
         END IF;
       END
     $$ LANGUAGE plpgsql SECURITY DEFINER;
   
     GRANT EXECUTE ON FUNCTION password_check.passcheck_hook TO PUBLIC;
   
     SELECT pgtle.register_feature('password_check.passcheck_hook', 'passcheck');
   $_pgtle_$
   );
   ```

   확장이 데이터베이스에 로드되면 다음과 같은 출력이 표시됩니다.

   ```
    install_extension
   -------------------
    t
   (1 row)
   ```

1. 데이터베이스에 연결되어 있는 동안 확장을 생성할 수 있습니다.

   ```
   CREATE EXTENSION my_password_check_rules;
   ```

1. 다음 `psql` 메타 명령을 사용하여 데이터베이스에 확장이 생성되었는지 확인할 수 있습니다.

   ```
   \dx
                           List of installed extensions
             Name           | Version |   Schema   |                         Description
   -------------------------+---------+------------+-------------------------------------------------------------
    my_password_check_rules | 1.0     | public     | Prevent use of any of the top-ten most common bad passwords
    pg_tle                  | 1.0.1   | pgtle      | Trusted-Language Extensions for PostgreSQL
    plpgsql                 | 1.0     | pg_catalog | PL/pgSQL procedural language
   (3 rows)
   ```

1. AWS CLI로 작업할 다른 터미널 세션을 엽니다. 암호 확인 후크를 켜려면 사용자 지정 DB 파라미터 그룹을 수정해야 합니다. 이렇게 하려면 다음 예제에서와 같이 [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) CLI 명령을 사용합니다.

   ```
   aws rds modify-db-parameter-group \
       --region aws-region \
       --db-parameter-group-name your-custom-parameter-group \
       --parameters "ParameterName=pgtle.enable_password_check,ParameterValue=on,ApplyMethod=immediate"
   ```

   파라미터 그룹 설정 변경 사항이 적용되기까지 몇 분 정도 걸릴 수 있습니다. 하지만 이 파라미터는 동적이므로 설정을 적용하기 위해 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스 를 다시 시작할 필요는 없습니다.

1. `psql` 세션을 열고 데이터베이스를 쿼리하여 password\$1check 후크가 켜졌는지 확인합니다.

   ```
   labdb=> SHOW pgtle.enable_password_check;
   pgtle.enable_password_check
   -----------------------------
   on
   (1 row)
   ```

이제 password-check 후크가 활성 상태입니다. 다음 예제와 같이 새 역할을 생성하고 잘못된 암호 중 하나를 사용하여 이를 테스트할 수 있습니다.

```
CREATE ROLE test_role PASSWORD 'password';
ERROR:  Cannot use passwords from the common password dictionary
CONTEXT:  PL/pgSQL function password_check.passcheck_hook(text,text,pgtle.password_types,timestamp with time zone,boolean) line 21 at RAISE
SQL statement "SELECT password_check.passcheck_hook(
    $1::pg_catalog.text, 
    $2::pg_catalog.text, 
    $3::pgtle.password_types, 
    $4::pg_catalog.timestamptz, 
    $5::pg_catalog.bool)"
```

출력은 가독성을 위해 형식이 지정되었습니다.

다음 예제는 `pgsql` 대화형 메타 명령 `\password` 동작도 password\$1check 후크의 영향을 받는다는 것을 보여 줍니다.

```
postgres=> SET password_encryption TO 'md5';
SET
postgres=> \password
Enter new password for user "postgres":*****
Enter it again:*****
ERROR:  Cannot use passwords from the common password dictionary
CONTEXT:  PL/pgSQL function password_check.passcheck_hook(text,text,pgtle.password_types,timestamp with time zone,boolean) line 12 at RAISE
SQL statement "SELECT password_check.passcheck_hook($1::pg_catalog.text, $2::pg_catalog.text, $3::pgtle.password_types, $4::pg_catalog.timestamptz, $5::pg_catalog.bool)"
```

원하는 경우 이 TLE 확장을 삭제하고 소스 파일을 제거할 수 있습니다. 자세한 내용은 [데이터베이스에서 TLE 확장 삭제데이터베이스에서 TLE 확장 삭제](PostgreSQL_trusted_language_extension-creating-TLE-extensions.dropping-TLEs.md) 섹션을 참조하세요.

### 암호 확인 후크 코드 목록
<a name="PostgreSQL_trusted_language_extension-example-hook_code_listing"></a>

여기에 표시된 예제 코드는 `my_password_check_rules` TLE 확장의 사양을 정의합니다. 이 코드를 복사하여 데이터베이스에 붙여넣으면 `my_password_check_rules` 확장 코드가 데이터베이스에 로드되고 확장에서 사용할 수 있도록 `password_check` 후크가 등록됩니다.

```
SELECT pgtle.install_extension (
  'my_password_check_rules',
  '1.0',
  'Do not let users use the 10 most commonly used passwords',
$_pgtle_$
  CREATE SCHEMA password_check;
  REVOKE ALL ON SCHEMA password_check FROM PUBLIC;
  GRANT USAGE ON SCHEMA password_check TO PUBLIC;

  CREATE TABLE password_check.bad_passwords (plaintext) AS
  VALUES
    ('123456'),
    ('password'),
    ('12345678'),
    ('qwerty'),
    ('123456789'),
    ('12345'),
    ('1234'),
    ('111111'),
    ('1234567'),
    ('dragon');
  CREATE UNIQUE INDEX ON password_check.bad_passwords (plaintext);

  CREATE FUNCTION password_check.passcheck_hook(username text, password text, password_type pgtle.password_types, valid_until timestamptz, valid_null boolean)
  RETURNS void AS $$
    DECLARE
      invalid bool := false;
    BEGIN
      IF password_type = 'PASSWORD_TYPE_MD5' THEN
        SELECT EXISTS(
          SELECT 1
          FROM password_check.bad_passwords bp
          WHERE ('md5' || md5(bp.plaintext || username)) = password
        ) INTO invalid;
        IF invalid THEN
          RAISE EXCEPTION 'Cannot use passwords from the common password dictionary';
        END IF;
      ELSIF password_type = 'PASSWORD_TYPE_PLAINTEXT' THEN
        SELECT EXISTS(
          SELECT 1
          FROM password_check.bad_passwords bp
          WHERE bp.plaintext = password
        ) INTO invalid;
        IF invalid THEN
          RAISE EXCEPTION 'Cannot use passwords from the common password dictionary';
        END IF;
      END IF;
    END
  $$ LANGUAGE plpgsql SECURITY DEFINER;

  GRANT EXECUTE ON FUNCTION password_check.passcheck_hook TO PUBLIC;

  SELECT pgtle.register_feature('password_check.passcheck_hook', 'passcheck');
$_pgtle_$
);
```

# PostgreSQL용 신뢰할 수 있는 언어 확장에 대한 함수 참조
<a name="PostgreSQL_trusted_language_extension-functions-reference"></a>

PostgreSQL용 신뢰할 수 있는 언어 확장에서 사용할 수 있는 함수에 대한 다음 참조 설명서를 참조하세요. 이러한 함수를 사용하면 *TLE 확장*, 즉 신뢰할 수 있는 언어 확장 개발 키트를 사용하여 개발한 PostgreSQL 확장을 설치, 등록, 업데이트 및 관리할 수 있습니다.

**Topics**
+ [pgtle.available\$1extensions](#pgtle.available_extensions)
+ [pgtle.available\$1extension\$1versions](#pgtle.available_extension_versions)
+ [pgtle.extension\$1update\$1paths](#pgtle.extension_update_paths)
+ [pgtle.install\$1extension](#pgtle.install_extension)
+ [pgtle.install\$1update\$1path](#pgtle.install_update_path)
+ [pgtle.register\$1feature](#pgtle.register_feature)
+ [pgtle.register\$1feature\$1if\$1not\$1exists](#pgtle.register_feature_if_not_exists)
+ [pgtle.set\$1default\$1version](#pgtle.set_default_version)
+ [pgtle.uninstall\$1extension(name)](#pgtle.uninstall_extension-name)
+ [pgtle.uninstall\$1extension(name, version)](#pgtle.uninstall_extension-name-version)
+ [pgtle.uninstall\$1extension\$1if\$1exists](#pgtle.uninstall_extension_if_exists)
+ [pgtle.uninstall\$1update\$1path](#pgtle.uninstall_update_path)
+ [pgtle.uninstall\$1update\$1path\$1if\$1exists](#pgtle.uninstall_update_path_if_exists)
+ [pgtle.unregister\$1feature](#pgtle.unregister_feature)
+ [pgtle.unregister\$1feature\$1if\$1exists](#pgtle.unregister_feature_if_exists)

## pgtle.available\$1extensions
<a name="pgtle.available_extensions"></a>

`pgtle.available_extensions` 함수는 집합을 반환하는 함수입니다. 이 함수는 데이터베이스에서 사용 가능한 모든 TLE 확장을 반환합니다. 반환된 각 행에는 단일 TLE 확장에 대한 정보가 포함되어 있습니다.

### 함수 프로토타입
<a name="pgtle.available_extensions-prototype"></a>

```
pgtle.available_extensions()
```

### 역할
<a name="pgtle.available_extensions-role"></a>

없음.

### 인수
<a name="pgtle.available_extensions-arguments"></a>

없음.

### 출력
<a name="pgtle.available_extensions-output"></a>
+ `name` - TLE 확장의 이름입니다.
+ `default_version` - 버전을 지정하지 않고 `CREATE EXTENSION`을 호출할 때 사용할 TLE 확장의 버전입니다.
+ `description` - TLE 확장에 대한 자세한 설명입니다.

### 사용 예
<a name="pgtle.available_extensions-usage-example"></a>

```
SELECT * FROM pgtle.available_extensions();
```

## pgtle.available\$1extension\$1versions
<a name="pgtle.available_extension_versions"></a>

`available_extension_versions` 함수는 집합을 반환하는 함수입니다. 이 함수는 사용 가능한 모든 TLE 확장 및 버전의 목록을 반환합니다. 각 행에는 특정 역할이 필요한지 여부를 포함하여 지정된 TLE 확장의 특정 버전에 대한 정보가 포함되어 있습니다.

### 함수 프로토타입
<a name="pgtle.available_extension_versions-prototype"></a>

```
pgtle.available_extension_versions()
```

### 역할
<a name="pgtle.available_extension_versions-role"></a>

없음.

### 인수
<a name="pgtle.available_extension_versions-arguments"></a>

없음.

### 출력
<a name="pgtle.available_extension_versions-output"></a>
+ `name` - TLE 확장의 이름입니다.
+ `version` - TLE 확장의 버전입니다.
+ `superuser` - TLE 확장의 경우 이 값은 항상 `false`입니다. TLE 확장을 생성하거나 업데이트하는 데 필요한 권한은 지정된 데이터베이스에서 다른 객체를 만드는 데 필요한 권한과 동일합니다.
+ `trusted` - TLE 확장의 경우 이 값은 항상 `false`입니다.
+ `relocatable` - TLE 확장의 경우 이 값은 항상 `false`입니다.
+ `schema` - TLE 확장이 설치된 스키마의 이름을 지정합니다.
+ `requires` - 이 TLE 확장에 필요한 다른 확장의 이름을 포함하는 배열입니다.
+ `description` - TLE 확장에 대한 자세한 설명입니다.

출력 값에 대한 자세한 내용은 PostgreSQL 설명서에서 [Packaging Related Objects into an Extension > Extension Files](https://www.postgresql.org/docs/current/extend-extensions.html#id-1.8.3.20.11)를 참조하세요.

### 사용 예
<a name="pgtle.available_extension_versions-example"></a>

```
SELECT * FROM pgtle.available_extension_versions();
```

## pgtle.extension\$1update\$1paths
<a name="pgtle.extension_update_paths"></a>

`extension_update_paths` 함수는 집합을 반환하는 함수입니다. 이 함수는 TLE 확장에 가능한 모든 업데이트 경로 목록을 반환합니다. 각 행에는 해당 TLE 확장에 사용할 수 있는 업그레이드 또는 다운그레이드가 포함됩니다.

### 함수 프로토타입
<a name="pgtle.extension_update_paths-prototype"></a>

```
pgtle.extension_update_paths(name)
```

### 역할
<a name="pgtle.extension_update_paths-role"></a>

없음.

### 인수
<a name="pgtle.extension_update_paths-arguments"></a>

`name` - 업그레이드 경로를 가져올 TLE 확장의 이름입니다.

### 출력
<a name="pgtle.extension_update_paths-output"></a>
+ `source` - 업데이트의 소스 버전입니다.
+ `target` - 업데이트의 대상 버전입니다.
+ `path` - TLE 확장을 `source` 버전에서 `target` 버전으로 업데이트하는 데 사용되는 업그레이드 경로입니다(예: `0.1--0.2`).

### 사용 예
<a name="pgtle.extension_update_paths-example"></a>

```
SELECT * FROM pgtle.extension_update_paths('your-TLE');
```

## pgtle.install\$1extension
<a name="pgtle.install_extension"></a>

`install_extension` 함수를 사용하면 데이터베이스에 TLE 확장을 구성하는 아티팩트를 설치한 다음 `CREATE EXTENSION` 명령을 사용하여 TLE 확장을 생성할 수 있습니다.

### 함수 프로토타입
<a name="pgtle.install_extension-prototype"></a>

```
pgtle.install_extension(name text, version text, description text, ext text, requires text[] DEFAULT NULL::text[])
```

### 역할
<a name="pgtle.install_extension-role"></a>

없음.

### 인수
<a name="pgtle.install_extension-arguments"></a>
+ `name` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.
+ `version` - TLE 확장의 버전입니다.
+ `description` - TLE 확장에 대한 자세한 설명입니다. 이 설명은 `pgtle.available_extensions()`의 `comment` 필드에 표시됩니다.
+ `ext` - TLE 확장의 콘텐츠입니다. 이 값에는 함수와 같은 객체가 포함됩니다.
+ `requires` - 이 TLE 확장의 종속성을 지정하는 선택적 파라미터입니다. `pg_tle` 확장은 종속성으로 자동 추가됩니다.

이러한 인수 중 다수는 PostgreSQL 인스턴스의 파일 시스템에 PostgreSQL 확장을 설치하기 위한 확장 제어 파일에 포함된 인수와 동일합니다. PostgreSQL 확장에 대한 자세한 내용은 PostgreSQL 설명서에서 [Packaging Related Objects into an Extension](https://www.postgresql.org/docs/current/extend-extensions.html)의 [Extension Files](http://www.postgresql.org/docs/current/extend-extensions.html#id-1.8.3.20.11)를 참조하세요.

### 출력
<a name="pgtle.install_extension-output"></a>

이 함수는 성공 시 `OK`를, 오류 시 `NULL`을 반환합니다.
+ `OK` - TLE 확장이 데이터베이스에 성공적으로 설치되었습니다.
+ `NULL` - TLE 확장이 데이터베이스에 성공적으로 설치되지 않았습니다.

### 사용 예
<a name="pgtle.install_extension-example"></a>

```
SELECT pgtle.install_extension(
 'pg_tle_test',
 '0.1',
 'My first pg_tle extension',
$_pgtle_$
  CREATE FUNCTION my_test()
  RETURNS INT
  AS $$
    SELECT 42;
  $$ LANGUAGE SQL IMMUTABLE;
$_pgtle_$
);
```

## pgtle.install\$1update\$1path
<a name="pgtle.install_update_path"></a>

`install_update_path` 함수는 서로 다른 두 버전의 TLE 확장 간의 업데이트 경로를 제공합니다. 이 함수를 사용하면 TLE 확장의 사용자가 `ALTER EXTENSION ... UPDATE` 구문을 사용하여 버전을 업데이트할 수 있습니다.

### 함수 프로토타입
<a name="pgtle.install_update_path-prototype"></a>

```
pgtle.install_update_path(name text, fromvers text, tovers text, ext text)
```

### 역할
<a name="pgtle.install_update_path-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.install_update_path-arguments"></a>
+ `name` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.
+ `fromvers` - 업그레이드를 위한 TLE 확장의 소스 버전입니다.
+ `tovers` - 업그레이드를 위한 TLE 확장의 대상 버전입니다.
+ `ext` - 업데이트의 콘텐츠입니다. 이 값에는 함수와 같은 객체가 포함됩니다.

### 출력
<a name="pgtle.install_update_path-output"></a>

없음.

### 사용 예
<a name="pgtle.install_update_path-example"></a>

```
SELECT pgtle.install_update_path('pg_tle_test', '0.1', '0.2',
  $_pgtle_$
    CREATE OR REPLACE FUNCTION my_test()
    RETURNS INT
    AS $$
      SELECT 21;
    $$ LANGUAGE SQL IMMUTABLE;
  $_pgtle_$
);
```

## pgtle.register\$1feature
<a name="pgtle.register_feature"></a>

`register_feature` 함수는 지정된 내부 PostgreSQL 기능을 `pgtle.feature_info` 테이블에 추가합니다. PostgreSQL 후크는 내부 PostgreSQL 기능의 예입니다. 신뢰할 수 있는 언어 확장 개발 키트는 PostgreSQL 후크 사용을 지원합니다. 현재 이 함수는 다음 기능을 지원합니다.
+ `passcheck` - PostgreSQL의 암호 확인 동작을 사용자 지정하는 프로시저 또는 함수에 암호 확인 후크를 등록합니다.

### 함수 프로토타입
<a name="pgtle.register_feature-prototype"></a>

```
pgtle.register_feature(proc regproc, feature pg_tle_feature)
```

### 역할
<a name="pgtle.register_feature-role"></a>

`pgtle_admin` 

### 인수
<a name="pgtle.register_feature-arguments"></a>
+ `proc` - 기능에 사용할 저장 프로시저 또는 함수의 이름입니다.
+ `feature` - 함수에 등록할 `pg_tle` 기능(예: `passcheck`)의 이름입니다.

### 출력
<a name="pgtle.register_feature-output"></a>

없음.

### 사용 예
<a name="pgtle.register_feature-example"></a>

```
SELECT pgtle.register_feature('pw_hook', 'passcheck');
```

## pgtle.register\$1feature\$1if\$1not\$1exists
<a name="pgtle.register_feature_if_not_exists"></a>

`pgtle.register_feature_if_not_exists` 함수는 지정된 PostgreSQL 기능을 `pgtle.feature_info` 테이블에 추가하고 해당 기능을 사용하는 TLE 확장 또는 기타 프로시저나 함수를 식별합니다. 후크 및 신뢰할 수 있는 언어 확장에 대한 자세한 내용은 [TLE 확장과 함께 PostgreSQL 후크 사용](PostgreSQL_trusted_language_extension.overview.tles-and-hooks.md) 섹션을 참조하세요.

### 함수 프로토타입
<a name="pgtle.register_feature_if_not_exists-prototype"></a>

```
pgtle.register_feature_if_not_exists(proc regproc, feature pg_tle_feature)
```

### 역할
<a name="pgtle.register_feature_if_not_exists-role"></a>

`pgtle_admin` 

### 인수
<a name="pgtle.register_feature_if_not_exists-arguments"></a>
+ `proc` - TLE 확장을 위한 기능으로 사용할 로직(코드)이 포함된 저장 프로시저 또는 함수의 이름입니다. `pw_hook` 코드가 그 예입니다.
+ `feature` - TLE 함수에 등록할 PostgreSQL 기능의 이름입니다. 현재 사용 가능한 기능은 `passcheck` 후크뿐입니다. 자세한 내용은 [암호-확인 후크(passcheck)](PostgreSQL_trusted_language_extension-hooks-reference.md#passcheck_hook) 단원을 참조하십시오.

### 출력
<a name="pgtle.register_feature_if_not_exists-output"></a>

지정된 확장에 대한 기능을 등록한 후 `true`를 반환합니다. 기능이 이미 등록된 경우 `false`를 반환합니다.

### 사용 예
<a name="pgtle.register_feature_if_not_exists-example"></a>

```
SELECT pgtle.register_feature_if_not_exists('pw_hook', 'passcheck');
```

## pgtle.set\$1default\$1version
<a name="pgtle.set_default_version"></a>

`set_default_version` 함수를 사용하면 TLE 확장의 `default_version`을 지정할 수 있습니다. 이 함수를 사용하여 업그레이드 경로를 정의하고 해당 버전을 TLE 확장의 기본값으로 지정할 수 있습니다. 데이터베이스 사용자가 `CREATE EXTENSION` 및 `ALTER EXTENSION ... UPDATE` 명령에서 TLE 확장을 지정하면 해당 버전의 TLE 확장이 해당 사용자의 데이터베이스에 생성됩니다.

이 함수는 성공 시 `true`를 반환합니다. `name` 인수에 지정된 TLE 확장자가 없는 경우에는 함수가 오류를 반환합니다. 마찬가지로 TLE 확장의 `version`이 존재하지 않으면 오류가 반환됩니다.

### 함수 프로토타입
<a name="pgtle.set_default_version-prototype"></a>

```
pgtle.set_default_version(name text, version text)
```

### 역할
<a name="pgtle.set_default_version-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.set_default_version-arguments"></a>
+ `name` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.
+ `version` - 기본값을 설정할 TLE 확장의 버전입니다.

### 출력
<a name="pgtle.set_default_version-output"></a>
+ `true` - 기본 버전 설정에 성공하면 함수가 `true`를 반환합니다.
+ `ERROR` - 지정된 이름 또는 버전의 TLE 확장이 존재하지 않는 경우 오류 메시지를 반환합니다.

### 사용 예
<a name="pgtle.set_default_version-example"></a>

```
SELECT * FROM pgtle.set_default_version('my-extension', '1.1');
```

## pgtle.uninstall\$1extension(name)
<a name="pgtle.uninstall_extension-name"></a>

`uninstall_extension` 함수는 데이터베이스에서 TLE 확장의 모든 버전을 제거합니다. 이 함수는 `CREATE EXTENSION`의 이후 호출이 TLE 확장을 설치하는것을 방지합니다. 데이터베이스에 TLE 확장자가 없으면 오류가 발생합니다.

`uninstall_extension` 함수는 현재 데이터베이스에서 활성 상태인 TLE 확장은 제거하지 않습니다. 현재 활성 상태인 TLE 확장을 제거하려면 명시적으로 `DROP EXTENSION`을 호출하여 제거해야 합니다.

### 함수 프로토타입
<a name="pgtle.uninstall_extension-name-prototype"></a>

```
pgtle.uninstall_extension(extname text)
```

### 역할
<a name="pgtle.uninstall_extension-name-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.uninstall_extension-name-arguments"></a>
+ `extname` - 제거할 TLE 확장의 이름입니다. 이 이름은 지정된 데이터베이스에서 사용할 TLE 확장을 로드하기 위해 `CREATE EXTENSION`과 함께 사용되는 이름과 같습니다.

### 출력
<a name="pgtle.uninstall_extension-name-output"></a>

없음.

### 사용 예
<a name="pgtle.uninstall_extension-name-example"></a>

```
SELECT * FROM pgtle.uninstall_extension('pg_tle_test');
```

## pgtle.uninstall\$1extension(name, version)
<a name="pgtle.uninstall_extension-name-version"></a>

`uninstall_extension(name, version)` 함수는 지정된 버전의 TLE 확장을 데이터베이스에서 제거합니다. 이 기능은 `CREATE EXTENSION` 및 `ALTER EXTENSION`이 TLE 확장을 설치하거나 지정된 버전으로 업데이트하는 것을 방지합니다. 이 함수는 TLE 확장의 모든 업데이트 경로도 제공합니다. 이 함수는 현재 데이터베이스에서 활성 상태인 TLE 확장은 제거하지 않습니다. TLE 확장을 제거하려면 명시적으로 `DROP EXTENSION`을 호출해야 합니다. TLE 확장의 모든 버전을 제거하려면 [pgtle.uninstall\$1extension(name)](#pgtle.uninstall_extension-name)을 참조하세요.

### 함수 프로토타입
<a name="pgtle.uninstall_extension-name-version-prototype"></a>

```
pgtle.uninstall_extension(extname text, version text)
```

### 역할
<a name="pgtle.uninstall_extension-name-version-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.uninstall_extension-name-version-arguments"></a>
+ `extname` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.
+ `version` - 데이터베이스에서 제거할 TLE 확장의 버전입니다.

### 출력
<a name="pgtle.uninstall_extension-name-version-output"></a>

없음.

### 사용 예
<a name="pgtle.uninstall_extension-name-version-example"></a>

```
SELECT * FROM pgtle.uninstall_extension('pg_tle_test', '0.2');
```

## pgtle.uninstall\$1extension\$1if\$1exists
<a name="pgtle.uninstall_extension_if_exists"></a>

`uninstall_extension_if_exists` 함수는 지정된 데이터베이스에서 TLE 확장의 모든 버전을 제거합니다. TLE 확장자가 존재하지 않는 경우 함수는 아무것도 반환하지 않습니다(오류 메시지가 표시되지 않음). 지정된 확장이 현재 데이터베이스 내에서 활성 상태인 경우 이 함수는 해당 확장을 삭제하지 않습니다. 이 함수를 사용하여 아티팩트를 제거하려면 먼저 명시적으로 `DROP EXTENSION`을 호출하여 TLE 확장을 제거해야 합니다.

### 함수 프로토타입
<a name="pgtle.uninstall_extension_if_exists-prototype"></a>

```
pgtle.uninstall_extension_if_exists(extname text)
```

### 역할
<a name="pgtle.uninstall_extension_if_exists-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.uninstall_extension_if_exists-arguments"></a>
+ `extname` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.

### 출력
<a name="pgtle.uninstall_extension_if_exists-output"></a>

`uninstall_extension_if_exists` 함수는 지정된 확장을 제거한 `true`를 반환합니다. 지정된 확장이 없는 경우 함수는 `false`를 반환합니다.
+ `true` - TLE 확장을 제거한 후 `true`를 반환합니다.
+ `false` - 데이터베이스에 TLE 확장자가 없으면 `false`를 반환합니다.

### 사용 예
<a name="pgtle.uninstall_extension_if_exists-example"></a>

```
SELECT * FROM pgtle.uninstall_extension_if_exists('pg_tle_test');
```

## pgtle.uninstall\$1update\$1path
<a name="pgtle.uninstall_update_path"></a>

`uninstall_update_path` 함수는 TLE 확장에서 특정 업데이트 경로를 제거합니다. 이렇게 하면 `ALTER EXTENSION ... UPDATE TO`가 이 경로를 업데이트 경로로 사용할 수 없습니다.

이 업데이트 경로의 버전 중 하나가 현재 사용 중인 TLE 확장은 데이터베이스에 남아 있습니다.

지정한 업데이트 경로가 존재하지 않는 경우 이 함수는 오류를 반환합니다.

### 함수 프로토타입
<a name="pgtle.uninstall_update_path-prototype"></a>

```
pgtle.uninstall_update_path(extname text, fromvers text, tovers text)
```

### 역할
<a name="pgtle.uninstall_update_path-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.uninstall_update_path-arguments"></a>
+ `extname` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.
+ `fromvers` - 업데이트 경로에서 사용할 TLE 확장의 소스 버전입니다.
+  `tovers` - 업데이트 경로에서 사용할 TLE 확장의 대상 버전입니다.

### 출력
<a name="pgtle.uninstall_update_path-output"></a>

없음.

### 사용 예
<a name="pgtle.uninstall_update_path-example"></a>

```
SELECT * FROM pgtle.uninstall_update_path('pg_tle_test', '0.1', '0.2');
```

## pgtle.uninstall\$1update\$1path\$1if\$1exists
<a name="pgtle.uninstall_update_path_if_exists"></a>

`uninstall_update_path_if_exists` 함수는 TLE 확장에서 지정된 업데이트 경로를 제거한다는 점에서 `uninstall_update_path`와 비슷합니다. 하지만 업데이트 경로가 존재하지 않는 경우 이 함수는 오류 메시지를 표시하지 않습니다. 대신 함수는 `false`를 반환합니다.

### 함수 프로토타입
<a name="pgtle.uninstall_update_path_if_exists-prototype"></a>

```
pgtle.uninstall_update_path_if_exists(extname text, fromvers text, tovers text)
```

### 역할
<a name="pgtle.uninstall_update_path_if_exists-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.uninstall_update_path_if_exists-arguments"></a>
+ `extname` - TLE 확장의 이름입니다. 이 값은 `CREATE EXTENSION` 호출에 사용됩니다.
+ `fromvers` - 업데이트 경로에서 사용할 TLE 확장의 소스 버전입니다.
+ `tovers` - 업데이트 경로에서 사용할 TLE 확장의 대상 버전입니다.

### 출력
<a name="pgtle.uninstall_update_path_if_exists-output"></a>
+ `true` - 함수가 TLE 확장 경로를 성공적으로 업데이트했습니다.
+ `false` - 함수가 TLE 확장의 경로를 업데이트하지 못했습니다.

### 사용 예
<a name="pgtle.uninstall_update_path_if_exists-example"></a>

```
SELECT * FROM pgtle.uninstall_update_path_if_exists('pg_tle_test', '0.1', '0.2');
```

## pgtle.unregister\$1feature
<a name="pgtle.unregister_feature"></a>

`unregister_feature` 함수는 후크 등 `pg_tle` 기능을 사용하도록 등록된 함수를 제거하는 방법을 제공합니다. 기능 등록에 대한 자세한 내용은 [pgtle.register\$1feature](#pgtle.register_feature) 섹션을 참조하세요.

### 함수 프로토타입
<a name="pgtle.unregister_feature-prototype"></a>

```
pgtle.unregister_feature(proc regproc, feature pg_tle_features)
```

### 역할
<a name="pgtle.unregister_feature-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.unregister_feature-arguments"></a>
+ `proc` - `pg_tle` 기능에 등록할 저장된 함수의 이름입니다.
+ `feature` - 함수에 등록할 `pg_tle` 기능의 이름입니다. 예를 들어 `passcheck`는 개발하는 신뢰할 수 있는 언어 확장에서 사용하도록 등록할 수 있는 기능입니다. 자세한 내용은 [암호-확인 후크(passcheck)](PostgreSQL_trusted_language_extension-hooks-reference.md#passcheck_hook) 단원을 참조하십시오.

### 출력
<a name="pgtle.unregister_feature-output"></a>

없음.

### 사용 예
<a name="pgtle.unregister_feature-example"></a>

```
SELECT * FROM pgtle.unregister_feature('pw_hook', 'passcheck');
```

## pgtle.unregister\$1feature\$1if\$1exists
<a name="pgtle.unregister_feature_if_exists"></a>

`unregister_feature` 함수는 후크 등 `pg_tle` 기능을 사용하도록 등록된 함수를 제거하는 방법을 제공합니다. 자세한 내용은 [TLE 확장과 함께 PostgreSQL 후크 사용](PostgreSQL_trusted_language_extension.overview.tles-and-hooks.md) 단원을 참조하십시오. 기능을 성공적으로 등록 취소한 후 `true`를 반환합니다. 기능이 등록되지 않은 경우 `false`를 반환합니다.

TLE 확장의 `pg_tle` 기능 등록에 대한 자세한 내용은 [pgtle.register\$1feature](#pgtle.register_feature) 섹션을 참조하세요.

### 함수 프로토타입
<a name="pgtle.unregister_feature_if_exists-prototype"></a>

```
pgtle.unregister_feature_if_exists('proc regproc', 'feature pg_tle_features')
```

### 역할
<a name="pgtle.unregister_feature_if_exists-role"></a>

`pgtle_admin`

### 인수
<a name="pgtle.unregister_feature_if_exists-arguments"></a>
+ `proc` - `pg_tle` 기능을 포함하도록 등록된 저장된 함수의 이름입니다.
+ `feature` - 신뢰할 수 있는 언어 확장에 등록된 `pg_tle` 기능의 이름입니다.

### 출력
<a name="pgtle.unregister_feature_if_exists-output"></a>

다음과 같이 `true` 또는`false`를 반환합니다.
+ `true` - 함수가 확장에서 성공적으로 기능 등록을 취소했습니다.
+ `false` - 함수가 TLE 확장에서 기능을 등록 취소하지 못했습니다.

### 사용 예
<a name="pgtle.unregister_feature_if_exists-example"></a>

```
SELECT * FROM pgtle.unregister_feature_if_exists('pw_hook', 'passcheck');
```

# PostgreSQL용 신뢰할 수 있는 언어 확장에 대한 후크 참조
<a name="PostgreSQL_trusted_language_extension-hooks-reference"></a>

PostgreSQL용 신뢰할 수 있는 언어 확장은 PostgreSQL 후크를 지원합니다. *후크*는 PostgreSQL의 핵심 기능을 확장하기 위해 개발자가 사용할 수 있는 내부 콜백 메커니즘입니다. 개발자는 후크를 사용하여 다양한 데이터베이스 작업 중에 사용할 자체 함수 또는 프로시저를 구현하여 PostgreSQL의 동작을 일정 방식으로 수정할 수 있습니다. 예를 들어 `passcheck` 후크를 사용하면 사용자(역할)의 암호를 생성하거나 변경할 때 제공된 암호를 PostgreSQL이 처리하는 방법을 사용자 지정할 수 있습니다.

TLE 확장에 사용할 수 있는 암호 확인 후크에 대해 알아보려면 다음 설명서를 참조하세요. 클라이언트 인증 후크를 포함하여 사용 가능한 후크에 대한 자세한 내용은 [Trusted Language Extensions hooks](https://github.com/aws/pg_tle/blob/main/docs/04_hooks.md)를 참조하세요.

## 암호-확인 후크(passcheck)
<a name="passcheck_hook"></a>

`passcheck` 후크는 다음 SQL 명령 및 `psql` 메타 명령에 대한 암호 확인 프로세스 도중 PostgreSQL 동작을 사용자 지정하는 데 사용됩니다.
+ `CREATE ROLE username ...PASSWORD` - 자세한 내용은 PostgreSQL 설명서의 [CREATE ROLE](https://www.postgresql.org/docs/current/sql-createrole.html)을 참조하세요.
+ `ALTER ROLE username...PASSWORD` - 자세한 내용은 PostgreSQL 설명서의 [ALTER ROLE](https://www.postgresql.org/docs/current/sql-alterrole.html)을 참조하세요.
+ `\password username` - 이 대화형 `psql` 메타 명령은 `ALTER ROLE ... PASSWORD` 구문을 투명하게 사용하기 전에 암호를 해시하여 지정된 사용자의 암호를 안전하게 변경합니다. 메타 명령은 `ALTER ROLE ... PASSWORD` 명령의 보안 래퍼이므로 후크는 `psql` 메타 명령의 동작에 적용됩니다.

문제 해결 예는 [암호 확인 후크 코드 목록](PostgreSQL_trusted_language_extension.overview.tles-and-hooks.md#PostgreSQL_trusted_language_extension-example-hook_code_listing)을(를) 참조하세요.

**Contents**
+ [함수 프로토타입](#passcheck_hook-prototype)
+ [인수](#passcheck_hook-arguments)
+ [구성](#passcheck_hook-configuration)
+ [사용 노트](#passcheck_hook-usage)

### 함수 프로토타입
<a name="passcheck_hook-prototype"></a>

```
passcheck_hook(username text, password text, password_type pgtle.password_types, valid_until timestamptz, valid_null boolean)
```

### 인수
<a name="passcheck_hook-arguments"></a>

`passcheck` 후크 함수는 다음 인수를 사용합니다.
+ `username` - 암호를 설정하는 역할(사용자 이름)의 이름(텍스트)입니다.
+ `password` - 일반 텍스트 또는 해시된 암호입니다. 입력한 암호는 `password_type`에서 지정한 유형과 일치해야 합니다.
+ `password_type` - 암호의 `pgtle.password_type` 형식을 지정합니다. 이 형식은 다음 옵션 중 하나일 수 있습니다.
  + `PASSWORD_TYPE_PLAINTEXT` - 일반 텍스트 암호입니다.
  + `PASSWORD_TYPE_MD5` - MD5(message digest 5) 알고리즘을 사용하여 해시된 암호입니다.
  + `PASSWORD_TYPE_SCRAM_SHA_256` - SCRAM-SHA-256 알고리즘을 사용하여 해시된 암호입니다.
+ `valid_until` - 암호가 무효가 되는 시간을 지정합니다. 이 인수는 선택 사항입니다. 이 인수를 사용하는 경우 시간을 `timestamptz` 값으로 지정하세요.
+ `valid_null` - 이 부울이 `true`로 설정된 경우 `valid_until` 옵션은 `NULL`로 설정됩니다.

### 구성
<a name="passcheck_hook-configuration"></a>

함수 `pgtle.enable_password_check`는 암호 확인 후크가 활성 상태인지 여부를 제어합니다. 암호 확인 후크에서 세 가지 설정이 가능합니다.
+ `off` - `passcheck` 암호 확인 후크를 해제합니다. 이것이 기본값입니다.
+ `on` - 테이블과 비교해 암호를 검사할 수 있도록 `passcode` 암호 확인 후크를 켭니다.
+ `require` - 암호 확인 후크를 정의해야 합니다.

### 사용 노트
<a name="passcheck_hook-usage"></a>

`passcheck` 후크를 켜거나 해제하려면 Aurora PostgreSQL DB 클러스터의 라이터 인스턴스에 대한 사용자 지정 DB 파라미터 그룹을 수정해야 합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds modify-db-parameter-group \
    --region aws-region \
    --db-parameter-group-name your-custom-parameter-group \
    --parameters "ParameterName=pgtle.enable_password_check,ParameterValue=on,ApplyMethod=immediate"
```

Windows의 경우:

```
aws rds modify-db-parameter-group ^
    --region aws-region ^
    --db-parameter-group-name your-custom-parameter-group ^
    --parameters "ParameterName=pgtle.enable_password_check,ParameterValue=on,ApplyMethod=immediate"
```

# Amazon Aurora PostgreSQL 참조
<a name="AuroraPostgreSQL.Reference"></a>

다음 주제에는 Amazon Aurora PostgreSQL의 데이터 정렬, 함수, 파라미터, 대기 이벤트에 관한 정보가 나와 있습니다.

**Topics**
+ [EBCDIC 및 기타 메인프레임 마이그레이션을 위한 Aurora PostgreSQL 데이터 정렬](#AuroraPostgreSQL.Reference.Collations.mainframe.migration)
+ [Aurora PostgreSQL 에서 지원되는 데이터 정렬입니다.](PostgreSQL-Collations.md)
+ [Aurora PostgreSQL 함수 참조](Appendix.AuroraPostgreSQL.Functions.md)
+ [Amazon Aurora PostgreSQL parameters](AuroraPostgreSQL.Reference.ParameterGroups.md)
+ [Amazon Aurora PostgreSQL 대기 이벤트](AuroraPostgreSQL.Reference.Waitevents.md)

## EBCDIC 및 기타 메인프레임 마이그레이션을 위한 Aurora PostgreSQL 데이터 정렬
<a name="AuroraPostgreSQL.Reference.Collations.mainframe.migration"></a>

애플리케이션 동작을 AWS와 같이 이상적으로 보존하는 것과 같이 메인프레임 애플리케이션을 새로운 플랫폼으로 마이그레이션합니다. 새 플랫폼에서의 애플리케이션 동작을 메인프레임과 동일하게 유지하려면 마이그레이션된 데이터가 동일한 데이터 정렬 및 정렬 규칙을 사용하여 데이터 정렬되어야 합니다. 예를 들어 많은 Db2 마이그레이션 솔루션은 null 값을 u0180(Unicode 위치 0180) 으로 이동하므로 이러한 데이터 정렬은 u0180을 먼저 정렬합니다. 데이터 정렬이 메인프레임 소스와 차이점 및 원본 EBCDIC 데이터 정렬에 더 잘 매핑되는 데이터 정렬을 선택해야 하는 이유를 보여주는 한 가지 예입니다.

Aurora PostgreSQL 14.3 이상 버전은 많은 ICU 및 EBCDIC 데이터 정렬을 제공하여 AWS Mainframe Modernization 서비스를 사용하는 AWS로 마이그레이션과 같은 서비스를 지원합니다. 이 서비스에 대한 자세한 내용을 알아보려면 [AWS Mainframe Modernization이란?](https://docs.aws.amazon.com/m2/latest/userguide/what-is-m2.html) 단원을 참조하세요.

 다음 테이블에서 Aurora PostgreSQL 제공 데이터 정렬을 찾을 수 있습니다. 이러한 데이터 정렬은 EBCDIC 규칙을 따르고 메인프레임 애플리케이션이 메인프레임 환경에서와 마찬가지로 AWS에서도 동일하게 작동하도록 합니다. 데이터 정렬 이름에는 관련 코드 페이지(cp*nnnn*)가 포함되어 있으므로 메인프레임 소스에 적합한 데이터 정렬을 선택할 수 있습니다. 예를 들어 `en-US-cp037-x-icu`를 사용하여 코드 페이지 03을 사용한 메인프레임 애플리케이션에서 생성된 EBCDIC 데이터에 대한 데이터 정렬 동작을 달성합니다.


| EBDICD 데이터 정렬  | AWS Blu Age 데이터 정렬 | AWS Micro Focus 데이터 정렬 | 
| --- | --- | --- | 
| da-DK-cp1142-x-icu | da-DK-cp1142b-x-icu | da-DK-cp1142b-x-icu | 
| da-DK-cp277-x-icu | da-DK-cp1142b-x-icu | – | 
| de-DE-cp1141-x-icu | de-DE-cp1141b-x-icu | de-DE-cp1141m-x-icu | 
| de-DE-cp273-x-icu | de-DE-cp273b-x-icu | – | 
| en-GB-cp1146-x-icu | en-GB-cp1146b-x-icu | en-GB-cp1146m-x-icu | 
| en-GB-cp285-x-icu | en-GB-cp285b-x-icu | – | 
| en-US-cp037-x-icu | en-US-cp037b-x-icu | – | 
| en-US-cp1140-x-icu | en-US-cp1140b-x-icu | en-US-cp1140m-x-icu | 
| es-ES-cp1145-x-icu | es-ES-cp1145b-x-icu | es-ES-cp1145m-x-icu | 
| es-ES-cp284-x-icu | es-ES-cp284b-x-icu | – | 
| fi-FI-cp1143-x-icu | fi-FI-cp1143b-x-icu | fi-FI-cp1143m-x-icu | 
| fi-FI-cp278-x-icu | fi-FI-cp278b-x-icu | – | 
| fr-FR-cp1147-x-icu | fr-FR-cp1147b-x-icu | fr-FR-cp1147m-x-icu | 
| fr-FR-cp297-x-icu | fr-FR-cp297b-x-icu | – | 
| it-IT-cp1144-x-icu | it-IT-cp1144b-x-icu | it-IT-cp1144m-x-icu | 
| it-IT-cp280-x-icu | it-IT-cp280b-x-icu | – | 
| nl-BE-cp1148-x-icu | nl-BE-cp1148b-x-icu | nl-BE-cp1148m-x-icu | 
| nl-BE-cp500-x-icu | nl-BE-cp500b-x-icu | – | 

AWS Blu Age에 대한 자세한 내용은 *AWS Mainframe Modernization 사용 설명서*의 [자습서: AWS Blu Age용 관리형 런타임](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-runtime-ba.html)을 참조하세요.

AWS Micro Focus 작업에 대한 자세한 내용은 AWS Mainframe Modernization 사용 설명서의 [자습서: Micro Focus](https://docs.aws.amazon.com/m2/latest/userguide/tutorial-runtime.html)를 위한 관리형 런타임을 참조하십시오.

PostgreSQL의 데이터 정렬에 대한 자세한 내용은 PostgreSQL 설명서의 [데이터 정렬 지원](https://www.postgresql.org/docs/current/collation.html)을 참조하세요.

# Aurora PostgreSQL 에서 지원되는 데이터 정렬입니다.
<a name="PostgreSQL-Collations"></a>

데이터 정렬은 데이터베이스에 저장된 문자열을 정렬하고 비교하는 방법을 결정하는 일련의 규칙입니다. 데이터 정렬은 컴퓨터 시스템에서 기본적인 역할을 하며 운영 체제의 일부로 포함됩니다. 새 문자가 언어에 추가되거나 순서 지정 규칙이 변경되면 시간이 지남에 따라 데이터 정렬이 변경됩니다.

데이터 정렬 라이브러리는 데이터 정렬에 대한 특정 규칙 및 알고리즘을 정의합니다. PostgreSQL에서 가장 많이 사용되는 데이터 정렬 라이브러리는 GNU C(glibc) 및 유니코드용 국제화 구성 요소(ICU)입니다. 기본적으로 Aurora PostgreSQL은 멀티바이트 문자 시퀀스에 대한 유니코드 문자 정렬 순서를 포함하는 glibc 데이터 정렬을 사용합니다.

새로운 Aurora PostgreSQL DB 클러스터를 만들면 운영 체제에서 사용 가능한 데이터 정렬을 확인합니다. `CREATE DATABASE` 명령의 PostgreSQL 파라미터인 `LC_COLLATE` 및 `LC_CTYPE`은 해당 데이터베이스의 기본 데이터 정렬로 사용되는 데이터 정렬을 지정하는 데 사용됩니다. 또는 `CREATE DATABASE`의 `LOCALE` 파라미터를 사용하여 이러한 파라미터를 설정할 수도 있습니다. 이는 데이터베이스의 문자열에 대한 기본 데이터 정렬과 문자를 문자, 숫자 또는 기호로 분류하는 규칙을 결정합니다. 열, 색인 또는 쿼리에 사용할 데이터 정렬을 선택할 수도 있습니다.

Aurora PostgreSQL은 데이터 정렬 지원을 위해 운영 체제의 glibc 라이브러리를 사용합니다. Aurora PostgreSQL 인스턴스는 최신 버전의 운영 체제로 정기적으로 업데이트됩니다. 이러한 업데이트에는 glibc 라이브러리의 최신 버전도 포함되는 경우가 있습니다. 드물게 최신 버전의 glibc에서는 일부 문자의 정렬 순서 또는 데이터 정렬이 변경되어 데이터가 다르게 정렬되거나 잘못된 색인 항목이 생성될 수 있습니다. 업데이트 중에 데이터 정렬의 정렬 순서 문제가 발견되면 색인을 다시 작성해야 할 수 있습니다.

glibc 업데이트의 영향을 줄이기 위해 Aurora PostgreSQL에는 이제 독립적인 기본 데이터 정렬 라이브러리가 포함되어 있습니다. 이 데이터 정렬 라이브러리는 Aurora PostgreSQL 14.6, 13.9, 12.13, 11.18 및 최신 마이너 버전 릴리스에서 사용할 수 있습니다. glibc 2.26-59.amzn2와 호환되며 정렬 순서 안정성을 제공하여 잘못된 쿼리 결과가 나오지 않도록 방지합니다.

# Aurora PostgreSQL 함수 참조
<a name="Appendix.AuroraPostgreSQL.Functions"></a>

다음에서 Aurora PostgreSQL 호환 버전 DB 엔진을 실행하는 Aurora DB 클러스터에 사용할 수 있는 Aurora PostgreSQL 함수 목록을 찾을 수 있습니다. 이러한 Aurora PostgreSQL 함수는 표준 PostgreSQL 함수에 추가됩니다. 표준 PostgreSQL 함수에 대한 자세한 내용은 [PostgreSQL—함수와 연산자](https://www.postgresql.org/docs/current/functions.html)를 찹조하세요.

## 개요
<a name="Appendix.AuroraPostgreSQL.Functions.Overview"></a>

Aurora PostgreSQL을 실행하는 Amazon RDS DB 인스턴스에 다음 함수를 사용할 수 있습니다.
+ [aurora\$1db\$1instance\$1identifier](aurora_db_instance_identifier.md)
+ [aurora\$1ccm\$1status](aurora_ccm_status.md)
+ [aurora\$1global\$1db\$1instance\$1status](aurora_global_db_instance_status.md)
+ [aurora\$1global\$1db\$1status](aurora_global_db_status.md)
+ [aurora\$1list\$1builtins](aurora_list_builtins.md)
+ [aurora\$1replica\$1status](aurora_replica_status.md)
+ [aurora\$1stat\$1activity](aurora_stat_activity.md)
+ [aurora\$1stat\$1backend\$1waits](aurora_stat_backend_waits.md)
+ [aurora\$1stat\$1bgwriter](aurora_stat_bgwriter.md)
+ [aurora\$1stat\$1database](aurora_stat_database.md)
+ [aurora\$1stat\$1dml\$1activity](aurora_stat_dml_activity.md)
+ [aurora\$1stat\$1get\$1db\$1commit\$1latency](aurora_stat_get_db_commit_latency.md)
+ [aurora\$1stat\$1logical\$1wal\$1cache](aurora_stat_logical_wal_cache.md)
+ [aurora\$1stat\$1memctx\$1usage](aurora_stat_memctx_usage.md)
+ [aurora\$1stat\$1optimized\$1reads\$1cache](aurora_stat_optimized_reads_cache.md)
+ [aurora\$1stat\$1plans](aurora_stat_plans.md)
+ [aurora\$1stat\$1reset\$1wal\$1cache](aurora_stat_reset_wal_cache.md)
+ [aurora\$1stat\$1statements](aurora_stat_statements.md)
+ [aurora\$1stat\$1system\$1waits](aurora_stat_system_waits.md)
+ [aurora\$1stat\$1wait\$1event](aurora_stat_wait_event.md)
+ [aurora\$1stat\$1wait\$1type](aurora_stat_wait_type.md)
+  [aurora\$1version](aurora_version.md) 
+ [aurora\$1volume\$1logical\$1start\$1lsn](aurora_volume_logical_start_lsn.md)
+ [aurora\$1wait\$1report](aurora_wait_report.md) 

# aurora\$1db\$1instance\$1identifier
<a name="aurora_db_instance_identifier"></a>

연결된 DB 인스턴스의 이름을 보고합니다.

## 구문
<a name="aurora_db_instance_identifier-syntax"></a>



```
aurora_db_instance_identifier()
```

## 인수
<a name="aurora_db_instance_identifier-arguments"></a>

없음

## 반환 타입
<a name="aurora_db_instance_identifier-return-type"></a>

VARCHAR 문자열

## 사용 노트
<a name="aurora_db_instance_identifier-usage-notes"></a>

이 함수는 데이터베이스 클라이언트 또는 애플리케이션 연결을 위한 Aurora PostgreSQL-Compatible Edition 클러스터의 DB 인스턴스 이름을 표시합니다.

이 함수는 Aurora PostgreSQL 버전 13.7, 12.11, 11.16, 10.21 및 기타 모든 이후 버전의 릴리스부터 사용할 수 있습니다.

## 예시
<a name="aurora_db_instance_identifier-examples"></a>

다음 예제에서는 `aurora_db_instance_identifier` 함수 호출의 결과를 보여줍니다.

```
=> SELECT aurora_db_instance_identifier();
aurora_db_instance_identifier 
-------------------------------
 test-my-instance-name
```

이 함수의 결과를 `aurora_replica_status` 함수와 결합하여 연결을 위한 DB 인스턴스에 대한 세부 정보를 얻을 수 있습니다. [aurora\$1replica\$1status](aurora_replica_status.md) 단독으로는 사용 중인 DB 인스턴스가 표시되지 않습니다. 다음 예에서는 이 작업을 수행하는 방법을 보여줍니다.

```
=> SELECT *
    FROM aurora_replica_status() rt, 
         aurora_db_instance_identifier() di
    WHERE rt.server_id = di;
-[ RECORD 1 ]----------------------+-----------------------
server_id                          | test-my-instance-name
session_id                         | MASTER_SESSION_ID
durable_lsn                        | 88492069
highest_lsn_rcvd                   | 
current_read_lsn                   | 
cur_replay_latency_in_usec         | 
active_txns                        | 
is_current                         | t
last_transport_error               | 0
last_error_timestamp               | 
last_update_timestamp              | 2022-06-03 11:18:25+00
feedback_xmin                      | 
feedback_epoch                     | 
replica_lag_in_msec                | 
log_stream_speed_in_kib_per_second | 0
log_buffer_sequence_number         | 0
oldest_read_view_trx_id            | 
oldest_read_view_lsn               | 
pending_read_ios                   | 819
```

# aurora\$1ccm\$1status
<a name="aurora_ccm_status"></a>

클러스터 캐시 관리자의 상태를 표시합니다.

## 구문
<a name="aurora_ccm_status-syntax"></a>

 

```
aurora_ccm_status()
```

## 인수
<a name="aurora_ccm_status-arguments"></a>

없음.

## 반환 타입
<a name="aurora_ccm_status-return-type"></a>

다음 열이 있는 SETOF 레코드:
+ `buffers_sent_last_minute` - 지난 1분 동안 지정된 리더로 전송된 버퍼 수입니다.
+ `buffers_found_last_minute` - 지난 1분 동안 식별된 자주 액세스된 버퍼 수입니다.
+ `buffers_sent_last_scan` – 버퍼 캐시의 마지막 전체 검색 중에 지정된 리더로 전송된 버퍼 수입니다.
+ `buffers_found_last_scan` – 버퍼 캐시의 마지막 전체 검색 중에 자주 액세스된 버퍼 수입니다. 지정된 리더에 이미 캐시된 버퍼는 전송되지 않습니다.
+ `buffers_sent_current_scan` - 현재 스캔 중에 전송된 버퍼 수입니다.
+ `buffers_found_current_scan` - 현재 스캔에서 식별된 자주 액세스된 버퍼 수입니다.
+ `current_scan_progress` - 현재 스캔 중에 지금까지 방문한 버퍼 수입니다.

## 사용 노트
<a name="aurora_ccm_status-usage-notes"></a>

이 함수를 사용하여 클러스터 캐시 관리(CCM) 기능을 확인하고 모니터링할 수 있습니다. 이 함수는 Aurora PostgreSQL DB 클러스터에서 CCM이 활성화된 경우에만 작동합니다. 이 함수를 사용하려면 Aurora PostgreSQL DB 클러스터의 Write DB 인스턴스에 연결합니다.

클러스터의 Custom DB 클러스터 파라미터 그룹에서 `apg_ccm_enabled`를 1로 설정하여 Aurora PostgreSQL DB 클러스터에 대한 CCM을 켭니다. 자세한 방법은 [클러스터 캐시 관리 구성](AuroraPostgreSQL.cluster-cache-mgmt.md#AuroraPostgreSQL.cluster-cache-mgmt.Configure)을 참조하세요.

클러스터에 Aurora Reader 인스턴스가 다음과 같이 구성된 경우 Aurora PostgreSQL DB 클러스터에서 클러스터 캐시 관리가 활성화됩니다.
+ Aurora Reader 인스턴스는 클러스터의 Writer 인스턴스와 동일한 DB 인스턴스 클래스 유형 및 크기를 사용합니다.
+ Aurora Reader 인스턴스는 클러스터의 Tier-0으로 구성됩니다. 클러스터에 둘 이상의 Reader가 있는 경우 이게 유일한 Tier-0 Reader입니다.

둘 이상의 Reader를 Tier-0으로 설정하면 CCM이 사용 중지됩니다. CCM이 사용 중지된 경우 이 함수를 호출하면 다음과 같은 오류 메시지가 반환됩니다.

```
ERROR: Cluster Cache Manager is disabled
```

또한 PostgreSQL pg\$1buffercache 확장 프로그램을 사용하여 버퍼 캐시를 분석할 수 있습니다. 자세한 내용은 PostgreSQL 설명서의 [pg\$1buffercache](https://www.postgresql.org/docs/current/pgbuffercache.html)를 참조하세요.

자세한 내용은 [Introduction to Aurora PostgreSQL cluster cache management](https://aws.amazon.com/blogs/database/introduction-to-aurora-postgresql-cluster-cache-management/)(Aurora PostgreSQL 클러스터 캐시 관리 소개)를 참조하세요.

## 예시
<a name="aurora_ccm_status-examples"></a>

다음 예제에서는 `aurora_ccm_status` 함수 호출의 결과를 보여줍니다. 이 첫 번째 예제에서는 CCM 통계를 보여줍니다.

```
=> SELECT * FROM aurora_ccm_status();
 buffers_sent_last_minute | buffers_found_last_minute | buffers_sent_last_scan | buffers_found_last_scan | buffers_sent_current_scan | buffers_found_current_scan | current_scan_progress
--------------------------+---------------------------+------------------------+-------------------------+---------------------------+----------------------------+-----------------------
                  2242000 |                   2242003 |               17920442 |                17923410 |                  14098000 |                   14100964 |              15877443
```

보다 자세한 내용을 보려면 다음과 같이 확장된 디스플레이를 사용하면 됩니다.

```
\x
Expanded display is on.
SELECT *  FROM aurora_ccm_status();
[ RECORD 1 ]-----------------------+---------
buffers_sent_last_minute           | 2242000
buffers_found_last_minute          | 2242003
buffers_sent_last_scan             | 17920442
buffers_found_last_scan            | 17923410
buffers_sent_current_scan          | 14098000
buffers_found_current_scan         | 14100964
current_scan_progress              | 15877443
```

이 예제에서는 웜 비율과 웜 백분율을 확인하는 방법을 보여줍니다.

```
=> SELECT buffers_sent_last_minute * 8/60 AS warm_rate_kbps,
100 * (1.0-buffers_sent_last_scan/buffers_found_last_scan) AS warm_percent 
FROM aurora_ccm_status ();
 warm_rate_kbps | warm_percent
----------------+--------------
 16523 |        100.0
```

# aurora\$1global\$1db\$1instance\$1status
<a name="aurora_global_db_instance_status"></a>

Aurora 전역 DB 클러스터의 복제본을 포함하여 모든 Aurora 인스턴스의 상태를 표시합니다.

## 구문
<a name="aurora_global_db_instance_status-syntax"></a>

 

```
aurora_global_db_instance_status()
```

## 인수
<a name="aurora_global_db_instance_status-arguments"></a>

없음

## 반환 타입
<a name="aurora_global_db_instance_status-return-type"></a>

다음 열이 있는 SETOF 레코드:
+ `server_id` - DB 인스턴스의 식별자입니다.
+ `session_id` - 현재 세션에 대한 고유한 식별자입니다. `MASTER_SESSION_ID`의 값은 Writer(프라이머리) DB 인스턴스를 식별합니다.
+ `aws_region` - 이 전역 DB 인스턴스가 실행되는 AWS 리전입니다. 리전 목록은 [리전 가용성](Concepts.RegionsAndAvailabilityZones.md#Aurora.Overview.Availability) 섹션을 참조하세요.
+ `durable_lsn` - 스토리지에서 내구성이 뛰어난 로그 시퀀스 번호(LSN)입니다. LSN(로그 시퀀스 번호)은 데이터베이스 트랜잭션 로그의 레코드를 식별하는 고유한 순차적 번호입니다. LSN은 더 큰 LSN이 더 이후의 트랜잭션을 나타내도록 정렬됩니다.
+ `highest_lsn_rcvd` - 라이터 DB 인스턴스에서 DB 인스턴스가 수신한 가장 높은 LSN입니다.
+ `feedback_epoch` – DB 인스턴스가 상시 대기 방식 정보를 생성할 때 사용하는 epoch입니다. *상시 대기 방식*은 프라이머리 DB가 복구 또는 대기 모드에 있는 동안 연결 및 쿼리를 지원하는 DB 인스턴스입니다. 상시 대기 방식 정보에는 epoch(시점)와 상시 대기 방식으로 사용되는 DB 인스턴스에 대한 기타 세부 정보가 포함됩니다. 자세한 내용은 PostgreSQL 설명서의 [핫 스탠바이](https://www.postgresql.org/docs/current/hot-standby.html)를 참조하세요.
+ `feedback_xmin` - DB 인스턴스가 사용하는 최소(가장 오래된) 활성 트랜잭션 ID입니다.
+ `oldest_read_view_lsn` – DB 인스턴스가 스토리지에서 읽는 데 사용하는 가장 오래된 LSN입니다.
+ `visibility_lag_in_msec` - 이 DB 인스턴스가 라이터 DB 인스턴스보다 지연된 시간(밀리초)입니다.

## 사용 노트
<a name="aurora_global_db_instance_status-usage-notes"></a>

이 함수는 Aurora DB 클러스터에 대한 복제 통계를 보여줍니다. 클러스터의 각 Aurora PostgreSQL DB 인스턴스에 대해 이 함수는 글로벌 데이터베이스 구성에서 크로스 리전 복제본을 포함하는 데이터 행을 표시합니다.

Aurora PostgreSQL DB 클러스터의 인스턴스나 Aurora PostgreSQL 전역 데이터베이스의 인스턴스에서 이 함수를 실행할 수 있습니다. 이 함수는 모든 복제본 인스턴스의 지연에 대한 세부 정보를 반환합니다.

이 함수(`aurora_global_db_instance_status`)를 사용하거나 `aurora_global_db_status`를 사용하여 지연 모니터링에 대해 자세히 알아보려면 [Aurora PostgreSQL 기반 글로벌 데이터베이스 모니터링](aurora-global-database-monitoring.md#aurora-global-database-monitoring.postgres) 섹션을 참조하세요.

Aurora 전역 데이터베이스에 대한 자세한 내용은 [Amazon Aurora Global Database 개요](aurora-global-database.md#aurora-global-database-overview) 섹션을 참조하세요.

Aurora 전역 데이터베이스를 시작하려면 [Amazon Aurora Global Database 시작하기](aurora-global-database-getting-started.md) 섹션 또는 [Amazon Aurora FAQ](https://aws.amazon.com/rds/aurora/faqs/)를 참조하세요.

## 예시
<a name="aurora_global_db_instance_status-examples"></a>

이 예시에서는 크로스 리전 인스턴스 통계를 보여줍니다.

```
=> SELECT *
  FROM aurora_global_db_instance_status();
                server_id                 |              session_id              |  aws_region  | durable_lsn | highest_lsn_rcvd | feedback_epoch | feedback_xmin | oldest_read_view_lsn | visibility_lag_in_msec
------------------------------------------+--------------------------------------+--------------+-------------+------------------+----------------+---------------+----------------------+------------------------
 db-119-001-instance-01                   | MASTER_SESSION_ID                    | eu-west-1    |  2534560273 |           [NULL] |         [NULL] |        [NULL] |               [NULL] |                 [NULL]
 db-119-001-instance-02                   | 4ecff34d-d57c-409c-ba28-278b31d6fc40 | eu-west-1    |  2534560266 |       2534560273 |              0 |      19669196 |           2534560266 |                      6
 db-119-001-instance-03                   | 3e8a20fc-be86-43d5-95e5-bdf19d27ad6b | eu-west-1    |  2534560266 |       2534560273 |              0 |      19669196 |           2534560266 |                      6
 db-119-001-instance-04                   | fc1b0023-e8b4-4361-bede-2a7e926cead6 | eu-west-1    |  2534560266 |       2534560273 |              0 |      19669196 |           2534560254 |                     23
 db-119-001-instance-05                   | 30319b74-3f08-4e13-9728-e02aa1aa8649 | eu-west-1    |  2534560266 |       2534560273 |              0 |      19669196 |           2534560254 |                     23
 db-119-001-global-instance-1             | a331ffbb-d982-49ba-8973-527c96329c60 | eu-central-1 |  2534560254 |       2534560266 |              0 |      19669196 |           2534560247 |                    996
 db-119-001-global-instance-1             | e0955367-7082-43c4-b4db-70674064a9da | eu-west-2    |  2534560254 |       2534560266 |              0 |      19669196 |           2534560247 |                     14
 db-119-001-global-instance-1-eu-west-2a  | 1248dc12-d3a4-46f5-a9e2-85850491a897 | eu-west-2    |  2534560254 |       2534560266 |              0 |      19669196 |           2534560247 |                      0
```

이 예제에서는 밀리초 단위로 전역 복제본 지연을 확인하는 방법을 보여줍니다.

```
=> SELECT CASE
          WHEN 'MASTER_SESSION_ID' = session_id THEN 'Primary'
         ELSE 'Secondary'
      END AS global_role,
      aws_region,
      server_id,
      visibility_lag_in_msec
  FROM aurora_global_db_instance_status()
  ORDER BY 1, 2, 3;
   global_role |  aws_region  |                server_id                | visibility_lag_in_msec
-------------+--------------+-----------------------------------------+------------------------
 Primary     | eu-west-1    | db-119-001-instance-01                  |                 [NULL]
 Secondary   | eu-central-1 | db-119-001-global-instance-1            |                     13
 Secondary   | eu-west-1    | db-119-001-instance-02                  |                     10
 Secondary   | eu-west-1    | db-119-001-instance-03                  |                      9
 Secondary   | eu-west-1    | db-119-001-instance-04                  |                      2
 Secondary   | eu-west-1    | db-119-001-instance-05                  |                     18
 Secondary   | eu-west-2    | db-119-001-global-instance-1            |                     14
 Secondary   | eu-west-2    | db-119-001-global-instance-1-eu-west-2a |                     13
```

이 예제에서는 전역 데이터베이스 구성에서 AWS 리전당 최소, 최대 및 평균 지연을 확인하는 방법을 보여줍니다.

```
=> SELECT 'Secondary' global_role,
       aws_region,
       min(visibility_lag_in_msec) min_lag_in_msec,
       max(visibility_lag_in_msec) max_lag_in_msec,
       round(avg(visibility_lag_in_msec),0) avg_lag_in_msec
  FROM aurora_global_db_instance_status()
 WHERE aws_region NOT IN (SELECT   aws_region
                              FROM aurora_global_db_instance_status()
                             WHERE session_id='MASTER_SESSION_ID')
                          GROUP BY aws_region
UNION ALL
SELECT  'Primary' global_role,
        aws_region,
        NULL,
        NULL,
        NULL
    FROM aurora_global_db_instance_status()
   WHERE session_id='MASTER_SESSION_ID'
ORDER BY 1, 5;
 global_role |  aws_region  | min_lag_in_msec | max_lag_in_msec | avg_lag_in_msec
------------+--------------+-----------------+-----------------+-----------------
 Primary    | eu-west-1    |          [NULL] |          [NULL] |          [NULL]
 Secondary  | eu-central-1 |             133 |             133 |             133
 Secondary  | eu-west-2    |               0 |             495 |             248
```

# aurora\$1global\$1db\$1status
<a name="aurora_global_db_status"></a>

Aurora Global Database 지연의 다양한 측면, 특히 기본 Aurora 스토리지의 지연(내구성 지연) 및 Recovery Point Objective(RPO) 간의 지연에 대한 정보를 표시합니다.

## 구문
<a name="aurora_global_db_status-syntax"></a>

 

```
aurora_global_db_status()
```

## 인수
<a name="aurora_global_db_status-arguments"></a>

없음.

## 반환 타입
<a name="aurora_global_db_status-return-type"></a>

다음 열이 있는 SETOF 레코드:
+ `aws_region` - 이 DB 클러스터가 있는 AWS 리전입니다. 엔진별 AWS 리전의 전체 목록을 보려면 [리전 및 가용 영역](Concepts.RegionsAndAvailabilityZones.md) 섹션을 참조하세요.
+ `highest_lsn_written` - 이 DB 클러스터에 현재 존재하는 가장 높은 로그 시퀀스 번호(LSN)입니다. LSN(로그 시퀀스 번호)은 데이터베이스 트랜잭션 로그의 레코드를 식별하는 고유한 순차적 번호입니다. LSN은 더 큰 LSN이 더 이후의 트랜잭션을 나타내도록 정렬됩니다.
+ `durability_lag_in_msec` - 보조 DB 클러스터의 `highest_lsn_written`과 기본 DB 클러스터의 `highest_lsn_written` 간 타임스탬프 값 차이입니다. -1 값은 Aurora Global Database의 기본 DB 클러스터를 식별합니다.
+ `rpo_lag_in_msec` - Recovery Point Objective(RPO) 지연입니다. RPO 지연은 Aurora Global Databse의 기본 DB 클러스터에 저장된 후 가장 최근의 사용자 트랜잭션 COMMIT 보조 DB 클러스터에 저장하는 데 걸리는 시간입니다. -1 값은 기본 DB 클러스터를 나타냅니다. 따라서 지연은 관련이 없습니다.

  간단히 말해서 이 지표는 Aurora Global Databse의 각 Aurora PostgreSQL DB 클러스터에 대한 복구 시점 목표, 즉 중단 시 손실될 수 있는 데이터의 양을 계산합니다. 지연과 마찬가지로 RPO는 시간 단위로 측정됩니다.
+ `last_lag_calculation_time` - `durability_lag_in_msec` 및 `rpo_lag_in_msec`에 대한 값이 마지막으로 계산된 시점을 지정하는 타임스탬프입니다. 시간 값(예: `1970-01-01 00:00:00+00`)은 이것이 기본 DB 클러스터임을 의미합니다.
+ `feedback_epoch` – 보조 DB 클러스터가 상시 대기 방식 정보를 생성할 때 사용하는 epoch입니다. *상시 대기 방식*은 프라이머리 DB가 복구 또는 대기 모드에 있는 동안 연결 및 쿼리를 지원하는 DB 인스턴스입니다. 상시 대기 방식 정보에는 epoch(시점)와 상시 대기 방식으로 사용되는 DB 인스턴스에 대한 기타 세부 정보가 포함됩니다. 자세한 내용은 PostgreSQL 설명서의 [핫 스탠바이](https://www.postgresql.org/docs/current/hot-standby.html)를 참조하세요.
+ `feedback_xmin` – 보조 DB 클러스터가 사용하는 최소(가장 오래된) 활성 트랜잭션 ID입니다.

## 사용 노트
<a name="aurora_global_db_status-usage-notes"></a>

현재 사용 가능한 모든 Aurora PostgreSQL 버전에서 이 함수를 지원합니다. 이 함수는 Aurora 전역 데이터베이스에 대한 복제 통계를 보여줍니다. Aurora PostgreSQL 전역 데이터베이스의 각 DB 클러스터에 대해 하나의 행을 표시합니다. Aurora PostgreSQL 전역 데이터베이스의 인스턴스에서 이 함수를 실행할 수 있습니다.

표시되는 데이터 지연인 Aurora 전역 데이터베이스 복제 지연을 평가하려면[aurora\$1global\$1db\$1instance\$1status](aurora_global_db_instance_status.md) 섹션을 참조하세요.

`aurora_global_db_status` 및 `aurora_global_db_instance_status`를 사용하여 Aurora 전역 데이터베이스 지연을 모니터링하는 방법에 대해 자세히 알아보려면 [Aurora PostgreSQL 기반 글로벌 데이터베이스 모니터링](aurora-global-database-monitoring.md#aurora-global-database-monitoring.postgres) 섹션을 참조하세요. Aurora 전역 데이터베이스에 대한 자세한 내용은 [Amazon Aurora Global Database 개요](aurora-global-database.md#aurora-global-database-overview) 섹션을 참조하세요.

## 예시
<a name="aurora_global_db_status-examples"></a>

이 예제에서는 교차 리전 스토리지 통계를 표시하는 방법을 보여줍니다.

```
=> SELECT CASE 
          WHEN '-1' = durability_lag_in_msec THEN 'Primary'
          ELSE 'Secondary'
       END AS global_role,
       *
  FROM aurora_global_db_status();
 global_role | aws_region | highest_lsn_written | durability_lag_in_msec | rpo_lag_in_msec | last_lag_calculation_time  | feedback_epoch | feedback_xmin
-------------+------------+---------------------+------------------------+-----------------+----------------------------+----------------+---------------
 Primary     | eu-west-1  |           131031557 |                     -1 |              -1 | 1970-01-01 00:00:00+00     |              0 |             0
 Secondary   | eu-west-2  |           131031554 |                    410 |               0 | 2021-06-01 18:59:36.124+00 |              0 |         12640
 Secondary   | eu-west-3  |           131031554 |                    410 |               0 | 2021-06-01 18:59:36.124+00 |              0 |         12640
```

# aurora\$1list\$1builtins
<a name="aurora_list_builtins"></a>

사용 가능한 모든 Aurora PostgreSQL 내장 함수를 간략한 설명 및 함수 세부 정보와 함께 나열합니다.

## 구문
<a name="aurora_list_builtins-syntax"></a>

 

```
aurora_list_builtins()
```

## 인수
<a name="aurora_list_builtins-arguments"></a>

없음

## 반환 타입
<a name="aurora_list_builtins-return-type"></a>

SETOF 레코드

## 예시
<a name="aurora_list_builtins-examples"></a>

다음 예제에서는 `aurora_list_builtins` 함수 호출의 결과를 보여줍니다.

```
=> SELECT * 
FROM aurora_list_builtins();
     
               Name                | Result data type |                   Argument data types                    | Type | Volatility |  Parallel  | Security |                             Description
-----------------------------------+------------------+----------------------------------------------------------+------+------------+------------+----------+---------------------------------------------------------------------
 aurora_version                    | text             |                                                          | func | stable     | safe       | invoker  | Amazon Aurora PostgreSQL-Compatible Edition version string
 aurora_stat_wait_type             | SETOF record     | OUT type_id smallint, OUT type_name text                 | func | volatile   | restricted | invoker  | Lists all supported wait types
 aurora_stat_wait_event            | SETOF record     | OUT type_id smallint, OUT event_id integer, OUT event_na.| func | volatile   | restricted | invoker  | Lists all supported wait events
                                   |                  |.me text                                                  |      |            |            |          |
 aurora_list_builtins              | SETOF record     | OUT "Name" text, OUT "Result data type" text, OUT "Argum.| func | stable     | safe       | invoker  | Lists all Aurora built-in functions
                                   |                  |.ent data types" text, OUT "Type" text, OUT "Volatility" .|      |            |            |          |
                                   |                  |.text, OUT "Parallel" text, OUT "Security" text, OUT "Des.|      |            |            |          |
                                   |                  |.cription" text                                           |      |            |            |          |
 .
 .
 .
 aurora_stat_file                  | SETOF record     | OUT filename text, OUT allocated_bytes bigint, OUT used_.| func | stable     | safe       | invoker  | Lists all files present in Aurora storage
                                   |                  |.bytes bigint                                             |      |            |            |          |
 aurora_stat_get_db_commit_latency | bigint           | oid                                                      | func | stable     | restricted | invoker  | Per DB commit latency in microsecs
```

# aurora\$1replica\$1status
<a name="aurora_replica_status"></a>

모든 Aurora PostgreSQL 리더 노드의 상태를 표시합니다.

## 구문
<a name="aurora_replica_status-syntax"></a>

 

```
aurora_replica_status()
```

## 인수
<a name="aurora_replica_status-arguments"></a>

없음

## 반환 타입
<a name="aurora_replica_status-return-type"></a>

다음 열이 있는 SETOF 레코드:
+ `server_id` - DB 인스턴스 ID(식별자) 
+ `session_id` - 현재 세션의 고유 식별자로, 다음과 같이 기본 인스턴스 및 리더 인스턴스에 대해 반환됩니다.
  + 기본 인스턴스의 경우`session_id`는 항상 ``MASTER_SESSION_ID’`입니다.
  + 리더 인스턴스의 경우`session_id`는 항상 리더 인스턴스의 `UUID`(Universally Unique Identifier)입니다.
+ `durable_lsn` - 스토리지에 저장된 LSN(로그 시퀀스 번호)입니다.
  + 기본 볼륨의 경우 현재 적용 중인 기본 볼륨 내구성 LSN(VDL)입니다.
  + 보조 볼륨의 경우 보조 볼륨이 성공적으로 적용된 기본 볼륨의 VDL입니다.
**참고**  
LSN(로그 시퀀스 번호)은 데이터베이스 트랜잭션 로그의 레코드를 식별하는 고유한 순차적 번호입니다. LSN은 더 큰 LSN이 더 이후의 시퀀스에서 발생한 트랜잭션을 나타내도록 정렬됩니다.
+ `highest_lsn_rcvd` - 라이터 DB 인스턴스에서 DB 인스턴스가 수신한 가장 높은(최신) LSN입니다.
+ `current_read_lsn` - 모든 리더에 적용된 최신 스냅샷의 LSN입니다.
+ `cur_replay_latency_in_usec` - 보조 볼륨에서 로그를 재생하는 데 걸리는 시간(마이크로초)입니다.
+ `active_txns` - 현재 활성 DML 트랜잭션의 수입니다.
+ `is_current` - 사용되지 않습니다.
+ `last_transport_error` - 마지막 복제 오류 코드입니다.
+ `last_error_timestamp` - 마지막 복제 오류의 타임스탬프입니다.
+ `last_update_timestamp` - 복제본 상태에 대한 마지막 업데이트의 타임스탬프입니다. Aurora PostgreSQL 13.9부터는 연결된 DB 인스턴스의 `last_update_timestamp` 값이 `NULL`로 설정됩니다.
+ `feedback_xmin` - 복제본의 상시 대기 feedback\$1xmin입니다. DB 인스턴스가 사용하는 최소(가장 오래된) 활성 트랜잭션 ID입니다.
+ `feedback_epoch` – DB 인스턴스가 상시 대기 정보를 생성할 때 사용하는 Epoch입니다.
+ `replica_lag_in_msec` - 리더 인스턴스가 라이터 인스턴스보다 지연되는 시간(밀리초)입니다.
+ `log_stream_speed_in_kib_per_second` - 로그 스트림 처리량(초당 KB)입니다.
+ `log_buffer_sequence_number` - 로그 버퍼 시퀀스 번호입니다.
+ `oldest_read_view_trx_id` - 사용되지 않습니다.
+ `oldest_read_view_lsn` – DB 인스턴스가 스토리지에서 읽는 데 사용하는 가장 오래된 LSN입니다.
+ `pending_read_ios` - 복제본에서 여전히 보류 중인 미해결 페이지 읽기입니다.
+ `read_ios` - 복제본의 총 페이지 읽기 횟수입니다.
+ `iops` - 사용되지 않습니다.
+ `cpu` - 클러스터의 각 노드에 대한 Aurora 스토리지 대몬의 CPU 사용량입니다. 인스턴스별 CPU 사용량에 대한 자세한 내용은 [Amazon Aurora에 대한 인스턴스 수준 지표](Aurora.AuroraMonitoring.Metrics.md#Aurora.AuroraMySQL.Monitoring.Metrics.instances) 단원을 참조하세요.

## 사용 노트
<a name="aurora_replica_status-usage-notes"></a>

현재 사용 가능한 모든 Aurora PostgreSQL 버전에서 이 함수를 지원합니다. `aurora_replica_status` 함수는 Aurora PostgreSQL DB 클러스터의 복제본 상태 관리자에서 값을 반환합니다. 이 함수를 사용하면 Aurora DB 클러스터의 모든 DB 인스턴스에 대한 지표를 포함하여 Aurora PostgreSQL DB 클러스터의 복제 상태에 대한 정보를 얻을 수 있습니다. 예를 들어, 다음을 수행할 수 있습니다.
+ **Aurora PostgreSQL DB 클러스터의 인스턴스 유형(라이터, 리더)에 대한 정보 가져오기** - 다음 열의 값을 확인하여 이 정보를 얻을 수 있습니다.
  + `server_id` - 인스턴스를 생성할 때 지정한 인스턴스의 이름을 포함합니다. 기본(라이터) 인스턴스 등 일부 경우에는 일반적으로 Aurora PostgreSQL DB 클러스터에 대해 생성한 이름에 *-instance-1*을 추가하여 이름이 생성됩니다.
  + `session_id` - `session_id` 필드는 인스턴스가 리더인지 라이터인지를 나타냅니다. 라이터 인스턴스의 경우 `session_id`는 항상 `"MASTER_SESSION_ID"`로 설정됩니다. 리더 인스턴스의 경우,`session_id`는 특정 리더의 `UUID`로 설정됩니다.
+ **복제본 지연과 같은 일반적인 복제 문제 진단** - 복제본 지연은 리더 인스턴스의 페이지 캐시가 라이터 인스턴스의 페이지 캐시보다 뒤처지는 시간(밀리초)입니다. 이 지연은 [Amazon Aurora를 사용한 복제](Aurora.Replication.md)에 설명된 대로 Aurora 클러스터에서 비동기 복제를 사용하기 때문에 발생합니다. 이 함수가 반환한 결과의 `replica_lag_in_msec` 열에 표시됩니다. 대기 서버의 복구 충돌로 인해 쿼리가 취소되는 경우에도 지연이 발생할 수 있습니다. `pg_stat_database_conflicts()`를 통해 이러한 충돌로 인해 복제본 지연이 발생하는지 확인할 수 있습니다. 자세한 내용은 *PostgreSQL 설명서*에서 [통계 수집기](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-DATABASE-CONFLICTS-VIEW)를 참조하세요. 고가용성 및 복제에 대한 자세한 내용은 [Amazon Aurora FAQ](https://aws.amazon.com/rds/aurora/faqs/#High_Availability_and_Replication) 섹션을 참조하세요.

  Amazon CloudWatch는 시간 경과에 따른 `replica_lag_in_msec` 결과를 `AuroraReplicaLag` 지표로 저장합니다. Aurora에 CloudWatch 지표를 사용하는 방법에 관한 자세한 내용은 [Amazon CloudWatch로 Amazon Aurora 지표 모니터링](monitoring-cloudwatch.md) 단원을 참조하세요.

Aurora 읽기 전용 복제본 및 재시작 문제 해결에 대한 자세한 내용은 [AWS Support 센터](https://console.aws.amazon.com/support/home#/)의 [Amazon Aurora 읽기 전용 복제본이 뒤처지고 다시 시작되는 이유는 무엇입니까?](https://aws.amazon.com/premiumsupport/knowledge-center/aurora-read-replica-restart/) 섹션을 참조하세요.

## 예시
<a name="aurora_replica_status-examples"></a>

다음 예제에서는 Aurora PostgreSQL DB 클러스터에 있는 모든 인스턴스의 복제 상태를 가져오는 방법을 보여줍니다.

```
=> SELECT * 
FROM aurora_replica_status();
```

다음 예제는 `docs-lab-apg-main` Aurora PostgreSQL DB 클러스터의 라이터 인스턴스를 보여줍니다.

```
=> SELECT server_id, 
    CASE 
        WHEN 'MASTER_SESSION_ID' = session_id THEN 'writer'
        ELSE 'reader' 
    END AS instance_role
FROM aurora_replica_status() 
WHERE session_id = 'MASTER_SESSION_ID';
        server_id       | instance_role
------------------------+---------------
 db-119-001-instance-01 | writer
```

다음 예제에서는 클러스터의 모든 리더 인스턴스를 나열합니다.

```
=> SELECT server_id, 
    CASE 
        WHEN 'MASTER_SESSION_ID' = session_id THEN 'writer'
        ELSE 'reader' 
    END AS instance_role
FROM aurora_replica_status() 
WHERE session_id <> 'MASTER_SESSION_ID';
        server_id       | instance_role
------------------------+---------------
db-119-001-instance-02  | reader
db-119-001-instance-03  | reader
db-119-001-instance-04  | reader
db-119-001-instance-05  | reader
(4 rows)
```

다음 예제에서는 모든 인스턴스, 각 인스턴스가 라이터보다 지연되는 시간 및 마지막 업데이트 이후의 기간을 나열합니다.

```
=> SELECT server_id, 
    CASE 
        WHEN 'MASTER_SESSION_ID' = session_id THEN 'writer'
        ELSE 'reader' 
    END AS instance_role,
    replica_lag_in_msec AS replica_lag_ms,
    round(extract (epoch FROM (SELECT age(clock_timestamp(), last_update_timestamp))) * 1000) AS last_update_age_ms
FROM aurora_replica_status()
ORDER BY replica_lag_in_msec NULLS FIRST;
       server_id        | instance_role | replica_lag_ms | last_update_age_ms
------------------------+---------------+----------------+--------------------
 db-124-001-instance-03 | writer        |         [NULL] |               1756
 db-124-001-instance-01 | reader        |             13 |               1756
 db-124-001-instance-02 | reader        |             13 |               1756
(3 rows)
```

# aurora\$1stat\$1activity
<a name="aurora_stat_activity"></a>

서버 프로세스당 하나의 행을 반환하며 해당 프로세스의 현재 활동과 관련된 정보를 표시합니다.

## 구문
<a name="aurora_stat_activity-syntax"></a>

 

```
aurora_stat_activity();
```

## 인수
<a name="aurora_stat_activity-arguments"></a>

없음

## 반환 타입
<a name="aurora_stat_activity-return-type"></a>

서버 프로세스당 하나의 행을 반환합니다. `pg_stat_activity` 열 외에도 다음 필드가 추가됩니다.
+ planid – 계획 식별자

## 사용 노트
<a name="aurora_stat_activity-usage-notes"></a>

현재 쿼리 실행 계획을 보여주는 추가 `plan_id` 열과 함께 동일한 열을 반환하기 위한 `pg_stat_activity`의 보조 뷰입니다.

뷰에서 plan\$1id를 반환하려면 `aurora_compute_plan_id`가 활성화되어야 합니다.

이 함수는 Aurora PostgreSQL 버전 14.10 및 15.5 이상 모든 버전의 릴리스부터 사용할 수 있습니다.

## 예시
<a name="aurora_stat_activity-examples"></a>

아래 예제 쿼리는 query\$1id 및 plan\$1id를 기준으로 상위 부하를 집계합니다.

```
db1=# select count(*), query_id, plan_id
db1-# from aurora_stat_activity() where state = 'active'
db1-# and pid <> pg_backend_pid()
db1-# group by query_id, plan_id
db1-# order by 1 desc;   

count |  query_id             |  plan_id 
-------+----------------------+-------------
 11    | -5471422286312252535 | -2054628807
 3     | -6907107586630739258 | -815866029
 1     | 5213711845501580017  |  300482084
(3 rows)
```

query\$1id에 사용되는 계획이 변경되면 aurora\$1stat\$1activity에서 새 plan\$1id를 보고합니다.

```
count  |  query_id            |  plan_id 
-------+----------------------+-------------
 10    | -5471422286312252535 | 1602979607
 1     | -6907107586630739258 | -1809935983
 1     | -2446282393000597155 | -207532066
(3 rows)
```

# aurora\$1stat\$1backend\$1waits
<a name="aurora_stat_backend_waits"></a>

특정 백엔드 프로세스의 대기 활동에 대한 통계를 표시합니다.

## 구문
<a name="aurora_stat_backend_waits-syntax"></a>

 

```
aurora_stat_backend_waits(pid)
```

## 인수
<a name="aurora_stat_backend_waits-arguments"></a>

`pid` - 백엔드 프로세스의 ID입니다. `pg_stat_activity` 보기를 사용하여 프로세스 ID를 얻을 수 있습니다.

## 반환 타입
<a name="aurora_stat_backend_waits-return-type"></a>

다음 열이 있는 SETOF 레코드:
+ `type_id` - 몇 가지 예제에 이름을 지정하기 위해 경량 잠금(`LWLock`)용 `1`, 잠금용 `3`, 클라이언트 세션용 `6`과 같이 대기 이벤트 유형을 나타내는 숫자입니다. 이 함수의 결과를 [예시](#aurora_stat_backend_waits-examples)에서 볼 수 있듯 `aurora_stat_wait_type`의 열과 결합하면 이러한 값이 의미 있게 됩니다.
+ `event_id` - 대기 이벤트에 대한 식별 번호입니다. 이 값을 `aurora_stat_wait_event`의 열과 결합하여 유의미한 이벤트 이름을 획득합니다.
+ `waits` - 지정한 프로세스 ID에 대해 누적된 대기 시간입니다.
+ `wait_time` - 대기 시간(밀리초)입니다.

## 사용 노트
<a name="aurora_stat_backend_waits-usage-notes"></a>

이 함수를 사용하여 연결이 개방된 이후 발생한 특정 백엔드(세션) 대기 이벤트를 분석할 수 있습니다. 대기 이벤트 이름 및 유형에 대한 보다 의미 있는 정보를 얻으려면 예제에 나와 있듯 JOIN을 사용하여 함수 `aurora_stat_wait_type` 및 `aurora_stat_wait_event`를 결합하면 됩니다.

## 예시
<a name="aurora_stat_backend_waits-examples"></a>

이 예제에서는 백엔드 프로세스 ID 3027에 대한 모든 대기, 유형 및 이벤트 이름을 보여줍니다.

```
=> SELECT type_name, event_name, waits, wait_time
        FROM aurora_stat_backend_waits(3027)
NATURAL JOIN aurora_stat_wait_type()
NATURAL JOIN aurora_stat_wait_event();
type_name |       event_name       | waits | wait_time
-----------+------------------------+-------+------------
 LWLock    | ProcArrayLock          |     3 |         27
 LWLock    | wal_insert             |   423 |      16336
 LWLock    | buffer_content         | 11840 |    1033634
 LWLock    | lock_manager           | 23821 |    5664506
 Lock      | tuple                  | 10258 |  152280165
 Lock      | transactionid          | 78340 | 1239808783
 Client    | ClientRead             | 34072 |   17616684
 IO        | ControlFileSyncUpdate  |     2 |          0
 IO        | ControlFileWriteUpdate |     4 |         32
 IO        | RelationMapRead        |     2 |        795
 IO        | WALWrite               | 36666 |      98623
 IO        | XactSync               |  4867 |    7331963
```

이 예제에서는 모든 활성 세션(`pg_stat_activity state <> 'idle'`)에 대한 현재 및 누적 대기 유형과 대기 이벤트를 보여줍니다(단, 함수(`pid <> pg_backend_pid()`)를 호출하는 현재 세션은 제외).

```
=> SELECT a.pid,
             a.usename,
             a.app_name,
             a.current_wait_type,
             a.current_wait_event,
             a.current_state,
             wt.type_name AS wait_type,
             we.event_name AS wait_event,
             a.waits,
             a.wait_time
        FROM (SELECT pid,
                     usename,
                     left(application_name,16) AS app_name,
                     coalesce(wait_event_type,'CPU') AS current_wait_type,
                     coalesce(wait_event,'CPU') AS current_wait_event,
                     state AS current_state,
                     (aurora_stat_backend_waits(pid)).*
                FROM pg_stat_activity
               WHERE pid <> pg_backend_pid()
                 AND state <> 'idle') a
NATURAL JOIN aurora_stat_wait_type() wt
NATURAL JOIN aurora_stat_wait_event() we;
  pid  | usename  | app_name | current_wait_type | current_wait_event | current_state | wait_type |       wait_event       | waits | wait_time
-------+----------+----------+-------------------+--------------------+---------------+-----------+------------------------+-------+-----------
 30099 | postgres | pgbench  | Lock              | transactionid      | active        | LWLock    | wal_insert             |  1937 |     29975
 30099 | postgres | pgbench  | Lock              | transactionid      | active        | LWLock    | buffer_content         | 22903 |    760498
 30099 | postgres | pgbench  | Lock              | transactionid      | active        | LWLock    | lock_manager           | 10012 |    223207
 30099 | postgres | pgbench  | Lock              | transactionid      | active        | Lock      | tuple                  | 20315 |  63081529
 .
 .
 .
 30099 | postgres | pgbench  | Lock              | transactionid      | active        | IO        | WALWrite               | 93293 |    237440
 30099 | postgres | pgbench  | Lock              | transactionid      | active        | IO        | XactSync               | 13010 |  19525143
 30100 | postgres | pgbench  | Lock              | transactionid      | active        | LWLock    | ProcArrayLock          |     6 |        53
 30100 | postgres | pgbench  | Lock              | transactionid      | active        | LWLock    | wal_insert             |  1913 |     25450
 30100 | postgres | pgbench  | Lock              | transactionid      | active        | LWLock    | buffer_content         | 22874 |    778005
 .
 .
 .
 30109 | postgres | pgbench  | IO                | XactSync           | active        | LWLock    | ProcArrayLock          |     3 |        71
 30109 | postgres | pgbench  | IO                | XactSync           | active        | LWLock    | wal_insert             |  1940 |     27741
 30109 | postgres | pgbench  | IO                | XactSync           | active        | LWLock    | buffer_content         | 22962 |    776352
 30109 | postgres | pgbench  | IO                | XactSync           | active        | LWLock    | lock_manager           |  9879 |    218826
 30109 | postgres | pgbench  | IO                | XactSync           | active        | Lock      | tuple                  | 20401 |  63581306
 30109 | postgres | pgbench  | IO                | XactSync           | active        | Lock      | transactionid          | 50769 | 211645008
 30109 | postgres | pgbench  | IO                | XactSync           | active        | Client    | ClientRead             | 89901 |  44192439
```

이 예제에서는 현재 세션(`pid <>pg_backend_pid()`)을 제외한 모든 활성 세션(`pg_stat_activity state <> 'idle'`)에 대한 현재 및 상위 3개의 누적 대기 유형과 대기 이벤트를 보여줍니다.

```
=> SELECT top3.*
       FROM (SELECT a.pid,
                    a.usename,
                    a.app_name,
                    a.current_wait_type,
                    a.current_wait_event,
                    a.current_state,
                    wt.type_name AS wait_type,
                    we.event_name AS wait_event,
                    a.waits,
                    a.wait_time,
                    RANK() OVER (PARTITION BY pid ORDER BY a.wait_time DESC)
               FROM (SELECT pid,
                            usename,
                            left(application_name,16) AS app_name,
                            coalesce(wait_event_type,'CPU') AS current_wait_type,
                            coalesce(wait_event,'CPU') AS current_wait_event,
                            state AS current_state,
                            (aurora_stat_backend_waits(pid)).*
                       FROM pg_stat_activity
                      WHERE pid <> pg_backend_pid()
                        AND state <> 'idle') a
       NATURAL JOIN aurora_stat_wait_type() wt
       NATURAL JOIN aurora_stat_wait_event() we) top3
 WHERE RANK <=3;
  pid  | usename  | app_name | current_wait_type | current_wait_event | current_state | wait_type |   wait_event    |  waits  | wait_time  | rank
-------+----------+----------+-------------------+--------------------+---------------+-----------+-----------------+---------+------------+------
 20567 | postgres | psql     | CPU               | CPU                | active        | LWLock    | wal_insert      |   25000 |   67512003 |    1
 20567 | postgres | psql     | CPU               | CPU                | active        | IO        | WALWrite        | 3071758 |    1016961 |    2
 20567 | postgres | psql     | CPU               | CPU                | active        | IO        | BufFileWrite    |   20750 |     184559 |    3
 27743 | postgres | pgbench  | Lock              | transactionid      | active        | Lock      | transactionid   |  237350 | 1265580011 |    1
 27743 | postgres | pgbench  | Lock              | transactionid      | active        | Lock      | tuple           |   93641 |  341472318 |    2
 27743 | postgres | pgbench  | Lock              | transactionid      | active        | Client    | ClientRead      |  417556 |  204796837 |    3
 .
 .
 .
 27745 | postgres | pgbench  | IO                | XactSync           | active        | Lock      | transactionid   |  238068 | 1265816822 |    1
 27745 | postgres | pgbench  | IO                | XactSync           | active        | Lock      | tuple           |   93210 |  338312247 |    2
 27745 | postgres | pgbench  | IO                | XactSync           | active        | Client    | ClientRead      |  419157 |  207836533 |    3
 27746 | postgres | pgbench  | Lock              | transactionid      | active        | Lock      | transactionid   |  237621 | 1264528811 |    1
 27746 | postgres | pgbench  | Lock              | transactionid      | active        | Lock      | tuple           |   93563 |  339799310 |    2
 27746 | postgres | pgbench  | Lock              | transactionid      | active        | Client    | ClientRead      |  417304 |  208372727 |    3
```

# aurora\$1stat\$1bgwriter
<a name="aurora_stat_bgwriter"></a>

`aurora_stat_bgwriter`는 최적화된 읽기 캐시 쓰기에 대한 정보를 보여주는 통계 뷰입니다.

## 구문
<a name="aurora_stat_bgwriter-syntax"></a>

 

```
aurora_stat_bgwriter()
```

## 인수
<a name="aurora_stat_bgwriter-arguments"></a>

없음

## 반환 타입
<a name="aurora_stat_bgwriter-return-type"></a>

모든 `pg_stat_bgwriter` 열과 다음과 같은 추가 열이 포함된 SETOF 레코드. `pg_stat_bgwriter` 열에 대한 자세한 내용은 [https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-BGWRITER-VIEW](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-BGWRITER-VIEW) 섹션을 참조하세요.

`pg_stat_reset_shared("bgwriter")`을 사용하여 이 함수의 통계를 재설정할 수 있습니다.
+ `orcache_blks_written` - 기록된 최적화된 읽기 캐시 데이터 블록의 총 수입니다.
+ `orcache_blk_write_time` - `track_io_timing`이 활성화된 경우 최적화된 읽기 캐시에서 데이터를 쓰는 데 소요된 총 시간을 밀리초 단위로 추적합니다. 자세한 내용은 [track\$1io\$1timing](https://www.postgresql.org/docs/current/runtime-config-statistics.html#GUC-TRACK-IO-TIMING)을 참조하세요.

## 사용 노트
<a name="aurora_stat_bgwriter-usage-notes"></a>

이 함수는 다음 Aurora PostgreSQL 버전에서 사용할 수 있습니다.
+ 15.4 이상의 15 버전
+ 14.9 이상의 14 버전

## 예시
<a name="aurora_stat_bgwriter-examples"></a>

```
=> select * from aurora_stat_bgwriter();    
-[ RECORD 1 ]-----------------+-----------
orcache_blks_written          | 246522
orcache_blk_write_time        | 339276.404
```

# aurora\$1stat\$1database
<a name="aurora_stat_database"></a>

pg\$1stat\$1database의 모든 열을 포함하고 끝에 새 열을 추가합니다.

## 구문
<a name="aurora_stat_database-syntax"></a>

 

```
aurora_stat_database()
```

## 인수
<a name="aurora_stat_database-arguments"></a>

없음

## 반환 타입
<a name="aurora_stat_database-return-type"></a>

모든 `pg_stat_database` 열과 다음과 같은 추가 열이 포함된 SETOF 레코드. `pg_stat_database` 열에 대한 자세한 내용은 [https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-DATABASE-VIEW](https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-DATABASE-VIEW) 섹션을 참조하세요.
+ `storage_blks_read` - 이 데이터베이스의 Aurora 스토리지에서 읽은 총 공유 블록 수입니다.
+ `orcache_blks_hit` - 이 데이터베이스의 최적화된 읽기 캐시 적중률의 총 수입니다.
+ `local_blks_read` - 이 데이터베이스에서 읽은 총 로컬 블록 수입니다.
+ `storage_blk_read_time` - `track_io_timing`이 활성화된 경우 Aurora 스토리지에서 데이터 파일 블록을 읽는 데 소요된 총 시간을 밀리초 단위로 추적합니다. 활성화되지 않은 경우 값은 0입니다. 자세한 내용은 [track\$1io\$1timing](https://www.postgresql.org/docs/current/runtime-config-statistics.html#GUC-TRACK-IO-TIMING)을 참조하세요.
+ `local_blk_read_time` - `track_io_timing`이 활성화된 경우 로컬 데이터 파일 블록을 읽는 데 소요된 총 시간을 밀리초 단위로 추적합니다. 활성화되지 않은 경우 값은 0입니다. 자세한 내용은 [track\$1io\$1timing](https://www.postgresql.org/docs/current/runtime-config-statistics.html#GUC-TRACK-IO-TIMING)을 참조하세요.
+ `orcache_blk_read_time` - `track_io_timing`이 활성화된 경우 최적화된 읽기 캐시에서 데이터 파일 블록을 읽는 데 소요된 총 시간을 밀리초 단위로 추적합니다. 활성화되지 않은 경우 값은 0입니다. 자세한 내용은 [track\$1io\$1timing](https://www.postgresql.org/docs/current/runtime-config-statistics.html#GUC-TRACK-IO-TIMING)을 참조하세요.

**참고**  
`blks_read`의 값은 `storage_blks_read`, `orcache_blks_hit`, `local_blks_read`의 합계입니다.  
`blk_read_time`의 값은 `storage_blk_read_time`, `orcache_blk_read_time`, `local_blk_read_time`의 합계입니다.

## 사용 노트
<a name="aurora_stat_database-usage-notes"></a>

이 함수는 다음 Aurora PostgreSQL 버전에서 사용할 수 있습니다.
+ 15.4 이상의 15 버전
+ 14.9 이상의 14 버전

## 예시
<a name="aurora_stat_database-examples"></a>

다음 예는 모든 `pg_stat_database` 열을 포함하고 끝에 새 열 6개를 추가하는 방법을 보여줍니다.

```
=> select * from aurora_stat_database() where datid=14717;    
-[ RECORD 1 ]------------+------------------------------
datid                    | 14717
datname                  | postgres
numbackends              | 1
xact_commit              | 223
xact_rollback            | 4
blks_read                | 1059
blks_hit                 | 11456
tup_returned             | 27746
tup_fetched              | 5220
tup_inserted             | 165
tup_updated              | 42
tup_deleted              | 91
conflicts                | 0
temp_files               | 0
temp_bytes               | 0
deadlocks                | 0
checksum_failures        |
checksum_last_failure    |
blk_read_time            | 3358.689
blk_write_time           | 0
session_time             | 1076007.997
active_time              | 3684.371
idle_in_transaction_time | 0
sessions                 | 10
sessions_abandoned       | 0
sessions_fatal           | 0
sessions_killed          | 0
stats_reset              | 2023-01-12 20:15:17.370601+00
orcache_blks_hit         | 425
orcache_blk_read_time    | 89.934
storage_blks_read        | 623
storage_blk_read_time    | 3254.914
local_blks_read          | 0
local_blk_read_time      | 0
```

# aurora\$1stat\$1dml\$1activity
<a name="aurora_stat_dml_activity"></a>

Aurora PostgreSQL 클러스터의 데이터베이스에서 각 DML(데이터 조작 언어) 작업 유형에 대한 누적 활동을 보고합니다.

## 구문
<a name="aurora_stat_dml_activity-syntax"></a>

 

```
aurora_stat_dml_activity(database_oid)
```

## 인수
<a name="aurora_stat_dml_activity-arguments"></a>

 *database\$1oid*   
Aurora PostgreSQL 클러스터에 있는 데이터베이스의 객체 ID(OID)입니다.

## 반환 타입
<a name="aurora_stat_dml_activity-return-type"></a>

SETOF 레코드

## 사용 노트
<a name="aurora_stat_dml_activity-usage-notes"></a>

`aurora_stat_dml_activity` 함수는 PostgreSQL 엔진 11.6 이상과 호환되는 Aurora PostgreSQL 릴리스 3.1에서만 사용할 수 있습니다.

많은 수의 데이터베이스가 있는 Aurora PostgreSQL 클러스터에서 이 함수를 사용하여 DML 작업이 많거나 느린 데이터베이스 또는 둘 다 해당하는 데이터베이스를 식별합니다.

`aurora_stat_dml_activity` 함수가 실행된 횟수와 SELECT, INSERT, UPDATE 및 DELETE 작업의 누적 대기 시간을 마이크로초 단위로 반환합니다. 이 보고서에는 성공적인 DML 작업만 포함됩니다.

PostgreSQL 통계 액세스 함수 `pg_stat_reset`을 사용하여이 통계를 재설정할 수 있습니다. `pg_stat_get_db_stat_reset_time` 함수를 사용하면 이 통계가 마지막으로 재설정된 시간을 확인할 수 있습니다. PostgreSQL 통계 액세스 함수에 대한 자세한 내용은 PostgreSQL 설명서에서 [통계 수집기](https://www.postgresql.org/docs/9.1/monitoring-stats.html)를 참조하세요.

## 예시
<a name="aurora_stat_dml_activity-examples"></a>

다음 예는 연결된 데이터베이스에 대한 DML 작업 통계를 보고하는 방법을 보여줍니다.

```
––Define the oid variable from connected database by using \gset
=> SELECT oid, 
          datname 
     FROM pg_database 
    WHERE datname=(select current_database()) \gset
=> SELECT * 
     FROM aurora_stat_dml_activity(:oid);
select_count | select_latency_microsecs | insert_count | insert_latency_microsecs | update_count | update_latency_microsecs | delete_count | delete_latency_microsecs
--------------+--------------------------+--------------+--------------------------+--------------+--------------------------+--------------+--------------------------
       178957 |                 66684115 |       171065 |                 28876649 |       519538 |            1454579206167 |            1 |                    53027


–– Showing the same results with expanded display on
=> SELECT * 
     FROM aurora_stat_dml_activity(:oid);
-[ RECORD 1 ]------------+--------------
select_count             | 178957
select_latency_microsecs | 66684115
insert_count             | 171065
insert_latency_microsecs | 28876649
update_count             | 519538
update_latency_microsecs | 1454579206167
delete_count             | 1
delete_latency_microsecs | 53027
```

다음 예는 Aurora PostgreSQL 클러스터의 모든 데이터베이스에 대한 DML 작업 통계를 보여줍니다. 이 클러스터에는 `postgres`와 `mydb`라는 두 개의 데이터베이스가 있습니다. 쉼표로 구분된 목록은 `select_count`, `select_latency_microsecs`, `insert_count`, `insert_latency_microsecs`, `update_count`, `update_latency_microsecs`, `delete_count` 및 `delete_latency_microsecs` 필드와 일치합니다.

Aurora PostgreSQL은 `rdsadmin`이라는 시스템 데이터베이스를 만들고 이 데이터베이스를 사용하여 백업, 복원, 상태 확인, 복제 등의 관리 작업을 지원합니다. 이러한 DML 작업은 Aurora PostgreSQL 클러스터에 영향을 주지 않습니다.

```
=> SELECT oid, 
    datname, 
    aurora_stat_dml_activity(oid) 
    FROM pg_database;
oid  |    datname     |                    aurora_stat_dml_activity
-------+----------------+-----------------------------------------------------------------
 14006 | template0      | (,,,,,,,)
 16384 | rdsadmin       | (2346623,1211703821,4297518,817184554,0,0,0,0)
     1 | template1      | (,,,,,,,)
 14007 | postgres       | (178961,66716329,171065,28876649,519538,1454579206167,1,53027)
 16401 | mydb           | (200246,64302436,200036,107101855,600000,83659417514,0,0)
```

다음 예는 가독성을 높이기 위해 열로 구성된 모든 데이터베이스의 DML 작업 통계를 보여줍니다.

```
SELECT db.datname,
       BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 1), '()') AS select_count,
       BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 2), '()') AS select_latency_microsecs,
       BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 3), '()') AS insert_count,
       BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 4), '()') AS insert_latency_microsecs,
       BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 5), '()') AS update_count,
       BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 6), '()') AS update_latency_microsecs,
       BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 7), '()') AS delete_count,
       BTRIM(SPLIT_PART(db.asdmla::TEXT, ',', 8), '()') AS delete_latency_microsecs 
FROM  (SELECT datname,
              aurora_stat_dml_activity(oid) AS asdmla 
         FROM pg_database
      ) AS db;
      
    datname     | select_count | select_latency_microsecs | insert_count | insert_latency_microsecs | update_count | update_latency_microsecs | delete_count | delete_latency_microsecs
----------------+--------------+--------------------------+--------------+--------------------------+--------------+--------------------------+--------------+--------------------------
 template0      |              |                          |              |                          |              |                          |              |
 rdsadmin       | 4206523      | 2478812333               | 7009414      | 1338482258               | 0            | 0                        | 0            | 0
 template1      |              |                          |              |                          |              |                          |              |
 fault_test     | 66           | 452099                   | 0            | 0                        | 0            | 0                        | 0            | 0
 db_access_test | 1            | 5982                     | 0            | 0                        | 0            | 0                        | 0            | 0
 postgres       | 42035        | 95179203                 | 5752         | 2678832898               | 21157        | 441883182488             | 2            | 1520
 mydb           | 71           | 453514                   | 0            | 0                        | 1            | 190                      | 1            | 152
```

다음 예는 OID가 `16401`인 데이터베이스의 각 DML 작업에 대한 평균 누적 대기 시간(누적 대기 시간을 카운트로 나눈 값)을 보여줍니다.

```
=> SELECT select_count, 
          select_latency_microsecs, 
          select_latency_microsecs/NULLIF(select_count,0) select_latency_per_exec,
          insert_count, 
          insert_latency_microsecs, 
          insert_latency_microsecs/NULLIF(insert_count,0) insert_latency_per_exec,
          update_count, 
          update_latency_microsecs, 
          update_latency_microsecs/NULLIF(update_count,0) update_latency_per_exec,
          delete_count, 
          delete_latency_microsecs, 
          delete_latency_microsecs/NULLIF(delete_count,0) delete_latency_per_exec
     FROM aurora_stat_dml_activity(16401);
-[ RECORD 1 ]------------+-------------
select_count             | 451312
select_latency_microsecs | 80205857
select_latency_per_exec  | 177
insert_count             | 451001
insert_latency_microsecs | 123667646
insert_latency_per_exec  | 274
update_count             | 1353067
update_latency_microsecs | 200900695615
update_latency_per_exec  | 148478
delete_count             | 12
delete_latency_microsecs | 448
delete_latency_per_exec  | 37
```

# aurora\$1stat\$1get\$1db\$1commit\$1latency
<a name="aurora_stat_get_db_commit_latency"></a>

Aurora PostgreSQL 데이터베이스의 누적 커밋 대기 시간을 마이크로초 단위로 가져옵니다. [*커밋 대기 시간(Commit latency)*]은 클라이언트가 커밋 요청을 제출하는 시점과 커밋 승인을 수신하는 시점 사이의 시간으로 측정됩니다.

## 구문
<a name="aurora_stat_get_db_commit_latency-syntax"></a>

 

```
aurora_stat_get_db_commit_latency(database_oid)
```

## 인수
<a name="aurora_stat_get_db_commit_latency-arguments"></a>

 *database\$1oid*   
Aurora PostgreSQL 데이터베이스의 객체 ID(OID)입니다.

## 반환 타입
<a name="aurora_stat_get_db_commit_latency-return-type"></a>

SETOF 레코드

## 사용 노트
<a name="aurora_stat_get_db_commit_latency-usage-notes"></a>

Amazon CloudWatch는 이 함수를 사용하여 평균 커밋 대기 시간을 계산합니다. Amazon CloudWatch 지표와 긴 커밋 대기 시간을 해결하는 방법에 대한 자세한 내용은 [Amazon RDS 콘솔에서 지표 보기](USER_Monitoring.md) 및 [Amazon CloudWatch 지표를 사용하여 Amazon RDS에 대한 더 나은 의사 결정 내리기](https://aws.amazon.com/blogs/database/making-better-decisions-about-amazon-rds-with-amazon-cloudwatch-metrics/)를 참조하세요.

PostgreSQL 통계 액세스 함수 `pg_stat_reset`을 사용하여이 통계를 재설정할 수 있습니다. `pg_stat_get_db_stat_reset_time` 함수를 사용하면 이 통계가 마지막으로 재설정된 시간을 확인할 수 있습니다. PostgreSQL 통계 액세스 함수에 대한 자세한 내용은 PostgreSQL 설명서에서 [통계 수집기](https://www.postgresql.org/docs/9.1/monitoring-stats.html)를 참조하세요.

## 예시
<a name="aurora_stat_get_db_commit_latency-examples"></a>

다음 예에서는 `pg_database` 클러스터의 각 데이터베이스에 대한 누적 커밋 대기 시간을 가져옵니다.

```
=> SELECT oid, 
    datname, 
    aurora_stat_get_db_commit_latency(oid) 
    FROM pg_database;
     
  oid  |    datname     | aurora_stat_get_db_commit_latency
-------+----------------+-----------------------------------
 14006 | template0      |                                 0
 16384 | rdsadmin       |                         654387789
     1 | template1      |                                 0
 16401 | mydb           |                            229556
 69768 | postgres       |                             22011
```

다음 예에서는 현재 연결된 데이터베이스에 대한 누적 커밋 대기 시간을 가져옵니다. 이 예에서는 `aurora_stat_get_db_commit_latency` 함수를 호출하기 전에 먼저 `\gset`을 사용하여 `oid` 인수의 변수를 정의하고 연결된 데이터베이스에서 해당 값을 설정합니다.

```
––Get the oid value from the connected database before calling aurora_stat_get_db_commit_latency
=> SELECT oid
     FROM pg_database
    WHERE datname=(SELECT current_database()) \gset
=> SELECT * 
     FROM aurora_stat_get_db_commit_latency(:oid);
   
 aurora_stat_get_db_commit_latency
-----------------------------------
                        1424279160
```

다음 예에서는 `pg_database` 클러스터의 `mydb` 데이터베이스에 대한 누적 커밋 대기 시간을 가져옵니다. 그런 다음, `pg_stat_reset` 함수를 사용하여 이 통계를 재설정하고 결과를 표시합니다. 마지막으로 `pg_stat_get_db_stat_reset_time` 함수를 사용하여 이 통계가 마지막으로 재설정된 시간을 확인합니다.

```
=> SELECT oid,
    datname,
    aurora_stat_get_db_commit_latency(oid)
    FROM pg_database
    WHERE datname = 'mydb';
     
  oid  |  datname  | aurora_stat_get_db_commit_latency
-------+-----------+-----------------------------------
 16427 | mydb      |                           3320370


=> SELECT pg_stat_reset();
 pg_stat_reset
---------------

    
=> SELECT oid,
          datname,
          aurora_stat_get_db_commit_latency(oid)
     FROM pg_database
    WHERE datname = 'mydb';    
  oid  |  datname  | aurora_stat_get_db_commit_latency
-------+-----------+-----------------------------------
 16427 | mydb      |                                 6
    
    
=> SELECT * 
     FROM pg_stat_get_db_stat_reset_time(16427);
     
 pg_stat_get_db_stat_reset_time
--------------------------------
 2021-04-29 21:36:15.707399+00
```

# aurora\$1stat\$1logical\$1wal\$1cache
<a name="aurora_stat_logical_wal_cache"></a>

슬롯당 미리 쓰기 로그(WAL) 캐시 사용량을 보여 줍니다.

## 구문
<a name="aurora_stat_logical_wal_cache-syntax"></a>



```
SELECT * FROM aurora_stat_logical_wal_cache()
```

## 인수
<a name="aurora_stat_logical_wal_cache-arguments"></a>

없음

## 반환 타입
<a name="aurora_stat_logical_wal_cache-return-type"></a>

다음 열이 있는 SETOF 레코드:
+ `name` - 복제 슬롯의 이름입니다.
+ `active_pid` - walsender 프로세스의 ID입니다.
+ `cache_hit` - 마지막 재설정 이후 wal 캐시 총 적중 횟수입니다.
+ `cache_miss` - 마지막 재설정 이후 wal 캐시 총 미적중 횟수입니다.
+ `blks_read`— wal 캐시 읽기 요청 총합입니다.
+ `hit_rate` – WAL 캐시 적중률(cache\$1hit / blks\$1read)입니다.
+ `last_reset_timestamp` - 마지막으로 카운터를 재설정한 시간입니다.

## 사용 노트
<a name="aurora_stat_logical_wal_cache-usage-notes"></a>

이 함수는 다음 Aurora PostgreSQL 버전에서 사용할 수 있습니다.
+ 15.2 이상의 모든 버전
+ 14.7 이상 버전
+ 13.8 이상 버전
+ 12.12 이상 버전
+ 11.17 이상 버전

## 예시
<a name="aurora_stat_logical_wal_cache-examples"></a>

다음 예제에서는 활성 `aurora_stat_logical_wal_cache` 함수가 하나뿐인 복제 슬롯 2개를 확인할 수 있습니다.

```
=> SELECT * 
     FROM aurora_stat_logical_wal_cache();
    name    | active_pid | cache_hit | cache_miss | blks_read | hit_rate |     last_reset_timestamp
------------+------------+-----------+------------+-----------+----------+-------------------------------
 test_slot1 |      79183 |        24 |          0 |        24 | 100.00%  | 2022-08-05 17:39:56.830635+00
 test_slot2 |            |         1 |          0 |         1 | 100.00%  | 2022-08-05 17:34:04.036795+00
(2 rows)
```

# aurora\$1stat\$1memctx\$1usage
<a name="aurora_stat_memctx_usage"></a>

각 PostgreSQL 프로세스의 메모리 컨텍스트 사용량을 보고합니다.

## 구문
<a name="aurora_stat_memctx_usage-syntax"></a>

```
aurora_stat_memctx_usage()
```

## 인수
<a name="aurora_stat_memctx_usage-arguments"></a>

없음

## 반환 타입
<a name="aurora_stat_memctx_usage-return-type"></a>

다음 열이 있는 SETOF 레코드:
+ `pid` - 프로세스의 ID입니다.
+ `name` - 메모리 컨텍스트의 이름입니다.
+ `allocated` - 메모리 컨텍스트가 기본 메모리 하위 시스템에서 가져온 바이트 수입니다.
+ `used` - 메모리 컨텍스트의 클라이언트에 커밋된 바이트 수입니다.
+ `instances` - 이 유형의 현재 존재하는 컨텍스트 수입니다.

## 사용 노트
<a name="aurora_stat_memctx_usage-usage-notes"></a>

이 함수는 PostgreSQL 프로세스의 메모리 컨텍스트 사용량을 표시합니다. 일부 프로세스에는 `anonymous`라는 레이블이 지정되어 있습니다. 프로세스는 제한된 키워드를 포함하므로 노출되지 않습니다.

이 함수는 다음 Aurora PostgreSQL 버전 이상에서 사용할 수 있습니다.
+ 15.3 이상의 15 버전
+ 14.8 이상의 14 버전
+ 13.11 이상의 13 버전
+ 12.15 이상의 12 버전
+ 11.20 이상의 11 버전

## 예시
<a name="aurora_stat_memctx_usage-examples"></a>

다음 예제에서는 `aurora_stat_memctx_usage` 함수 호출의 결과를 보여줍니다.

```
=> SELECT * 
     FROM aurora_stat_memctx_usage();
  
    pid| name                            | allocated |   used  | instances 
-------+---------------------------------+-----------+---------+-----------
123864 | Miscellaneous                   |     19520 |   15064 |         3 
123864 | Aurora File Context             |      8192 |     616 |         1 
123864 | Aurora WAL Context              |      8192 |     296 |         1 
123864 | CacheMemoryContext              |    524288 |  422600 |         1 
123864 | Catalog tuple context           |     16384 |   13736 |         1 
123864 | ExecutorState                   |     32832 |   28304 |         1 
123864 | ExprContext                     |      8192 |    1720 |         1 
123864 | GWAL record construction        |      1024 |     832 |         1 
123864 | MdSmgr                          |      8192 |     296 |         1 
123864 | MessageContext                  |    532480 |  353832 |         1 
123864 | PortalHeapMemory                |      1024 |     488 |         1 
123864 | PortalMemory                    |      8192 |     576 |         1 
123864 | printtup                        |      8192 |     296 |         1 
123864 | RelCache hash table entries     |      8192 |    8152 |         1 
123864 | RowDescriptionContext           |      8192 |    1344 |         1 
123864 | smgr relation context           |      8192 |     296 |         1 
123864 | Table function arguments        |      8192 |     352 |         1 
123864 | TopTransactionContext           |      8192 |     632 |         1 
123864 | TransactionAbortContext         |     32768 |     296 |         1 
123864 | WAL record construction         |     50216 |   43904 |         1 
123864 | hash table                      |     65536 |   52744 |         6 
123864 | Relation metadata               |    191488 |  124240 |        87 
104992 | Miscellaneous                   |      9280 |    7728 |         3 
104992 | Aurora File Context             |      8192 |     376 |         1 
104992 | Aurora WAL Context              |      8192 |     296 |         1 
104992 ||Autovacuum Launcher             |      8192 |     296 |         1 
104992 | Autovacuum database list        |     16384 |     744 |         2 
104992 | CacheMemoryContext              |    262144 |  140288 |         1 
104992 | Catalog tuple context           |      8192 |     296 |         1 
104992 | GWAL record construction        |      1024 |     832 |         1 
104992 | MdSmgr                          |      8192 |     296 |         1 
104992 | PortalMemory                    |      8192 |     296 |         1 
104992 | RelCache hash table entries     |      8192 |     296 |         1 
104992 | smgr relation context           |      8192 |     296 |         1 
104992 | Autovacuum start worker (tmp)   |      8192 |     296 |         1 
104992 | TopTransactionContext           |     16384 |     592 |         2 
104992 | TransactionAbortContext         |     32768 |     296 |         1 
104992 | WAL record construction         |     50216 |   43904 |         1 
104992 | hash table                      |     49152 |   34024 |         4 
(39 rows)
```

일부 제한된 키워드는 숨겨지고 출력은 다음과 같이 표시됩니다.

```
postgres=>SELECT * 
     FROM aurora_stat_memctx_usage();
   
    pid| name                            | allocated |   used  | instances 
-------+---------------------------------+-----------+---------+-----------
  5482 | anonymous                       |      8192 |     456 |         1 
  5482 | anonymous                       |      8192 |     296 |         1
```

# aurora\$1stat\$1optimized\$1reads\$1cache
<a name="aurora_stat_optimized_reads_cache"></a>

이 함수는 계층형 캐시 통계를 보여줍니다.

## 구문
<a name="aurora_stat_optimized_reads_cache-syntax"></a>

 

```
aurora_stat_optimized_reads_cache()
```

## 인수
<a name="aurora_stat_optimized_reads_cache-arguments"></a>

없음

## 반환 타입
<a name="aurora_stat_optimized_reads_cache-return-type"></a>

다음 열이 있는 SETOF 레코드:
+ `total_size` - 최적화된 총 읽기 캐시 크기입니다.
+ `used_size` - 최적화된 읽기 캐시에서 사용된 페이지 크기입니다.

## 사용 노트
<a name="aurora_stat_optimized_reads_cache-usage-notes"></a>

이 함수는 다음 Aurora PostgreSQL 버전에서 사용할 수 있습니다.
+ 15.4 이상의 15 버전
+ 14.9 이상의 14 버전

## 예시
<a name="aurora_stat_optimized_reads_cache-examples"></a>

다음 예는 r6gd.8xlarge 인스턴스의 출력을 보여줍니다.

```
=> select pg_size_pretty(total_size) as total_size, pg_size_pretty(used_size) 
                as used_size from aurora_stat_optimized_reads_cache();    
total_size | used_size
-----------+-----------
1054 GB    | 975 GB
```

# aurora\$1stat\$1plans
<a name="aurora_stat_plans"></a>

추적된 모든 실행 계획에 대해 하나의 행을 반환합니다.

## 구문
<a name="aurora_stat_plans-syntax"></a>

 

```
aurora_stat_plans(
    showtext
)
```

## 인수
<a name="aurora_stat_plans-arguments"></a>
+ showtext - 쿼리와 계획 텍스트를 표시합니다. 유효한 값은 NULL, true 또는 false입니다. True인 경우 쿼리와 계획 텍스트를 표시합니다.

## 반환 타입
<a name="aurora_stat_plans-return-type"></a>

`aurora_stat_statements`의 모든 열과 다음의 추가 열을 포함하는 추적된 각 계획의 행 하나를 반환합니다.
+ planid – 계획 식별자
+ explain\$1plan — 계획 텍스트 설명
+ plan\$1type:
  + `no plan` - 계획이 캡처되지 않음
  + `estimate` - 예상 비용을 포함하여 캡처된 계획
  + `actual` - EXPLAIN ANALYZE로 캡처된 계획
+ plan\$1captured\$1time - 계획이 마지막으로 캡처된 시간

## 사용 노트
<a name="aurora_stat_plans-usage-notes"></a>

계획을 추적하려면 `aurora_compute_plan_id`가 활성화되어 있어야 하고 `pg_stat_statements`가 `shared_preload_libraries`에 있어야 합니다.

사용 가능한 계획 수는 `pg_stat_statements.max` 파라미터에 설정된 값에 따라 제어됩니다. `aurora_compute_plan_id`가 활성화되면 `aurora_stat_plans`에서 지정된 값까지 계획을 추적할 수 있습니다.

이 함수는 Aurora PostgreSQL 버전 14.10 및 15.5 이상 모든 버전의 릴리스부터 사용할 수 있습니다.

## 예시
<a name="aurora_stat_plans-examples"></a>

아래 예제에서는 쿼리 식별자 -5471422286312252535에 대한 두 개의 계획이 캡처되고 해당 문 통계는 planid에 의해 추적됩니다.

```
db1=# select calls, total_exec_time, planid, plan_captured_time, explain_plan
db1-# from aurora_stat_plans(true)
db1-# where queryid = '-5471422286312252535'   

calls    |  total_exec_time   |   planid    |      plan_captured_time       |                           explain_plan                           
---------+--------------------+-------------+-------------------------------+------------------------------------------------------------------
 1532632 |  3209846.097107853 |  1602979607 | 2023-10-31 03:27:16.925497+00 | Update on pgbench_branches                                      +
         |                    |             |                               |   ->  Bitmap Heap Scan on pgbench_branches                      +
         |                    |             |                               |         Recheck Cond: (bid = 76)                                +
         |                    |             |                               |         ->  Bitmap Index Scan on pgbench_branches_pkey          +
         |                    |             |                               |               Index Cond: (bid = 76)
   61365 | 124078.18012200127 | -2054628807 | 2023-10-31 03:20:09.85429+00  | Update on pgbench_branches                                      +
         |                    |             |                               |   ->  Index Scan using pgbench_branches_pkey on pgbench_branches+
         |                    |             |                               |         Index Cond: (bid = 17)
```

# aurora\$1stat\$1reset\$1wal\$1cache
<a name="aurora_stat_reset_wal_cache"></a>

논리적 wal 캐시의 카운터를 재설정합니다.

## 구문
<a name="aurora_stat_reset_wal_cache-syntax"></a>

특정 슬롯을 재설정하는 방법

```
SELECT * FROM aurora_stat_reset_wal_cache('slot_name')
```

모든 슬롯을 재설정하는 방법

```
SELECT * FROM aurora_stat_reset_wal_cache(NULL)
```

## 인수
<a name="aurora_stat_reset_wal_cache-arguments"></a>

`NULL` 또는 `slot_name`

## 반환 타입
<a name="aurora_stat_reset_wal_cache-return-type"></a>

상태 메시지, 텍스트 문자열
+ 논리적 Wal 캐시 카운터 재설정 - 성공 메시지입니다. 함수가 성공하면 이 텍스트가 반환됩니다.
+ 복제 슬롯을 찾을 수 없습니다. 다시 시도하세요. - 오류 메시지입니다. 함수가 실패하면 이 텍스트가 반환됩니다.

## 사용 노트
<a name="aurora_stat_reset_wal_cache-usage-notes"></a>

이 함수는 다음 버전에서 사용할 수 있습니다.
+ Aurora PostgreSQL 14.5 이상
+ Aurora PostgreSQL 버전 13.8 이상
+ Aurora PostgreSQL 버전 12.12 이상
+ Aurora PostgreSQL 버전 11.17 이상

## 예시
<a name="aurora_stat_reset_wal_cache-examples"></a>

다음 예제에서는 `aurora_stat_reset_wal_cache` 함수를 사용하여 `test_results`라는 슬롯을 재설정한 다음, 존재하지 않는 슬롯의 재설정을 시도합니다.

```
=> SELECT * 
     FROM aurora_stat_reset_wal_cache('test_slot');
aurora_stat_reset_wal_cache
--------------------------------------
 Reset the logical wal cache counter.
(1 row)
=> SELECT * 
     FROM aurora_stat_reset_wal_cache('slot-not-exist');
aurora_stat_reset_wal_cache
-----------------------------------------------
 Replication slot not found. Please try again.
(1 row)
```

# aurora\$1stat\$1resource\$1usage
<a name="aurora_stat_resource_usage"></a>

모든 Aurora PostgreSQL 백엔드 프로세스에 대한 백엔드 리소스 지표 및 cpu 사용량으로 구성된 실시간 리소스 사용률을 보고합니다.

## 구문
<a name="aurora_stat_resource_usage-syntax"></a>

```
aurora_stat_resource_usage()
```

## 인수
<a name="aurora_stat_resource_usage-arguments"></a>

없음

## 반환 타입
<a name="aurora_stat_resource_usage-return-type"></a>

다음 열이 있는 SETOF 레코드:
+ pid - 프로세스 식별자
+ allocated\$1memory - 프로세스별로 할당된 총 메모리(바이트)
+ used\$1memory - 프로세스별로 실제로 사용된 메모리(바이트)
+ cpu\$1usage\$1percent - 프로세스의 CPU 사용률(%)

## 사용 노트
<a name="aurora_stat_resource_usage-usage-notes"></a>

이 함수는 각 Aurora PostgreSQL 백엔드 프로세스의 백엔드 리소스 사용량을 표시합니다.

이 함수는 다음 Aurora PostgreSQL 버전 이상에서 사용할 수 있습니다.
+ Aurora PostgreSQL 17.5 이상 17 버전
+ Aurora PostgreSQL 16.9 이상 16 버전
+ Aurora PostgreSQL 15.13 이상 15 버전
+ Aurora PostgreSQL 14.18 이상 14 버전
+ Aurora PostgreSQL 13.21 이상 13 버전

## 예시
<a name="aurora_stat_resource_usage-examples"></a>

다음 예에서는 `aurora_stat_resource_usage` 함수의 출력을 보여줍니다.

```
=> select * from aurora_stat_resource_usage();
 pid  | allocated_memory | used_memory |   cpu_usage_percent   
------+------------------+-------------+-----------------------
  666 |          1074032 |      333544 |   0.00729274882897963
  667 |           787312 |      287360 | 0.0029263928146372746
  668 |          3076776 |     1563488 |  0.006013116835953961
  684 |           803744 |      307480 |  0.002226855426881142
 2401 |          1232992 |      943144 |                     0
  647 |             8000 |         944 |   0.48853387812429855
  659 |           319344 |      243000 | 0.0004135602076683591
  663 |           262000 |      185736 |  0.008181301476644002
  664 |             9024 |        1216 |   0.10992313082653653
(9 rows)
```

# aurora\$1stat\$1statements
<a name="aurora_stat_statements"></a>

모든 `pg_stat_statements` 열을 표시하고 끝에 열을 더 추가합니다.

## 구문
<a name="aurora_stat_statements-syntax"></a>

 

```
aurora_stat_statements(showtext boolean)
```

## 인수
<a name="aurora_stat_statements-arguments"></a>

showtext 부울**

## 반환 타입
<a name="aurora_stat_statements-return-type"></a>

모든 `pg_stat_statements` 열과 다음과 같은 추가 열이 포함된 SETOF 레코드. `pg_stat_statements` 열에 대한 자세한 내용은 [https://www.postgresql.org/docs/current/pgstatstatements.html](https://www.postgresql.org/docs/current/pgstatstatements.html) 섹션을 참조하세요.

`pg_stat_statements_reset()`을 사용하여 이 함수의 통계를 재설정할 수 있습니다.
+ `storage_blks_read` - 이 문이 Aurora 스토리지에서 읽은 총 공유 블록 수입니다.
+ `orcache_blks_hit` - 이 문에 의한 최적화된 읽기 캐시 적중률의 총 수입니다.
+ `storage_blk_read_time` - `track_io_timing`이 활성화된 경우 Aurora 스토리지에서 공유된 블록을 읽는 데 문이 소요한 총 시간을 밀리초 단위로 추적합니다. 활성화되지 않은 경우 값은 0입니다. 자세한 내용은 [track\$1io\$1timing](https://www.postgresql.org/docs/current/runtime-config-statistics.html#GUC-TRACK-IO-TIMING)을 참조하세요.
+ `local_blk_read_time` - `track_io_timing`이 활성화된 경우 로컬 블록을 읽는 데 문이 소요한 총 시간을 밀리초 단위로 추적합니다. 활성화되지 않은 경우 값은 0입니다. 자세한 내용은 [track\$1io\$1timing](https://www.postgresql.org/docs/current/runtime-config-statistics.html#GUC-TRACK-IO-TIMING)을 참조하세요.
+ `orcache_blk_read_time` - `track_io_timing`이 활성화된 경우 최적화된 읽기 캐시에서 공유된 블록을 읽는 데 문이 소요한 총 시간을 밀리초 단위로 추적합니다. 활성화되지 않은 경우 값은 0입니다. 자세한 내용은 [track\$1io\$1timing](https://www.postgresql.org/docs/current/runtime-config-statistics.html#GUC-TRACK-IO-TIMING)을 참조하세요.
+ `total_plan_peakmem` – 이 문에 대한 모든 직접 호출의 계획 단계 중 피크 메모리 값의 총계입니다. 문을 계획하는 동안 평균 피크 메모리를 확인하려면 이 값을 직접 호출 수로 나누세요.
+ `min_plan_peakmem` – 이 문에 대한 모든 직접 호출을 계획하는 동안 나타난 최소 피크 메모리 값입니다.
+ `max_plan_peakmem` – 이 문에 대한 모든 직접 호출을 계획하는 동안 나타난 최대 피크 메모리 값입니다.
+ `total_exec_peakmem` – 이 문에 대한 모든 직접 호출의 실행 단계 중 피크 메모리 값의 총계입니다. 문을 실행하는 동안 평균 피크 메모리를 확인하려면 이 값을 직접 호출 수로 나누세요.
+ `min_exec_peakmem` – 이 문에 대한 모든 직접 호출을 실행하는 동안 나타난 최소 피크 메모리 값입니다.
+ `max_exec_peakmem` – 이 문에 대한 모든 직접 호출을 실행하는 동안 나타난 최대 피크 메모리 값입니다.

**참고**  
`total_plan_peakmen`, `min_plan_peakmem`, `max_plan_peakmem`은 `pg_stat_statements.track_planning` 설정이 켜져 있을 때만 모니터링됩니다.

## 사용 노트
<a name="aurora_stat_statements-usage-notes"></a>

aurora\$1stat\$1statements() 함수를 사용하려면 `shared_preload_libraries` 파라미터에 `pg_stat_statements` 확장을 포함해야 합니다.

이 함수는 다음 Aurora PostgreSQL 버전에서 사용할 수 있습니다.
+ 15.4 이상의 15 버전
+ 14.9 이상의 14 버전

피크 메모리를 표시하는 열은 다음 버전에서 사용할 수 있습니다.
+ 16.3 이상 버전
+ 15.7 이상 버전
+ 14.12 이상 버전

## 예시
<a name="aurora_stat_statements-examples"></a>

다음 예는 모든 pg\$1stat\$1statements 열을 포함하고 끝에 새 열 11개를 추가하는 방법을 보여줍니다.

```
=> select * from aurora_stat_statements(true) where query like 'with window_max%';
-[ RECORD 1 ]----------+------------------------------------------------------------------------------------------------
userid                 | 16409
dbid                   | 5
toplevel               | t
queryid                | -8347523682669847482
query                  | with window_max as (select custid, max(scratch) over (order by scratch rows between $1 preceding 
and $2 following) wmax from ts) select sum(wmax), max(custid) from window_max
plans                  | 0
total_plan_time        | 0
min_plan_time          | 0
max_plan_time          | 0
mean_plan_time         | 0
stddev_plan_time       | 0
calls                  | 4
total_exec_time        | 254.105121
min_exec_time          | 57.503164000000005
max_exec_time          | 68.687418
mean_exec_time         | 63.52628025
stddev_exec_time       | 5.150765359979643
rows                   | 4
shared_blks_hit        | 200192
shared_blks_read       | 0
shared_blks_dirtied    | 0
shared_blks_written    | 0
local_blks_hit         | 0
local_blks_read        | 0
local_blks_dirtied     | 0
local_blks_written     | 0
temp_blks_read         | 0
temp_blks_written      | 0
blk_read_time          | 0
blk_write_time         | 0
temp_blk_read_time     | 0
temp_blk_write_time    | 0
wal_records            | 0
wal_fpi                | 0
wal_bytes              | 0
jit_functions          | 0
jit_generation_time    | 0
jit_inlining_count     | 0
jit_inlining_time      | 0
jit_optimization_count | 0
jit_optimization_time  | 0
jit_emission_count     | 0
jit_emission_time      | 0
storage_blks_read      | 0
orcache_blks_hit       | 0
storage_blk_read_time  | 0
local_blk_read_time    | 0
orcache_blk_read_time  | 0
total_plan_peakmem     | 0
min_plan_peakmem       | 0
max_plan_peakmem       | 0
total_exec_peakmem     | 6356224
min_exec_peakmem       | 1589056
max_exec_peakmem       | 1589056
```

# aurora\$1stat\$1system\$1waits
<a name="aurora_stat_system_waits"></a>

Aurora PostgreSQL DB 인스턴스에 대한 대기 이벤트 정보를 보고합니다.

## 구문
<a name="aurora_stat_system_waits-syntax"></a>

 

```
aurora_stat_system_waits()
```

## 인수
<a name="aurora_stat_system_waits-arguments"></a>

없음

## 반환 타입
<a name="aurora_stat_system_waits-return-type"></a>

SETOF 레코드

## 사용 노트
<a name="aurora_stat_system_waits-usage-notes"></a>

이 함수는 현재 연결된 DB 인스턴스에 의해 생성된 각 대기 이벤트의 누적 대기 횟수와 누적 대기 시간을 반환합니다.

반환되는 레코드 세트에는 다음 필드가 포함됩니다.
+ `type_id` - 대기 이벤트 유형의 ID입니다.
+ `event_id` - 대기 이벤트의 ID입니다.
+ `waits` - 대기 이벤트가 발생한 횟수입니다.
+ `wait_time` - 이 이벤트를 기다리는 데 소요된 총 시간(마이크로초)입니다.

이 함수에서 반환되는 통계는 DB 인스턴스가 다시 시작될 때 재설정됩니다.

## 예시
<a name="aurora_stat_system_waits-examples"></a>

다음 예제에서는 `aurora_stat_system_waits` 함수 호출의 결과를 보여줍니다.

```
=> SELECT * 
    FROM aurora_stat_system_waits();    
 type_id | event_id  |   waits   |  wait_time
---------+-----------+-----------+--------------
       1 |  16777219 |        11 |        12864
       1 |  16777220 |       501 |       174473
       1 |  16777270 |     53171 |     23641847
       1 |  16777271 |        23 |       319668
       1 |  16777274 |        60 |        12759
.
.
.
      10 | 167772231 |    204596 |    790945212
      10 | 167772232 |         2 |        47729
      10 | 167772234 |         1 |          888
      10 | 167772235 |         2 |           64
```

다음 예는 이 함수를 `aurora_stat_wait_event` 및 `aurora_stat_wait_type`과 함께 사용하여 가독성이 더 높은 결과를 생성하는 방법을 보여줍니다.

```
=> SELECT type_name,
             event_name,
             waits,
             wait_time
        FROM aurora_stat_system_waits()
NATURAL JOIN aurora_stat_wait_event()
NATURAL JOIN aurora_stat_wait_type();

 type_name |       event_name       |  waits   |  wait_time
-----------+------------------------+----------+--------------
 LWLock    | XidGenLock             |       11 |        12864
 LWLock    | ProcArrayLock          |      501 |       174473
 LWLock    | buffer_content         |    53171 |     23641847
 LWLock    | rdsutils               |        2 |        12764
 Lock      | tuple                  |    75686 |   2033956052
 Lock      | transactionid          |  1765147 |  47267583409
 Activity  | AutoVacuumMain         |   136868 |  56305604538
 Activity  | BgWriterHibernate      |     7486 |  55266949471
 Activity  | BgWriterMain           |     7487 |   1508909964
.
.
.
 IO        | SLRURead               |        3 |        11756
 IO        | WALWrite               | 52544463 |    388850428
 IO        | XactSync               |   187073 |    597041642
 IO        | ClogRead               |        2 |        47729
 IO        | OutboundCtrlRead       |        1 |          888
 IO        | OutboundCtrlWrite      |        2 |           64
```

# aurora\$1stat\$1wait\$1event
<a name="aurora_stat_wait_event"></a>

Aurora PostgreSQL에 대해 지원되는 대기 이벤트를 모두 나열합니다. Aurora PostgreSQL 대기 이벤트에 대한 자세한 내용은 [Amazon Aurora PostgreSQL 대기 이벤트](AuroraPostgreSQL.Reference.Waitevents.md) 섹션을 참조하세요.

## 구문
<a name="aurora_stat_wait_event-syntax"></a>

 

```
aurora_stat_wait_event()
```

## 인수
<a name="aurora_stat_wait_event-arguments"></a>

없음

## 반환 타입
<a name="aurora_stat_wait_event-return-type"></a>

다음 열이 있는 SETOF 레코드:
+ type\$1id - 대기 이벤트 유형의 ID입니다.
+  - 대기 이벤트의 ID입니다.
+ type\$1name - 대기 유형 이름
+ event\$1name - 대기 이벤트 이름

## 사용 노트
<a name="aurora_stat_wait_event-usage-notes"></a>

ID 대신 이벤트 유형을 사용한 이벤트 이름을 보려면 이 함수를 `aurora_stat_wait_type` 및 `aurora_stat_system_waits`와 같은 다른 함수와 함께 사용합니다. 이 함수에서 반환되는 대기 이벤트 이름은 `aurora_wait_report` 함수에서 반환되는 이름과 동일합니다.

## 예시
<a name="aurora_stat_wait_event-examples"></a>

다음 예제에서는 `aurora_stat_wait_event` 함수 호출의 결과를 보여줍니다.

```
=>  SELECT * 
    FROM aurora_stat_wait_event();
    
 type_id | event_id  |                event_name
---------+-----------+-------------------------------------------
       1 |  16777216 | <unassigned:0>
       1 |  16777217 | ShmemIndexLock
       1 |  16777218 | OidGenLock
       1 |  16777219 | XidGenLock
.
.
.
       9 | 150994945 | PgSleep
       9 | 150994946 | RecoveryApplyDelay
      10 | 167772160 | BufFileRead
      10 | 167772161 | BufFileWrite
      10 | 167772162 | ControlFileRead
.
.
.
      10 | 167772226 | WALInitWrite
      10 | 167772227 | WALRead
      10 | 167772228 | WALSync
      10 | 167772229 | WALSyncMethodAssign
      10 | 167772230 | WALWrite
      10 | 167772231 | XactSync
.
.
.
      11 | 184549377 | LsnAllocate
```

다음 예에서는 `aurora_stat_wait_type`과 `aurora_stat_wait_event`를 함께 사용하여 유형 이름과 이벤트 이름을 반환함으로써 가독성을 높입니다.

```
=> SELECT *
    FROM aurora_stat_wait_type() t 
    JOIN aurora_stat_wait_event() e 
      ON t.type_id = e.type_id; 

 type_id | type_name | type_id | event_id  |                event_name
---------+-----------+---------+-----------+-------------------------------------------
       1 | LWLock    |       1 |  16777216 | <unassigned:0>
       1 | LWLock    |       1 |  16777217 | ShmemIndexLock
       1 | LWLock    |       1 |  16777218 | OidGenLock
       1 | LWLock    |       1 |  16777219 | XidGenLock
       1 | LWLock    |       1 |  16777220 | ProcArrayLock
.
.
.
       3 | Lock      |       3 |  50331648 | relation
       3 | Lock      |       3 |  50331649 | extend
       3 | Lock      |       3 |  50331650 | page
       3 | Lock      |       3 |  50331651 | tuple
.
.
.
      10 | IO        |      10 | 167772214 | TimelineHistorySync
      10 | IO        |      10 | 167772215 | TimelineHistoryWrite
      10 | IO        |      10 | 167772216 | TwophaseFileRead
      10 | IO        |      10 | 167772217 | TwophaseFileSync
.
.
.
      11 | LSN       |      11 | 184549376 | LsnDurable
```

# aurora\$1stat\$1wait\$1type
<a name="aurora_stat_wait_type"></a>

Aurora PostgreSQL에 대해 지원되는 대기 유형을 모두 나열합니다.

## 구문
<a name="aurora_stat_wait_type-syntax"></a>

 

```
aurora_stat_wait_type()
```

## 인수
<a name="aurora_stat_wait_type-arguments"></a>

없음

## 반환 타입
<a name="aurora_stat_wait_type-return-type"></a>

다음 열이 있는 SETOF 레코드:
+ type\$1id - 대기 이벤트 유형의 ID입니다.
+ type\$1name - 대기 유형 이름

## 사용 노트
<a name="aurora_stat_wait_type-usage-notes"></a>

ID 대신 대기 이벤트 유형을 사용한 대기 이벤트 이름을 보려면 이 함수를 `aurora_stat_wait_event` 및 `aurora_stat_system_waits`와 같은 다른 함수와 함께 사용합니다. 이 함수에서 반환되는 대기 유형 이름은 `aurora_wait_report` 함수에서 반환되는 이름과 동일합니다.

## 예시
<a name="aurora_stat_wait_type-examples"></a>

다음 예제에서는 `aurora_stat_wait_type` 함수 호출의 결과를 보여줍니다.

```
=> SELECT * 
     FROM aurora_stat_wait_type();     
 type_id | type_name
---------+-----------
       1 | LWLock
       3 | Lock
       4 | BufferPin
       5 | Activity
       6 | Client
       7 | Extension
       8 | IPC
       9 | Timeout
      10 | IO
      11 | LSN
```

# aurora\$1version
<a name="aurora_version"></a>

Amazon Aurora PostgreSQL 호환 버전 번호의 문자열 값을 반환합니다.

## 구문
<a name="aurora_version-syntax"></a>

 

```
aurora_version()
```

## 인수
<a name="aurora_version-arguments"></a>

없음

## 반환 타입
<a name="aurora_version-return-type"></a>

CHAR 또는 VARCHAR 문자열

## 사용 노트
<a name="aurora_version-usage-notes"></a>

이 함수는 Amazon Aurora PostgreSQL 호환 버전 데이터베이스 엔진의 버전을 표시합니다. 버전 번호는 *major*.*minor*.*patch* 형식의 문자열로 반환됩니다. Aurora PostgreSQL 버전 번호에 대한 자세한 내용은 [Aurora 버전 번호](AuroraPostgreSQL.Updates.md#AuroraPostgreSQL.Updates.Versions.AuroraNumber) 단원을 참조하세요.

Aurora PostgreSQL DB 클러스터의 유지 관리 기간을 설정하여 마이너 버전 업그레이드를 적용할 시기를 선택할 수 있습니다. 자세한 방법은 [Amazon Aurora DB 클러스터 유지 관리](USER_UpgradeDBInstance.Maintenance.md)을 참조하세요.

Aurora PostgreSQL 버전 13.3, 12.8, 11.13, 10.18 및 다른 모든 이후 버전의 릴리스부터 Aurora 버전 번호는 PostgreSQL 버전 번호를 따릅니다. 모든 Aurora PostgreSQL 릴리스에 대한 자세한 내용은 *Aurora PostgreSQL 릴리스 정보*의 [Amazon Aurora PostgreSQL 업데이트](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html)를 참조하세요.

## 예시
<a name="aurora_version-examples"></a>

다음 예제에서는 [PostgreSQL 12.7, Aurora PostgreSQL 릴리스 4.2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#AuroraPostgreSQL.Updates.20180305.42)를 실행 중인 Aurora PostgreSQL DB 클러스터에서 `aurora_version` 함수를 호출한 후 [Aurora PostgreSQL 버전 13.3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#AuroraPostgreSQL.Updates.20180305.133X)을 실행 중인 클러스터에서 같은 함수를 실행한 결과를 보여줍니다.

```
=> SELECT * FROM aurora_version();
aurora_version
----------------
 4.2.2
SELECT * FROM aurora_version();
aurora_version
----------------
 13.3.0
```

이 예제에서는 다양한 옵션과 함께 함수를 사용하여 Aurora PostgreSQL 버전에 대한 자세한 정보를 얻는 방법을 보여줍니다. 이 예제에는 PostgreSQL 버전 번호와 구별되는 Aurora 버전 번호가 있습니다.

```
=> SHOW SERVER_VERSION;
 server_version
----------------
 12.7
(1 row)

=> SELECT * FROM aurora_version();
aurora_version
----------------
 4.2.2
(1 row)
    
=> SELECT current_setting('server_version') AS "PostgreSQL Compatiblility";
PostgreSQL Compatiblility
---------------------------
 12.7
(1 row)

=> SELECT version() AS "PostgreSQL Compatiblility Full String";
PostgreSQL Compatiblility Full String
-------------------------------------------------------------------------------------------------------------
 PostgreSQL 12.7 on aarch64-unknown-linux-gnu, compiled by aarch64-unknown-linux-gnu-gcc (GCC) 7.4.0, 64-bit
(1 row) 
    
=> SELECT 'Aurora: '
    || aurora_version()
    || ' Compatible with PostgreSQL: '
    || current_setting('server_version') AS "Instance Version";
Instance Version
------------------------------------------------
 Aurora: 4.2.2 Compatible with PostgreSQL: 12.7
(1 row)
```

다음 예제에서는 이전 예제에서와 동일한 옵션을 가진 함수를 사용합니다. 이 예제에는 PostgreSQL 버전 번호와 구별되는 Aurora 버전 번호가 없습니다.

```
=> SHOW SERVER_VERSION;
server_version
----------------
 13.3

=> SELECT * FROM aurora_version();
aurora_version
----------------
 13.3.0
=> SELECT current_setting('server_version') AS "PostgreSQL Compatiblility";
PostgreSQL Compatiblility
---------------------------
 13.3

=> SELECT version() AS "PostgreSQL Compatiblility Full String";
PostgreSQL Compatiblility Full String
-------------------------------------------------------------------------------------------------
 PostgreSQL 13.3 on x86_64-pc-linux-gnu, compiled by x86_64-pc-linux-gnu-gcc (GCC) 7.4.0, 64-bit
=> SELECT 'Aurora: ' 
    || aurora_version() 
    || ' Compatible with PostgreSQL: ' 
    || current_setting('server_version') AS "Instance Version";
Instance Version
-------------------------------------------------------
 Aurora: 13.3.0 Compatible with PostgreSQL: 13.3
```

# aurora\$1volume\$1logical\$1start\$1lsn
<a name="aurora_volume_logical_start_lsn"></a>

Aurora 클러스터 볼륨의 논리적 미리 쓰기 로그(WAL) 스트림에서 레코드의 시작을 식별하는 데 사용되는 로그 시퀀스 번호(LSN)를 반환합니다.

## 구문
<a name="aurora_volume_logical_start_lsn-syntax"></a>

 

```
aurora_volume_logical_start_lsn()
```

## 인수
<a name="aurora_volume_logical_start_lsn-arguments"></a>

없음

## 반환 타입
<a name="aurora_volume_logical_start_lsn-return-type"></a>

`pg_lsn`

## 사용 노트
<a name="aurora_volume_logical_start_lsn-usage-notes"></a>

이 함수는 주어진 Aurora 클러스터 볼륨의 논리적 WAL 스트림에서 레코드의 시작 부분을 식별합니다. 논리적 복제와 Aurora 고속 복제를 사용하여 메이저 버전 업그레이드를 수행하는 동안 이 함수를 사용하여 스냅샷 또는 데이터베이스 클론이 생성된 LSN을 확인할 수 있습니다. 그런 다음 논리적 복제를 사용하여 LSN 이후에 기록된 최신 데이터를 지속적으로 스트리밍하고 게시자에서 구독자로 변경 내용을 동기화할 수 있습니다.

메이저 버전 업그레이드에 논리적 복제를 사용하는 방법에 대한 자세한 내용은 [논리적 복제를 사용하여 Aurora PostgreSQL에 대한 메이저 버전 업그레이드 수행](AuroraPostgreSQL.MajorVersionUpgrade.md) 섹션을 참조하세요.

이 함수는 다음 Aurora PostgreSQL 버전에서 사용할 수 있습니다.
+ 15.2 이상의 15 버전
+ 14.3 이상의 14 버전
+ 13.6 이상의 13 버전
+ 12.10 이상의 12 버전
+ 11.15 이상의 11 버전
+ 10.20 이상의 10 버전

## 예시
<a name="aurora_volume_logical_start_lsn-examples"></a>

다음 쿼리를 사용하여 로그 시퀀스 번호(LSN)를 얻을 수 있습니다.

```
postgres=> SELECT aurora_volume_logical_start_lsn();
            
aurora_volume_logical_start_lsn 
---------------
0/402E2F0
(1 row)
```

# aurora\$1wait\$1report
<a name="aurora_wait_report"></a>

이 함수는 일정 기간 동안 대기 이벤트 활동을 표시합니다.

## 구문
<a name="aurora_wait_report-syntax"></a>

 

```
aurora_wait_report([time])
```

## 인수
<a name="aurora_wait_report-arguments"></a>

 *시간(선택 사항)*   
시간(초)입니다. 기본값은 10초입니다.

## 반환 타입
<a name="aurora_wait_report-return-type"></a>

다음 열이 있는 SETOF 레코드:
+ type\$1name - 대기 유형 이름
+ event\$1name - 대기 이벤트 이름
+ wait - 대기 횟수
+ wait\$1time - 대기 시간(밀리초) 
+ ms\$1per\$1wait - 대기 수당 한 평균 밀리초
+ waits\$1per\$1xact - 트랜잭션 수 하나당 평균 대기
+ ms\$1per\$1wait - 트랜잭션 수당 평균 밀리초

## 사용 노트
<a name="aurora_wait_report-usage-notes"></a>

이 함수는 PostgreSQL 9.6.6 이상 버전과 호환되는 Aurora PostgreSQL 릴리스 1.1부터 사용할 수 있습니다.

이 함수를 사용하려면 먼저 Aurora PostgreSQL`aurora_stat_utils` 확장을 다음과 같이 생성해야 합니다.

```
=> CREATE extension aurora_stat_utils;
CREATE EXTENSION
```

사용할 수 있는 Aurora PostgreSQL 확장 버전에 대한 자세한 내용은 *Aurora PostgreSQL 릴리스 정보*보의 [Amazon Aurora PostgreSQL 확장 버전](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html)을 참조하세요.

이 함수는 aurora\$1stat\$1system\$1waits () 함수와 pg\$1stat\$1database PostgreSQL 통계 뷰에서 얻은 통계 데이터의 두 스냅샷을 비교하여 인스턴스 수준 대기 이벤트를 계산합니다.

`aurora_stat_system_waits()` 및 `pg_stat_database`에 대한 자세한 내용은 *PostgreSQL 설명서*에서 [통계 수집기](https://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-DATABASE-VIEW)를 참조하세요.

실행 시 이 함수는 초기 스냅샷을 찍고 지정된 시간(초)을 기다린 다음 두 번째 스냅샷을 찍습니다. 이 함수는 두 스냅샷을 비교하고 차이를 반환합니다. 이 차이는 해당 시간 간격의 인스턴스 활동을 나타냅니다.

라이터 인스턴스에서 함수는 커밋된 트랜잭션 수와 TPS(초당 트랜잭션 수)도 표시합니다. 이 함수는 인스턴스 수준에서 정보를 반환하며 인스턴스의 모든 데이터베이스를 포함합니다.

## 예시
<a name="aurora_wait_report-examples"></a>

이 예제에서는 aurora\$1wait\$1report 함수를 사용할 수 있도록 aurora\$1stat\$1utils 확장을 만드는 방법을 보여줍니다.

```
=> CREATE extension aurora_stat_utils;
CREATE EXTENSION
```

이 예에서는 10초에 대한 대기 보고서를 확인하는 방법을 보여 줍니다.

```
=> SELECT *
     FROM aurora_wait_report();
NOTICE:  committed 34 transactions in 10 seconds (tps 3)
 type_name |    event_name     | waits | wait_time | ms_per_wait | waits_per_xact | ms_per_xact
-----------+-------------------+-------+-----------+-------------+----------------+-------------
 Client    | ClientRead        |    26 |  30003.00 |    1153.961 |           0.76 |     882.441
 Activity  | WalWriterMain     |    50 |  10051.32 |     201.026 |           1.47 |     295.627
 Timeout   | PgSleep           |     1 |  10049.52 |   10049.516 |           0.03 |     295.574
 Activity  | BgWriterHibernate |     1 |  10048.15 |   10048.153 |           0.03 |     295.534
 Activity  | AutoVacuumMain    |    18 |   9941.66 |     552.314 |           0.53 |     292.402
 Activity  | BgWriterMain      |     1 |    201.09 |     201.085 |           0.03 |       5.914
 IO        | XactSync          |    15 |     25.34 |       1.690 |           0.44 |       0.745
 IO        | RelationMapRead   |    12 |      0.54 |       0.045 |           0.35 |       0.016
 IO        | WALWrite          |    84 |      0.21 |       0.002 |           2.47 |       0.006
 IO        | DataFileExtend    |     1 |      0.02 |       0.018 |           0.03 |       0.001
```

이 예에서는 60초에 대한 대기 보고서를 확인하는 방법을 보여 줍니다.

```
=> SELECT *
     FROM aurora_wait_report(60);
NOTICE:  committed 1544 transactions in 60 seconds (tps 25)
 type_name |       event_name       |  waits  | wait_time | ms_per_wait | waits_per_xact | ms_per_xact
-----------+------------------------+---------+-----------+-------------+----------------+-------------
 Lock      | transactionid          |    6422 | 477000.53 |      74.276 |           4.16 |     308.938
 Client    | ClientRead             |    8265 | 270752.99 |      32.759 |           5.35 |     175.358
 Activity  | CheckpointerMain       |       1 |  60100.25 |   60100.246 |           0.00 |      38.925
 Timeout   | PgSleep                |       1 |  60098.49 |   60098.493 |           0.00 |      38.924
 Activity  | WalWriterMain          |     296 |  60010.99 |     202.740 |           0.19 |      38.867
 Activity  | AutoVacuumMain         |     107 |  59827.84 |     559.139 |           0.07 |      38.749
 Activity  | BgWriterMain           |     290 |  58821.83 |     202.834 |           0.19 |      38.097
 IO        | XactSync               |    1295 |  55220.13 |      42.641 |           0.84 |      35.764
 IO        | WALWrite               | 6602259 |  47810.94 |       0.007 |        4276.07 |      30.966
 Lock      | tuple                  |     473 |  29880.67 |      63.173 |           0.31 |      19.353
 LWLock    | buffer_mapping         |     142 |   3540.13 |      24.930 |           0.09 |       2.293
 Activity  | BgWriterHibernate      |     290 |   1124.15 |       3.876 |           0.19 |       0.728
 IO        | BufFileRead            |    7615 |    618.45 |       0.081 |           4.93 |       0.401
 LWLock    | buffer_content         |      73 |    345.93 |       4.739 |           0.05 |       0.224
 LWLock    | lock_manager           |      62 |    191.44 |       3.088 |           0.04 |       0.124
 IO        | RelationMapRead        |      72 |      5.16 |       0.072 |           0.05 |       0.003
 LWLock    | ProcArrayLock          |       1 |      2.01 |       2.008 |           0.00 |       0.001
 IO        | ControlFileWriteUpdate |       2 |      0.03 |       0.013 |           0.00 |       0.000
 IO        | DataFileExtend         |       1 |      0.02 |       0.018 |           0.00 |       0.000
 IO        | ControlFileSyncUpdate  |       1 |      0.00 |       0.000 |           0.00 |       0.000
```

# Amazon Aurora PostgreSQL parameters
<a name="AuroraPostgreSQL.Reference.ParameterGroups"></a>

Amazon Aurora DB 클러스터는 다른 Amazon RDS DB 인스턴스와 마찬가지로 DB 파라미터 그룹의 파라미터를 사용하여 관리합니다. 그러나 Amazon Aurora는 Aurora DB 클러스터에 여러 DB 인스턴스가 있다는 점에서 Amazon RDS와 다릅니다. 다음과 같이 Amazon Aurora DB 클러스터를 관리하는 데 사용하는 일부 파라미터는 엔진 클러스터에 적용되는 반면, 또 다른 일부 파라미터는 DB 클러스터의 지정된 DB 인스턴스에만 적용됩니다.
+ **DB 클러스터 파라미터 그룹** - DB 클러스터 파라미터 그룹에는 Aurora DB 클러스터 전체에 적용되는 엔진 구성 파라미터 세트가 포함됩니다. 예를 들어 클러스터 캐시 관리는 DB 클러스터 파라미터 그룹의 일부인 `apg_ccm_enabled` 파라미터로 제어되는 Aurora DB 클러스터의 기능입니다. DB 클러스터 파라미터 그룹에는 클러스터를 구성하는 DB 인스턴스에 대한 DB 파라미터 그룹의 기본 설정도 포함되어 있습니다.
+ **DB 파라미터 그룹** - DB 파라미터 그룹은 해당 엔진 유형의 특정 DB 인스턴스에 적용되는 엔진 구성 값의 집합입니다. PostgreSQL DB 엔진용 DB 파라미터 그룹은 RDS for PostgreSQL DB 인스턴스와 Aurora PostgreSQL DB 클러스터에서 사용됩니다. 이 구성 설정은 메모리 버퍼 크기와 같은 Aurora 클러스터 내의 DB 인스턴스 사이에서 변화할 수 있는 속성에 적용됩니다.

클러스터 수준의 파라미터는 DB 클러스터 파라미터 그룹에서 관리됩니다. 인스턴스 수준의 파라미터는 DB 파라미터 그룹에서 관리됩니다. Amazon RDS 콘솔, AWS CLI 또는 Amazon RDS API를 사용하여 파라미터를 관리할 수 있습니다. 클러스터 수준 파라미터와 인스턴스 수준 파라미터를 관리하기 위한 명령은 서로 다릅니다.
+ DB 클러스터 파라미터 그룹에서 클러스터 수준 파라미터를 관리하려면 [modify-db-cluster-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster-parameter-group.html) AWS CLI 명령을 사용합니다.
+ DB 클러스터의 DB 인스턴스에 대한 DB 파라미터 그룹에서 인스턴스 수준 파라미터를 관리하려면 [modify-db-parameter-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-parameter-group.html) AWS CLI 명령을 사용합니다.

AWS CLI에 대한 자세한 내용은 *AWS Command Line Interface 사용 설명서*의 [AWS CLI 사용](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-using.html)을 참조하세요.

파라미터 그룹에 대한 자세한 내용은 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md) 섹션을 참조하세요.

## Aurora PostgreSQL DB 클러스터 및 DB 파라미터 보기
<a name="AuroraPostgreSQL.Reference.ParameterGroups-viewing-parameters"></a>

AWS Management Console에서 RDS for PostgreSQL DB 인스턴스와 Aurora PostgreSQL DB 클러스터에 대해 사용 가능한 모든 기본 파라미터 그룹을 볼 수 있습니다. 모든 DB 엔진과 DB 클러스터 유형 및 버전에 대한 기본 파라미터 그룹이 각 AWS 리전에 대해 나열됩니다. 모든 사용자 정의 파라미터 그룹도 나열됩니다.

AWS Management Console에서 보는 대신 AWS CLI 또는 Amazon RDS API를 사용하여 DB 클러스터 파라미터 그룹 및 DB 파라미터 그룹에 포함된 파라미터를 나열할 수도 있습니다. 예를 들어 DB 클러스터 파라미터 그룹의 파라미터를 나열하려면 다음과 같이 [describe-db-cluster-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-cluster-parameters.html) AWS CLI 명령을 사용합니다.

```
aws rds describe-db-cluster-parameters --db-cluster-parameter-group-name default.aurora-postgresql12
```

이 명령은 각 파라미터에 대한 자세한 JSON 설명을 반환합니다. 반환되는 정보의 양을 줄이기 위해 `--query` 옵션을 사용하여 원하는 사항을 지정할 수 있습니다. 예를 들어 다음과 같이 기본 Aurora PostgreSQL 12 DB 클러스터 파라미터 그룹에 대해 파라미터 이름, 설명 및 허용되는 값을 가져올 수 있습니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds describe-db-cluster-parameters --db-cluster-parameter-group-name default.aurora-postgresql12 \
    --query 'Parameters[].[{ParameterName:ParameterName,Description:Description,ApplyType:ApplyType,AllowedValues:AllowedValues}]'
```

Windows의 경우:

```
aws rds describe-db-cluster-parameters --db-cluster-parameter-group-name default.aurora-postgresql12 ^
    --query "Parameters[].[{ParameterName:ParameterName,Description:Description,ApplyType:ApplyType,AllowedValues:AllowedValues}]"
```

Aurora DB 클러스터 파라미터 그룹에는 DB 인스턴스 파라미터 그룹과 지정된 Aurora DB 엔진의 기본값이 포함됩니다. 다음과 같이 [describe-db-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) AWS CLI 명령을 사용하여 동일한 기본 Aurora PostgreSQL 기본 파라미터 그룹에서 DB 파라미터 목록을 가져올 수 있습니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds describe-db-parameters --db-parameter-group-name default.aurora-postgresql12 \
    --query 'Parameters[].[{ParameterName:ParameterName,Description:Description,ApplyType:ApplyType,AllowedValues:AllowedValues}]'
```

Windows의 경우:

```
aws rds describe-db-parameters --db-parameter-group-name default.aurora-postgresql12 ^
    --query "Parameters[].[{ParameterName:ParameterName,Description:Description,ApplyType:ApplyType,AllowedValues:AllowedValues}]"
```

앞의 명령은 쿼리에 지정된 설명 및 기타 세부 정보와 함께 DB 클러스터 또는 DB 파라미터 그룹의 파라미터 목록을 반환합니다. 다음은 응답의 예입니다.

```
[
    [
        {
            "ParameterName": "apg_enable_batch_mode_function_execution",
            "ApplyType": "dynamic",
            "Description": "Enables batch-mode functions to process sets of rows at a time.",
            "AllowedValues": "0,1"
        }
    ],
    [
        {
            "ParameterName": "apg_enable_correlated_any_transform",
            "ApplyType": "dynamic",
            "Description": "Enables the planner to transform correlated ANY Sublink (IN/NOT IN subquery) to JOIN when possible.",
            "AllowedValues": "0,1"
        }
    ],...
```

다음은 Aurora PostgreSQL 버전 14의 기본 DB 클러스터 파라미터 및 DB 파라미터 값이 들어 있는 표입니다.

## Aurora PostgreSQL 클러스터 수준 파라미터
<a name="AuroraPostgreSQL.Reference.Parameters.Cluster"></a>

AWS 관리 콘솔, AWS CLI 또는 Amazon RDS API를 사용하여 특정 Aurora PostgreSQL 버전에서 사용 가능한 클러스터 수준 파라미터를 볼 수 있습니다. RDS 콘솔의 Aurora PostgreSQL DB 클러스터 파라미터 그룹에서 파라미터 보기에 대한 자세한 정보는 [Amazon Aurora에서 DB 클러스터 파라미터 그룹의 파라미터 값 보기](USER_WorkingWithParamGroups.ViewingCluster.md) 섹션을 참조하세요.

일부 클러스터 수준 파라미터는 일부 버전에서 사용할 수 없으며 일부는 더 이상 사용되지 않습니다. 특정 Aurora PostgreSQL 버전의 파라미터 보기에 대한 자세한 내용은 [Aurora PostgreSQL DB 클러스터 및 DB 파라미터 보기](#AuroraPostgreSQL.Reference.ParameterGroups-viewing-parameters) 섹션을 참조하세요.

예를 들어, 다음 테이블에는 Aurora PostgreSQL 버전 14의 기본 DB 클러스터 파라미터 그룹에서 사용할 수 있는 파라미터가 나와 있습니다. 사용자 정의 DB 파라미터 그룹을 지정하지 않고 Aurora PostgreSQL DB 클러스터를 생성하는 경우 `default.aurora-postgresql14`, `default.aurora-postgresql13` 등과 같이 선택한 버전에 대한 기본 Aurora DB 클러스터 파라미터 그룹을 사용하여 DB 클러스터가 생성됩니다.

동일한 기본 DB 클럿스터 그룹에 대한 DB 인스턴스 파라미터 목록에 내한 내용은 [Aurora PostgreSQL 인스턴스 수준 파라미터](#AuroraPostgreSQL.Reference.Parameters.Instance) 섹션을 참조하세요.


| 파라미터 이름 | 설명 | 기본값 | 
| --- | --- | --- | 
| ansi\$1constraint\$1trigger\$1ordering | ANSI SQL 표준과 호환되도록 제약 조건 트리거의 실행 순서를 변경합니다. | –  | 
| ansi\$1force\$1foreign\$1key\$1checks | 계단식 삭제 또는 계단식 업데이트와 같은 참조 작업이 작업에 대해 존재하는 다양한 트리거 컨텍스트에 관계없이 항상 발생하는지 확인합니다. | –  | 
| ansi\$1qualified\$1update\$1set\$1target | UPDATE ... SET 문에서 테이블 및 스키마 한정자를 지원합니다. | –  | 
| apg\$1ccm\$1enabled | 클러스터에 대한 클러스터 캐시 관리를 사용 설정하거나 사용 중지합니다. | –  | 
| apg\$1enable\$1batch\$1mode\$1function\$1execution | 배치 모드 기능을 사용하여 한 번에 일련의 행을 처리합니다. | –  | 
| apg\$1enable\$1correlated\$1any\$1transform | 가능한 경우 플래너가 상관 관계가 있는 ANY 하위 링크(IN/NOT IN 하위 쿼리)를 JOIN으로 변환할 수 있습니다. | –  | 
| apg\$1enable\$1function\$1migration | 플래너가 적합한 스칼라 함수를 FROM 절로 마이그레이션할 수 있습니다. | –  | 
| apg\$1enable\$1not\$1in\$1transform | 플래너가 가능한 경우 NOT IN 하위 쿼리를 ANTI JOIN으로 변환할 수 있습니다. | –  | 
| apg\$1enable\$1remove\$1redundant\$1inner\$1joins | 플래너가 중복 내부 조인을 제거할 수 있습니다. | –  | 
| apg\$1enable\$1semijoin\$1push\$1down | 해시 조인에 세미조인 필터를 사용할 수 있습니다. | –  | 
| apg\$1plan\$1mgmt.capture\$1plan\$1baselines | 캡처 계획 기준 모드입니다. 수동(manual) - 모든 SQL 문에 대해 계획 캡처 사용 설정, 끄기(off) - 계획 캡처 사용 중지, 자동(automatic) - 자격 기준을 충족하는 pg\$1stat\$1statements의 문에 계획 캡처 사용. | 끄기  | 
| apg\$1plan\$1mgmt.max\$1databases | apg\$1plan\$1mgmt를 사용하여 쿼리를 관리할 수 있는 최대 데이터베이스 수를 설정합니다. | 10  | 
| apg\$1plan\$1mgmt.max\$1plans | apg\$1plan\$1mgmt로 캐시할 수 있는 최대 계획 수를 설정합니다. | 10000  | 
| apg\$1plan\$1mgmt.plan\$1retention\$1period | 계획이 자동으로 삭제되기 전에 계획의 last\$1used 이후 최대 일수입니다. | 32  | 
| apg\$1plan\$1mgmt.unapproved\$1plan\$1execution\$1threshold | 미승인 계획이 실행될 예상 총 계획 비용입니다. | 0  | 
| apg\$1plan\$1mgmt.use\$1plan\$1baselines | 관리형 문에 대해 승인된 계획이나 고정된 계획만 사용합니다. | false  | 
| application\$1name | 애플리케이션 이름이 통계 및 로그에 표시되도록 설정합니다. | –  | 
| array\$1nulls | 배열에서 NULL 요소의 입력을 사용 설정합니다. | –  | 
| aurora\$1compute\$1plan\$1id | 쿼리 실행 계획을 모니터링하여 현재 데이터베이스 로드에 기여하는 실행 계획을 감지하고 시간 경과에 따른 실행 계획의 성능 통계를 추적합니다. 자세한 내용은 [Aurora PostgreSQL용 쿼리 실행 계획 모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)을 참조하세요. | on  | 
| authentication\$1timeout | (초) 클라이언트 인증을 완료하는 데 허용되는 최대 시간을 설정합니다. | –  | 
| auto\$1explain.log\$1analyze | 계획 로깅에 EXPLAIN ANALYZE를 사용합니다. | –  | 
| auto\$1explain.log\$1buffers | 버퍼 사용량을 로그합니다. | –  | 
| auto\$1explain.log\$1format | 계획 로깅에 사용할 EXPLAIN 형식입니다. | –  | 
| auto\$1explain.log\$1min\$1duration | 계획이 로그되는 최소 실행 시간을 설정합니다. | –  | 
| auto\$1explain.log\$1nested\$1statements | 중첩 문을 로그합니다. | –  | 
| auto\$1explain.log\$1timing | 행 개수뿐만 아니라 타이밍 데이터를 수집합니다. | –  | 
| auto\$1explain.log\$1triggers | 계획에 트리거 통계를 포함합니다. | –  | 
| auto\$1explain.log\$1verbose | 계획 로깅에 EXPLAIN VERBOSE를 사용합니다. | –  | 
| auto\$1explain.sample\$1rate | 처리할 쿼리의 비율입니다. | –  | 
| autovacuum | autovacuum 서브프로세스를 시작합니다. | –  | 
| autovacuum\$1analyze\$1scale\$1factor | 분석 전 튜플 삽입 업데이트 또는 삭제의 수(릴튜플의 비율)입니다. | 0.05  | 
| autovacuum\$1analyze\$1threshold | 분석 전 최소 튜플 삽입 업데이트 또는 삭제 횟수입니다. | –  | 
| autovacuum\$1freeze\$1max\$1age | 트랜잭션 ID 랩어라운드를 방지하기 위한 테이블의 autovacuum 기간을 지정합니다. | –  | 
| autovacuum\$1max\$1workers | autovacuum 작업자 프로세스를 동시에 실행할 수 있는 최대 수를 설정합니다. | GREATEST(DBInstanceClassMemory/64371566592,3)  | 
| autovacuum\$1multixact\$1freeze\$1max\$1age | Multixact 랩어라운드를 방지하기 위해 테이블을 자동 정리할 multixact 기간입니다. | –  | 
| autovacuum\$1naptime | (초) 자동 정리 실행 간 절전 시간을 지정합니다. | 5  | 
| autovacuum\$1vacuum\$1cost\$1delay | (밀리초) 자동 정리에 대한 정리 비용 지연 시간(밀리초)입니다. | 5  | 
| autovacuum\$1vacuum\$1cost\$1limit | autovacuum에서 지연 시간 이전에 이용 가능한 vacuum 코스트 값을 지정합니다. | GREATEST(log(DBInstanceClassMemory/21474836480)\$1600,200)  | 
| autovacuum\$1vacuum\$1insert\$1scale\$1factor | 정리 전 튜플 삽입 횟수(릴튜플의 비율)입니다. | –  | 
| autovacuum\$1vacuum\$1insert\$1threshold | 정리 전 최소 튜플 삽입 횟수 또는 -1(삽입 정리 사용 중지)입니다. | –  | 
| autovacuum\$1vacuum\$1scale\$1factor | 정리 전 튜플 업데이트 또는 삭제 횟수(릴튜플의 비율)입니다. | 0.1  | 
| autovacuum\$1vacuum\$1threshold | 정리 전 최소 튜플 업데이트 또는 삭제 횟수입니다. | –  | 
| autovacuum\$1work\$1mem | (kB) 각 자동 정리 작업자 프로세스에서 사용할 최대 메모리를 설정합니다. | GREATEST(DBInstanceClassMemory/32768,131072)  | 
| babelfishpg\$1tds.default\$1server\$1name | Babelfish 서버의 기본 이름입니다. | Microsoft SQL Server  | 
| babelfishpg\$1tds.listen\$1addresses | TDS를 수신할 호스트 이름이나 IP 주소를 설정합니다. | \$1  | 
| babelfishpg\$1tds.port | 서버가 수신하는 TDS TCP 포트를 설정합니다. | 1433  | 
| babelfishpg\$1tds.tds\$1debug\$1log\$1level | TDS에서 로깅 수준을 설정합니다. 0을 설정하면 로깅이 사용 중지됩니다. | 1  | 
| babelfishpg\$1tds.tds\$1default\$1numeric\$1precision | 엔진에서 지정하지 않은 경우 TDS 열 메타데이터에서 전송할 숫자 유형의 기본 정밀도를 설정합니다. | 38  | 
| babelfishpg\$1tds.tds\$1default\$1numeric\$1scale | 엔진에서 지정하지 않은 경우 TDS 열 메타데이터에서 전송할 숫자 유형의 기본 배율을 설정합니다. | 8  | 
| babelfishpg\$1tds.tds\$1default\$1packet\$1size | 연결 중인 모든 SQL Server 클라이언트의 기본 패킷 크기를 설정합니다. | 4096  | 
| babelfishpg\$1tds.tds\$1default\$1protocol\$1version | 연결 중인 모든 클라이언트에 대한 기본 TDS 프로토콜 버전을 설정합니다. | DEFAULT  | 
| babelfishpg\$1tds.tds\$1ssl\$1encrypt | SSL 암호화 옵션을 설정합니다. | 0  | 
| babelfishpg\$1tds.tds\$1ssl\$1max\$1protocol\$1version | TDS 세션에 사용할 최대 SSL/TLS 프로토콜 버전을 설정합니다. | TLSv1.2  | 
| babelfishpg\$1tds.tds\$1ssl\$1min\$1protocol\$1version | TDS 세션에 사용할 최소 SSL/TLS 프로토콜 버전을 설정합니다. | Aurora PostgreSQL 버전 16의 TLSv1.2, Aurora PostgreSQL 버전 16 이전 버전의 경우 TLSv1  | 
| babelfishpg\$1tsql.default\$1locale | CREATE COLLATION에 의해 생성된 데이터 정렬에 사용할 기본 로캘입니다. | en-US  | 
| babelfishpg\$1tsql.migration\$1mode | 여러 사용자 데이터베이스가 지원되는지 여부를 정의합니다. | Aurora PostgreSQL 버전 16의 multi-db, Aurora PostgreSQL 버전 16 이전 버전의 경우 single-db  | 
| babelfishpg\$1tsql.server\$1collation\$1name | 기본 서버 콜레이션 이름입니다. | sql\$1latin1\$1general\$1cp1\$1ci\$1as  | 
| babelfishpg\$1tsql.version | @@VERSION 변수의 출력을 설정합니다. | 기본값  | 
| backend\$1flush\$1after | (8Kb) 이전에 수행된 쓰기가 디스크로 플러시된 이후의 페이지 수입니다. | –  | 
| backslash\$1quote | 문자열 리터럴에서 \$1\$1 허용 여부를 설정합니다. | –  | 
| backtrace\$1functions | 이러한 함수의 오류에 대한 백트레이스를 로깅합니다. | –  | 
| bytea\$1output | 바이트의 출력 형식을 설정합니다. | –  | 
| check\$1function\$1bodies | CREATE FUNCTION 중 함수 본문을 검사합니다. | –  | 
| client\$1connection\$1check\$1interval | 쿼리를 실행하는 동안 연결 끊김 검사 사이의 시간 간격을 설정합니다. | –  | 
| client\$1encoding | 클라이언트 문자 세트 인코딩을 설정합니다. | UTF8  | 
| client\$1min\$1messages | 클라이언트에게 보여지는 메시지 수준을 설정합니다. | –  | 
| compute\$1query\$1id | 쿼리 식별자를 계산합니다. | auto  | 
| config\$1file | 서버 기본 구성 파일을 설정합니다. | /rdsdbdata/config/postgresql.conf  | 
| constraint\$1exclusion | planner가 제약 조건을 사용하여 쿼리를 최적화하도록 활성화합니다. | –  | 
| cpu\$1index\$1tuple\$1cost | 인덱스 스캔 중 각 인덱스 항목을 처리하는 데 따른 플래너의 예상 비용을 설정합니다. | –  | 
| cpu\$1operator\$1cost | 각 연산자 또는 함수 호출을 처리하는 데 따른 플래너의 예상 비용을 설정합니다. | –  | 
| cpu\$1tuple\$1cost | 각 튜플(행)을 처리하는 데 따른 플래너의 예상 비용을 설정합니다. | –  | 
| cron.database\$1name | pg\$1cron 메타데이터 테이블을 저장하도록 데이터베이스를 설정합니다. | postgres  | 
| cron.log\$1run | 모든 작업 실행을 job\$1run\$1details 테이블에 로그합니다. | 켜짐  | 
| cron.log\$1statement | 실행 전에 모든 cron 문을 로깅합니다. | 끄기  | 
| cron.max\$1running\$1jobs | 동시에 실행할 수 있는 최대 작업 수입니다. | 5  | 
| cron.use\$1background\$1workers | pg\$1cron에 대한 백그라운드 작업자를 사용 설정합니다. | 켜짐  | 
| cursor\$1tuple\$1fraction | 플래너가 예상하는 검색할 커서 행의 분수 값을 설정합니다. | –  | 
| data\$1directory | 서버의 데이터 디렉터리를 설정합니다. | /rdsdbdata/db  | 
| datestyle | 날짜와 시간 값에 대한 표시 형식을 설정합니다. | –  | 
| db\$1user\$1namespace | 데이터베이스별 사용자 이름을 사용 설정합니다. | –  | 
| deadlock\$1timeout | (밀리초) 교착 상태 여부를 확인하기 전 잠금 대기 시간을 설정합니다. | –  | 
| debug\$1pretty\$1print | 구문과 실행 계획 트리를 들여쓰기 하여 표시합니다. | –  | 
| debug\$1print\$1parse | 각 쿼리의 구문 분석 트리를 로그합니다. | –  | 
| debug\$1print\$1plan | 각 쿼리의 실행 계획을 로그합니다. | –  | 
| debug\$1print\$1rewritten | 각 쿼리에서 재작성된 구문 분석 트리를 로그합니다. | –  | 
| default\$1statistics\$1target | 기본 통계 대상을 설정합니다. | –  | 
| default\$1tablespace | 테이블과 인덱스를 생성할 기본 테이블스페이스를 설정합니다. | –  | 
| default\$1toast\$1compression | 압축 가능한 값에 대한 기본 압축 방법을 설정합니다. | –  | 
| default\$1transaction\$1deferrable | 새로운 트랜잭션의 기본 deferrable 상태를 설정합니다. | –  | 
| default\$1transaction\$1isolation | 새로운 트랜잭션마다 트랜잭션 격리 수준을 설정합니다. | –  | 
| default\$1transaction\$1read\$1only | 새로운 트랜잭션의 기본 읽기 전용 상태를 설정합니다. | –  | 
| effective\$1cache\$1size | (8kB) 디스크 캐시 크기에 대한 플래너의 가정을 설정합니다. | SUM(DBInstanceClassMemory/12038,-50003)  | 
| effective\$1io\$1concurrency | 디스크 하위 시스템에서 효율적으로 동시에 처리할 수 있는 요청 수를 지정합니다. | –  | 
| enable\$1async\$1append | 플래너가 비동기 추가 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1bitmapscan | 플래너가 비트맵 스캔 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1gathermerge | 플래너가 수집 병합 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1hashagg | 플래너가 해시된 집계 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1hashjoin | 플래너가 해시 조인 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1incremental\$1sort | 플래너가 증분 정렬 단계를 사용할 수 있도록 합니다. | –  | 
| enable\$1indexonlyscan | 플래너가 인덱스 전용 스캔 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1indexscan | 플래너가 인덱스 스캔 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1material | 플래너가 구체화를 사용할 수 있도록 합니다. | –  | 
| enable\$1memoize | 플래너가 메모이제이션을 사용할 수 있도록 합니다. | –  | 
| enable\$1mergejoin | 플래너가 병합 조인 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1nestloop | 플래너가 중첩 루프 조인 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1parallel\$1append | 플래너가 병렬 추가 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1parallel\$1hash | 플래너가 병렬 해시 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1partition\$1pruning | 계획 시간 및 실행 시간 파티션 정리를 사용 설정합니다. | –  | 
| enable\$1partitionwise\$1aggregate | 파티션별 집계 및 그룹화를 사용 설정합니다. | –  | 
| enable\$1partitionwise\$1join | 파티션별 조인을 사용 설정합니다. | –  | 
| enable\$1seqscan | 플래너가 순차적 스캔 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1sort | 플래너가 명시적 정렬 단계를 사용할 수 있도록 합니다. | –  | 
| enable\$1tidscan | 플래너가 TID 스캔 계획을 사용할 수 있도록 합니다. | –  | 
| escape\$1string\$1warning | 일반 문자열 리터럴의 백슬래시 이스케이프에 대해 경고합니다. | –  | 
| exit\$1on\$1error | 오류 발생 시 세션을 종료합니다. | –  | 
| extra\$1float\$1digits | 부동 소수점으로 표시할 자릿수를 설정합니다. | –  | 
| force\$1parallel\$1mode | 병렬 쿼리 기능을 강제로 사용합니다. | –  | 
| from\$1collapse\$1limit | 서브 쿼리가 축소되지 않는 FROM 목록 크기를 설정합니다. | –  | 
| geqo | 유전적 쿼리 최적화를 활성화합니다. | –  | 
| geqo\$1effort | GEQO: 다른 GEQO 파라미터의 기본값을 설정하는 데 사용됩니다. | –  | 
| geqo\$1generations | GEQO: 알고리즘의 반복 횟수입니다. | –  | 
| geqo\$1pool\$1size | GEQO: 모집단의 개체 수입니다. | –  | 
| geqo\$1seed | GEQO: 무작위 경로 선택을 위한 시드(seed)를 지정합니다. | –  | 
| geqo\$1selection\$1bias | GEQO: 모집단 내 선택적 압력을 지정합니다. | –  | 
| geqo\$1threshold | GEQO가 사용되는 FROM 항목의 임계값을 설정합니다. | –  | 
| gin\$1fuzzy\$1search\$1limit | 정확한 GIN 기준 검색에 허용되는 최대 결과 수를 설정합니다. | –  | 
| gin\$1pending\$1list\$1limit | (kB) GIN 인덱스에 대해 보류 중인 목록의 최대 크기를 설정합니다. | –  | 
| hash\$1mem\$1multiplier | 해시 테이블에 사용할 work\$1mem의 배수입니다. | –  | 
| hba\$1file | 서버 hba 구성 파일을 설정합니다. | /rdsdbdata/config/pg\$1hba.conf  | 
| hot\$1standby\$1feedback | 쿼리 충돌을 피하기 위해 상시 대기에서 프라이머리로 피드백을 허용합니다. | 켜짐  | 
| huge\$1pages | DB 인스턴스가 공유 버퍼에서 사용하는 것과 같은 대규모 연속 메모리 청크로 작업할 때 오버헤드를 줄입니다. t3.medium, db.t3.large, db.t4g.medium, db.t4g.large 인스턴스 클래스를 제외한 모든 DB 인스턴스 클래스에서 기본적으로 켜져 있습니다.  | on  | 
| ident\$1file | 서버 ident 구성 파일을 설정합니다. | /rdsdbdata/config/pg\$1ident.conf  | 
| idle\$1in\$1transaction\$1session\$1timeout | (밀리초) 유휴 트랜잭션의 최대 허용 기간을 설정합니다. | 86400000  | 
| idle\$1session\$1timeout | 열린 트랜잭션 내에 있지 않으면서 지정된 시간보다 오랫동안 유휴 상태(즉, 클라이언트 쿼리를 기다리는 중)인 세션을 종료합니다. | –  | 
| intervalstyle | 간격 값에 대한 표시 형식을 설정합니다. | –  | 
| join\$1collapse\$1limit | JOIN 구문이 결합되지 않는 FROM 목록 크기를 설정합니다. | –  | 
| krb\$1caseins\$1users  | GSSAPI(일반 보안 서비스 API) 사용자 이름을 대소문자를 구분하지 않고 처리할지(true) 여부를 설정합니다. 기본적으로 이 파라미터는 false로 설정되므로, Kerberos는 사용자 이름이 대소문자를 구분할 것으로 예상합니다. 자세한 내용은 PostgreSQL 설명서에서 [GSSAPI 인증](https://www.postgresql.org/docs/current/gssapi-auth.html)을 참조하십시오. | false | 
| lc\$1messages | 메시지 표시 언어를 설정합니다. | –  | 
| lc\$1monetary | 통화 금액의 형식으로 사용할 로캘을 설정합니다. | –  | 
| lc\$1numeric | 숫자의 형식으로 사용할 로캘을 설정합니다. | –  | 
| lc\$1time | 날짜와 시간 값의 형식으로 사용할 로캘을 설정합니다. | –  | 
| listen\$1addresses | 수신할 호스트 이름이나 IP 주소를 설정합니다. | \$1  | 
| lo\$1compat\$1privileges | 대형 객체에 대한 권한 검사를 위해 이전 버전과의 호환성 모드를 사용 설정합니다. | 0  | 
| log\$1autovacuum\$1min\$1duration | (밀리초) 자동 정리 작업이 기록되는 최소 실행 시간을 설정합니다. | 10000  | 
| log\$1connections | 성공한 연결을 모두 기록합니다. | –  | 
| log\$1destination | 서버 로그 출력의 대상을 설정합니다. | stderr  | 
| log\$1directory | 로그 파일의 대상 디렉터리를 설정합니다. | /rdsdbdata/log/error  | 
| log\$1disconnections | 지속 시간을 포함해 세션 종료를 기록합니다. | –  | 
| log\$1duration | 완료된 개별 SQL 문의 지속 시간을 기록합니다. | –  | 
| log\$1error\$1verbosity | 기록된 메시지의 세부 사항을 설정합니다. | –  | 
| log\$1executor\$1stats | 실행기 성능 통계를 서버 로그에 기록합니다. | –  | 
| log\$1file\$1mode | 로그 파일에 대한 파일 권한을 설정합니다. | 0644  | 
| log\$1filename | 로그 파일의 이름 패턴을 설정합니다. | postgresql.log.%Y-%m-%d-%H%M  | 
| logging\$1collector | 하위 프로세스를 시작하여 stderr 출력 및/또는 csvlog를 로그 파일로 캡처합니다. | 1  | 
| log\$1hostname | 연결 로그에 호스트 이름을 기록합니다. | 0  | 
| logical\$1decoding\$1work\$1mem | (kB) 디스크로 유출되기 전에 각 내부 재정렬 버퍼에서 이 정도의 메모리를 사용할 수 있습니다. | –  | 
| log\$1line\$1prefix | 각 로그 행에 접두사가 붙은 정보를 제어합니다. | %t:%r:%u@%d:%p]:  | 
| log\$1lock\$1waits | 오랜 잠금 대기 시간을 기록합니다. | –  | 
| log\$1min\$1duration\$1sample | (밀리초) 문 샘플이 로그되는 최소 실행 시간을 설정합니다. 샘플링은 log\$1statement\$1sample\$1rate에 의해 결정됩니다. | –  | 
| log\$1min\$1duration\$1statement | (밀리초) 문이 기록되는 최소 실행 시간을 설정합니다. | –  | 
| log\$1min\$1error\$1statement | 이 수준 이상으로 오류 원인이 되는 모든 문을 로그합니다. | –  | 
| log\$1min\$1messages | 기록되는 메시지 수준을 설정합니다. | –  | 
| log\$1parameter\$1max\$1length | (B) 문을 로그할 때 로그된 파라미터 값을 처음 N바이트로 제한합니다. | –  | 
| log\$1parameter\$1max\$1length\$1on\$1error | (B) 오류를 보고할 때 로그된 파라미터 값을 처음 N바이트로 제한합니다. | –  | 
| log\$1parser\$1stats | 구문 분석기 성능 통계를 서버 로그에 기록합니다. | –  | 
| log\$1planner\$1stats | planner 성능 통계를 서버 로그에 기록합니다. | –  | 
| log\$1replication\$1commands | 각 복제 명령을 로그합니다. | –  | 
| log\$1rotation\$1age | (분) N분 후 자동 로그 파일 회전이 수행됩니다. | 60  | 
| log\$1rotation\$1size | (kB) N킬로바이트 후 자동 로그 파일 회전이 수행됩니다. | 100000  | 
| log\$1statement | 기록할 문 유형을 설정합니다. | –  | 
| log\$1statement\$1sample\$1rate | 로그할 log\$1min\$1duration\$1sample을 초과하는 문의 비율입니다. | –  | 
| log\$1statement\$1stats | 누적 성능 통계를 서버 로그에 기록합니다. | –  | 
| log\$1temp\$1files | (kB) 이 킬로바이트 수치보다 큰 임시 파일의 사용을 로그합니다. | –  | 
| log\$1timezone | 로그 메시지에 사용할 표준 시간대를 설정합니다. | UTC  | 
| log\$1transaction\$1sample\$1rate | 새 트랜잭션에 대해 로그할 트랜잭션 비율을 설정합니다. | –  | 
| log\$1truncate\$1on\$1rotation | 로그 순환 중에 동일한 이름의 기존 로그 파일을 잘라냅니다. | 0  | 
| maintenance\$1io\$1concurrency | 유지 관리 작업에 사용되는 effective\$1io\$1concurrency의 변형입니다. | 1  | 
| maintenance\$1work\$1mem | (kB) 유지 관리 작업에 사용할 최대 메모리를 설정합니다. | GREATEST(DBInstanceClassMemory/63963136\$11024,65536)  | 
| max\$1connections | 동시에 접속할 수 있는 최대 수를 설정합니다. | LEAST(DBInstanceClassMemory/9531392,5000)  | 
| max\$1files\$1per\$1process | 서버 프로세스마다 파일을 동시에 열 수 있는 최대 수를 설정합니다. | –  | 
| max\$1locks\$1per\$1transaction | 하나의 트랜잭션에서 사용할 수 있는 최대 잠금 횟수를 설정합니다. | 64  | 
| max\$1logical\$1replication\$1workers | 최대 논리적 복제 작업자 프로세스 수입니다. | –  | 
| max\$1parallel\$1maintenance\$1workers | 유지 관리 작업당 최대 병렬 프로세스 수를 설정합니다. | –  | 
| max\$1parallel\$1workers | 한 번에 활성화할 수 있는 최대 병렬 작업자 수를 설정합니다. | GREATEST(\$1DBInstanceVCPU/2,8)  | 
| max\$1parallel\$1workers\$1per\$1gather | 실행기 노드당 최대 병렬 프로세스 수를 설정합니다. | –  | 
| max\$1pred\$1locks\$1per\$1page | 페이지당 최대 술어 잠금 튜플 수를 설정합니다. | –  | 
| max\$1pred\$1locks\$1per\$1relation | 관계당 최대 술어 잠금 페이지 및 튜플 수를 설정합니다. | –  | 
| max\$1pred\$1locks\$1per\$1transaction | 하나의 트랜잭션에서 사용할 수 있는 최대 술어(predicate) 잠금 횟수를 설정합니다. | –  | 
| max\$1prepared\$1transactions | 트랜잭션을 동시에 준비할 수 있는 최대 수를 설정합니다. | 0  | 
| max\$1replication\$1slots | 서버에서 지원할 수 있는 최대 복제 슬롯 수를 설정합니다. | 20  | 
| max\$1slot\$1wal\$1keep\$1size | (MB) 복제 슬롯은 실패한 것으로 표시되고 디스크에서 WAL이 이 정도의 공간을 차지하는 경우 삭제 또는 재활용을 위해 세그먼트가 해제됩니다. | –  | 
| max\$1stack\$1depth | (kB) 최대 스택 깊이(킬로바이트)를 설정합니다. | 6144  | 
| max\$1standby\$1streaming\$1delay | (밀리초) 상시 대기 서버가 스트리밍된 WAL 데이터를 처리할 때 쿼리 취소까지 걸리는 최대 지연 시간을 설정합니다. | 14000  | 
| max\$1sync\$1workers\$1per\$1subscription | 구독당 최대 동기화 작업자 수 | 2  | 
| max\$1wal\$1senders | 동시에 실행되는 최대 WAL 발신자 프로세스 수를 설정합니다. | 10  | 
| max\$1worker\$1processes | 최대 동시 작업자 프로세스 수를 설정합니다. | GREATEST(\$1DBInstanceVCPU\$12,8)  | 
| min\$1dynamic\$1shared\$1memory | (MB) 시작 시 예약된 동적 공유 메모리의 양입니다. | –  | 
| min\$1parallel\$1index\$1scan\$1size | (8kB) 병렬 스캔을 위한 최소 인덱스 데이터 양을 설정합니다. | –  | 
| min\$1parallel\$1table\$1scan\$1size | (8kB) 병렬 스캔을 위한 최소 테이블 데이터 양을 설정합니다. | –  | 
| old\$1snapshot\$1threshold | (분) 스냅샷이 너무 오래되어 스냅샷이 생성된 후 변경된 페이지를 읽을 수 없게 될 때까지의 시간입니다. | –  | 
| orafce.nls\$1date\$1format | 오라클의 날짜 출력 동작을 에뮬레이션합니다. | –  | 
| orafce.timezone | sysdate 함수에 사용되는 시간대를 지정합니다. | –  | 
| parallel\$1leader\$1participation | 수집 및 수집 병합이 하위 계획도 실행할지 여부를 제어합니다. | –  | 
| parallel\$1setup\$1cost | 병렬 쿼리에 대한 작업자 프로세스 시작 비용의 플래너 추정치를 설정합니다. | –  | 
| parallel\$1tuple\$1cost | 작업자에서 마스터 백엔드로 각 튜플(행)을 전달하는 비용의 플래너 추정치를 설정합니다. | –  | 
| password\$1encryption | 암호를 암호화합니다. | –  | 
| pgaudit.log | 세션 감사 로깅에 의해 로그될 문의 클래스를 지정합니다. | –  | 
| pgaudit.log\$1catalog | 문의 모든 관계가 pg\$1catalog에 있는 경우 세션 로깅을 사용하도록 지정합니다. | –  | 
| pgaudit.log\$1level | 로그 항목에 사용할 로그 수준을 지정합니다. | –  | 
| pgaudit.log\$1parameter | 감사 로깅에 문과 함께 전달된 파라미터가 포함되도록 지정합니다. | –  | 
| pgaudit.log\$1relation | 세션 감사 로깅에서 SELECT 또는 DML 문에서 참조되는 각 관계(TABLE, VIEW 등)에 대해 별도의 로그 항목을 생성해야 하는지 여부를 지정합니다. | –  | 
| pgaudit.log\$1statement\$1once | 로깅에 문/하위 문 조합에 대한 첫 번째 로그 항목이 있는 문 텍스트 및 파라미터를 포함할지 아니면 모든 항목이 있는 문 텍스트 및 파라미터를 포함할지를 지정합니다. | –  | 
| pgaudit.role | 객체 감사 로깅에 사용할 마스터 역할을 지정합니다. | –  | 
| pg\$1bigm.enable\$1recheck | 전체 텍스트 검색의 내부 프로세스인 재검사를 수행할지 여부를 지정합니다. | 켜짐  | 
| pg\$1bigm.gin\$1key\$1limit | 전체 텍스트 검색에 사용할 검색 키워드의 최대 2그램 수를 지정합니다. | 0  | 
| pg\$1bigm.last\$1update | pg\$1bigm 모듈의 마지막 업데이트 날짜를 보고합니다. | 2,013.11.22  | 
| pg\$1bigm.similarity\$1limit | 유사성 검색에 사용되는 최소 임계값을 지정합니다. | 0.3  | 
| pg\$1hint\$1plan.debug\$1print | 힌트 구문 분석 결과를 로그합니다. | –  | 
| pg\$1hint\$1plan.enable\$1hint | 플래너가 쿼리 앞의 힌트 설명에 지정된 계획을 사용하도록 합니다. | –  | 
| pg\$1hint\$1plan.enable\$1hint\$1table | 테이블 조회를 사용하여 플래너가 힌트를 얻지 못하도록 합니다. | –  | 
| pg\$1hint\$1plan.message\$1level | 디버그 메시지의 메시지 수준입니다. | –  | 
| pg\$1hint\$1plan.parse\$1messages | 구문 분석 오류의 메시지 수준입니다. | –  | 
| pglogical.batch\$1inserts | 가능한 경우 배치 삽입 | –  | 
| pglogical.conflict\$1log\$1level | 해결된 충돌을 로깅하는 데 사용되는 로그 수준을 설정합니다. | –  | 
| pglogical.conflict\$1resolution | 해결 가능한 충돌에 대한 충돌 해결에 사용되는 방법을 설정합니다. | –  | 
| pglogical.extra\$1connection\$1options | 모든 피어 노드 연결에 추가할 연결 옵션 | –  | 
| pglogical.synchronous\$1commit | pglogical 특정 동기 커밋 값입니다. | –  | 
| pglogical.use\$1spi | 변경 사항 적용에 하위 수준 API 대신 SPI 사용 | –  | 
| pgtle.clientauth\$1databases\$1to\$1skip | clientauth 기능을 사용하기 위해 건너뛰어야 할 데이터베이스 목록입니다. | –  | 
| pgtle.clientauth\$1db\$1name | clientauth 기능에 사용할 데이터베이스를 제어합니다. | –  | 
| pgtle.clientauth\$1num\$1parallel\$1workers | clientauth 기능에 사용되는 백그라운드 워커 수입니다. | –  | 
| pgtle.clientauth\$1users\$1to\$1skip | clientauth 기능을 사용하기 위해 건너뛰어야 할 사용자 목록입니다. | –  | 
| pgtle.enable\$1clientauth | clientauth 기능을 활성화합니다. | –  | 
| pgtle.passcheck\$1db\$1name | 클러스터 전체 passcheck 기능에 사용할 데이터베이스를 설정합니다. | –  | 
| pg\$1prewarm.autoprewarm | 자동 사전 웜 작업자를 시작합니다. | –  | 
| pg\$1prewarm.autoprewarm\$1interval | 공유 버퍼의 덤프 간격을 설정합니다. | –  | 
| pg\$1similarity.block\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.block\$1threshold | 블록 유사성 함수에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.block\$1tokenizer | 블록 유사성 함수의 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.cosine\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.cosine\$1threshold | 코사인 유사성 함수에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.cosine\$1tokenizer | 코사인 유사성 함수의 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.dice\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.dice\$1threshold | 주사위 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.dice\$1tokenizer | 주사위 유사성 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.euclidean\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.euclidean\$1threshold | 유클리드 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.euclidean\$1tokenizer | 유클리드 유사성 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.hamming\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.hamming\$1threshold | 블록 유사성 지수에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.jaccard\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.jaccard\$1threshold | 자카드 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.jaccard\$1tokenizer | 자카드 유사성 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.jaro\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.jaro\$1threshold | 자로 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.jarowinkler\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.jarowinkler\$1threshold | 자로윙클러 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.levenshtein\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.levenshtein\$1threshold | 레벤슈타인 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.matching\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.matching\$1threshold | 일치 계수 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.matching\$1tokenizer | 일치 계수 유사성 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.mongeelkan\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.mongeelkan\$1threshold | 몽게-엘칸 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.mongeelkan\$1tokenizer | 몽게-엘칸 유사성 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.nw\$1gap\$1penalty | 니들만 브니쉬 유사성 측정에 사용되는 갭 페널티를 설정합니다. | –  | 
| pg\$1similarity.nw\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.nw\$1threshold | 니들레만-운쉬 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.overlap\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.overlap\$1threshold | 겹침 계수 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.overlap\$1tokenizer | 겹침 계수 유사성 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.qgram\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.qgram\$1threshold | Q-그램 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.qgram\$1tokenizer | Q-그램 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.swg\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.swg\$1threshold | 스미스-워터맨-고토 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.sw\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.sw\$1threshold | 스미스-워터맨 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1stat\$1statements.max | pg\$1stat\$1statements에서 추적하는 최대 문 수를 설정합니다. | –  | 
| pg\$1stat\$1statements.save | 서버 종료 시 pg\$1stat\$1statements 통계를 저장합니다. | –  | 
| pg\$1stat\$1statements.track | pg\$1stat\$1statements로 추적할 문을 선택합니다. | –  | 
| pg\$1stat\$1statements.track\$1planning | pg\$1stat\$1statements로 계획 기간을 추적할지 여부를 선택합니다. | –  | 
| pg\$1stat\$1statements.track\$1utility | pg\$1stat\$1statements로 유틸리티 명령을 추적할지 여부를 선택합니다. | –  | 
| plan\$1cache\$1mode | 사용자 정의 또는 일반 계획의 플래너 선택을 제어합니다. | –  | 
| 포트 | 서버가 수신하는 TCP 포트를 설정합니다. | EndPointPort  | 
| postgis.gdal\$1enabled\$1drivers | Postgres 9.3.5 이상에서 PostGIS와 함께 사용되는 GDAL 드라이버를 사용 설정하거나 사용 중지합니다. | ENABLE\$1ALL  | 
| quote\$1all\$1identifiers | SQL 조각 생성 시 모든 식별자에 인용 부호를 추가합니다. | –  | 
| random\$1page\$1cost | 비순차적으로 가져온 디스크 페이지에 대한 플래너의 예상 비용을 설정합니다. | –  | 
| rdkit.dice\$1threshold | 주사위 유사도의 하한 임계값입니다. 유사도가 임계값보다 낮은 분자는 \$1 연산에서 유사하지 않습니다. | –  | 
| rdkit.do\$1chiral\$1sss | 하부 구조 일치에서 입체 화학을 고려해야 합니다. false인 경우 하위 구조 일치에 입체 화학 정보가 사용되지 않습니다. | –  | 
| rdkit.tanimoto\$1threshold | 타니모토 유사도의 하한 임계값입니다. 유사도가 임계값보다 낮은 분자는 % 연산에서 유사하지 않습니다. | –  | 
| rds.accepted\$1password\$1auth\$1method | 로컬에 저장된 암호를 사용하여 연결을 강제로 인증합니다. | md5\$1scram  | 
| rds.adaptive\$1autovacuum | 적응형 자동 정리를 사용 설정/사용 중지하는 RDS 파라미터입니다. | 1  | 
| rds.babelfish\$1status | Babelfish for Aurora PostgreSQL을 사용 설정/사용 중지하는 RDS 파라미터입니다. | 끄기  | 
| rds.enable\$1plan\$1management | apg\$1plan\$1mgmt 확장을 사용 설정하거나 사용 중지합니다. | 0  | 
| SHOw extensions | RDS에서 제공하는 확장 목록입니다. | address\$1standardizer, address\$1standardizer\$1data\$1us, apg\$1plan\$1mgmt, aurora\$1stat\$1utils, amcheck, autoinc, aws\$1commons, aws\$1ml, aws\$1s3, aws\$1lambda, bool\$1plperl, bloom, btree\$1gin, btree\$1gist, citext, cube, dblink, dict\$1int, dict\$1xsyn, earthdistance, fuzzystrmatch, hll, hstore, hstore\$1plperl, insert\$1username, intagg, intarray, ip4r, isn, jsonb\$1plperl, lo, log\$1fdw, ltree, moddatetime, old\$1snapshot, oracle\$1fdw, orafce, pgaudit, pgcrypto, pglogical, pgrouting, pgrowlocks, pgstattuple, pgtap, pg\$1bigm, pg\$1buffercache, pg\$1cron, pg\$1freespacemap, pg\$1hint\$1plan, pg\$1partman, pg\$1prewarm, pg\$1proctab, pg\$1repack, pg\$1similarity, pg\$1stat\$1statements, pg\$1trgm, pg\$1visibility, plcoffee, plls, plperl, plpgsql, plprofiler, pltcl, plv8, postgis, postgis\$1tiger\$1geocoder, postgis\$1raster, postgis\$1topology, postgres\$1fdw, prefix, rdkit, rds\$1tools, refint, sslinfo, tablefunc, tds\$1fdw, test\$1parser, tsm\$1system\$1rows, tsm\$1system\$1time, unaccent, uuid-ossp  | 
| rds.force\$1admin\$1logging\$1level | 고객 데이터베이스의 RDS 관리자 사용자 작업에 대한 로그 메시지를 참조하세요. | –  | 
| rds.force\$1autovacuum\$1logging\$1level | 자동 정리 작업과 관련된 로그 메시지를 참조하세요. | WARNING  | 
| rds.force\$1ssl | SSL 연결을 강제 설정합니다. | 0  | 
| rds.global\$1db\$1rpo | (초) 위반 시 사용자 커밋을 차단하는 복구 시점 목표 임계값(초)입니다.  이 파라미터는 Aurora PostgreSQL 기반 글로벌 데이터베이스를 위한 것입니다. 비글로벌 데이터베이스의 경우 기본값을 그대로 둡니다. 이 파라미터에 대한 자세한 내용은 [Aurora PostgreSQL–기반 전역 데이터베이스에 대한 RPO 관리](aurora-global-database-disaster-recovery.md#aurora-global-database-manage-recovery) 섹션을 참조하세요.   | –  | 
| rds.logical\$1replication | 논리적 디코딩을 사용 설정합니다. | 0  | 
| rds.logically\$1replicate\$1unlogged\$1tables | 로깅되지 않은 테이블은 논리적으로 복제됩니다. | 1  | 
| rds.log\$1retention\$1period | Amazon RDS가 N분보다 오래된 PostgreSQL 로그를 삭제합니다. | 4320  | 
| rds.pg\$1stat\$1ramdisk\$1size | 통계 램디스크의 크기(MB)입니다. 값이 0이 아니면 램디스크가 설정됩니다. 이 파라미터는 Aurora PostgreSQL 14 이하 버전에서만 사용할 수 있습니다. | 0  | 
| rds.rds\$1superuser\$1reserved\$1connections | rds\$1superuser용으로 예약된 연결 슬롯 수를 설정합니다. 이 파라미터는 버전 15 이상에서만 사용할 수 있습니다. 자세한 내용은 PostgreSQL 설명서의 [reserved connections](https://www.postgresql.org/docs/current/runtime-config-connection.html#GUC-RESERVED-CONNECTIONS)를 참조하세요. | 2  | 
| rds.restrict\$1password\$1commands | 암호 관련 명령을 rds\$1password 멤버로 제한합니다. | –  | 
| rds.superuser\$1variables | rds\$1superuser 수정 문을 승격시키는 수퍼 사용자 전용 변수 목록입니다. | session\$1replication\$1role  | 
| recovery\$1init\$1sync\$1method | 충돌 복구 전에 데이터 디렉터리를 동기화하는 방법을 설정합니다. | syncfs  | 
| remove\$1temp\$1files\$1after\$1crash | 백엔드 충돌 후 임시 파일을 제거합니다. | 0  | 
| restart\$1after\$1crash | 백엔드 충돌 후 서버를 다시 초기화합니다. | –  | 
| row\$1security | 행 보안을 사용 설정합니다. | –  | 
| search\$1path | 스키마로 한정되지 않은 이름의 스키마 검색 순서를 설정합니다. | –  | 
| seq\$1page\$1cost | 순차적으로 가져온 디스크 페이지에 대한 플래너의 예상 비용을 설정합니다. | –  | 
| session\$1replication\$1role | 트리거 및 다시 쓰기 규칙에 대한 세션 동작을 설정합니다. | –  | 
| shared\$1buffers | (8kB) 서버에서 사용하는 공유 메모리 버퍼 수를 설정합니다. | SUM(DBInstanceClassMemory/12038,-50003)  | 
| shared\$1preload\$1libraries | 서버에 미리 로드할 공유 라이브러리를 나열합니다. | pg\$1stat\$1statements  | 
| ssl | SSL 연결을 활성화합니다. | 1  | 
| ssl\$1ca\$1file | SSL 서버 권한 파일의 위치입니다. | /rdsdbdata/rds-metadata/ca-cert.pem  | 
| ssl\$1cert\$1file | SSL 서버 인증서 파일의 위치입니다. | /rdsdbdata/rds-metadata/server-cert.pem  | 
| ssl\$1ciphers | 보안 연결에 사용할 수 있는 TLS 암호 목록을 설정합니다. | –  | 
| ssl\$1crl\$1dir | SSL 인증서 취소 목록 디렉토리의 위치입니다. | /rdsdbdata/rds-metadata/ssl\$1crl\$1dir/  | 
| ssl\$1key\$1file |  SSL 서버 프라이빗 키 파일의 위치입니다. | /rdsdbdata/rds-metadata/server-key.pem  | 
| ssl\$1max\$1protocol\$1version | 허용되는 최대 SSL/TLS 프로토콜 버전을 설정합니다. | –  | 
| ssl\$1min\$1protocol\$1version | 허용되는 최소 SSL/TLS 프로토콜 버전을 설정합니다. | TLSv1.2  | 
| standard\$1conforming\$1strings | ... 문자열에서 백슬래시가 리터럴로 처리됩니다. | –  | 
| statement\$1timeout | (밀리초) 모든 문의 최대 허용 기간을 설정합니다. | –  | 
| stats\$1temp\$1directory | 임시 통계 파일을 지정된 디렉터리에 씁니다. | /rdsdbdata/db/pg\$1stat\$1tmp  | 
| superuser\$1reserved\$1connections | 슈퍼 사용자용으로 예약된 연결 슬롯 수를 설정합니다. | 3  | 
| synchronize\$1seqscans | 동기 방식의 순차적 스캔을 사용 설정합니다. | –  | 
| synchronous\$1commit | 현재 트랜잭션 동기화 수준을 설정합니다. | 켜짐  | 
| tcp\$1keepalives\$1count | TCP keepalive의 최대 재전송 횟수를 지정합니다. | –  | 
| tcp\$1keepalives\$1idle | (초) TCP keepalive의 실행 간격을 지정합니다. | –  | 
| tcp\$1keepalives\$1interval | (초) TCP keepalive의 재전송 간격을 지정합니다. | –  | 
| temp\$1buffers | (8kB) 각 세션에서 사용하는 임시 버퍼의 최대 수를 설정합니다. | –  | 
| temp\$1file\$1limit | 명시적 임시 테이블에 사용되는 공간을 제외하고 주어진 PostgreSQL 프로세스가 임시 파일에 사용할 수 있는 총 디스크 공간(KB)을 제한합니다. | -1  | 
| temp\$1tablespaces | 임시 테이블 및 정렬 파일에 사용할 테이블스페이스를 설정합니다. | –  | 
| timezone | 타임스탬프를 표시 및 해석할 시간대를 설정합니다. | UTC  | 
| track\$1activities | 명령 실행에 대한 정보를 수집합니다. | –  | 
| track\$1activity\$1query\$1size | pg\$1stat\$1activity.current\$1query에 예약되는 크기(바이트)를 설정합니다. | 4096  | 
| track\$1commit\$1timestamp | 트랜잭션 커밋 시간을 수집합니다. | –  | 
| track\$1counts | 데이터베이스 작업에 관한 통계를 수집합니다. | –  | 
| track\$1functions | 데이터베이스 작업에 관한 함수 수준 통계를 수집합니다. | pl  | 
| track\$1io\$1timing | 데이터베이스 I/O 작업에 대한 시간 통계를 수집합니다. | 1  | 
| track\$1wal\$1io\$1timing | WAL I/O 활동에 관한 시간 통계를 수집합니다. | –  | 
| transform\$1null\$1equals | expr=NULL을 expr IS NULL로 처리합니다. | –  | 
| update\$1process\$1title | 프로세스 제목을 업데이트하여 활성 SQL 명령을 표시합니다. | –  | 
| vacuum\$1cost\$1delay | (밀리초) 정리 비용 지연 시간(밀리초)입니다. | –  | 
| vacuum\$1cost\$1limit | 지연 시간 이전에 이용 가능한 vacuum 코스트 값을 지정합니다. | –  | 
| vacuum\$1cost\$1page\$1dirty | vacuum으로 페이지 변경 시 부과되는 vacuum 코스트를 지정합니다. | –  | 
| vacuum\$1cost\$1page\$1hit | 버퍼 캐시에서 발견되는 페이지에 대한 vacuum 코스트를 지정합니다. | –  | 
| vacuum\$1cost\$1page\$1miss | 버퍼 캐시에서 발견되지 않는 페이지에 대한 vacuum 코스트를 지정합니다. | 0  | 
| vacuum\$1defer\$1cleanup\$1age | VACUUM 및 HOT 정리를 연기해야 하는 트랜잭션 수입니다(있는 경우). | –  | 
| vacuum\$1failsafe\$1age | VACUUM에서 안전 장치가 작동하여 랩어라운드 정전을 방지해야 하는 기간입니다. | 1200000000  | 
| vacuum\$1freeze\$1min\$1age | VACUUM에서 테이블 행을 고정해야 하는 최소 기간입니다. | –  | 
| vacuum\$1freeze\$1table\$1age | VACUUM에서 전체 테이블을 스캔하여 튜플을 고정해야 하는 기간입니다. | –  | 
| vacuum\$1multixact\$1failsafe\$1age | VACUUM에서 안전 장치가 작동하여 랩어라운드 정전을 방지해야 하는 Multixact 기간입니다. | 1200000000  | 
| vacuum\$1multixact\$1freeze\$1min\$1age | VACUUM에서 테이블 행의 MultiXactId를 고정해야 하는 최소 기간입니다. | –  | 
| vacuum\$1multixact\$1freeze\$1table\$1age | VACUUM에서 전체 테이블을 스캔하여 튜플을 고정해야 하는 multixact 기간입니다. | –  | 
| wal\$1buffers | (8kB) WAL을 위해 공유 메모리에서 사용할 디스크 페이지 버퍼 수를 설정합니다. | –  | 
| wal\$1receiver\$1create\$1temp\$1slot | 영구 슬롯이 구성되지 않은 경우 WAL 수신기에서 임시 복제 슬롯을 생성할지 여부를 설정합니다. | 0  | 
| wal\$1receiver\$1status\$1interval | (초) WAL 수신기 상태 보고 간 최대 간격을 프라이머리로 설정합니다. | –  | 
| wal\$1receiver\$1timeout | (밀리초) 프라이머리로부터 데이터를 수신할 최대 대기 시간을 설정합니다. | 30000  | 
| wal\$1sender\$1timeout | (밀리초) WAL 복제를 기다리는 최대 시간을 설정합니다. | –  | 
| work\$1mem | (kB) 쿼리 작업 공간에 사용할 최대 메모리를 설정합니다. | –  | 
| xmlbinary | XML에서 바이너리 값의 인코딩 방식을 설정합니다. | –  | 
| xmloption | 암시적 구문 분석 및 직렬화 작업에서 XML 데이터를 문서 또는 내용 조각으로 간주할지 여부를 설정합니다. | – | 

## Aurora PostgreSQL 인스턴스 수준 파라미터
<a name="AuroraPostgreSQL.Reference.Parameters.Instance"></a>

AWS 관리 콘솔, AWS CLI 또는 Amazon RDS API를 사용하여 특정 Aurora PostgreSQL 버전에서 사용 가능한 인스턴스 수준 파라미터를 볼 수 있습니다. RDS 콘솔의 Aurora PostgreSQL DB 파라미터 그룹에서 파라미터 보기에 대한 자세한 정보는 [Amazon Aurora에서 DB 파라미터 그룹의 파라미터 값 보기](USER_WorkingWithParamGroups.Viewing.md) 섹션을 참조하세요.

일부 인스턴스 수준 파라미터는 일부 버전에서 사용할 수 없으며 일부는 더 이상 사용되지 않습니다. 특정 Aurora PostgreSQL 버전의 파라미터 보기에 대한 자세한 내용은 [Aurora PostgreSQL DB 클러스터 및 DB 파라미터 보기](#AuroraPostgreSQL.Reference.ParameterGroups-viewing-parameters) 섹션을 참조하세요.

예를 들어, 다음 테이블에는 Aurora PostgreSQL DB 클러스터의 특정 DB 클러스터에 적용되는 파라미터가 나와 있습니다. 이 목록은 `--db-parameter-group-name` 값에 대해 `default.aurora-postgresql14`과 함께 [describe-db-parameters](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-parameters.html) AWS CLI 명령을 실행하여 생성되었습니다.

동일한 기본 DB 파라미터 그룹에 대한 DB 클러스터 파라미터 목록에 대한 내용은 [Aurora PostgreSQL 클러스터 수준 파라미터](#AuroraPostgreSQL.Reference.Parameters.Cluster) 단원을 참조하세요.


| 파라미터 이름 | 설명 | 기본값 | 
| --- | --- | --- | 
| apg\$1enable\$1batch\$1mode\$1function\$1execution | 배치 모드 기능을 사용하여 한 번에 일련의 행을 처리합니다. | –  | 
| apg\$1enable\$1correlated\$1any\$1transform | 가능한 경우 플래너가 상관 관계가 있는 ANY 하위 링크(IN/NOT IN 하위 쿼리)를 JOIN으로 변환할 수 있습니다. | –  | 
| apg\$1enable\$1function\$1migration | 플래너가 적합한 스칼라 함수를 FROM 절로 마이그레이션할 수 있습니다. | –  | 
| apg\$1enable\$1not\$1in\$1transform | 플래너가 가능한 경우 NOT IN 하위 쿼리를 ANTI JOIN으로 변환할 수 있습니다. | –  | 
| apg\$1enable\$1remove\$1redundant\$1inner\$1joins | 플래너가 중복 내부 조인을 제거할 수 있습니다. | –  | 
| apg\$1enable\$1semijoin\$1push\$1down | 해시 조인에 세미조인 필터를 사용할 수 있습니다. | –  | 
| apg\$1plan\$1mgmt.capture\$1plan\$1baselines | 캡처 계획 기준 모드입니다. 수동(manual) - 모든 SQL 문에 대해 계획 캡처 사용 설정, 끄기(off) - 계획 캡처 사용 중지, 자동(automatic) - 자격 기준을 충족하는 pg\$1stat\$1statements의 문에 계획 캡처 사용. | 끄기  | 
| apg\$1plan\$1mgmt.max\$1databases | apg\$1plan\$1mgmt를 사용하여 쿼리를 관리할 수 있는 최대 데이터베이스 수를 설정합니다. | 10  | 
| apg\$1plan\$1mgmt.max\$1plans | apg\$1plan\$1mgmt로 캐시할 수 있는 최대 계획 수를 설정합니다. | 10000  | 
| apg\$1plan\$1mgmt.plan\$1retention\$1period | 계획이 자동으로 삭제되기 전에 계획의 last\$1used 이후 최대 일수입니다. | 32  | 
| apg\$1plan\$1mgmt.unapproved\$1plan\$1execution\$1threshold | 미승인 계획이 실행될 예상 총 계획 비용입니다. | 0  | 
| apg\$1plan\$1mgmt.use\$1plan\$1baselines | 관리형 문에 대해 승인된 계획이나 고정된 계획만 사용합니다. | false  | 
| application\$1name | 애플리케이션 이름이 통계 및 로그에 표시되도록 설정합니다. | –  | 
| aurora\$1compute\$1plan\$1id | 쿼리 실행 계획을 모니터링하여 현재 데이터베이스 로드에 기여하는 실행 계획을 감지하고 시간 경과에 따른 실행 계획의 성능 통계를 추적합니다. 자세한 내용은 [Aurora PostgreSQL용 쿼리 실행 계획 모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Monitoring.Query.Plans.html)을 참조하세요. | on  | 
| aurora\$1temp\$1space\$1size | (MB) 지원되는 인스턴스 클래스가 있는 Aurora I/O 최적화 클러스터에서 최적화된 읽기 지원 임시 객체에 할당된 공간의 크기를 설정합니다. | DBInstanceClassMemory/524288 | 
| authentication\$1timeout | (초) 클라이언트 인증을 완료하는 데 허용되는 최대 시간을 설정합니다. | –  | 
| auto\$1explain.log\$1analyze | 계획 로깅에 EXPLAIN ANALYZE를 사용합니다. | –  | 
| auto\$1explain.log\$1buffers | 버퍼 사용량을 로그합니다. | –  | 
| auto\$1explain.log\$1format | 계획 로깅에 사용할 EXPLAIN 형식입니다. | –  | 
| auto\$1explain.log\$1min\$1duration | 계획이 로그되는 최소 실행 시간을 설정합니다. | –  | 
| auto\$1explain.log\$1nested\$1statements | 중첩 문을 로그합니다. | –  | 
| auto\$1explain.log\$1timing | 행 개수뿐만 아니라 타이밍 데이터를 수집합니다. | –  | 
| auto\$1explain.log\$1triggers | 계획에 트리거 통계를 포함합니다. | –  | 
| auto\$1explain.log\$1verbose | 계획 로깅에 EXPLAIN VERBOSE를 사용합니다. | –  | 
| auto\$1explain.sample\$1rate | 처리할 쿼리의 비율입니다. | –  | 
| babelfishpg\$1tds.listen\$1addresses | TDS를 수신할 호스트 이름이나 IP 주소를 설정합니다. | \$1  | 
| babelfishpg\$1tds.tds\$1debug\$1log\$1level | TDS에서 로깅 수준을 설정합니다. 0을 설정하면 로깅이 사용 중지됩니다. | 1  | 
| backend\$1flush\$1after | (8Kb) 이전에 수행된 쓰기가 디스크로 플러시된 이후의 페이지 수입니다. | –  | 
| bytea\$1output | 바이트의 출력 형식을 설정합니다. | –  | 
| check\$1function\$1bodies | CREATE FUNCTION 중 함수 본문을 검사합니다. | –  | 
| client\$1connection\$1check\$1interval | 쿼리를 실행하는 동안 연결 끊김 검사 사이의 시간 간격을 설정합니다. | –  | 
| client\$1min\$1messages | 클라이언트에게 보여지는 메시지 수준을 설정합니다. | –  | 
| config\$1file | 서버 기본 구성 파일을 설정합니다. | /rdsdbdata/config/postgresql.conf  | 
| constraint\$1exclusion | planner가 제약 조건을 사용하여 쿼리를 최적화하도록 활성화합니다. | –  | 
| cpu\$1index\$1tuple\$1cost | 인덱스 스캔 중 각 인덱스 항목을 처리하는 데 따른 플래너의 예상 비용을 설정합니다. | –  | 
| cpu\$1operator\$1cost | 각 연산자 또는 함수 호출을 처리하는 데 따른 플래너의 예상 비용을 설정합니다. | –  | 
| cpu\$1tuple\$1cost | 각 튜플(행)을 처리하는 데 따른 플래너의 예상 비용을 설정합니다. | –  | 
| cron.database\$1name | pg\$1cron 메타데이터 테이블을 저장하도록 데이터베이스를 설정합니다. | postgres  | 
| cron.log\$1run | 모든 작업 실행을 job\$1run\$1details 테이블에 로그합니다. | 켜짐  | 
| cron.log\$1statement | 실행 전에 모든 cron 문을 로깅합니다. | 끄기  | 
| cron.max\$1running\$1jobs | 동시에 실행할 수 있는 최대 작업 수입니다. | 5  | 
| cron.use\$1background\$1workers | pg\$1cron에 대한 백그라운드 작업자를 사용 설정합니다. | 켜짐  | 
| cursor\$1tuple\$1fraction | 플래너가 예상하는 검색할 커서 행의 분수 값을 설정합니다. | –  | 
| db\$1user\$1namespace | 데이터베이스별 사용자 이름을 사용 설정합니다. | –  | 
| deadlock\$1timeout | (밀리초) 교착 상태 여부를 확인하기 전 잠금 대기 시간을 설정합니다. | –  | 
| debug\$1pretty\$1print | 구문과 실행 계획 트리를 들여쓰기 하여 표시합니다. | –  | 
| debug\$1print\$1parse | 각 쿼리의 구문 분석 트리를 로그합니다. | –  | 
| debug\$1print\$1plan | 각 쿼리의 실행 계획을 로그합니다. | –  | 
| debug\$1print\$1rewritten | 각 쿼리에서 재작성된 구문 분석 트리를 로그합니다. | –  | 
| default\$1statistics\$1target | 기본 통계 대상을 설정합니다. | –  | 
| default\$1transaction\$1deferrable | 새로운 트랜잭션의 기본 deferrable 상태를 설정합니다. | –  | 
| default\$1transaction\$1isolation | 새로운 트랜잭션마다 트랜잭션 격리 수준을 설정합니다. | –  | 
| default\$1transaction\$1read\$1only | 새로운 트랜잭션의 기본 읽기 전용 상태를 설정합니다. | –  | 
| effective\$1cache\$1size | (8kB) 디스크 캐시 크기에 대한 플래너의 가정을 설정합니다. | SUM(DBInstanceClassMemory/12038,-50003  | 
| effective\$1io\$1concurrency | 디스크 하위 시스템에서 효율적으로 동시에 처리할 수 있는 요청 수를 지정합니다. | –  | 
| enable\$1async\$1append | 플래너가 비동기 추가 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1bitmapscan | 플래너가 비트맵 스캔 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1gathermerge | 플래너가 수집 병합 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1hashagg | 플래너가 해시된 집계 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1hashjoin | 플래너가 해시 조인 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1incremental\$1sort | 플래너가 증분 정렬 단계를 사용할 수 있도록 합니다. | –  | 
| enable\$1indexonlyscan | 플래너가 인덱스 전용 스캔 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1indexscan | 플래너가 인덱스 스캔 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1material | 플래너가 구체화를 사용할 수 있도록 합니다. | –  | 
| enable\$1memoize | 플래너가 메모이제이션을 사용할 수 있도록 합니다. | –  | 
| enable\$1mergejoin | 플래너가 병합 조인 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1nestloop | 플래너가 중첩 루프 조인 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1parallel\$1append | 플래너가 병렬 추가 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1parallel\$1hash | 플래너가 병렬 해시 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1partition\$1pruning | 계획 시간 및 실행 시간 파티션 정리를 사용 설정합니다. | –  | 
| enable\$1partitionwise\$1aggregate | 파티션별 집계 및 그룹화를 사용 설정합니다. | –  | 
| enable\$1partitionwise\$1join | 파티션별 조인을 사용 설정합니다. | –  | 
| enable\$1seqscan | 플래너가 순차적 스캔 계획을 사용할 수 있도록 합니다. | –  | 
| enable\$1sort | 플래너가 명시적 정렬 단계를 사용할 수 있도록 합니다. | –  | 
| enable\$1tidscan | 플래너가 TID 스캔 계획을 사용할 수 있도록 합니다. | –  | 
| escape\$1string\$1warning | 일반 문자열 리터럴의 백슬래시 이스케이프에 대해 경고합니다. | –  | 
| exit\$1on\$1error | 오류 발생 시 세션을 종료합니다. | –  | 
| force\$1parallel\$1mode | 병렬 쿼리 기능을 강제로 사용합니다. | –  | 
| from\$1collapse\$1limit | 서브 쿼리가 축소되지 않는 FROM 목록 크기를 설정합니다. | –  | 
| geqo | 유전적 쿼리 최적화를 활성화합니다. | –  | 
| geqo\$1effort | GEQO: 다른 GEQO 파라미터의 기본값을 설정하는 데 사용됩니다. | –  | 
| geqo\$1generations | GEQO: 알고리즘의 반복 횟수입니다. | –  | 
| geqo\$1pool\$1size | GEQO: 모집단의 개체 수입니다. | –  | 
| geqo\$1seed | GEQO: 무작위 경로 선택을 위한 시드(seed)를 지정합니다. | –  | 
| geqo\$1selection\$1bias | GEQO: 모집단 내 선택적 압력을 지정합니다. | –  | 
| geqo\$1threshold | GEQO가 사용되는 FROM 항목의 임계값을 설정합니다. | –  | 
| gin\$1fuzzy\$1search\$1limit | 정확한 GIN 기준 검색에 허용되는 최대 결과 수를 설정합니다. | –  | 
| gin\$1pending\$1list\$1limit | (kB) GIN 인덱스에 대해 보류 중인 목록의 최대 크기를 설정합니다. | –  | 
| hash\$1mem\$1multiplier | 해시 테이블에 사용할 work\$1mem의 배수입니다. | –  | 
| hba\$1file | 서버 hba 구성 파일을 설정합니다. | /rdsdbdata/config/pg\$1hba.conf  | 
| hot\$1standby\$1feedback | 쿼리 충돌을 피하기 위해 상시 대기에서 프라이머리로 피드백을 허용합니다. | 켜짐  | 
| ident\$1file | 서버 ident 구성 파일을 설정합니다. | /rdsdbdata/config/pg\$1ident.conf  | 
| idle\$1in\$1transaction\$1session\$1timeout | (밀리초) 유휴 트랜잭션의 최대 허용 기간을 설정합니다. | 86400000  | 
| idle\$1session\$1timeout | 열린 트랜잭션 내에 있지 않으면서 지정된 시간보다 오랫동안 유휴 상태(즉, 클라이언트 쿼리를 기다리는 중)인 세션을 종료합니다. | –  | 
| join\$1collapse\$1limit | JOIN 구문이 결합되지 않는 FROM 목록 크기를 설정합니다. | –  | 
| lc\$1messages | 메시지 표시 언어를 설정합니다. | –  | 
| listen\$1addresses | 수신할 호스트 이름이나 IP 주소를 설정합니다. | \$1  | 
| lo\$1compat\$1privileges | 대형 객체에 대한 권한 검사를 위해 이전 버전과의 호환성 모드를 사용 설정합니다. | 0  | 
| log\$1connections | 성공한 연결을 모두 기록합니다. | –  | 
| log\$1destination | 서버 로그 출력의 대상을 설정합니다. | stderr  | 
| log\$1directory | 로그 파일의 대상 디렉터리를 설정합니다. | /rdsdbdata/log/error  | 
| log\$1disconnections | 지속 시간을 포함해 세션 종료를 기록합니다. | –  | 
| log\$1duration | 완료된 개별 SQL 문의 지속 시간을 기록합니다. | –  | 
| log\$1error\$1verbosity | 기록된 메시지의 세부 사항을 설정합니다. | –  | 
| log\$1executor\$1stats | 실행기 성능 통계를 서버 로그에 기록합니다. | –  | 
| log\$1file\$1mode | 로그 파일에 대한 파일 권한을 설정합니다. | 0644  | 
| log\$1filename | 로그 파일의 이름 패턴을 설정합니다. | postgresql.log.%Y-%m-%d-%H%M  | 
| logging\$1collector | 하위 프로세스를 시작하여 stderr 출력 및/또는 csvlog를 로그 파일로 캡처합니다. | 1  | 
| log\$1hostname | 연결 로그에 호스트 이름을 기록합니다. | 0  | 
| logical\$1decoding\$1work\$1mem | (kB) 디스크로 유출되기 전에 각 내부 재정렬 버퍼에서 이 정도의 메모리를 사용할 수 있습니다. | –  | 
| log\$1line\$1prefix | 각 로그 행에 접두사가 붙은 정보를 제어합니다. | %t:%r:%u@%d:%p]:  | 
| log\$1lock\$1waits | 오랜 잠금 대기 시간을 기록합니다. | –  | 
| log\$1min\$1duration\$1sample | (밀리초) 문 샘플이 로그되는 최소 실행 시간을 설정합니다. 샘플링은 log\$1statement\$1sample\$1rate에 의해 결정됩니다. | –  | 
| log\$1min\$1duration\$1statement | (밀리초) 문이 기록되는 최소 실행 시간을 설정합니다. | –  | 
| log\$1min\$1error\$1statement | 이 수준 이상으로 오류 원인이 되는 모든 문을 로그합니다. | –  | 
| log\$1min\$1messages | 기록되는 메시지 수준을 설정합니다. | –  | 
| log\$1parameter\$1max\$1length | (B) 문을 로그할 때 로그된 파라미터 값을 처음 N바이트로 제한합니다. | –  | 
| log\$1parameter\$1max\$1length\$1on\$1error | (B) 오류를 보고할 때 로그된 파라미터 값을 처음 N바이트로 제한합니다. | –  | 
| log\$1parser\$1stats | 구문 분석기 성능 통계를 서버 로그에 기록합니다. | –  | 
| log\$1planner\$1stats | planner 성능 통계를 서버 로그에 기록합니다. | –  | 
| log\$1replication\$1commands | 각 복제 명령을 로그합니다. | –  | 
| log\$1rotation\$1age | (분) N분 후 자동 로그 파일 교체가 수행됩니다. | 60  | 
| log\$1rotation\$1size | (kB) N킬로바이트 후 자동 로그 파일 교체가 수행됩니다. | 100000  | 
| log\$1statement | 기록할 문 유형을 설정합니다. | –  | 
| log\$1statement\$1sample\$1rate | 로그할 log\$1min\$1duration\$1sample을 초과하는 문의 비율입니다. | –  | 
| log\$1statement\$1stats | 누적 성능 통계를 서버 로그에 기록합니다. | –  | 
| log\$1temp\$1files | (kB) 이 킬로바이트 수치보다 큰 임시 파일의 사용을 로그합니다. | –  | 
| log\$1timezone | 로그 메시지에 사용할 표준 시간대를 설정합니다. | UTC  | 
| log\$1truncate\$1on\$1rotation | 로그 순환 중에 동일한 이름의 기존 로그 파일을 잘라냅니다. | 0  | 
| maintenance\$1io\$1concurrency | 유지 관리 작업에 사용되는 effective\$1io\$1concurrency의 변형입니다. | 1  | 
| maintenance\$1work\$1mem | (kB) 유지 관리 작업에 사용할 최대 메모리를 설정합니다. | GREATEST(DBInstanceClassMemory/63963136\$11024,65536  | 
| max\$1connections | 동시에 접속할 수 있는 최대 수를 설정합니다. | LEAST(DBInstanceClassMemory/9531392,5000  | 
| max\$1files\$1per\$1process | 서버 프로세스마다 파일을 동시에 열 수 있는 최대 수를 설정합니다. | –  | 
| max\$1locks\$1per\$1transaction | 하나의 트랜잭션에서 사용할 수 있는 최대 잠금 횟수를 설정합니다. | 64  | 
| max\$1parallel\$1maintenance\$1workers | 유지 관리 작업당 최대 병렬 프로세스 수를 설정합니다. | –  | 
| max\$1parallel\$1workers | 한 번에 활성화할 수 있는 최대 병렬 작업자 수를 설정합니다. | GREATEST(\$1DBInstanceVCPU/2,8  | 
| max\$1parallel\$1workers\$1per\$1gather | 실행기 노드당 최대 병렬 프로세스 수를 설정합니다. | –  | 
| max\$1pred\$1locks\$1per\$1page | 페이지당 최대 술어 잠금 튜플 수를 설정합니다. | –  | 
| max\$1pred\$1locks\$1per\$1relation | 관계당 최대 술어 잠금 페이지 및 튜플 수를 설정합니다. | –  | 
| max\$1pred\$1locks\$1per\$1transaction | 하나의 트랜잭션에서 사용할 수 있는 최대 술어(predicate) 잠금 횟수를 설정합니다. | –  | 
| max\$1slot\$1wal\$1keep\$1size | (MB) 복제 슬롯은 실패한 것으로 표시되고 디스크에서 WAL이 이 정도의 공간을 차지하는 경우 삭제 또는 재활용을 위해 세그먼트가 해제됩니다. | –  | 
| max\$1stack\$1depth | (kB) 최대 스택 깊이(킬로바이트)를 설정합니다. | 6144  | 
| max\$1standby\$1streaming\$1delay | (밀리초) 상시 대기 서버가 스트리밍된 WAL 데이터를 처리할 때 쿼리 취소까지 걸리는 최대 지연 시간을 설정합니다. | 14000  | 
| max\$1worker\$1processes | 최대 동시 작업자 프로세스 수를 설정합니다. | GREATEST(\$1DBInstanceVCPU\$12,8  | 
| min\$1dynamic\$1shared\$1memory | (MB) 시작 시 예약된 동적 공유 메모리의 양입니다. | –  | 
| min\$1parallel\$1index\$1scan\$1size | (8kB) 병렬 스캔을 위한 최소 인덱스 데이터 양을 설정합니다. | –  | 
| min\$1parallel\$1table\$1scan\$1size | (8kB) 병렬 스캔을 위한 최소 테이블 데이터 양을 설정합니다. | –  | 
| old\$1snapshot\$1threshold | (분) 스냅샷이 너무 오래되어 스냅샷이 생성된 후 변경된 페이지를 읽을 수 없게 될 때까지의 시간입니다. | –  | 
| parallel\$1leader\$1participation | 수집 및 수집 병합이 하위 계획도 실행할지 여부를 제어합니다. | –  | 
| parallel\$1setup\$1cost | 병렬 쿼리에 대한 작업자 프로세스 시작 비용의 플래너 추정치를 설정합니다. | –  | 
| parallel\$1tuple\$1cost | 작업자에서 마스터 백엔드로 각 튜플(행)을 전달하는 비용의 플래너 추정치를 설정합니다. | –  | 
| pgaudit.log | 세션 감사 로깅에 의해 로그될 문의 클래스를 지정합니다. | –  | 
| pgaudit.log\$1catalog | 문의 모든 관계가 pg\$1catalog에 있는 경우 세션 로깅을 사용하도록 지정합니다. | –  | 
| pgaudit.log\$1level | 로그 항목에 사용할 로그 수준을 지정합니다. | –  | 
| pgaudit.log\$1parameter | 감사 로깅에 문과 함께 전달된 파라미터가 포함되도록 지정합니다. | –  | 
| pgaudit.log\$1relation | 세션 감사 로깅에서 SELECT 또는 DML 문에서 참조되는 각 관계(TABLE, VIEW 등)에 대해 별도의 로그 항목을 생성해야 하는지 여부를 지정합니다. | –  | 
| pgaudit.log\$1statement\$1once | 로깅에 문/하위 문 조합에 대한 첫 번째 로그 항목이 있는 문 텍스트 및 파라미터를 포함할지 아니면 모든 항목이 있는 문 텍스트 및 파라미터를 포함할지를 지정합니다. | –  | 
| pgaudit.role | 객체 감사 로깅에 사용할 마스터 역할을 지정합니다. | –  | 
| pg\$1bigm.enable\$1recheck | 전체 텍스트 검색의 내부 프로세스인 재검사를 수행할지 여부를 지정합니다. | 켜짐  | 
| pg\$1bigm.gin\$1key\$1limit | 전체 텍스트 검색에 사용할 검색 키워드의 최대 2그램 수를 지정합니다. | 0  | 
| pg\$1bigm.last\$1update | pg\$1bigm 모듈의 마지막 업데이트 날짜를 보고합니다. | 2,013.11.22  | 
| pg\$1bigm.similarity\$1limit | 유사성 검색에 사용되는 최소 임계값을 지정합니다. | 0.3  | 
| pg\$1hint\$1plan.debug\$1print | 힌트 구문 분석 결과를 로그합니다. | –  | 
| pg\$1hint\$1plan.enable\$1hint | 플래너가 쿼리 앞의 힌트 설명에 지정된 계획을 사용하도록 합니다. | –  | 
| pg\$1hint\$1plan.enable\$1hint\$1table | 테이블 조회를 사용하여 플래너가 힌트를 얻지 못하도록 합니다. | –  | 
| pg\$1hint\$1plan.message\$1level | 디버그 메시지의 메시지 수준입니다. | –  | 
| pg\$1hint\$1plan.parse\$1messages | 구문 분석 오류의 메시지 수준입니다. | –  | 
| pglogical.batch\$1inserts | 가능한 경우 배치 삽입 | –  | 
| pglogical.conflict\$1log\$1level | 해결된 충돌을 로깅하는 데 사용되는 로그 수준을 설정합니다. | –  | 
| pglogical.conflict\$1resolution | 해결 가능한 충돌에 대한 충돌 해결에 사용되는 방법을 설정합니다. | –  | 
| pglogical.extra\$1connection\$1options | 모든 피어 노드 연결에 추가할 연결 옵션 | –  | 
| pglogical.synchronous\$1commit | pglogical 특정 동기 커밋 값입니다. | –  | 
| pglogical.use\$1spi | 변경 사항 적용에 하위 수준 API 대신 SPI 사용 | –  | 
| pg\$1similarity.block\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.block\$1threshold | 블록 유사성 함수에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.block\$1tokenizer | 블록 유사성 함수의 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.cosine\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.cosine\$1threshold | 코사인 유사성 함수에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.cosine\$1tokenizer | 코사인 유사성 함수의 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.dice\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.dice\$1threshold | 주사위 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.dice\$1tokenizer | 주사위 유사성 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.euclidean\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.euclidean\$1threshold | 유클리드 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.euclidean\$1tokenizer | 유클리드 유사성 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.hamming\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.hamming\$1threshold | 블록 유사성 지수에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.jaccard\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.jaccard\$1threshold | 자카드 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.jaccard\$1tokenizer | 자카드 유사성 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.jaro\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.jaro\$1threshold | 자로 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.jarowinkler\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.jarowinkler\$1threshold | 자로윙클러 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.levenshtein\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.levenshtein\$1threshold | 레벤슈타인 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.matching\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.matching\$1threshold | 일치 계수 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.matching\$1tokenizer | 일치 계수 유사성 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.mongeelkan\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.mongeelkan\$1threshold | 몽게-엘칸 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.mongeelkan\$1tokenizer | 몽게-엘칸 유사성 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.nw\$1gap\$1penalty | 니들만 브니쉬 유사성 측정에 사용되는 갭 페널티를 설정합니다. | –  | 
| pg\$1similarity.nw\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.nw\$1threshold | 니들레만-운쉬 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.overlap\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.overlap\$1threshold | 겹침 계수 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.overlap\$1tokenizer | 겹침 계수 유사성 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.qgram\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.qgram\$1threshold | Q-그램 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.qgram\$1tokenizer | Q-그램 측정에 대한 토크나이저를 설정합니다. | –  | 
| pg\$1similarity.swg\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.swg\$1threshold | 스미스-워터맨-고토 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1similarity.sw\$1is\$1normalized | 결과 값이 정규화되는지 여부를 설정합니다. | –  | 
| pg\$1similarity.sw\$1threshold | 스미스-워터맨 유사성 측정에 사용되는 임계값을 설정합니다. | –  | 
| pg\$1stat\$1statements.max | pg\$1stat\$1statements에서 추적하는 최대 문 수를 설정합니다. | –  | 
| pg\$1stat\$1statements.save | 서버 종료 시 pg\$1stat\$1statements 통계를 저장합니다. | –  | 
| pg\$1stat\$1statements.track | pg\$1stat\$1statements로 추적할 문을 선택합니다. | –  | 
| pg\$1stat\$1statements.track\$1planning | pg\$1stat\$1statements로 계획 기간을 추적할지 여부를 선택합니다. | –  | 
| pg\$1stat\$1statements.track\$1utility | pg\$1stat\$1statements로 유틸리티 명령을 추적할지 여부를 선택합니다. | –  | 
| postgis.gdal\$1enabled\$1drivers | Postgres 9.3.5 이상에서 PostGIS와 함께 사용되는 GDAL 드라이버를 사용 설정하거나 사용 중지합니다. | ENABLE\$1ALL  | 
| quote\$1all\$1identifiers | SQL 조각 생성 시 모든 식별자에 인용 부호를 추가합니다. | –  | 
| random\$1page\$1cost | 비순차적으로 가져온 디스크 페이지에 대한 플래너의 예상 비용을 설정합니다. | –  | 
| rds.enable\$1memory\$1management | 여유 메모리 부족으로 인한 안정성 문제와 데이터베이스 재시작을 방지하는 Aurora PostgreSQL 12.17, 13.13, 14.10, 15.5 및 상위 버전의 메모리 관리 기능을 개선합니다. 자세한 내용은 [Aurora PostgreSQL의 향상된 메모리 관리제한 사항](AuroraPostgreSQL.BestPractices.memory.management.md) 섹션을 참조하세요. | True  | 
| rds.force\$1admin\$1logging\$1level | 고객 데이터베이스의 RDS 관리자 사용자 작업에 대한 로그 메시지를 참조하세요. | –  | 
| rds.log\$1retention\$1period | Amazon RDS가 N분보다 오래된 PostgreSQL 로그를 삭제합니다. | 4320  | 
| rds.memory\$1allocation\$1guard | 여유 메모리 부족으로 인한 안정성 문제와 데이터베이스 재시작을 방지하는 Aurora PostgreSQL 11.21, 12.16, 13.12, 14.9, 15.4 및 하위 버전의 메모리 관리 기능을 개선합니다. 자세한 내용은 [Aurora PostgreSQL의 향상된 메모리 관리제한 사항](AuroraPostgreSQL.BestPractices.memory.management.md) 섹션을 참조하세요. | False  | 
| rds.pg\$1stat\$1ramdisk\$1size | 통계 램디스크의 크기(MB)입니다. 값이 0이 아니면 램디스크가 설정됩니다. | 0  | 
| rds.rds\$1superuser\$1reserved\$1connections | rds\$1superuser용으로 예약된 연결 슬롯 수를 설정합니다. 이 파라미터는 버전 15 이상에서만 사용할 수 있습니다. 자세한 내용은 PostgreSQL 설명서의 [reserved connections](https://www.postgresql.org/docs/current/runtime-config-connection.html#GUC-RESERVED-CONNECTIONS)를 참조하세요. | 2  | 
| rds.superuser\$1variables | rds\$1superuser 수정 문을 승격시키는 수퍼 사용자 전용 변수 목록입니다. | session\$1replication\$1role  | 
| remove\$1temp\$1files\$1after\$1crash | 백엔드 충돌 후 임시 파일을 제거합니다. | 0  | 
| restart\$1after\$1crash | 백엔드 충돌 후 서버를 다시 초기화합니다. | –  | 
| row\$1security | 행 보안을 사용 설정합니다. | –  | 
| search\$1path | 스키마로 한정되지 않은 이름의 스키마 검색 순서를 설정합니다. | –  | 
| seq\$1page\$1cost | 순차적으로 가져온 디스크 페이지에 대한 플래너의 예상 비용을 설정합니다. | –  | 
| session\$1replication\$1role | 트리거 및 다시 쓰기 규칙에 대한 세션 동작을 설정합니다. | –  | 
| shared\$1buffers | (8kB) 서버에서 사용하는 공유 메모리 버퍼 수를 설정합니다. | SUM(DBInstanceClassMemory/12038,-50003)  | 
| shared\$1preload\$1libraries | 서버에 미리 로드할 공유 라이브러리를 나열합니다. | pg\$1stat\$1statements  | 
| ssl\$1ca\$1file | SSL 서버 권한 파일의 위치입니다. | /rdsdbdata/rds-metadata/ca-cert.pem  | 
| ssl\$1cert\$1file | SSL 서버 인증서 파일의 위치입니다. | /rdsdbdata/rds-metadata/server-cert.pem  | 
| ssl\$1crl\$1dir | SSL 인증서 취소 목록 디렉토리의 위치입니다. | /rdsdbdata/rds-metadata/ssl\$1crl\$1dir/  | 
| ssl\$1key\$1file |  SSL 서버 프라이빗 키 파일의 위치입니다. | /rdsdbdata/rds-metadata/server-key.pem  | 
| standard\$1conforming\$1strings | ... 문자열에서 백슬래시가 리터럴로 처리됩니다. | –  | 
| statement\$1timeout | (밀리초) 모든 문의 최대 허용 기간을 설정합니다. | –  | 
| stats\$1temp\$1directory | 임시 통계 파일을 지정된 디렉터리에 씁니다. | /rdsdbdata/db/pg\$1stat\$1tmp  | 
| superuser\$1reserved\$1connections | 슈퍼 사용자용으로 예약된 연결 슬롯 수를 설정합니다. | 3  | 
| synchronize\$1seqscans | 동기 방식의 순차적 스캔을 사용 설정합니다. | –  | 
| tcp\$1keepalives\$1count | TCP keepalive의 최대 재전송 횟수를 지정합니다. | –  | 
| tcp\$1keepalives\$1idle | (초) TCP keepalive의 실행 간격을 지정합니다. | –  | 
| tcp\$1keepalives\$1interval | (초) TCP keepalive의 재전송 간격을 지정합니다. | –  | 
| temp\$1buffers | (8kB) 각 세션에서 사용하는 임시 버퍼의 최대 수를 설정합니다. | –  | 
| temp\$1file\$1limit | 명시적 임시 테이블에 사용되는 공간을 제외하고 주어진 PostgreSQL 프로세스가 임시 파일에 사용할 수 있는 총 디스크 공간(KB)을 제한합니다. | -1  | 
| temp\$1tablespaces | 임시 테이블 및 정렬 파일에 사용할 테이블스페이스를 설정합니다. | –  | 
| track\$1activities | 명령 실행에 대한 정보를 수집합니다. | –  | 
| track\$1activity\$1query\$1size | pg\$1stat\$1activity.current\$1query에 예약되는 크기(바이트)를 설정합니다. | 4096  | 
| track\$1counts | 데이터베이스 작업에 관한 통계를 수집합니다. | –  | 
| track\$1functions | 데이터베이스 작업에 관한 함수 수준 통계를 수집합니다. | pl  | 
| track\$1io\$1timing | 데이터베이스 I/O 작업에 대한 시간 통계를 수집합니다. | 1  | 
| transform\$1–\$1equals | expr=–을 expr IS –로 처리합니다. | –  | 
| update\$1process\$1title | 프로세스 제목을 업데이트하여 활성 SQL 명령을 표시합니다. | –  | 
| wal\$1receiver\$1status\$1interval | (초) WAL 수신기 상태 보고 간 최대 간격을 프라이머리로 설정합니다. | –  | 
| work\$1mem | (kB) 쿼리 작업 공간에 사용할 최대 메모리를 설정합니다. | –  | 
| xmlbinary | XML에서 바이너리 값의 인코딩 방식을 설정합니다. | –  | 
| xmloption | 암시적 구문 분석 및 직렬화 작업에서 XML 데이터를 문서 또는 내용 조각으로 간주할지 여부를 설정합니다. | – | 

# Amazon Aurora PostgreSQL 대기 이벤트
<a name="AuroraPostgreSQL.Reference.Waitevents"></a>

다음은 Aurora PostgreSQL의 일반적인 대기 이벤트입니다. 대기 이벤트 및 Aurora PostgreSQL 클러스터 튜닝에 대해 자세히 알아보려면 섹션을 참조하세요.[Aurora PostgreSQL의 대기 이벤트를 사용한 튜닝](AuroraPostgreSQL.Tuning.md).

**Activity:ArchiverMain**  
아카이버 프로세스가 활동을 기다리고 있습니다.

**Activity:AutoVacuumMain**  
autovacuum 시작 관리자 프로세스가 활동을 기다리고 있습니다.

**Activity:BgWriterHibernate**  
백그라운드 라이터 프로세스가 활동을 기다리는 동안 최대 절전 모드로 전환됩니다.

**Activity:BgWriterMain**  
백그라운드 라이터 프로세스가 활동을 기다리고 있습니다.

**Activity:CheckpointerMain**  
체크포인터 프로세스가 활동을 기다리고 있습니다.

**Activity:LogicalApplyMain**  
논리적 복제 적용 프로세스가 활동을 기다리고 있습니다.

**Activity:LogicalLauncherMain**  
논리적 복제 시작 관리자 프로세스가 활동을 기다리고 있습니다.

**Activity:PgStatMain**  
통계 수집기 프로세스가 활동을 기다리고 있습니다.

**Activity:RecoveryWalAll**  
프로세스가 복구 시 스트림에서 미리 쓰기 로그(WAL)를 기다리고 있습니다.

**Activity:RecoveryWalStream**  
스타트업 프로세스는 스트리밍 복구 중에 미리 쓰기 로그(WAL)가 도착할 때까지 대기 중입니다.

**Activity:SysLoggerMain**  
syslogger 프로세스가 활동을 기다리고 있습니다.

**Activity:WalReceiverMain**  
미리 쓰기 로그(WAL) 수신기 프로세스가 활동을 기다리고 있습니다.

**Activity:WalSenderMain**  
미리 쓰기 로그(WAL) 수신기 프로세스가 활동을 기다리고 있습니다.

**Activity:WalWriterMain**  
미리 쓰기 로그(WAL) 라이터 프로세스가 활동을 기다리고 있습니다.

**BufferPin:BufferPin**  
버퍼에서 독점 핀을 획득하기 위해 프로세스가 기다리고 있습니다.

**Client:GSSOpenServer**  
일반 보안 서비스 애플리케이션 인터페이스(GSSAPI) 세션을 설정하는 동안 프로세스가 클라이언트에서 데이터를 읽기를 기다리고 있습니다.

**Client:ClientRead**  
백엔드 프로세스가 PostgreSQL 클라이언트에서 데이터를 수신하기 위해 대기 중입니다. 자세한 내용은 [Client:ClientRead](apg-waits.clientread.md) 섹션을 참조하세요.

**Client:ClientWrite**  
백엔드 프로세스가 PostgreSQL 클라이언트로 더 많은 데이터를 발신하기 위해 대기 중입니다. 자세한 내용은 [Client:ClientWrite](apg-waits.clientwrite.md) 섹션을 참조하세요.

**Client:LibPQWalReceiverConnect**  
프로세스가 원격 서버에 연결을 생성하기 위해 미리 쓰기 로그 수신기(WAL)에서 대기 중입니다.

**Client:LibPQWalReceiverReceive**  
프로세스가 원격 서버에서 데이터를 수신하기 위해 미리 쓰기 로그 수신기(WAL)에서 대기 중입니다.

**Client:SSLOpenServer**  
프로세스가 연결을 시도하는 동안 보안 소켓 레이어(SSL)를 기다리고 있습니다.

**Client:WalReceiverWaitStart**  
스타타트업 프로세스가 스트리밍 복제를 위한 초기 데이터를 전송하기를 기다리고 있습니다.

**Client:WalSenderWaitForWAL**  
프로세스가 WAL 발신자 프로세스에서 미리 쓰기 로그(WAL)가 플러시될 때까지 기다리고 있습니다.

**Client:WalSenderWriteData**  
WAL 발신자 프로세스에서 미리 쓰기 로그 (WAL) 수신자의 응답을 처리할 때 프로세스가 모든 활동을 기다리고 있습니다.

**CPU**  
백엔드 프로세스가 CPU에서 활성 상태이거나 CPU를 기다리고 있습니다. 자세한 내용은 [CPU](apg-waits.cpu.md) 섹션을 참조하세요.

**Extension:extension**  
백엔드 프로세스가 확장 또는 모듈에 의해 정의된 조건을 기다리고 있습니다.

**IO:AuroraEnhancedLogicalWALRead**  
백엔드 프로세스는 변경 데이터 캡처(CDC) 볼륨에서 로그 레코드를 가져오는 것입니다.

**IO:AuroraOptimizedReadsCacheRead**  
공유 메모리에서 페이지를 사용할 수 없기 때문에 프로세스가 최적화된 읽기 계층형 캐시에서 읽기를 기다리고 있습니다.

**IO:AuroraOptimizedReadsCacheSegmentTruncate**  
프로세스가 최적화된 읽기 계층형 캐시 세그먼트 파일이 잘릴 때까지 기다리고 있습니다.

**IO:AuroraOptimizedReadsCacheWrite**  
백그라운드 라이터 프로세스가 최적화된 읽기 계층형 캐시에 쓰기를 기다리고 있습니다.

**IO:AuroraStorageLogAllocate**  
세션이 메타데이터를 할당하고 트랜잭션 로그 쓰기를 준비하고 있습니다.

**IO:BufFileRead**  
작업에 작업 메모리 파라미터로 정의된 양보다 많은 메모리가 필요한 경우 엔진은 디스크에 임시 파일을 생성합니다. 이 대기 이벤트는 작업 중 임시 파일에서 읽을 때 발생합니다. 자세한 내용은 [IO:BufFileRead 및 IO:BufFileWrite](apg-waits.iobuffile.md) 섹션을 참조하세요.

**IO:BufFileWrite**  
작업에 작업 메모리 파라미터로 정의된 양보다 많은 메모리가 필요한 경우 엔진은 디스크에 임시 파일을 생성합니다. 이 대기 이벤트는 연산자가 임시 파일에서 쓸 때 발생합니다. 자세한 내용은 [IO:BufFileRead 및 IO:BufFileWrite](apg-waits.iobuffile.md) 섹션을 참조하세요.

**IO:ControlFileRead**  
프로세스가 `pg_control` 파일에서 읽기를 기다리고 있습니다.

**IO:ControlFileSync**  
프로세스가 `pg_control` 파일에서 내구성 있는 스토리지에 도달하기를 기다리고 있습니다.

**IO:ControlFileSyncUpdate**  
프로세스가 `pg_control` 파일이 내구성 있는 스토리지에 도달하도록 업데이트를 기다리고 있습니다.

**IO:ControlFileWrite**  
프로세스가 `pg_control` 파일에서 쓰기를 기다리고 있습니다.

**IO:ControlFileWriteUpdate**  
프로세스가 `pg_control` 파일 업데이트를 위해 쓰기를 기다리고 있습니다.

**IO:CopyFileRead**  
파일 복사 작업 중에 프로세스가 읽기를 기다리고 있습니다.

**IO:CopyFileWrite**  
파일 복사 작업 중에 프로세스가 쓰기를 기다리고 있습니다.

**IO:DataFileExtend**  
프로세스가 관계식 데이터 파일이 확장될 때까지 기다리고 있습니다.

**IO:DataFileFlush**  
프로세스가 관계식 데이터 파일이 내구성 있는 스토리지에 도달할 때까지 기다리고 있습니다.

**IO:DataFileImmediateSync**  
프로세스가 관계식 데이터 파일이 내구성 있는 스토리지에 즉시 동기화될 때까지 기다리고 있습니다.

**IO:DataFilePrefetch**  
프로세스가 관계식 데이터 파일에서 비동기 프리페치를 기다리고 있습니다.

**IO:DataFileSync**  
프로세스가 내구성 있는 스토리지에 도달하기 위해 관계 데이터 파일의 변경 사항을 기다리고 있습니다.

**IO:DataFileRead**  
백엔드 프로세스가 공유 버퍼에서 페이지를 찾으려고 시도했지만 찾지 못했으므로 저장소에서 읽었습니다. 자세한 내용은 [IO:DataFileRead](apg-waits.iodatafileread.md) 섹션을 참조하세요.

**IO:DataFileTruncate**  
프로세스가 관계식 데이터 파일이 잘릴 때까지 기다리고 있습니다.

**IO:DataFileWrite**  
프로세스가 관계식 데이터 파일에 쓰기를 기다리고 있습니다.

**IO:DSMFillZeroWrite**  
프로세스가 동적 공유 메모리 백업 파일에 0바이트를 쓰기를 기다리고 있습니다.

**IO:LockFileAddToDataDirRead**  
프로세스가 데이터 디렉토리 잠금 파일에 행을 추가하는 동안 읽기를 기다리고 있습니다.

**IO:LockFileAddToDataDirSync**  
프로세스가 데이터 디렉토리 잠금 파일에 줄을 추가하는 동안 데이터가 내구성 있는 스토리지에 도달하기를 기다리고 있습니다.

**IO:LockFileAddToDataDirWrite**  
프로세스가 데이터 디렉토리 잠금 파일에 행을 추가하는 동안 쓰기를 기다리고 있습니다.

**IO:LockFileCreateRead**  
프로세스가 데이터 디렉토리 잠금 파일을 만드는 동안 읽기를 기다리고 있습니다.

**IO:LockFileCreateSync**  
프로세스가 데이터 디렉토리 잠금 파일을 만드는 동안 데이터가 내구성 있는 스토리지에 도달하기를 기다리고 있습니다

**IO:LockFileCreateWrite**  
프로세스가 데이터 디렉토리 잠금 파일을 만드는 동안 쓰기를 기다리고 있습니다.

**IO:LockFileReCheckDataDirRead**  
프로세스가 데이터 디렉토리 잠금 파일을 다시 확인하는 동안 읽기를 기다리고 있습니다.

**IO:LogicalRewriteCheckpointSync**  
프로세스가 체크포인트 중에 내구성 있는 스토리지에 도달하기 위해 논리적 재쓰기 매핑을 기다리고 있습니다.

**IO:LogicalRewriteMappingSync**  
프로세스가 논리적 재작성 중에 데이터가 내구성 있는 스토리지에 도달할 때까지 기다리고 있습니다.

**IO:LogicalRewriteMappingWrite**  
프로세스가 논리적 재작성 중에 매핑 데이터의 쓰기를 기다리고 있습니다.

**IO:LogicalRewriteSync**  
프로세스가 논리적 재작성 매핑이 내구성 있는 스토리지에 도착할 때까지 기다리고 있습니다.

**IO:LogicalRewriteTruncate**  
프로세스가 논리적 재작성 중에 매핑 데이터의 절단을 기다리고 있습니다.

**IO:LogicalRewriteWrite**  
프로세스가 논리적 재작성 매핑 쓰기를 기다리고 있습니다.

**IO:RelationMapRead**  
프로세스가 관계식 맵 파일의 읽기를 기다리고 있습니다.

**IO:RelationMapSync**  
프로세스가 관계식 맵 파일이 내구성 있는 스토리지에 도달할 때까지 기다리고 있습니다.

**IO:RelationMapWrite**  
프로세스가 관계식 맵 파일에 대한 쓰기를 기다리고 있습니다.

**IO:ReorderBufferRead**  
재정렬 버퍼 관리 중에 프로세스가 읽기를 기다리고 있습니다.

**IO:ReorderBufferWrite**  
재정렬 버퍼 관리 중에 프로세스가 읽기를 기다리고 있습니다.

**IO:ReorderLogicalMappingRead**  
재정렬 버퍼 관리 중에 프로세스가 읽기를 기다리고 있습니다.

**IO:ReplicationSlotRead**  
프로세스가 복제 슬롯 제어 파일에서 읽기를 기다리고 있습니다.

**IO:ReplicationSlotRestoreSync**  
프로세스가 복제 슬롯 제어 파일을 메모리에 복원하는 동안 내구성 있는 스토리지에 도달할 때까지 기다리고 있습니다.

**IO:ReplicationSlotSync**  
프로세스가 복제 슬롯 제어 파일이 내구성 있는 스토리지에 도달할 때까지 기다리고 있습니다.

**IO:ReplicationSlotWrite**  
프로세스가 복제 슬롯 제어 파일에 쓰기를 기다리고 있습니다.

**IO:SLRUFlushSync**  
프로세스가 체크포인트 또는 데이터베이스 종료 중 가장 오래전에 사용된 단순(SLRU) 데이터가 내구성 있는 스토리지에 도달할 때까지 기다리고 있습니다.

**IO:SLRURead**  
프로세스가 가장 오래전에 사용된 단순(SLRU) 페이지의 읽기를 기다리고 있습니다.

**IO:SLRUSync**  
프로세스는 페이지 쓰기 후 가장 오래전에 사용된 단순(SLRU) 데이터가 내구성 있는 스토리지에 도달할 때까지 기다리고 있습니다.

**IO:SLRUWrite**  
프로세스가 가장 오래전에 사용된 단순(SLRU) 페이지의 쓰기를 기다리고 있습니다.

**IO:SnapbuildRead**  
프로세스가 직렬화된 기록 카탈로그 스냅샷의 읽기를 기다리고 있습니다.

**IO:SnapbuildSync**  
프로세스가 직렬화된 기록 카탈로그 스냅샷이 내구성 있는 스토리지에 도달하기를 기다리고 있습니다.

**IO:SnapbuildWrite**  
프로세스가 직렬화된 기록 카탈로그 스냅샷의 쓰기를 기다리고 있습니다.

**IO:TimelineHistoryFileSync**  
프로세스가 스트리밍 복제를 통해 수신된 타임라인 기록 파일이 내구성 있는 스토리지에 도달하기를 기다리고 있습니다.

**IO:TimelineHistoryFileWrite**  
프로세스가 스트리밍 복제를 통해 수신된 타임라인 기록 파일의 쓰기를 기다리고 있습니다.

**IO:TimelineHistoryRead**  
프로세스가 타임라인 히스토리 파일의 읽기를 기다리고 있습니다.

**IO:TimelineHistorySync**  
프로세스가 새로 생성된 타임라인 기록 파일이 내구성 있는 스토리지에 도달하기를 기다리고 있습니다.

**IO:TimelineHistoryWrite**  
프로세스가 새로 생성된 타임라인 기록 파일의 쓰기를 기다리고 있습니다.

**IO:TwophaseFileRead**  
프로세스가 2단계 상태 파일의 읽기를 기다리고 있습니다.

**IO:TwophaseFileSync**  
프로세스가 2단계 상태 파일이 내구성 있는 스토리지에 도달하기를 기다리고 있습니다.

**IO:TwophaseFileWrite**  
프로세스가 2단계 상태 파일의 쓰기를 기다리고 있습니다.

**IO:WALBootstrapSync**  
프로세스가 부트스트래핑 중에 미리 쓰기 로그(WAL)가 내구성 있는 스토리지에 도달할 때까지 대기 중입니다.

**IO:WALBootstrapWrite**  
프로세스가 부트스트래핑 중에 미리 쓰기 로그(WAL) 페이지의 쓰기를 대기 중입니다.

**IO:WALCopyRead**  
프로세스는 기존 세그먼트를 복사하여 새 미리 쓰기 로그(WAL) 세그먼트를 만들 때 읽기를 기다리고 있습니다.

**IO:WALCopySync**  
프로세스는 기존 세그먼트를 복사하여 생성한 새 미리 쓰기 로그(WAL)가 내구성 있는 스토리지에 도달할 때까지 기다리고 있습니다.

**IO:WALCopyWrite**  
프로세스는 기존 세그먼트를 복사하여 새 미리 쓰기 로그(WAL) 세그먼트를 만들 때 쓰기를 기다리고 있습니다.

**IO:WALInitSync**  
프로세스가 새로 초기화된 미리 쓰기 로그(WAL) 파일이 내구성 있는 스토리지에 도달할 때까지 기다리고 있습니다.

**IO:WALInitWrite**  
프로세스가 새 미리 쓰기 로그(WAL) 파일을 초기화하는 동안 쓰기를 기다리고 있습니다.

**IO:WALRead**  
프로세스가 미리 쓰기 로그(WAL) 파일에서 읽기를 기다리고 있습니다.

**IO:WALSenderTimelineHistoryRead**  
프로세스가 WAL 발신자 타임라인 명령 중에 타임라인 기록 파일에서 읽기를 기다리고 있습니다.

**IO:WALSync**  
프로세스가 미리 쓰기 로그(WAL) 파일이 내구성 있는 스토리지에 도달할 때까지 기다리고 있습니다.

**IO:WALSyncMethodAssign**  
프로세스는 새로운 미리 쓰기 로그(WAL) 동기화 방법을 할당하면서 데이터가 내구성 있는 스토리지에 도달할 때까지 기다리고 있습니다.

**IO:WALWrite**  
프로세스가 미리 쓰기 로그(WAL) 파일에서 읽기를 기다리고 있습니다.

**IO:XactSync**  
백엔드 프로세스는 Aurora 스토리지 하위 시스템이 일반 트랜잭션의 커밋 또는 준비된 트랜잭션의 커밋 또는 롤백을 확인할 때까지 기다리고 있습니다. 자세한 내용은 [IO:XactSync](apg-waits.xactsync.md) 섹션을 참조하세요.

**IPC:AuroraLogicalSchemaUpdate**  
두 백엔드 프로세스가 스키마 캐시에 동일한 항목을 삽입하려고 시도하고 있습니다. 한 프로세스는 계속되고 다른 프로세스는 완료될 때까지 기다립니다.

**IPC:AuroraOptimizedReadsCacheWriteStop**  
프로세스는 백그라운드 라이터가 최적화된 읽기 계층형 캐시에 쓰기를 중지하기를 기다리고 있습니다.

**IPC:BackupWaitWalArchive**  
프로세스가 백업이 성공적으로 아카이빙되는 데 필요한 미리 쓰기 로그(WAL) 파일을 기다리고 있습니다.

**IPC:BgWorkerShutdown**  
프로세스가 백그라운드 작업자가 종료될 때까지 기다리고 있습니다.

**IPC:BgWorkerStartup**  
프로세스가 백그라운드 작업자가 시작할 때까지 기다리고 있습니다.

**IPC:BtreePage**  
프로세스가 병렬 B-트리 스캔을 계속 사용할 수 있도록 하는 데 필요한 페이지 번호를 기다리고 있습니다.

**IPC:CheckpointDone**  
프로세스가 체크포인트가 완료될 때까지 기다리고 있습니다.

**IPC:CheckpointStart**  
프로세스가 체크포인트가 시작될 때까지 기다리고 있습니다.

**IPC:ClogGroupUpdate**  
프로세스가 그룹 리더가 트랜잭션이 끝날 때 트랜잭션 상태를 업데이트하기를 기다리고 있습니다.

**IPC:DamRecordTxAck**  
백엔드 프로세스에서 데이터베이스 활동 스트림 이벤트를 생성했으며 이벤트가 지속될 때까지 기다리고 있습니다. 자세한 내용은 [IPC:DamRecordTxAck](apg-waits.ipcdamrecordtxac.md) 섹션을 참조하세요.

**IPC:ExecuteGather**  
프로세스가 Gather 계획 노드를 실행하는 동안 자식 프로세스의 활동을 기다리고 있습니다.

**IPC:Hash/Batch/Allocating**  
프로세스가 선택된 병렬 해시 참여자가 해시 테이블을 할당하기를 기다리고 있습니다.

**IPC:Hash/Batch/Electing**  
프로세스가 해시 테이블을 할당하기 위해 병렬 해시 참여자를 선택합니다.

**IPC:Hash/Batch/Loading**  
프로세스가 다른 병렬 해시 참여자가 해시 테이블 로딩을 마칠 때까지 기다리고 있습니다.

**IPC:Hash/Batch/Allocating**  
프로세스가 선택된 병렬 해시 참여자가 초기 해시 테이블을 할당하기를 기다리고 있습니다.

**IPC:Hash/Build/Electing**  
프로세스가 초기 해시 테이블을 할당하기 위해 병렬 해시 참여자를 선택합니다.

**IPC:Hash/Build/HashingInner**  
프로세스가 다른 병렬 해시 참여자가 내부 관계 해싱을 완료할 때까지 기다리고 있습니다.

**IPC:Hash/Build/HashingOuter**  
프로세스가 다른 병렬 해시 참여자가 외부 관계 파티셔닝을 마칠 때까지 기다리고 있습니다.

**IPC:해시/성장 배치/할당**  
프로세스는 선출된 병렬 해시 참여자가 더 많은 배치를 할당하기를 기다리고 있습니다.

**IPC:Hash/GrowBatches/Deciding**  
프로세스에서 병렬 해시 참여자를 선택하여 향후 배치 증가를 결정합니다.

**IPC:Hash/GrowBatches/Electing**  
프로세스에서 병렬 해시 참여자를 선택하여 더 많은 배치를 할당합니다.

**IPC:Hash/GrowBatches/Finishing**  
프로세스는 선출된 병렬 해시 참여자가 향후 배치 증가를 결정할 때까지 기다리고 있습니다.

**IPC:Hash/GrowBatches/Repartitioning**  
프로세스가 다른 병렬 해시 참여자가 다시 파티셔닝을 완료할 때까지 기다리고 있습니다.

**IPC:Hash/GrowBuckets/Allocating**  
프로세스가 선택된 병렬 해시 참여자가 더 많은 버킷 할당을 완료할 때까지 기다리고 있습니다.

**IPC:Hash/GrowBuckets/Electing**  
프로세스가 더 많은 버킷을 할당하기 위해 병렬 해시 참여자를 선택합니다.

**IPC:Hash/GrowBuckets/Reinserting**  
프로세스가 다른 병렬 해시 참가자가 새 버킷에 튜플 삽입을 마칠 때까지 기다리고 있습니다.

**IPC:HashBatchAllocate**  
프로세스가 선택된 병렬 해시 참여자가 해시 테이블을 할당하기를 기다리고 있습니다.

**IPC:HashBatchElect**  
프로세스가 해시 테이블을 할당하기 위해 병렬 해시 참여자를 선택하기를 기다리고 있습니다.

**IPC:HashBatchLoad**  
프로세스가 다른 병렬 해시 참여자가 해시 테이블 로딩을 마칠 때까지 기다리고 있습니다.

**IPC:HashBuildAllocate**  
프로세스가 선택된 병렬 해시 참여자가 초기 해시 테이블을 할당하기를 기다리고 있습니다.

**IPC:HashBuildElect**  
프로세스가 초기 해시 테이블을 할당하기 위해 병렬 해시 참여자를 선택하기를 기다리고 있습니다.

**IPC:HashBuildHashInner**  
프로세스가 다른 병렬 해시 참여자가 내부 관계 해싱을 완료할 때까지 기다리고 있습니다.

**IPC:'HashBuildHashOuter**  
프로세스가 다른 병렬 해시 참여자가 외부 관계 파티셔닝을 마칠 때까지 기다리고 있습니다.

**IPC:HashGrowBatchesAllocate**  
프로세스는 선출된 병렬 해시 참여자가 더 많은 배치를 할당하기를 기다리고 있습니다.

**IPC:'HashGrowBatchesDecide**  
프로세스가 병렬 해시 참가자를 선출하여 향후 배치 증가를 결정하기를 기다리고 있습니다.

**IPC:HashGrowBatchesElect**  
프로세스가 더 많은 배치를 할당하기 위해 병렬 해시 참여자를 선택하기를 기다리고 있습니다.

**IPC:HashGrowBatchesFinish**  
프로세스는 선출된 병렬 해시 참여자가 향후 배치 증가를 결정할 때까지 기다리고 있습니다.

**IPC:HashGrowBatchesRepartition**  
프로세스가 다른 병렬 해시 참여자가 다시 파티셔닝을 완료할 때까지 기다리고 있습니다.

**IPC:HashGrowBucketsAllocate**  
프로세스가 선택된 병렬 해시 참여자가 더 많은 버킷 할당을 완료할 때까지 기다리고 있습니다.

**IPC:HashGrowBucketsElect**  
프로세스가 더 많은 배치를 할당하기 위해 병렬 해시 참여자를 선택하기를 기다리고 있습니다.

**IPC:HashGrowBucketsReinsert**  
프로세스가 다른 병렬 해시 참가자가 새 버킷에 튜플 삽입을 마칠 때까지 기다리고 있습니다.

**IPC:LogicalSyncData**  
프로세스가 논리적 복제 원격 서버가 초기 테이블 동기화를 위해 데이터를 보낼 때까지 대기 중입니다.

**IPC:LogicalSyncStateChange**  
프로세스가 논리적 복제 원격 서버가 상태를 변경하기를 기다리고 있습니다.

**IPC:MessageQueueInternal**  
프로세스가 다른 프로세스가 공유 메시지 대기열에 연결될 때까지 기다리고 있습니다.

**IPC:MessageQueuePutMessage**  
프로세스가 공유 메시지 대기열에 프로토콜 메시지를 쓰기 위해 대기 중입니다.

**IPC:MessageQueueReceive**  
프로세스가 공유 메시지 대기열에서 바이트를 수신하기 위해 대기 중입니다.

**IPC:MessageQueueSend**  
프로세스가 공유 메시지 대기열로 바이트를 전송하기 위해 대기 중입니다.

**IPC:ParallelBitmapScan**  
프로세스가 병렬 비트맵 스캔이 초기화되기를 기다리고 있습니다.

**IPC:ParallelCreateIndexScan**  
프로세스가 병렬 CREATE INDEX 작업자가 힙 스캔을 완료할 때까지 기다리고 있습니다.

**IPC:ParallelFinish**  
프로세스가 병렬 작업자가 컴퓨팅을 완료할 때까지 기다리고 있습니다.

**IPC:ProcArrayGroupUpdate**  
그룹 리더가 트랜잭션 종료 시 트랜잭션 ID를 지울 때까지 프로세스가 대기 중입니다.

**IPC:ProcSignalBarrier**  
프로세스가 모든 백엔드에서 배리어 이벤트가 처리되기를 기다리고 있습니다.

**IPC:Promote**  
프로세스가 대기 프로모션을 기다리고 있습니다.

**IPC:RecoveryConflictSnapshot**  
프로세스가 베큠 클린업을 위해 복구 충돌 해결을 기다리고 있습니다.

**IPC:RecoveryConflictTablespace**  
프로세스가 테이블스페이스를 삭제하기 위한 복구 충돌 해결을 기다리고 있습니다.

**IPC:RecoveryPause**  
프로세스가 복구가 재개될 때까지 기다리고 있습니다.

**IPC:ReplicationOriginDrop**  
프로세스가 복제 원본이 비활성화되어 삭제할 수 있도록 기다리고 있습니다.

**IPC:ReplicationSlotDrop**  
프로세스가 복제 슬롯이 비활성화되어 삭제할 수 있도록 기다리고 있습니다.

**IPC:SafeSnapshot**  
프로세스가 읽기 전용 연기 가능 트랜잭션에 대해 유효한 스냅샷을 얻기 위해 기다리고 있습니다.

**IPC:SyncRep**  
프로세스가 동기식 복제 중에 원격 서버로부터의 확인을 기다리고 있습니다.

**IPC:XactGroupUpdate**  
그룹 리더가 트랜잭션 종료 시 트랜잭션 상태를 업데이트할 때까지 프로세스가 대기 중입니다.

**Lock:advisory**  
백엔드 프로세스에서 권고 잠금을 요청하고 기다리고 있습니다. 자세한 내용은 [Lock:advisory](apg-waits.lockadvisory.md) 섹션을 참조하세요.

**Lock:extend**  
백엔드 프로세스는 관계식을 확장할 수 있도록 잠금이 해제되기를 기다리고 있습니다. 한 번에 하나의 백엔드 프로세스만 관계를 확장할 수 있기 때문에 이 잠금이 필요합니다. 자세한 내용은 [Lock:extend](apg-waits.lockextend.md) 섹션을 참조하세요.

**Lock:frozenid**  
프로세스가 `pg_database.datfrozenxid`와 `pg_database.datminmxid`의 업데이트를 위해 대기 중입니다.

**Lock:object**  
프로세스가 비관계 데이터베이스 객체에 대한 잠금을 얻기 위해 기다리고 있습니다.

**Lock:page**  
프로세스가 관계 페이지에서 잠금을 받기 위해 기다리고 있습니다.

**Lock:Relation**  
백엔드 프로세스가 다른 트랜잭션에 의해 잠긴 관계에 대한 잠금을 획득하기 위해 기다리고 있습니다. 자세한 내용은 [Lock:Relation](apg-waits.lockrelation.md) 섹션을 참조하세요.

**Lock:spectoken**  
투기적 삽입 잠금을 얻기 위해 프로세스가 기다리고 있습니다.

**Lock:speculative token**  
투기적 삽입 잠금을 얻기 위해 프로세스가 기다리고 있습니다.

**Lock:transactionid**  
트랜잭션이 행 수준 잠금을 대기 중입니다. 자세한 내용은 [Lock:transactionid](apg-waits.locktransactionid.md) 섹션을 참조하세요.

**Lock:tuple**  
백엔드 프로세스는 튜플에 대한 잠금을 얻기 위해 기다리고 있으며 다른 백엔드 프로세스는 동일한 튜플에서 충돌하는 잠금을 유지합니다. 자세한 내용은 [Lock:tuple](apg-waits.locktuple.md) 섹션을 참조하세요.

**Lock:userlock**  
프로세스가 사용자 잠금을 받기 위해 기다리고 있습니다.

**Lock:virtualxid**  
프로세스가 가상 트랜잭션 ID 잠금을 받기 위해 기다리고 있습니다.

**LWLock:AddinShmemInit**  
프로세스가 공유 메모리에서 확장 프로그램의 공간 할당을 관리하기 위해 기다리고 있습니다.

**LWLock:AddinShmemInitLock**  
프로세스가 공유 메모리의 공간 할당을 관리하기 위해 기다리고 있습니다.

**LWLock:async**  
프로세스가 비동기(알림) 버퍼에서 I/O를 기다리고 있습니다.

**LWLock:AsyncCtlLock**  
프로세스가 공유 알림 상태를 읽거나 업데이트하기 위해 기다리고 있습니다.

**LWLock:AsyncQueueLock**  
프로세스가 알림 메시지를 읽거나 업데이트하기 위해 기다리고 있습니다.

**LWLock:AuroraOptimizedReadsCacheMapping**  
프로세스가 데이터 블록을 최적화된 읽기 계층형 캐시의 페이지와 연결하기 위해 기다리고 있습니다.

**LWLock:AutoFile**  
프로세스가 `postgresql.auto.conf` 파일을 업데이트하기 위해 대기 중입니다.

**LWLock:AutoFileLock**  
프로세스가 `postgresql.auto.conf` 파일을 업데이트하기 위해 대기 중입니다.

**LWLock:Autovacuum**  
프로세스가 autovacuum 작업자의 현재 상태를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:AutovacuumLock**  
autovacuum 작업자 또는 시작 관리자가 autovacuum 작업자의 현재 상태를 업데이트하거나 읽기를 기다리고 있습니다.

**LWLock:AutovacuumSchedule**  
프로세스가 autovacuum용으로 선택된 테이블에 여전히 베큠이 필요한지 확인하기 위해 기다리고 있습니다.

**Lwlock:AutovacuumScheduleLock**  
프로세스가 베큠을 하기로 선택한 테이블에 여전히 베큠이 필요한지 확인하기 위해 기다리고 있습니다.

**LWLock:BackendRandomLock**  
프로세스가 난수를 생성하기 위해 기다리고 있습니다.

**LWLock:BackgroundWorker**  
프로세스가 백그라운드 작업자 상태를 읽거나 업데이트하기 위해 기다리고 있습니다.

**LWLock:BackgroundWorkerLock**  
프로세스가 백그라운드 작업자 상태를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:BtreeVacuum**  
프로세스가 B-트리 인덱스에 대한 베큠 관련 정보를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:BtreeVacuumLock**  
프로세스가 B-트리 인덱스에 대한 베큠 관련 정보를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:buffer\$1content**  
백엔드 프로세스가 공유 메모리 버퍼의 내용에 대한 경량 잠금을 획득하기 위해 대기 중입니다. 자세한 내용은 [LWLock:buffer\$1content (BufferContent)](apg-waits.lockbuffercontent.md) 섹션을 참조하세요.

**LWLock:buffer\$1mapping**  
백엔드 프로세스가 데이터 블록을 공유 버퍼 풀의 버퍼와 연결하기 위해 기다리고 있습니다. 자세한 내용은 [LWLock:buffer\$1mapping](apg-waits.lwl-buffer-mapping.md) 섹션을 참조하세요.

**LWLock:BufferIO**  
백엔드 프로세스에서 페이지를 공유 메모리로 읽으려고 합니다. 프로세스는 다른 프로세스가 해당 페이지에 대한 I/O를 완료할 때까지 기다리고 있습니다. 자세한 내용은 [LWLock:BufferIO(IPC:BufferIO)](apg-waits.lwlockbufferio.md) 섹션을 참조하세요.

**LWLock:Checkpoint**  
프로세스가 체크포인트 시작을 기다리고 있습니다.

**LWLock:CheckpointLock**  
프로세스가 체크포인트 수행을 기다리고 있습니다.

**LWLock:CheckpointerComm**  
프로세스가 `fsync` 요청 관리를 기다리고 있습니다.

**LWLock:CheckpointerCommLock**  
프로세스가 `fsync` 요청 관리를 기다리고 있습니다.

**LWLock:clog**  
프로세스가 클록(트랜잭션 상태) 버퍼에서 I/O를 기다리고 있습니다.

**LWLock:CLogControlLock**  
프로세스가 트랜잭션 상태를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:CLogTruncationLock**  
프로세스가 `txid_status`를 실행하거나 사용 가능한 가장 오래된 트랜잭션 ID를 업데이트 하기 위해 대기 중입니다.

**LWLock:commit\$1timestamp**  
프로세스가 커밋 타임스탬프 버퍼에서 I/O를 기다리고 있습니다.

**LWLock:CommitTs**  
프로세스가 트랜잭션 커밋 타임스탬프에 대한 마지막 값 세트를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:CommitTsBuffer**  
프로세스가 커밋 타임스탬프를 위해 가장 오래전에 사용된 단순(SLRU) 버퍼에서 I/O를 기다리고 있습니다.

**LWLock:CommitTsControlLock**  
프로세스가 트랜잭션 커밋 타임스탬프를 읽거나 업데이트하기를 기다리고 있습니다.

**LWLock:CommitTsLock**  
프로세스가 트랜잭션 타임스탬프에 대한 마지막 값 세트를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:CommitTsSLRU**  
프로세스가 커밋 타임스탬프에 대해 가장 오래전에 사용된 단순(SLRU) 캐시에 액세스하기 위해 대기 중입니다.

**LWLock:ControlFile**  
프로세스가 `pg_control` 파일의 읽기 또는 업데이트 또는 새 미리 쓰기 로그(WAL) 생성을 위해 대기 중입니다.

**LWLock:ControlFileLock**  
프로세스가 제어 파일을 읽거나 업데이트하거나 새 미리 쓰기 로그(WAL) 파일을 만들기 위해 대기 중입니다.

**LWLock:DynamicSharedMemoryControl**  
프로세스가 동적 공유 메모리 할당 정보를 읽거나 업데이트하기 위해 기다리고 있습니다.

**LWLock:DynamicSharedMemoryControlLock**  
프로세스가 동적 공유 메모리 상태를 읽거나 업데이트하기 위해 기다리고 있습니다.

**LWLock:lock\$1manager**  
백엔드 프로세스가 백엔드 프로세스에 대한 잠금을 추가하거나 검사하기 위해 기다리고 있습니다. 또는 병렬 쿼리에 사용되는 잠금 그룹에 참여하거나 종료하기를 기다리고 있습니다. 자세한 내용은 [LWLock:lock\$1manager](apg-waits.lw-lock-manager.md) 섹션을 참조하세요.

**LWLock:LockFastPath**  
프로세스가 프로세스의 빠른 경로 잠금 정보를 읽거나 업데이트하기 위해 기다리고 있습니다.

**LWLock:LogicalRepWorker**  
프로세스가 논리적 복제 작업자의 상태를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:LogicalRepWorkerLock**  
프로세스가 논리적 복제 작업자에 대한 작업이 완료될 때까지 기다리고 있습니다.

**LWLock:LogicalSchemaCache**  
프로세스가 스키마 캐시를 수정했습니다.

**LWLock:multixact\$1member**  
프로세스가 multixact\$1member 버퍼에서 I/O를 기다리고 있습니다.

**LWLock:multixact\$1offset**  
프로세스가 멀티액트 오프셋 버퍼에서 I/O를 기다리고 있습니다.

**LWLock:MultiXactGen**  
프로세스가 공유 멀티액트 상태를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:MultiXactGenLock**  
프로세스가 공유 멀티액트 상태를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:MultiXactMemberBuffer**  
프로세스가 멀티액트 멤버를 위해 가장 오래전에 사용된 단순(SLRU) 버퍼에서 I/O를 기다리고 있습니다. 자세한 내용은 [LWLock:MultiXact](apg-waits.lwlockmultixact.md) 섹션을 참조하세요.

**LWLock:MultiXactMemberControlLock**  
프로세스가 멀티액트 멤버 매핑을 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:MultiXactMemberSLRU**  
프로세스가 멀티액트 멤버를 위해 가장 오래전에 사용된 단순(SLRU) 캐시에 액세스하기 위해 대기 중입니다. 자세한 내용은 [LWLock:MultiXact](apg-waits.lwlockmultixact.md) 섹션을 참조하세요.

**LWLock:MultiXactOffsetBuffer**  
프로세스가 멀티액트 오프셋을 위해 가장 오래전에 사용된 단순(SLRU) 버퍼에서 I/O를 기다리고 있습니다. 자세한 내용은 [LWLock:MultiXact](apg-waits.lwlockmultixact.md) 섹션을 참조하세요.

**LWLock:MultiXactOffsetControlLock**  
프로세스가 멀티액트 오프셋 매핑을 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:MultiXactOffsetSLRU**  
프로세스가 멀티액트 오프셋을 위해 가장 오래전에 사용된 단순(SLRU) 캐시에 액세스하기 위해 대기 중입니다. 자세한 내용은 [LWLock:MultiXact](apg-waits.lwlockmultixact.md) 섹션을 참조하세요.

**LWLock:MultiXactTruncation**  
프로세스가 멀티액트 정보를 읽거나 절단하기 위해 대기 중입니다.

**LWLock:MultiXactTruncationLock**  
프로세스가 멀티액트 정보를 읽거나 절단하기 위해 대기 중입니다.

**LWLock:NotifyBuffer**  
프로세스가 NOTIFY 메시지에 대해 가장 오래전에 사용된 단순(SLRU) 버퍼에서 I/O를 기다리고 있습니다.

**LWLock:NotifyQueue**  
프로세스가 NOTIFY 메시지를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:NotifyQueueTail**  
프로세스가 NOTIFY 메시지 스토리지에 대한 제한을 업데이트하기 위해 대기 중입니다.

**LWLock:NotifyQueueTailLock**  
프로세스가 알림 메시지 스토리지에 대한 제한을 업데이트하기 위해 대기 중입니다.

**LWLock:NotifySLRU**  
프로세스가 NOTIFY 메시지에 대해 가장 오래전에 사용된 단순(SLRU) 캐시에 액세스하기 위해 대기 중입니다.

**LWLock:OidGen**  
프로세스가 새 객체 ID(OID)를 할당하기 위해 대기 중입니다.

**LWLock:OidGenLock**  
프로세스가 객체 ID(OID)를 할당하거나 지정하기 위해 대기 중입니다.

**LWLock:oldserxid**  
프로세스가 oldserxid 버퍼에서 I/O를 대기 중인 중입니다.

**LWLock:OldSerXidLock**  
프로세스가 충돌하는 직렬화 가능 트랜잭션을 읽거나 기록하기 위해 기다리고 있습니다.

**LWLock:OldSnapshotTimeMap**  
프로세스가 이전 스냅샷 제어 정보를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:OldSnapshotTimeMapLock**  
프로세스가 이전 스냅샷 제어 정보를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:parallel\$1append**  
병렬 추가 계획 실행 중에 프로세스가 다음 하위 계획을 선택하기를 기다리고 있습니다.

**LWLock:parallel\$1hash\$1join**  
프로세스가 병렬 해시 계획 실행 중에 메모리 청크 또는 업데이트 카운터를 할당하거나 교환하기 위해 대기 중입니다.

**LWLock:parallel\$1query\$1dsa**  
프로세스가 병렬 쿼리에 대한 동적 공유 메모리 할당에 대한 잠금을 기다리고 있습니다.

**LWLock:ParallelAppend**  
프로세스가 병렬 추가 계획 실행 중에 다음 하위 계획을 선택하기를 기다리고 있습니다.

**Lwlock:ParallelHashJoin**  
프로세스가 병렬 해시 조인에 대한 계획 실행 중에 작업자를 동기화하기 위해 대기 중입니다.

**Lwlock:ParallelQueryDSA**  
프로세스가 병렬 쿼리에 대한 동적 공유 메모리 할당을 기다리고 있습니다.

**Lwlock:PerSessionDSA**  
프로세스가 병렬 쿼리에 대한 동적 공유 메모리 할당을 기다리고 있습니다.

**Lwlock:PerSessionRecordType**  
프로세스가 복합 유형에 대한 병렬 쿼리의 정보에 액세스하기 위해 대기 중입니다.

**Lwlock:PerSessionRecordTypmod**  
프로세스가 익명 레코드 유형을 식별하는 유형 수정자에 대한 병렬 쿼리의 정보에 액세스하기 위해 대기 중입니다.

**Lwlock:PerXactPredicateList**  
프로세스가 병렬 쿼리 중에 현재 직렬화 가능 트랜잭션에 의해 유지되는 술어 잠금 목록에 액세스하기 위해 대기 중입니다.

**Lwlock:predicate\$1lock\$1manager**  
프로세스가 술어 잠금 정보를 추가하거나 검사하기 위해 대기 중입니다.

**Lwlock:PredicateLockManager**  
프로세스가 직렬화 가능 트랜잭션에서 사용되는 술어 잠금 정보에 액세스하기 위해 대기 중입니다.

**Lwlock:proc**  
프로세스가 빠른 경로 잠금 정보를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:ProcArray**  
프로세스가 공유 프로세스별 데이터 구조에 액세스하기 위해 대기 중입니다(일반적으로 스냅샷을 가져오거나 세션의 트랜잭션 ID를 보고하기 위함).

**LWLock:ProcArrayLock**  
프로세스가 트랜잭션이 끝날 때 스냅샷을 얻거나 트랜잭션 ID를 지우기를 기다리고 있습니다.

**LWLock:RelationMapping**  
프로세스가 `pg_filenode.map` 파일의 읽기 또는 업데이트를 기다리고 있습니다(특정 시스템 카탈로그의 파일 노드 지정을 추적하는 데 사용됨).

**LWLock:RelationMappingLock**  
프로세스가 카탈로그-파일 노드 매핑을 저장하는 데 사용되는 관계식 맵 파일을 업데이트하기 위해 대기 중입니다.

**LWLock:RelCacheInit**  
프로세스가 `pg_internal.init` 파일의 읽기 또는 업데이트를 기다리고 있습니다(관계식 캐시 초기화 파일).

**LWLock:RelCacheInitLock**  
프로세스가 관계식 캐시 초기화 파일을 읽거나 쓰기를 기다리고 있습니다.

**LWLock:replication\$1origin**  
프로세스가 복제 진행률을 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:replication\$1slot\$1io**  
프로세스가 복제 슬롯에서 I/O를 대기 중입니다.

**LWLock:ReplicationOrigin**  
프로세스가 복제 원본을 생성, 삭제 또는 사용하기 위해 대기 중입니다.

**LWLock:ReplicationOriginLock**  
프로세스가 복제 원본을 설정, 삭제 또는 사용하기 위해 대기 중입니다.

**LWLock:ReplicationOriginState**  
프로세스가 하나의 복제 원본의 진행 상황을 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:ReplicationSlotAllocation**  
프로세스가 복제 슬롯을 할당하거나 해제하기 위해 대기 중입니다.

**LWLock:ReplicationSlotAllocationLock**  
프로세스가 복제 슬롯을 할당하거나 해제하기 위해 대기 중입니다.

**LWLock:ReplicationSlotControl**  
프로세스가 복제 슬롯 상태를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:ReplicationSlotControlLock**  
프로세스가 해당 복제 슬롯 상태를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:ReplicationSlotIO**  
프로세스가 복제 슬롯에서 I/O를 대기 중입니다.

**LWLock:SerialBuffer**  
프로세스가 직렬화 가능한 트랜잭션 충돌을 위해 가장 오래전에 사용된 단순(SLRU) 버퍼에서 I/O를 기다리고 있습니다.

**LWLock:SerializableFinishedList**  
프로세스가 완료된 직렬화 가능 트랜잭션 목록에 액세스하기 위해 대기 중입니다.

**LWLock:SerializableFinishedListLock**  
프로세스가 완료된 직렬화 가능 트랜잭션 목록에 액세스하기 위해 대기 중입니다.

**LWLock:SerializablePredicateList**  
프로세스가 트랜잭션에 의해 유지되는 술어 잠금 목록에 액세스하기 위해 대기 중입니다.

**LWLock:SerializablePredicateLockListLock**  
프로세스가 직렬화 가능 트랜잭션에 의해 유지되는 잠금 목록에 대한 작업을 수행하기 위해 대기 중입니다.

**LWLock:SerializableXactHash**  
프로세스가 직렬화 가능 트랜잭션에 대한 정보를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:SerializableXactHashLock**  
프로세스가 직렬화 가능 트랜잭션에 대한 정보를 검색하거나 저장하기 위해 대기 중입니다.

**LWLock:SerialSLRU**  
프로세스가 직렬화 가능한 트랜잭션 충돌을 위해 가장 오래전에 사용된 단순(SLRU) 캐시에 액세스스하기 위해 대기 중입니다.

**LWLock:SharedTidBitmap**  
프로세스가 병렬 비트맵 인덱스 스캔 중에 공유 튜플 식별자(TID) 비트맵에 액세스하기 위해 대기 중입니다.

**LWLock:SharedTupleStore**  
프로세스가 병렬 쿼리 중에 공유 튜플 스토어에 액세스하기 위해 대기 중입니다.

**LWLock:ShmemIndex**  
프로세스가 공유 메모리의 공간 할당을 관리하기 위해 대기 중입니다.

**LWLock:ShmemIndexLock**  
프로세스가 공유 메모리의 공간 할당을 관리하기 위해 대기 중입니다.

**LWLock:SInvalRead**  
프로세스가 공유 카탈로그 무효화 대기열에서 메시지를 검색하기 위해 대기 중입니다.

**LWLock:SInvalReadLock**  
프로세스가 공유 무효화 대기열에서 메시지를 검색하거나 제거하기 위해 대기 중입니다.

**LWLock:SInvalWrite**  
프로세스가 공유 카탈로그 무효화 대기열에서 메시지를 추가하기 위해 대기 중입니다.

**LWLock:SInvalWriteLock**  
프로세스가 공유 무효화 대기열에 메시지를 추가하기 위해 대기 중입니다.

**LWLock:SyncRep**  
프로세스가 동기 복제 상태에 대한 정보를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:SyncRepLock**  
프로세스가 동기 복제에 대한 정보를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:SyncScan**  
프로세스가 동기화된 테이블 스캔의 시작 위치를 선택하기 위해 대기 중입니다.

**LWLock:SyncScanLock**  
프로세스가 동기화된 스캔을 위해 테이블에서 검사의 시작 위치를 가져오기 위해 대기 중입니다.

**LWLock:TablespaceCreate**  
프로세스가 테이블스페이스를 생성하거나 삭제하기 위해 대기 중입니다.

**LWLock:TablespaceCreateLock**  
프로세스가 해당 테이블스페이스를 생성하거나 삭제하기 위해 대기 중입니다.

**LWLock:tbm**  
프로세스가 트리 비트맵(TBM) 에서 공유 이터레이터 잠금을 기다리고 있습니다.

**LWLock:TwoPhaseState**  
프로세스가 준비된 트랜잭션 상태를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:TwoPhaseStateLock**  
프로세스가 준비된 트랜잭션 상태를 읽거나 업데이트하기 위해 대기 중입니다.

**LWLock:wal\$1insert**  
프로세스가 미리 쓰기 로그(WAL)를 메모리 버퍼에 삽입하기 위해 대기 중입니다.

**LWLock:WALBufMapping**  
프로세스가 미리 쓰기 로그(WAL) 버퍼의 페이지를 대체하기 위해 대기 중입니다.

**LWLock:WALBufMappingLock**  
프로세스가 미리 쓰기 로그(WAL) 버퍼의 페이지를 대체하기 위해 대기 중입니다.

**LWLock:WALInsert**  
프로세스가 미리 쓰기 로그(WAL)를 메모리 버퍼에 삽입하기 위해 대기 중입니다.

**LWLock:WALWrite**  
프로세스가 미리 쓰기 로그(WAL) 버퍼가 디스크에 기록될 때까지 대기 중입니다.

**LWLock:WALWriteLock**  
프로세스가 미리 쓰기 로그(WAL) 버퍼가 디스크에 기록될 때까지 대기 중입니다.

**LWLock:WrapLimitsVacuum**  
프로세스가 트랜잭션 ID 및 멀티액트 소비에 대한 한도를 업데이트하기 위해 기다리고 있습니다.

**LWLock:WrapLimitsVacuumLock**  
프로세스가 트랜잭션 ID 및 멀티액트 소비에 대한 한도를 업데이트하기 위해 기다리고 있습니다.

**LWLock:XactBuffer**  
프로세스가 트랜잭션 상태에 대해 가장 오래전에 사용된 단순(SLRU) 버퍼에서 I/O를 기다리고 있습니다.

**LWLock:XactSLRU**  
프로세스가 트랜잭션 상태에 대해 가장 오래전에 사용된 단순(SLRU) 캐시에 액세스하기 위해 대기 중입니다.

**LWLock:XactTruncation**  
프로세스가 pg\$1xact\$1status를 실행하거나 사용 가능한 가장 오래된 트랜잭션 ID를 업데이트하기 위해 대기 중입니다.

**LWLock:XidGen**  
프로세스가 새 트랜잭션 ID를 할당하기 위해 대기 중입니다.

**LWLock:XidGenLock**  
프로세스가 트랜잭션 ID를 할당하거나 배정하기 위해 대기 중입니다.

**Timeout:BaseBackupThrottle**  
프로세스가 작업 제한 중 기본 백업 중에 대기 중입니다.

**Timeout:PgSleep**  
백엔드 프로세스는 pg\$1sleep 함수를 호출하고 절전 시간 초과가 만료될 때까지 기다리고 있습니다. 자세한 내용은 [Timeout:PgSleep](apg-waits.timeoutpgsleep.md) 섹션을 참조하세요.

**Timeout:RecoveryApplyDelay**  
프로세스가 지연 설정으로 인한 복구 중에 미리 쓰기 로그(WAL)를 적용하기 위해 대기 중입니다.

**Timeout:RecoveryRetrieveRetryInterval**  
프로세스가 소스(pg\$1wal, 아카이브 또는 스트림)에서 미리 쓰기 로그 (WAL) 데이터를 사용할 수 없어 복구가 진행되는 동안 대기 중입니다.

**Timeout:VacuumDelay**  
프로세스가 비용 기반 베큠 지연 지점에서 대기 중입니다.

PostgreSQL 대기 이벤트의 전체 목록을 보려면 PostgreSQL 설명서의 [통계 수집기 > 대기 이벤트 테이블](https://www.postgresql.org/docs/current/monitoring-stats.html#WAIT-EVENT-TABLE)을 참조하세요.

# Amazon Aurora PostgreSQL에 대한 데이터베이스 엔진 업데이트
<a name="AuroraPostgreSQL.Updates"></a><a name="pgsql_relnotes"></a>

다음에서 Amazon Aurora PostgreSQL 엔진 버전 릴리스 및 업데이트에 대한 정보를 확인할 수 있습니다. Aurora PostgreSQL 엔진을 업그레이드하는 방법에 대한 정보도 확인할 수 있습니다. Aurora 릴리스에 대한 자세한 내용은 [Amazon Aurora](Aurora.VersionPolicy.md) 섹션을 참조하세요.

**작은 정보**  
블루/그린 배포를 사용하면 DB 클러스터 업그레이드에 필요한 가동 중지를 최소화할 수 있습니다. 자세한 내용은 [데이터베이스 업데이트에 Amazon Aurora 블루/그린 배포 사용](blue-green-deployments.md) 섹션을 참조하세요.

**Topics**
+ [Amazon Aurora PostgreSQL 버전 식별](#AuroraPostgreSQL.Updates.Versions)
+ [Amazon Aurora PostgreSQL 릴리스 및 엔진 버전](AuroraPostgreSQL.Updates.20180305.md)
+ [Amazon Aurora PostgreSQL의 확장 버전](AuroraPostgreSQL.Extensions.md)
+ [Amazon Aurora PostgreSQL DB 클러스터 업그레이드](USER_UpgradeDBInstance.PostgreSQL.md)
+ [Aurora PostgreSQL 장기 지원(LTS) 릴리스 사용](AuroraPostgreSQL.Updates.LTS.md)

## Amazon Aurora PostgreSQL 버전 식별
<a name="AuroraPostgreSQL.Updates.Versions"></a>

Amazon Aurora는 Aurora에 일반적이며 모든 Aurora DB 클러스터에서 사용할 수 있는 특정 기능을 포함합니다. Aurora는 Aurora가 지원하는 특정 데이터베이스 엔진에 특정한 다른 기능을 포함합니다. 이러한 기능들은 Aurora PostgreSQL 같이 해당 데이터베이스 엔진을 사용하는 Aurora DB 클러스터에만 제공됩니다.

Aurora 데이터베이스 릴리스에는 일반적으로 데이터베이스 엔진 버전 번호와 Aurora 버전 번호의 두 가지 버전 번호가 있습니다. Aurora PostgreSQL 릴리스에 Aurora 버전 번호가 있는 경우 [Amazon Aurora PostgreSQL 릴리스 및 엔진 버전](AuroraPostgreSQL.Updates.20180305.md) 목록에서 엔진 버전 번호 뒤에 포함됩니다.

**Topics**
+ [Aurora 버전 번호](#AuroraPostgreSQL.Updates.Versions.AuroraNumber)
+ [PostgreSQL 엔진 버전 번호](#AuroraPostgreSQL.Updates.Versions.EngineNumber)

### Aurora 버전 번호
<a name="AuroraPostgreSQL.Updates.Versions.AuroraNumber"></a>

Aurora 버전 번호는 *major*.*minor*.*patch* 이름 지정 체계를 사용합니다. Aurora 패치 버전에는 릴리스 후 마이너 버전에 추가된 중요한 버그 수정이 포함되어 있습니다. Amazon Aurora 메이저, 마이너 및 패치 릴리스에 대한 자세한 내용은 [Amazon Aurora 메이저 버전](Aurora.VersionPolicy.Versioning.md#Aurora.VersionPolicy.MajorVersions), [Amazon Aurora 마이너 버전](Aurora.VersionPolicy.Versioning.md#Aurora.VersionPolicy.MinorVersions) 및[Amazon Aurora 패치 버전](Aurora.VersionPolicy.Versioning.md#Aurora.VersionPolicy.PatchVersions) 섹션을 참조하세요.

다음 SQL 쿼리를 사용하여 Aurora PostgreSQL DB 인스턴스의 Aurora 버전 번호를 확인할 수 있습니다.

```
postgres=> SELECT aurora_version();
```

PostgreSQL 버전 13.3, 12.8, 11.13, 10.18 및 기타 모든 이후 버전의 릴리스부터 Aurora 버전 번호는 PostgreSQL 엔진 버전에 더 가깝게 맞춰집니다. 예를 들어 Aurora PostgreSQL 13.3 DB 클러스터를 쿼리하면 다음이 반환됩니다.

```
aurora_version
----------------
 13.3.1
(1 row)
```

Aurora PostgreSQL 10.14 DB 클러스터와 같은 이전 릴리스는 다음과 유사한 버전 번호를 반환합니다.

```
aurora_version
----------------
 2.7.3
(1 row)
```

### PostgreSQL 엔진 버전 번호
<a name="AuroraPostgreSQL.Updates.Versions.EngineNumber"></a>

PostgreSQL 10부터 PostgreSQL 데이터베이스 엔진 버전은 모든 릴리스에 대해 *major*.*minor* 번호 지정 체계를 사용합니다. 몇 가지 예로 PostgreSQL 10.18, PostgreSQL 12.7 및 PostgreSQL 13.3이 있습니다.

PostgreSQL 10 이전 릴리스에서는 처음 두 자리가 메이저 버전 번호를 구성하고 세 번째 숫자가 마이너 버전을 나타내는 *major*.*major*.*minor* 번호 지정 체계를 사용합니다. 예를 들어 PostgreSQL 9.6은 메이저 버전이며 마이너 버전 9.6.21 또는 9.6.22는 세 번째 숫자로 표시됩니다.

**참고**  
PostgreSQL 엔진 버전 9.6은 더 이상 지원되지 않습니다. 업그레이드하려면 [Amazon Aurora PostgreSQL DB 클러스터 업그레이드](USER_UpgradeDBInstance.PostgreSQL.md) 섹션을 참조하세요. 버전 정책 및 출시 일정은 [Amazon Aurora 메이저 버전을 사용할 수 있는 기간](Aurora.VersionPolicy.Versioning.md#Aurora.VersionPolicy.MajorVersionLifetime) 단원을 참조하세요.

다음 SQL 쿼리를 사용하여 PostgreSQL 데이터베이스 엔진 버전 번호를 확인할 수 있습니다.

```
postgres=> SELECT version();
```

Aurora PostgreSQL 13.3 DB 클러스터의 경우 결과는 다음과 같습니다.

```
version
-------------------------------------------------------------------------------------------------
 PostgreSQL 13.3 on x86_64-pc-linux-gnu, compiled by x86_64-pc-linux-gnu-gcc (GCC) 7.4.0, 64-bit
(1 row)
```

# Amazon Aurora PostgreSQL 릴리스 및 엔진 버전
<a name="AuroraPostgreSQL.Updates.20180305"></a>

Amazon Aurora PostgreSQL 호환 버전 릴리스는 정기적으로 업데이트됩니다. 업데이트는 시스템 유지 관리 기간 중에 Aurora PostgreSQL DB 클러스터에 적용됩니다. 업데이트 적용 시기는 업데이트 유형, AWS 리전 및 DB 클러스터의 유지 관리 기간 설정에 따라 다릅니다. 나열된 릴리스에는 대다수 PostgreSQL 버전 번호와 Amazon Aurora 버전 번호가 모두 포함되어 있습니다. 그러나 PostgreSQL 버전 13.3, 12.8, 11.13, 10.18의 릴리스부터 다른 모든 이후 버전에서는 Aurora 버전 번호가 사용되지 않습니다. Aurora PostgreSQL 데이터베이스의 버전 번호를 확인하려면 [Amazon Aurora PostgreSQL 버전 식별](AuroraPostgreSQL.Updates.md#AuroraPostgreSQL.Updates.Versions) 단원을 참조하세요.

확장 및 모듈에 대한 자세한 내용은 [Amazon Aurora PostgreSQL의 확장 버전](AuroraPostgreSQL.Extensions.md) 단원을 참조하세요.

**참고**  
Amazon Aurora 버전 정책 및 출시 일정에 대한 자세한 내용은 [Amazon Aurora 메이저 버전을 사용할 수 있는 기간](Aurora.VersionPolicy.Versioning.md#Aurora.VersionPolicy.MajorVersionLifetime) 섹션을 참조하세요.

Amazon Aurora에 대한 지원 및 기타 정책에 대한 내용은 [Amazon RDS FAQ](https://aws.amazon.com/rds/faqs/)를 참조하세요.

AWS 리전에서 사용할 수 있는 Aurora PostgreSQL DB 엔진 버전을 확인하려면 [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI 명령을 사용합니다. 예:

```
aws rds describe-db-engine-versions --engine aurora-postgresql --query '*[].[EngineVersion]' --output text --region aws-region
```

AWS 리전 목록은 [Aurora PostgreSQL 리전 가용성](Concepts.RegionsAndAvailabilityZones.md#Aurora.Overview.Availability.PostgreSQL) 단원을 참조하세요.

Aurora PostgreSQL에서 사용 가능한 PostgreSQL 버전에 대한 자세한 내용은 [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html)를 참조하세요.

# Amazon Aurora PostgreSQL의 확장 버전
<a name="AuroraPostgreSQL.Extensions"></a>

Aurora PostgreSQL DB 클러스터에서 사용할 수 있도록 다양한 PostgreSQL 확장을 설치하고 구성할 수 있습니다. 예를 들어 PostgreSQL `pg_partman` 확장을 사용하여 테이블 파티션의 생성 및 유지 관리를 자동화할 수 있습니다. 이 확장과 Aurora PostgreSQL에 사용할 수 있는 기타 확장에 대한 자세한 내용은 [확장 및 외부 데이터 래퍼 작업](Appendix.PostgreSQL.CommonDBATasks.md)을 참조하세요.

Aurora PostgreSQL에서 지원되는 PostgreSQL 확장에 대한 자세한 내용은 *Aurora PostgreSQL 릴리스 정보*의 [Amazon Aurora PostgreSQL의 확장 버전](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Extensions.html)을 참조하세요.

# Amazon Aurora PostgreSQL DB 클러스터 업그레이드
<a name="USER_UpgradeDBInstance.PostgreSQL"></a><a name="pgsql_upgrade"></a>

Amazon Aurora는 광범위한 테스트를 거친 후에만 PostgreSQL 데이터베이스 엔진의 새 버전을 AWS 리전에 공개합니다. Aurora PostgreSQL DB 클러스터를 리전에서 사용할 수 있는 경우 새 버전으로 업그레이드할 수 있습니다.

DB 클러스터가 현재 실행 중인 Aurora PostgreSQL 버전에 따라 새 릴리스로 업그레이드하는 작업은 마이너 업그레이드일 수도, 메이저 업그레이드일 수도 있습니다. 예를 들어, Aurora PostgreSQL 11.15 DB 클러스터를 Aurora PostgreSQL 13.6으로 업그레이드하는 것은 *메이저 버전 업그레이드*입니다. Aurora PostgreSQL 13.3 DB 클러스터를 Aurora PostgreSQL 13.7로 업그레이드하는 작업은 *마이너 버전 업그레이드*입니다. 다음 주제에는 두 유형의 업그레이드를 수행하는 방법에 대한 정보가 나와 있습니다.

**Contents**
+ [Aurora PostgreSQL 업그레이드 프로세스 개요](#USER_UpgradeDBInstance.PostgreSQL.Overview)
+ [AWS 리전에서 사용 가능한 버전 목록 가져오기](USER_UpgradeDBInstance.PostgreSQL.UpgradeVersion.md)
+ [메이저 버전 업그레이드 수행](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md)
  + [새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)
  + [업그레이드 후 권장 사항](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.postupgrade)
  + [Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.Upgrading.Manual)
    + [글로벌 데이터베이스에 대한 메이저 업그레이드](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.GlobalDB)
+ [마이너 버전 업그레이드 수행](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md)
  + [마이너 버전 업그레이드를 수행하기 전](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.BeforeMinor)
  + [마이너 버전 업그레이드 수행 및 패치 적용 방법](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor)
  + [마이너 릴리스 업그레이드 및 제로 가동 중지 패치 적용](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp)
  + [제로 가동 중지 패치 적용의 제한 사항](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp.limitations)
  + [Aurora PostgreSQL 엔진을 새로운 마이너 버전으로 업그레이드](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.MinorUpgrade)
+ [PostgreSQL 확장 버전 업그레이드](USER_UpgradeDBInstance.Upgrading.ExtensionUpgrades.md)
+ [대체 블루/그린 업그레이드 기법](#USER_UpgradeDBInstance.Upgrading.BlueGreen)

## Aurora PostgreSQL 업그레이드 프로세스 개요
<a name="USER_UpgradeDBInstance.PostgreSQL.Overview"></a>

메이저 버전과 마이너 버전 업그레이드의 차이점은 다음과 같습니다.

**마이너 버전 업그레이드 및 패치**  
마이너 버전 업그레이드 및 패치에는 기존 애플리케이션과 역호환되는 변경 사항만 포함됩니다. 마이너 버전 업그레이드 및 패치는 Aurora PostgreSQL이 테스트하고 승인한 후에만 사용할 수 있습니다.  
Aurora는 자동으로 마이너 버전 업그레이드를 적용할 수 있습니다. 새로운 Aurora PostgreSQL DB 클러스터를 만들면 **마이너 버전 업그레이드 활성화** 옵션이 기본적으로 선택되어 있습니다. 이 옵션을 수동으로 끄지 않는 한 Aurora는 예정된 유지 관리 기간에 마이너 버전 자동 업그레이드를 주기적으로 적용합니다. 자동 마이너 버전 업그레이드(AmVU) 옵션과 AmVU를 사용하도록 Aurora DB 클러스터를 수정하는 방법에 대한 자세한 내용은 [Aurora DB 클러스터 마이너 버전 자동 업그레이드](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU) 섹션을 참조하세요.  
Aurora PostgreSQL DB 클러스터에 대해 마이너 버전 자동 업그레이드가 사용 설정되지 않은 경우 Aurora PostgreSQL이 새 마이너 버전으로 자동으로 업그레이드되지 않습니다. 대신 AWS 리전에 새 마이너 버전이 출시될 때 Aurora PostgreSQL DB 클러스터에서 이전 마이너 버전을 실행 중이면 Aurora에서 업그레이드하라는 메시지가 표시됩니다. 이 작업을 수행하려면 클러스터의 유지 관리 태스크에 권장 사항을 추가하면 됩니다.  
패치는 업그레이드로 간주되지 않으며, 자동으로 적용되지 않습니다. Aurora PostgreSQL에서는 Aurora PostgreSQL DB 클러스터의 유지 관리 태스크에 권장 사항을 추가하여 패치를 적용하라는 메시지를 표시합니다. 자세한 내용은 [마이너 버전 업그레이드 수행 및 패치 적용 방법](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor)을 참조하세요.  
보안 또는 기타 중요한 문제를 해결하는 패치도 유지 관리 태스크로 추가됩니다. 그러나 이러한 패치는 필수입니다. 보류 중인 유지 관리 태스크에서 사용할 수 있게 되면 Aurora PostgreSQL DB 클러스터에 보안 패치를 적용해야 합니다.  
자동 마이너 버전 업그레이드는 기본 마이너 버전으로 수행됩니다.
업그레이드를 진행하는 과정에서 클러스터의 각 인스턴스가 새 버전으로 업그레이드될 때 일시적인 중단이 발생할 수 있습니다. 그러나 Aurora PostgreSQL 14.3.3, 13.7.3, 12.11.3, 11.16.3, 10.21.3 및 기타 마이너 버전의 상위 릴리스 및 그 이후의 메이저 버전에는 업그레이드 프로세스에 제로 가동 중지 패치 적용(ZDP) 기능이 도입되었습니다. 이 기능은 중단을 최소화하며, 대부분의 경우 중단이 발생하지 않습니다. 자세한 내용은 [마이너 릴리스 업그레이드 및 제로 가동 중지 패치 적용](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp) 섹션을 참조하세요. ZDP의 지원되는 기능 및 제한 사항에 대한 자세한 내용은 [제로 가동 중지 패치 적용의 제한 사항](USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade.md#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp.limitations) 섹션을 참조하세요.

**메이저 버전 업그레이드**  
마이너 버전 업그레이드 및 패치와 달리 Aurora PostgreSQL에는 자동 메이저 버전 업그레이드 옵션이 없습니다. 최신 메이저 PostgreSQL 버전에는 기존 애플리케이션과 역호환되지 않는 데이터베이스 변경 사항이 포함될 수 있습니다. 새 기능을 사용하면 기존 애플리케이션이 올바르게 작동하지 않을 수 있습니다.  
문제를 방지하려면 Aurora PostgreSQL DB 클러스터에서 DB 인스턴스를 업그레이드하기 전에 [새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)에 설명된 프로세스를 따르는 것이 좋습니다. 먼저 해당 절차에 따라 애플리케이션이 새 버전에서 실행될 수 있는지 확인합니다. 그런 다음 Aurora PostgreSQL DB 클러스터를 새 버전으로 직접 업그레이드하면 됩니다.  
업그레이드 프로세스는 클러스터의 모든 인스턴스를 새 버전으로 업그레이드할 때 잠시 중단될 수 있습니다. 예비 계획 프로세스에도 시간이 걸립니다. 업그레이드 태스크는 항상 클러스터의 유지 관리 기간 동안 또는 작업이 거의 이루어지지 않는 기간에 수행하는 것이 좋습니다. 자세한 내용은 [메이저 버전 업그레이드 수행](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md) 단원을 참조하세요.

**참고**  
마이너 버전과 메이저 버전을 업그레이드할 때는 중단이 짧게 발생할 수 있습니다. 따라서 유지 관리 기간 동안 또는 사용률이 많지 않은 기간에 업그레이드를 수행하거나 예약하는 것이 좋습니다.

Aurora PostgreSQL DB 클러스터는 때때로 운영 체제 업데이트가 필요합니다. 이러한 업데이트에는 glibc 라이브러리의 최신 버전도 포함될 수 있습니다. 이러한 업데이트를 진행하는 중에는 [Aurora PostgreSQL 에서 지원되는 데이터 정렬입니다.](PostgreSQL-Collations.md)에 설명된 지침을 따르는 것이 좋습니다.

# AWS 리전에서 사용 가능한 버전 목록 가져오기
<a name="USER_UpgradeDBInstance.PostgreSQL.UpgradeVersion"></a>

다음과 같이 [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI 명령을 통해 AWS 리전을 쿼리하여 Aurora PostgreSQL DB 클러스터의 업그레이드 대상으로 사용할 수 있는 모든 엔진 버전 목록을 가져올 수 있습니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds describe-db-engine-versions \
  --engine aurora-postgresql \
  --engine-version version-number \
  --query 'DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}' \
  --output text
```

Windows의 경우:

```
aws rds describe-db-engine-versions ^
  --engine aurora-postgresql ^
  --engine-version version-number ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^
  --output text
```

예를 들어, Aurora PostgreSQL 버전 12.10 DB 클러스터의 유효한 업그레이드 대상을 식별하려면 다음 AWS CLI 명령을 실행합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds describe-db-engine-versions \
  --engine aurora-postgresql \
  --engine-version 12.10 \
  --query 'DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}' \
  --output text
```

Windows의 경우:

```
aws rds describe-db-engine-versions ^
  --engine aurora-postgresql ^
  --engine-version 12.10 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^
  --output text
```

다음 표에서 서로 다른 Aurora PostgreSQL DB 버전의 메이저 버전 및 마이너 버전 업그레이드 대상을 모두 찾을 수 있습니다. 호환성을 유지하기 위해 일부 버전만 업그레이드 대상으로 제공됩니다. Aurora PostgreSQL은 분기별 마이너 버전 릴리스마다 새로운 기능을 도입하고 버그를 수정했습니다. Aurora PostgreSQL 마이너 릴리스에 대한 자세한 내용은 [https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html)를 참조하세요.


| 현재 소스 버전 | 업그레이드 대상 | 
| --- | --- | 
| 17.7 |  없음  | 
| 17.6 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x)  | 
| 17.5 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x)  | 
| 17.4 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x), [17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x)  | 
| 16.11 |  없음  | 
| 16.10 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x)  | 
| 16.9 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x), [16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x), [17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x)  | 
| 16.8 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x), [16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x), [17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x), [17.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x), [16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x)  | 
| 16.6 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x), [16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x), [17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x), [17.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x), [16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x), [16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x)  | 
| 16.4 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x), [16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x), [17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x), [17.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x), [16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x), [16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x), [16.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version166x)  | 
| 16.3 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x), [16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x), [17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x), [17.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x), [16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x), [16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x), [16.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version166x), [16.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version164x)  | 
| 16.2 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x), [16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x), [17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x), [17.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x), [16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x), [16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x), [16.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version166x), [16.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version164x), [16.3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version163x)  | 
| 16.1 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x), [16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x), [17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x), [17.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x), [16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x), [16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x), [16.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version166x), [16.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version164x), [16.3](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version163x), [16.2](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#AuroraPostgreSQL.Updates.20180305.162X)  | 
| 15.15 |  없음  | 
| 15.14 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x) [15.15](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1515x)  | 
| 15.13 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x), [15.15](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1515x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x), [16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x), [15.14](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1514x), [17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x), [16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x)  | 
| 15.12 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x), [15.15](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1515x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x), [16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x), [15.14](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1514x), [15.13](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1513x)  | 
| 15.10 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x), [15.15](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1515x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x), [16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x), [15.14](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1514x), [17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x), [17.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x), [16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x), [16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x), [15.13](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1513x)  | 
| 15.11 |  [17.7](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version177x) [16.11](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1611x), [15.15](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1515x), [17.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version176x), [16.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1610x), [15.14](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1514x), [17.5](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version175x), [17.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version174x), [16.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version169x), [16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x), [16.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version166x), [15.13](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1513x), [15.12](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1512x)  | 
| 14.20 |  없음  | 

고려 중인 버전에 관계없이 클러스터 DB 인스턴스 클래스의 가용성을 항상 확인해야 합니다. 예를 들어 `db.r4`는 Aurora PostgreSQL 13에서 지원되지 않습니다. Aurora PostgreSQL DB 클러스터가 현재 db.r4 인스턴스 클래스를 사용하는 경우 Aurora PostgreSQL 13으로 업그레이드하기 전에 지원되는 DB 인스턴스 클래스를 사용하도록 수정해야 합니다. Graviton2 기반 클래스 및 인텔 기반 클래스 등 사용 가능한 Aurora PostgreSQL DB 인스턴스 클래스에 대한 자세한 내용은 [Amazon AuroraDB 인스턴스 클래스](Concepts.DBInstanceClass.md) 섹션을 참조하세요.

# 메이저 버전 업그레이드 수행
<a name="USER_UpgradeDBInstance.PostgreSQL.MajorVersion"></a>

메이저 버전 업그레이드에는 이전 버전의 데이터베이스와 역호환되지 않는 데이터베이스 변경 사항이 포함될 수 있습니다. 최신 버전의 새 기능을 사용하면 기존 애플리케이션이 올바르게 작동하지 않을 수 있습니다. 이러한 문제를 방지하고자 Amazon Aurora는 자동으로 메이저 버전 업그레이드를 적용하지 않습니다. 따라서 다음 단계에 따라 메이저 버전 업그레이드를 신중하게 계획하는 것이 좋습니다.

1. 테이블에 있는 버전에 대해 나열된 대상 중 사용 가능한 대상 목록에서 원하는 메이저 버전을 선택합니다. AWS CLI를 사용하여 현재 버전에 대해 AWS 리전에서 사용할 수 있는 정확한 버전 목록을 확인할 수 있습니다. 자세한 내용은 [AWS 리전에서 사용 가능한 버전 목록 가져오기](USER_UpgradeDBInstance.PostgreSQL.UpgradeVersion.md) 단원을 참조하세요.

1. 새 버전의 평가판 배포에서 애플리케이션이 정상적으로 작동하는지 확인합니다. 전체 프로세스에 대한 내용은 [새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트](#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary) 섹션을 참조하세요.

1. 평가판 배포에서 애플리케이션이 정상적으로 작동하는지 확인했다면 클러스터를 업그레이드할 수 있습니다. 자세한 내용은 [Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드](#USER_UpgradeDBInstance.Upgrading.Manual)을 참조하세요.

**참고**  
13.6부터 시작하는 Babelfish for Aurora PostgreSQL 13 기반 버전에서 14.6부터 시작하는 Aurora PostgreSQL 14 기반 버전으로 메이저 버전 업그레이드를 수행할 수 있습니다. Babelfish for Aurora PostgreSQL 13.4 및 13.5는 메이저 버전 업그레이드를 지원하지 않습니다.

다음과 같이 [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) AWS CLI 명령을 통해 AWS 리전을 쿼리하여 Aurora PostgreSQL DB 클러스터의 메이저 버전 업그레이드 대상으로 사용할 수 있는 엔진 버전 목록을 가져올 수 있습니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds describe-db-engine-versions \
  --engine aurora-postgresql \
  --engine-version version-number \
  --query 'DBEngineVersions[].ValidUpgradeTarget[?IsMajorVersionUpgrade == `true`].{EngineVersion:EngineVersion}' \
  --output text
```

Windows의 경우:

```
aws rds describe-db-engine-versions ^
  --engine aurora-postgresql ^
  --engine-version version-number ^
  --query "DBEngineVersions[].ValidUpgradeTarget[?IsMajorVersionUpgrade == `true`].{EngineVersion:EngineVersion}" ^
  --output text
```

업그레이드하려는 버전이 현재 버전의 대상이 아닌 경우가 있습니다. 이러한 경우 클러스터가 대상 행에 선택한 대상이 있는 버전이 될 때까지 [versions table](USER_UpgradeDBInstance.PostgreSQL.UpgradeVersion.md#versions-table)의 정보를 바탕으로 마이너 버전 업그레이드를 수행합니다.

## 새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트
<a name="USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary"></a>

최신 메이저 버전에는 각각 성능 개선을 위해 설계된 쿼리 옵티마이저의 개선 사항이 포함되어 있습니다. 그러나 워크로드에 새 버전에서 성능이 저하되는 쿼리가 포함되어 있을 수 있습니다. 따라서 프로덕션 환경에서 업그레이드하기 전에 성능을 테스트하고 검토하는 것이 좋습니다. [메이저 버전 업그레이드 후 계획 안정성 보장](AuroraPostgreSQL.Optimize.BestPractice.md#AuroraPostgreSQL.Optimize.BestPractice.MajorVersionUpgrade)에 설명된 대로 QPM(쿼리 계획 관리) 확장을 사용하여 버전 간 쿼리 계획 안정성을 관리할 수 있습니다.

프로덕션 Aurora PostgreSQL DB 클러스터를 새로운 메이저 버전으로 업그레이드하기 전에 업그레이드를 테스트하여 모든 애플리케이션이 제대로 작동하는지 확인하는 것이 좋습니다.

1. 버전 호환 파라미터 그룹을 준비합니다.  

   사용자 지정 DB 인스턴스 또는 DB 클러스터 파라미터 그룹을 사용하는 경우 다음 2가지 옵션이 있습니다.

   1. 새 DB 엔진 버전에 대한 기본 DB 인스턴스, DB 클러스터 파라미터 그룹 또는 둘 다 지정합니다.

   1. 새 DB 엔진 버전에 대한 사용자 지정 파라미터 그룹을 직접 생성합니다.

1. 유효하지 않은 데이터베이스가 있는지 확인하고 유효하지 않은 데이터베이스를 삭제합니다.

   `pg_database` 카탈로그의 `datconnlimit` 열에는 `DROP DATABASE` 작업 중에 중단된 데이터베이스를 유효하지 않은 것으로 표시하는 `-2` 값이 포함되어 있습니다. 다음 쿼리를 사용하여 유효하지 않은 데이터베이스가 있는지 확인합니다.

   ```
   SELECT
       datname
   FROM
       pg_database
   WHERE
       datconnlimit = - 2;
   ```

   쿼리가 데이터베이스 이름을 반환하면 이러한 데이터베이스는 유효하지 않습니다. `DROP DATABASE invalid_db_name` 스테이트먼트를 사용하여 유효하지 않은 데이터베이스를 삭제합니다. 다음 동적 스테이트먼트를 사용하여 모든 유효하지 않은 데이터베이스를 삭제할 수 있습니다.

   ```
   SELECT
       'DROP DATABASE ' || quote_ident(datname) || ';'
   FROM
       pg_database
   WHERE
       datconnlimit = -2 \gexec
   ```

1. 지원되지 않는 사용 확인:
   + 업그레이드를 시도하기 전에 열려 있는 준비된 트랜잭션을 모두 커밋하거나 롤백합니다. 다음 쿼리를 사용하여 인스턴스에 열려 있는 준비된 트랜잭션이 없음을 확인할 수 있습니다.

     ```
     SELECT count(*) FROM pg_catalog.pg_prepared_xacts;
     ```
   + 업그레이드를 시도하기 전에 *reg\$1* 데이터 형식의 사용을 모두 제거하세요. `regtype` 및 `regclass` 이외에는 *reg\$1* 데이터 형식을 업그레이드할 수 없습니다. pg\$1upgrade 유틸리티(Amazon Aurora에서 업그레이드하는 데 사용)는 이 데이터 유형을 유지할 수 없습니다. 유틸리티에 대해 자세히 알아보려면 PostgreSQL 설명서의 [pg\$1upgrade](https://www.postgresql.org/docs/current/pgupgrade.html)를 참조하세요.

     지원되지 않는 *reg\$1* 데이터 형식이 사용되지 않음을 확인하려면 각 데이터베이스에 다음 쿼리를 사용합니다.

     ```
     SELECT count(*) FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n, pg_catalog.pg_attribute a 
       WHERE c.oid = a.attrelid 
           AND NOT a.attisdropped 
           AND a.atttypid IN ('pg_catalog.regproc'::pg_catalog.regtype, 
                              'pg_catalog.regprocedure'::pg_catalog.regtype, 
                              'pg_catalog.regoper'::pg_catalog.regtype, 
                              'pg_catalog.regoperator'::pg_catalog.regtype, 
                              'pg_catalog.regconfig'::pg_catalog.regtype, 
                              'pg_catalog.regdictionary'::pg_catalog.regtype) 
           AND c.relnamespace = n.oid 
           AND n.nspname NOT IN ('pg_catalog', 'information_schema');
     ```
   + `pgRouting` 확장이 설치된 Aurora PostgreSQL 버전 10.18 이상의 DB 클러스터를 업그레이드하는 경우 버전 12.4 이상으로 업그레이드하기 전에 이 확장을 제거합니다.

     확장 `pg_repack` 버전 1.4.3이 설치된 Aurora PostgreSQL 10.x 버전을 업그레이드하는 경우, 더 높은 버전으로 업그레이드하기 전에 이 확장을 제거합니다.

1. template1 및 template0 데이터베이스를 확인합니다.

   성공적인 업그레이드를 위해서는 template1 및 template0 데이터베이스가 존재해야 하며 템플릿으로 나열되어야 합니다. 이를 확인하려면 다음 명령을 사용합니다.

   ```
   SELECT datname, datistemplate FROM pg_database; 
                           
   datname    | datistemplate
   -----------+---------------
   template0  | t
   rdsadmin   | f
   template1  | t
   postgres   | f
   ```

   명령 출력에서 template1 및 template0 데이터베이스의 `datistemplate` 값은 `t`여야 합니다.

1. 논리적 복제 슬롯을 삭제합니다.

   Aurora PostgreSQL DB 클러스터가 논리적 복제 슬롯을 사용 중인 경우 업그레이드 프로세스를 진행할 수 없습니다. 논리적 복제 슬롯은 일반적으로 AWS DMS를 사용하여 데이터를 마이그레이션하거나 데이터베이스에서 데이터 레이크, BI 도구 또는 기타 대상으로 테이블을 복제하는 것과 같은 단기 데이터 마이그레이션 작업에 사용됩니다. 업그레이드하기 전에 존재하는 논리적 복제 슬롯의 용도를 알고 삭제해도 되는지 확인합니다. 다음 쿼리를 사용하여 논리적 복제 슬롯을 확인할 수 있습니다.

   ```
   SELECT * FROM pg_replication_slots;
   ```

   논리적 복제 슬롯이 계속 사용 중인 경우 삭제하면 안 되며 업그레이드를 진행할 수 없습니다. 그러나 논리적 복제 슬롯이 필요하지 않은 경우 다음 SQL을 사용하여 삭제할 수 있습니다.

   ```
   SELECT pg_drop_replication_slot(slot_name);
   ```

   `pglogical` 확장을 사용하는 논리적 복제 시나리오에서도, 게시자 노드에서 메이저 버전 업그레이드가 성공하려면 이 노드에서 슬롯을 삭제해야 합니다. 하지만 업그레이드가 끝나면 구독자 노드에서 복제 프로세스를 재시작할 수 있습니다. 자세한 내용은 [메이저 업그레이드 후 논리적 복제 재설정](Appendix.PostgreSQL.CommonDBATasks.pglogical.recover-replication-after-upgrade.md) 섹션을 참조하세요.

1. 백업을 수행합니다.

   업그레이드 프로세스는 업그레이드 중에 DB 클러스터의 DB 클러스터 스냅샷을 생성합니다. 업그레이드 프로세스 전에 수동 백업을 수행하려면 [DB 클러스터 스냅샷 생성](USER_CreateSnapshotCluster.md) 단원을 참조하십시오.

1. 메이저 버전 업그레이드를 수행하기 전에 특정 확장을 사용 가능한 최신 버전으로 업그레이드합니다. 업데이트할 확장은 다음과 같습니다.
   + `pgRouting`
   + `postgis_raster`
   + `postgis_tiger_geocoder`
   + `postgis_topology`
   + `address_standardizer`
   + `address_standardizer_data_us`

   현재 설치된 각 확장에 대해 다음 명령을 실행합니다.

   ```
   ALTER EXTENSION PostgreSQL-extension UPDATE TO 'new-version';
   ```

   자세한 내용은 [PostgreSQL 확장 버전 업그레이드](USER_UpgradeDBInstance.Upgrading.ExtensionUpgrades.md)을 참조하세요. PostGIS 업그레이드에 대한 자세한 내용은 [6단계: PostGIS 확장 업그레이드](Appendix.PostgreSQL.CommonDBATasks.PostGIS.md#Appendix.PostgreSQL.CommonDBATasks.PostGIS.Update)를 참조하세요.

1. 버전 11.x로 업그레이드하는 경우 메이저 버전 업그레이드를 수행하기 전에 지원되지 않는 확장을 삭제하세요. 삭제할 확장은 다음과 같습니다.
   + `chkpass`
   + `tsearch2` 

1. 대상 버전에 따라 `unknown` 데이터 형식을 삭제합니다.

   PostgreSQL 버전 10은 `unknown` 데이터 형식을 지원하지 않습니다. 버전 9.6 데이터베이스가 `unknown` 데이터 형식을 사용하는 경우 버전 10으로 업그레이드하면 다음과 같은 오류 메시지가 표시됩니다.

   ```
   Database instance is in a state that cannot be upgraded: PreUpgrade checks failed: 
   The instance could not be upgraded because the 'unknown' data type is used in user tables. 
   Please remove all usages of the 'unknown' data type and try again."
   ```

   이러한 열을 제거하거나 지원되는 데이터 형식으로 변경할 수 있도록 데이터베이스에서 `unknown` 데이터 형식을 찾으려면 각 데이터베이스에 대해 다음 SQL 코드를 사용합니다.

   ```
   SELECT n.nspname, c.relname, a.attname
       FROM pg_catalog.pg_class c,
       pg_catalog.pg_namespace n,
       pg_catalog.pg_attribute a
       WHERE c.oid = a.attrelid AND NOT a.attisdropped AND
       a.atttypid = 'pg_catalog.unknown'::pg_catalog.regtype AND
       c.relkind IN ('r','m','c') AND
       c.relnamespace = n.oid AND
       n.nspname !~ '^pg_temp_' AND
       n.nspname !~ '^pg_toast_temp_' AND n.nspname NOT IN ('pg_catalog', 'information_schema');
   ```

1. 업그레이드 모의 실습을 수행합니다.

   프로덕션 데이터베이스에서 업그레이드를 수행하기 전에 프로덕션 데이터베이스의 복제본에서 메이저 버전 업그레이드를 테스트하는 것이 좋습니다. 중복 테스트 인스턴스의 실행 계획을 모니터링하여 실행 계획 회귀가 발생할 수 있는지 확인하고 성능을 평가할 수 있습니다. 중복 테스트 인스턴스를 생성하려면 최근 스냅샷에서 데이터베이스를 복원하거나 데이터베이스를 복제합니다. 자세한 내용은 [스냅샷에서 복원](aurora-restore-snapshot.md#aurora-restore-snapshot.Restoring) 또는 [Aurora DB 클러스터에 대한 볼륨 복제](Aurora.Managing.Clone.md) 섹션을 참조하세요.

   자세한 내용은 [Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드](#USER_UpgradeDBInstance.Upgrading.Manual) 섹션을 참조하세요.

1. 프로덕션 인스턴스를 업그레이드합니다.

   메이저 버전 업그레이드의 모의 실습이 성공한 경우 확신을 가지고 프로덕션 데이터베이스를 업그레이드해도 됩니다. 자세한 내용은 [Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드](#USER_UpgradeDBInstance.Upgrading.Manual) 섹션을 참조하세요.

   
**참고**  
Aurora PostgreSQL은 업그레이드 프로세스 중에 DB 클러스터 스냅샷을 생성합니다. 업그레이드 프로세스 중에 클러스터를 특정 시점으로 복원할 수 없습니다. 나중에 업그레이드가 시작되기 전과 인스턴스 자동 스냅샷이 완료된 후 시간으로 백업을 완료한 이후의 시간으로 특정 시점으로 복원을 수행할 수 있습니다. 그러나 이전 마이너 버전에는 특정 시점으로 복원을 수행할 수 없습니다.

   진행 중인 업그레이드에 대한 자세한 내용은 Amazon RDS를 사용하여 pg\$1upgrade 유틸리티가 생성하는 두 개의 로그를 볼 수 있습니다. 이러한 로그는 `pg_upgrade_internal.log` 및 `pg_upgrade_server.log`입니다. Amazon Aurora는 이러한 로그의 파일 이름에 타임스탬프를 추가합니다. 다른 로그와 마찬가지로 이러한 로그를 볼 수 있습니다. 자세한 내용은 [Amazon Aurora 로그 파일 모니터링](USER_LogAccess.md) 섹션을 참조하세요.

1. PostgreSQL 확장을 업그레이드합니다. PostgreSQL 업그레이드 프로세스는 PostgreSQL 확장을 업그레이드하지 않습니다. 자세한 내용은 [PostgreSQL 확장 버전 업그레이드](USER_UpgradeDBInstance.Upgrading.ExtensionUpgrades.md) 섹션을 참조하세요.

## 업그레이드 후 권장 사항
<a name="USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.postupgrade"></a>

메이저 버전 업그레이드를 완료한 후에는 다음 작업을 수행하는 것이 좋습니다.
+ `ANALYZE` 작업을 실행하여 `pg_statistic` 테이블을 새로 고칩니다. 모든 PostgreSQL DB 인스턴스의 모든 데이터베이스에 대해 이 작업을 수행해야 합니다. 옵티마이저 통계는 메이저 버전 업그레이드 중에 전송되지 않으므로 성능 문제를 방지하려면 모든 통계를 다시 생성해야 합니다. 파라미터 없이 명령을 실행하여 다음과 같이 현재 데이터베이스의 모든 일반 테이블에 대한 통계를 생성합니다.

  ```
  ANALYZE VERBOSE;
  ```

  `VERBOSE` 플래그는 선택 사항이지만 이 플래그를 사용하면 진행 상황이 표시됩니다. 자세한 내용은 PostgreSQL 설명서의 [ANALYZE](https://www.postgresql.org/docs/10/sql-analyze.html)를 참조하세요.

  ANALYZE VERBOSE를 사용하는 대신 특정 테이블을 분석할 때는 다음과 같이 각 테이블에 대해 ANALYZE 명령을 실행합니다.

  ```
  ANALYZE table_name;
  ```

  분할된 테이블의 경우 항상 상위 테이블을 분석합니다. 이 프로세스는 다음을 수행합니다.
  + 모든 파티션에서 행 자동 샘플링
  + 각 파티션에 대한 통계를 재귀적으로 업데이트
  + 상위 수준에서 필수 계획 통계 유지

  상위 테이블은 실제 데이터를 저장하지 않지만, 쿼리 최적화를 위해서는 이를 분석하는 것이 중요합니다. 옵티마이저에는 효율적인 파티션 간 계획에 필요한 포괄적인 통계가 없으므로 개별 파티션에서만 ANALYZE를 실행하면 쿼리 성능이 저하될 수 있습니다.
**참고**  
성능 문제를 방지하려면 업그레이드 후 시스템에서 ANALYZE를 실행합니다.
+ PostgreSQL 버전 10으로 업그레이드한 경우 현재 있는 해시 인덱스에 대해 `REINDEX`를 실행합니다. 해시 인덱스는 버전 10에서 변경되었으며 다시 작성해야 합니다. 잘못된 해시 인덱스를 찾으려면 해시 인덱스가 포함된 각 데이터베이스에 대해 다음 SQL을 실행합니다.

  ```
  SELECT idx.indrelid::regclass AS table_name, 
     idx.indexrelid::regclass AS index_name 
  FROM pg_catalog.pg_index idx
     JOIN pg_catalog.pg_class cls ON cls.oid = idx.indexrelid 
     JOIN pg_catalog.pg_am am ON am.oid = cls.relam 
  WHERE am.amname = 'hash' 
  AND NOT idx.indisvalid;
  ```
+ 모든 것이 예상대로 작동하는지 확인하기 위해 유사한 워크로드로 업그레이드된 데이터베이스에서 애플리케이션을 테스트하는 것을 권장합니다. 업그레이드를 확인한 후 이 테스트 인스턴스를 삭제할 수 있습니다.

## Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드
<a name="USER_UpgradeDBInstance.Upgrading.Manual"></a>

새 메이저 버전으로 업그레이드 프로세스를 시작하면 Aurora PostgreSQL은 클러스터를 변경하기 전에 Aurora DB 클러스터의 스냅샷을 생성합니다. 이 스냅샷은 마이너 버전 업그레이드가 아닌 메이저 버전 업그레이드에 대해서만 생성됩니다. 업그레이드 프로세스가 완료되면 RDS 콘솔의 **스냅샷(Snapshots)**에 나열된 수동 스냅샷 중에서 해당 스냅샷을 찾아볼 수 있습니다. 스냅샷 이름은 아래 예와 같이 접두사로 `preupgrade`, Aurora PostgreSQL DB 클러스터의 이름, 소스 버전, 대상 버전, 날짜 및 타임스탬프로 구성됩니다.

```
preupgrade-docs-lab-apg-global-db-12-8-to-13-6-2022-05-19-00-19
```

업그레이드가 완료된 후 필요한 경우 Aurora가 생성하여 수동 스냅샷 목록에 저장된 스냅샷을 통해 DB 클러스터를 이전 버전으로 복원할 수 있습니다.

**작은 정보**  
일반적으로 스냅샷은 Aurora DB 클러스터를 다양한 시점으로 복원하는 여러 방법을 제공합니다. 자세한 내용은 [DB 클러스터 스냅샷에서 복원](aurora-restore-snapshot.md) 및 [지정된 시간으로 DB 클러스터 복원](aurora-pitr.md) 섹션을 참조하세요. 하지만 Aurora PostgreSQL 스냅샷을 사용하여 이전 마이너 버전으로 복원하는 것을 지원하지 않습니다.

메이저 버전 업그레이드 프로세스 중에 Aurora는 볼륨을 할당하고 소스 Aurora PostgreSQL DB 클러스터를 복제합니다. 어떤 이유로든 업그레이드에 실패하면 Aurora PostgreSQL은 복제본을 사용하여 업그레이드를 롤백합니다. 소스 볼륨의 복제가 15개 이상 할당되면 후속 복제는 전체 복사본이 되고 시간이 오래 걸립니다. 이로 인해 업그레이드 프로세스가 더 오래 걸릴 수 있습니다. Aurora PostgreSQL에서 업그레이드를 롤백하는 경우 다음 사항에 유의하세요.
+ 업그레이드 중에 할당된 원본 볼륨과 복제된 볼륨 모두에 대한 청구 항목 및 지표가 표시될 수 있습니다. Aurora PostgreSQL은 클러스터 백업 보존 기간이 업그레이드 시간을 초과하면 추가 볼륨을 정리합니다.
+ 이 클러스터의 다음 교차 리전 스냅샷 복사본은 증분 복사본이 아닌 전체 복사본이 됩니다.

클러스터를 구성하는 DB 인스턴스를 안전하게 업그레이드할 수 있도록 Aurora PostgreSQL에서는 pg\$1upgrade 유틸리티를 사용합니다. 라이터 업그레이드가 완료되면 각 리더 인스턴스는 새 메이저 버전으로 업그레이드되는 동안 잠시 중단됩니다. PostgreSQL 유틸리티에 대해 자세히 알아보려면 PostgreSQL 설명서의 [pg\$1upgrade](https://www.postgresql.org/docs/current/pgupgrade.html)를 참조하세요.

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 Aurora PostgreSQL DB 클러스터를 새 버전으로 업그레이드할 수 있습니다.

### 콘솔
<a name="USER_UpgradeDBInstance.Upgrading.Manual.Console"></a>

**DB 클러스터의 엔진 버전을 업그레이드하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택한 다음 업그레이드하려는 DB 클러스터를 선택합니다.

1. **수정**을 선택합니다. **DB 클러스터 수정** 페이지가 나타납니다.

1. **DB 엔진 버전**에서 새 버전을 선택합니다.

1. **계속**을 수정 사항을 요약한 내용을 확인합니다.

1. 변경 사항을 즉시 적용하려면 **즉시 적용**을 선택합니다. 일부의 경우 이 옵션을 선택하면 중단이 발생할 수 있습니다. 자세한 내용은 [Amazon Aurora DB 클러스터 수정](Aurora.Modifying.md) 섹션을 참조하세요.

1. 확인 페이지에서 변경 내용을 검토합니다. 변경 내용이 올바른 경우 **클러스터 수정**을 선택하여 변경 내용을 저장합니다.

   또는 **뒤로**를 선택하여 변경 내용을 편집하거나 **취소**를 선택하여 변경 내용을 취소합니다.

### AWS CLI
<a name="USER_UpgradeDBInstance.Upgrading.Manual.CLI"></a>

DB 클러스터의 엔진 버전을 업그레이드하려면 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) AWS CLI 명령을 사용합니다. 다음 파라미터를 지정합니다.
+ `--db-cluster-identifier` – DB 클러스터의 이름입니다.
+ `--engine-version` – 업그레이드할 데이터베이스 엔진의 버전 번호입니다. 유효한 엔진 버전에 대한 정보를 보려면 AWS CLI [ describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) 명령을 사용합니다.
+ `--allow-major-version-upgrade` – `--engine-version` 파라미터가 DB 클러스터의 현재 메이저 버전과 다른 메이저 버전일 때 필수 플래그입니다.
+ `--no-apply-immediately` – 변경 사항이 다음 유지 관리 기간에 적용됩니다. 변경 사항을 바로 적용하려면 `--apply-immediately`를 사용합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds modify-db-cluster \
2.     --db-cluster-identifier mydbcluster \
3.     --engine-version new_version \
4.     --allow-major-version-upgrade \
5.     --no-apply-immediately
```
Windows의 경우:  

```
1. aws rds modify-db-cluster ^
2.     --db-cluster-identifier mydbcluster ^
3.     --engine-version new_version ^
4.     --allow-major-version-upgrade ^
5.     --no-apply-immediately
```

### RDS API
<a name="USER_UpgradeDBInstance.Upgrading.Manual.API"></a>

DB 클러스터의 엔진 버전을 업그레이드하려면 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) 작업을 사용합니다. 다음 파라미터를 지정합니다.
+ `DBClusterIdentifier` – DB 클러스터의 이름입니다(예:*`mydbcluster`*).
+ `EngineVersion` – 업그레이드할 데이터베이스 엔진의 버전 번호입니다. 유효한 엔진 버전에 대한 정보를 보려면 [ DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html) 작업을 사용합니다.
+ `AllowMajorVersionUpgrade` – `EngineVersion` 파라미터가 DB 클러스터의 현재 메이저 버전과 다른 메이저 버전일 때 필수 플래그입니다.
+ `ApplyImmediately` – 변경 사항을 즉시 적용하거나 다음 유지 관리 기간에 적용합니다. 변경 사항을 바로 적용하려면 값을 `true`로 설정합니다. 변경 사항을 다음 유지 관리 기간에 적용하려면 값을 `false`로 설정합니다.

### 글로벌 데이터베이스에 대한 메이저 업그레이드
<a name="USER_UpgradeDBInstance.PostgreSQL.GlobalDB"></a>

Aurora Global Database 클러스터의 경우 업그레이드 프로세스는 Aurora Global Database를 구성하는 모든 DB 클러스터를 동시에 업그레이드하여 모두 동일한 Aurora PostgreSQL 버전을 실행하도록 보장합니다. 또한, 시스템 테이블, 데이터 파일 형식 등에 대한 변경 사항이 모든 보조 클러스터에 자동으로 복제되도록 합니다.

글로벌 데이터베이스 클러스터를 최신 메이저 버전의 Aurora PostgreSQL로 업그레이드하려면 [새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트](#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)에 설명된 대로 업그레이드된 버전에서 애플리케이션을 테스트하는 것이 좋습니다. [새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트](#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)의 [step 1.](#step-1)에 자세히 설명된 대로 업그레이드하기 전에 Aurora Global Database에서 각AWS 리전에 대한 DB 클러스터 파라미터 그룹 및 DB 파라미터 그룹 설정을 준비해야 합니다.

Aurora PostgreSQL 글로벌 데이터베이스 클러스터의 `rds.global_db_rpo` 파라미터에 Recovery Point Objective(RPO)가 설정된 경우 업그레이드하기 전에 해당 파라미터를 재설정해야 합니다. RPO가 켜져 있으면 메이저 버전 업그레이드 프로세스가 작동하지 않습니다. 기본적으로 이 파라미터는 비활성화됩니다. Aurora PostgreSQL 글로벌 데이터베이스 및 RPO에 대한 자세한 내용은 [Aurora PostgreSQL–기반 전역 데이터베이스에 대한 RPO 관리](aurora-global-database-disaster-recovery.md#aurora-global-database-manage-recovery) 섹션을 참조하세요.

새 버전의 평가판 배포에서 애플리케이션이 정상적으로 실행될 수 있는지 확인하면 업그레이드 프로세스를 시작할 수 있습니다. 그렇게 하려면 [Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드](#USER_UpgradeDBInstance.Upgrading.Manual) 단원을 참조하세요. 다음 이미지와 같이 RDS 콘솔의 **데이터베이스(Databases)** 목록인 **글로벌 데이터베이스(Global database)**에서 최상위 항목을 선택해야 합니다.

![\[Aurora Global Database, Aurora Serverless DB 클러스터, 다른 Aurora PostgreSQL DB 클러스터가 표시된 콘솔 이미지\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/aurora-global-database-plus-other.png)


수정했을 때와 마찬가지로 메시지가 표시되어 프로세스를 진행할지 확인합니다.

![\[Aurora PostgreSQL DB 클러스터의 업그레이드 프로세스를 확인하는 프롬프트가 표시된 콘솔 이미지\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/aurora-global-db-apg-upgrade-2.png)


콘솔을 사용하는 대신 AWS CLI 또는 RDS API를 사용하여 업그레이드 프로세스를 시작할 수 있습니다. 콘솔에서와 마찬가지로 다음과 같이 구성 요소가 아닌 Aurora Global Database 클러스터에서 작업합니다.
+ [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html) AWS CLI 명령을 사용하여 AWS CLI로 Aurora Global Database 업그레이드를 시작합니다.
+ [ModifyGlobalCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyGlobalCluster.html) API를 사용하여 업그레이드를 시작합니다.

# 마이너 버전 업그레이드 수행
<a name="USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade"></a>

다음 방법을 사용하여 DB 클러스터의 마이너 버전을 업그레이드하거나 DB 클러스터에 패치를 적용할 수 있습니다.

**Topics**
+ [마이너 버전 업그레이드를 수행하기 전](#USER_UpgradeDBInstance.PostgreSQL.BeforeMinor)
+ [마이너 버전 업그레이드 수행 및 패치 적용 방법](#USER_UpgradeDBInstance.PostgreSQL.Minor)
+ [마이너 릴리스 업그레이드 및 제로 가동 중지 패치 적용](#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp)
+ [제로 가동 중지 패치 적용의 제한 사항](#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp.limitations)
+ [Aurora PostgreSQL 엔진을 새로운 마이너 버전으로 업그레이드](#USER_UpgradeDBInstance.MinorUpgrade)

## 마이너 버전 업그레이드를 수행하기 전
<a name="USER_UpgradeDBInstance.PostgreSQL.BeforeMinor"></a>

마이너 버전 업그레이드 중에 가동 중지 시간을 줄이려면 다음 작업을 수행하는 것이 좋습니다.
+ Aurora DB 클러스터 유지 관리는 트래픽이 적은 기간에 수행해야 합니다. 성능 개선 도우미를 사용하여 이러한 기간을 식별하여 유지 관리 기간을 올바르게 구성하세요. 성능 개선 도우미에 대한 자세한 내용은 [Amazon RDS에서 성능 개선 도우미를 통한 DB 로드 모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html)을 참조하세요. DB 클러스터 유지 관리 기간에 대한 자세한 내용은 [기본 DB 클러스터 유지 관리 기간 조정](USER_UpgradeDBInstance.Maintenance.md#AdjustingTheMaintenanceWindow.Aurora) 섹션을 참조하세요.
+ 지수 백오프와 지터를 지원하는 AWS SDK를 모범 사례로 사용하세요. 자세한 내용은 [지수 백오프 및 지터](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)를 참조하세요.

## 마이너 버전 업그레이드 수행 및 패치 적용 방법
<a name="USER_UpgradeDBInstance.PostgreSQL.Minor"></a>

마이너 버전 업그레이드 및 패치는 엄격한 테스트를 거친 후에만 AWS 리전에 공개됩니다. Aurora PostgreSQL은 업그레이드 및 패치를 출시하기 전에 마이너 커뮤니티 버전 출시 이후에 발생하는 알려진 보안 문제, 버그 및 기타 문제가 Aurora PostgreSQL 플릿 안정성을 저해하지 않도록 테스트합니다.

Aurora PostgreSQL에 **마이너 버전 자동 업그레이드 사용**이 켜져 있으면 지정된 유지 관리 기간 동안 DB 클러스터가 주기적으로 업그레이드됩니다. **마이너 버전 자동 업그레이드 사용** 옵션이 Aurora PostgreSQL DB 클러스터의 모든 인스턴스에서 설정되어 있는지 확인합니다. **자동 마이너 버전 업그레이드**를 설정하는 방법과 클러스터 및 인스턴스 수준에서 설정을 적용한 경우 작동 방식에 대한 자세한 내용은 [Aurora DB 클러스터 마이너 버전 자동 업그레이드](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU) 섹션을 참조하세요.

다음과 같이 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI 명령을 사용하여 모든 Aurora PostgreSQL DB 클러스터에 대한 **마이너 버전 자동 업그레이드 사용** 옵션 값을 확인합니다.

```
aws rds describe-db-instances \
  --query '*[].{DBClusterIdentifier:DBClusterIdentifier,DBInstanceIdentifier:DBInstanceIdentifier,AutoMinorVersionUpgrade:AutoMinorVersionUpgrade}'
```

이 쿼리는 `AutoMinorVersionUpgrade` 설정 상태에 대한 `true` 또는 `false` 값과 함께 모든 Aurora DB 클러스터 및 해당 인스턴스 목록을 반환합니다. 명령에서는 기본 AWS 리전을 대상으로 삼도록 AWS CLI가 구성되어 있다고 가정합니다.

AmVU 옵션과 AmVU를 사용하도록 Aurora DB 클러스터를 수정하는 방법에 대한 자세한 내용은 [Aurora DB 클러스터 마이너 버전 자동 업그레이드](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU) 섹션을 참조하세요.

유지 관리 태스크에 응답하거나 새 버전을 사용하도록 클러스터를 수정하여 Aurora PostgreSQL DB 클러스터를 새 마이너 버전으로 업그레이드할 수 있습니다.

RDS 콘솔을 사용하고 **권장 사항(Recommendations)** 메뉴를 열어 Aurora PostgreSQL DB 클러스터에 사용 가능한 업그레이드 또는 패치를 식별할 수 있습니다. 여기에는 **이전 마이너 버전(Old minor versions)**과 같은 다양한 유지 관리 문제 목록이 나와 있습니다. 프로덕션 환경에 따라 다음과 같이 업그레이드를 **예약**하거나 **지금 적용(Apply now)**을 선택하여 즉각적인 조치를 취할 수 있습니다.

![\[최신 마이너 버전으로 업그레이드하기 위한 권장 사항이 표시된 콘솔 이미지\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-maintenance-upgrade-minor.png)


패치 및 마이너 버전 업그레이드를 수동으로 적용하는 방법을 포함하여 Aurora DB 클러스터를 유지 관리하는 방법을 자세히 알아보려면 [Amazon Aurora DB 클러스터 유지 관리](USER_UpgradeDBInstance.Maintenance.md) 섹션을 참조하세요.

## 마이너 릴리스 업그레이드 및 제로 가동 중지 패치 적용
<a name="USER_UpgradeDBInstance.PostgreSQL.Minor.zdp"></a>

Aurora PostgreSQL DB 클러스터를 업그레이드하면 중단이 발생할 수 있습니다. 업그레이드 프로세스 중에 데이터베이스가 업그레이드될 때 데이터베이스가 종료됩니다. 데이터베이스가 사용 중인 동안 업그레이드를 시작하면 DB 클러스터에서 처리하는 모든 연결 및 트랜잭션이 손실됩니다. 업그레이드를 수행하기 위해 데이터베이스가 유휴 상태가 될 때까지 기다리려면 오랜 시간을 기다려야 할 수 있습니다.

제로 가동 중지 패치 적용(ZDP) 기능은 업그레이드 프로세스를 개선합니다. ZDP를 사용하면 Aurora PostgreSQL DB 클러스터에 미치는 영향을 최소화하면서 마이너 버전 업그레이드와 패치를 모두 적용할 수 있습니다. Aurora PostgreSQL 버전 및 해당 마이너 버전의 더 높은 버전 릴리스와 더 최신의 메이저 버전 릴리스에 패치 또는 더 최신의 마이너 버전 업그레이드를 적용할 때 ZDP가 사용됩니다. 즉, 이러한 릴리스에서 새 마이너 버전으로 업그레이드하면 ZDP가 적용됩니다.

다음 테이블에는 ZDP를 사용할 수 있는 Aurora PostgreSQL 버전과 DB 인스턴스 클래스가 나와 있습니다.


| 버전 | db.r\$1 instance classes | db.t\$1 instance classes | db.x\$1 instance classes | db.serverless instance class | 
| --- | --- | --- | --- | --- | 
| 10.21 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 11.16 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 11.17 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 12.11 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 12.12 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 13.7 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 13.8 이상 버전 | 예 | 예 | 예 | 예 | 
| 14.3 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 14.4 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 14.5 이상 버전 | 예 | 예 | 예 | 예 | 
| 15.3 이상 버전 | 예 | 예 | 예 | 예 | 
| 16.1 이상 버전 | 예 | 예 | 예 | 예 | 

ZDP를 사용한 업그레이드 프로세스 중에 데이터베이스 엔진은 모든 새 트랜잭션을 일시 중지할 조용한 지점을 찾습니다. 이 작업은 패치 및 업그레이드 중에 데이터베이스를 보호합니다. 트랜잭션이 일시 중지된 상태에서 애플리케이션이 원활하게 실행되도록 하려면 재시도 로직을 코드에 통합하는 것이 좋습니다. 이 접근 방식을 통해 시스템은 짧은 가동 중지 시간을 장애 없이 관리할 수 있으며 업그레이드 후 새 트랜잭션을 재시도할 수 있습니다.

ZDP가 성공적으로 완료되면 애플리케이션 세션이 유지되며(연결이 끊긴 세션은 제외), 업그레이드가 계속 진행되는 동안 데이터베이스 엔진이 다시 시작됩니다. 데이터베이스 엔진을 다시 시작하면 처리량이 일시적으로 줄어들 수 있지만, 이러한 상황은 보통 몇 초나 최대 약 1분 정도만 지속됩니다.

경우에 따라 제로 가동 중지 패치 적용(ZDP)이 적용되지 않을 수 있습니다. 예를 들어, Aurora PostgreSQL DB 클러스터 또는 해당 인스턴스의 `pending` 상태에 있는 파라미터 변경으로 인해 ZDP가 제대로 적용되지 않을 수 있습니다.

ZDP 작업에 대한 지표와 이벤트는 콘솔의 **이벤트(Events)** 페이지에서 확인할 수 있습니다. 이벤트에는 ZDP 업그레이드 시작 및 업그레이드 완료가 포함됩니다. 여기에서 프로세스의 소요 시간 및 재시작 중에 발생한 보존 및 삭제된 연결 수를 확인할 수 있습니다. 데이터베이스 오류 로그에 자세한 내용이 나와 있습니다.

## 제로 가동 중지 패치 적용의 제한 사항
<a name="USER_UpgradeDBInstance.PostgreSQL.Minor.zdp.limitations"></a>

제로 가동 중지 패치 적용에는 다음 제한 사항이 있습니다.
+ ZDP는 Aurora PostgreSQL 업그레이드 프로세스 전반에 걸쳐 Aurora PostgreSQL 라이터 인스턴스에 대한 현재 클라이언트 연결을 유지하려고 합니다. 그러나 다음과 같은 경우에는 ZDP 완료를 위해 연결이 끊어집니다.
  + 장기 실행 쿼리 또는 트랜잭션이 진행 중인 경우.
  + 데이터 정의 언어(DDL) 문이 실행 중인 경우.
  + 임시 테이블 또는 테이블 잠금이 사용 중인 경우.
  + 모든 세션이 알림 채널에서 수신 중인 경우.
  + 커서가 'WITH HOLD' 상태에서 사용 중인 경우.
  + TLSv1.1 연결이 사용 중인 경우. Aurora PostgreSQL 버전 16.1, 15.3, 14.8, 13.11, 12.15, 11.20 이상부터 ZDP에는 TLSv1.3 연결이 지원됩니다.
+ 다음과 같은 경우에는 ZDP가 지원되지 않습니다.
  + Aurora PostgreSQL DB 클러스터가 Aurora Serverless v1로 구성된 경우.
  + Aurora 리더 인스턴스를 업그레이드하는 동안.
  + 보조 리전의 Aurora Global Database 클러스터에 속하는 Aurora 리더 인스턴스를 업그레이드하는 동안.
  + OS 패치 및 OS 업그레이드 중.

## Aurora PostgreSQL 엔진을 새로운 마이너 버전으로 업그레이드
<a name="USER_UpgradeDBInstance.MinorUpgrade"></a>

 콘솔, AWS CLI 또는 RDS API를 사용하여 Aurora PostgreSQL DB 클러스터를 새 마이너 버전으로 업그레이드할 수 있습니다. 업그레이드를 수행하려면 메이저 버전 업그레이드에 권장되는 것과 동일한 모범 사례를 따르는 것이 좋습니다. 새 메이저 버전과 마찬가지로 새 마이너 버전에도 최적화 프로그램 개선 사항 (예: 수정 사항) 이 추가되어 쿼리 계획 회귀가 발생할 수 있습니다. 계획 안정성을 보장하려면 [메이저 버전 업그레이드 후 계획 안정성 보장](AuroraPostgreSQL.Optimize.BestPractice.md#AuroraPostgreSQL.Optimize.BestPractice.MajorVersionUpgrade)에 자세히 설명된 대로 쿼리 계획 관리(QPM) 확장을 사용하는 것이 좋습니다.

### 콘솔
<a name="USER_UpgradeDBInstance.MinorUpgrade.Console"></a>

**Aurora PostgreSQL DB 클러스터의 엔진 버전을 업그레이드하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스**를 선택한 다음 업그레이드하려는 DB 클러스터를 선택합니다.

1. **수정**을 선택합니다. **DB 클러스터 수정** 페이지가 나타납니다.

1. **DB 엔진 버전**에서 새 버전을 선택합니다.

1. **계속**을 수정 사항을 요약한 내용을 확인합니다.

1. 변경 사항을 즉시 적용하려면 **즉시 적용**을 선택합니다. 일부의 경우 이 옵션을 선택하면 중단이 발생할 수 있습니다. 자세한 내용은 [Amazon Aurora DB 클러스터 수정](Aurora.Modifying.md) 섹션을 참조하세요.

1. 확인 페이지에서 변경 내용을 검토합니다. 변경 내용이 올바른 경우 **클러스터 수정**을 선택하여 변경 내용을 저장합니다.

   또는 **뒤로**를 선택하여 변경 내용을 편집하거나 **취소**를 선택하여 변경 내용을 취소합니다.

### AWS CLI
<a name="USER_UpgradeDBInstance.MinorUpgrade.CLI"></a>

DB 클러스터의 엔진 버전을 업그레이드하려면 다음 파라미터와 함께 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) AWS CLI 명령을 사용합니다.
+ `--db-cluster-identifier` - Aurora PostgreSQL DB 클러스터의 이름입니다.
+ `--engine-version` – 업그레이드할 데이터베이스 엔진의 버전 번호입니다. 유효한 엔진 버전에 대한 정보를 보려면 AWS CLI [ describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) 명령을 사용합니다.
+ `--no-apply-immediately` – 변경 사항이 다음 유지 관리 기간에 적용됩니다. 변경 사항을 바로 적용하려면 대신 `--apply-immediately`를 사용합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds modify-db-cluster \
    --db-cluster-identifier mydbcluster \
    --engine-version new_version \
    --no-apply-immediately
```

Windows의 경우:

```
aws rds modify-db-cluster ^
    --db-cluster-identifier mydbcluster ^
    --engine-version new_version ^
    --no-apply-immediately
```

### RDS API
<a name="USER_UpgradeDBInstance.MinorUpgrade.API"></a>

DB 클러스터의 엔진 버전을 업그레이드하려면 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) 작업을 사용합니다. 다음 파라미터를 지정합니다.
+ `DBClusterIdentifier` – DB 클러스터의 이름입니다(예:*`mydbcluster`*).
+ `EngineVersion` – 업그레이드할 데이터베이스 엔진의 버전 번호입니다. 유효한 엔진 버전에 대한 정보를 보려면 [ DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html) 작업을 사용합니다.
+ `ApplyImmediately` – 변경 사항을 즉시 적용하거나 다음 유지 관리 기간에 적용합니다. 변경 사항을 바로 적용하려면 값을 `true`로 설정합니다. 변경 사항을 다음 유지 관리 기간에 적용하려면 값을 `false`로 설정합니다.

# PostgreSQL 확장 버전 업그레이드
<a name="USER_UpgradeDBInstance.Upgrading.ExtensionUpgrades"></a>

Aurora PostgreSQL DB 클러스터를 새로운 메이저 또는 마이너 버전으로 업그레이드해도 PostgreSQL 확장이 동시에 업그레이드되지 않습니다. 대부분의 확장은 메이저 또는 마이너 버전 업그레이드가 완료된 후에 따로 업그레이드해야 합니다. 그러나 경우에 따라 Aurora PostgreSQL DB 엔진을 업그레이드하기 전에 확장을 업그레이드해야 할 수 있습니다. 자세한 내용은 [새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#USER_UpgradeDBInstance.PostgreSQL.MajorVersion.Upgrade.preliminary)의 [list of extensions to update](USER_UpgradeDBInstance.PostgreSQL.MajorVersion.md#upgrade-extensions) 섹션을 참조하세요.

PostgreSQL 확장을 설치하려면 `rds_superuser` 권한이 필요합니다. 일반적으로 `rds_superuser`는 특정 확장에 대한 권한을 관련 사용자(역할)에게 위임하여 해당 확장을 용이하게 관리할 수 있도록 합니다. 즉, Aurora PostgreSQL DB 클러스터의 모든 확장을 업그레이드하는 태스크에는 다양한 사용자(역할)가 관여해야 할 수 있습니다. 특히 스크립트를 사용하여 업그레이드 프로세스를 자동화하려는 경우에는 이 점을 염두에 두세요. PostgreSQL 권한 및 역할에 대한 자세한 내용은 [Amazon Aurora PostgreSQL를 사용한 보안](AuroraPostgreSQL.Security.md) 섹션을 참조하세요.

**참고**  
PostGIS 확장 프로그램 업데이트에 대한 자세한 내용은 [PostGIS 확장을 사용하여 공간 데이터 관리](Appendix.PostgreSQL.CommonDBATasks.PostGIS.md)([6단계: PostGIS 확장 업그레이드](Appendix.PostgreSQL.CommonDBATasks.PostGIS.md#Appendix.PostgreSQL.CommonDBATasks.PostGIS.Update)) 섹션을 참조하세요.  
`pg_repack` 확장을 업데이트하려면 확장을 삭제한 후 업그레이드된 DB 인스턴스에 새 버전을 생성합니다. 자세한 내용은 `pg_repack` 설명서의 [pg\$1repack 설치](https://reorg.github.io/pg_repack/)를 참조하세요.

엔진 업그레이드 후 확장 버전을 업데이트하려면 `ALTER EXTENSION UPDATE` 명령을 사용합니다.

```
ALTER EXTENSION extension_name UPDATE TO 'new_version';
```

현재 설치된 확장을 나열하려면 다음 명령에서 PostgreSQL [pg\$1extension](https://www.postgresql.org/docs/current/catalog-pg-extension.html) 카탈로그를 사용합니다.

```
SELECT * FROM pg_extension;
```

설치에 사용할 수 있는 특정 확장 버전의 목록을 보려면 다음 명령에서 PostgreSQL [pg\$1available\$1extension\$1versions](https://www.postgresql.org/docs/current/view-pg-available-extension-versions.html) 보기를 사용하십시오.

```
SELECT * FROM pg_available_extension_versions;
```

## 대체 블루/그린 업그레이드 기법
<a name="USER_UpgradeDBInstance.Upgrading.BlueGreen"></a>

경우에 따라서는 오래된 클러스터에서 업그레이드된 클러스터로 즉시 전환하는 것이 가장 중요한 우선순위일 수 있습니다. 또는 이전 클러스터와 새 클러스터를 나란히 실행하는 다단계 프로세스를 따를 수도 있습니다. 이 경우 새 클러스터가 인수할 준비가 될 때까지 이전 클러스터의 데이터를 새 클러스터로 복제합니다. 자세한 내용은 [데이터베이스 업데이트에 Amazon Aurora 블루/그린 배포 사용](blue-green-deployments.md) 섹션을 참조하십시오.

# Aurora PostgreSQL 장기 지원(LTS) 릴리스 사용
<a name="AuroraPostgreSQL.Updates.LTS"></a>

 DB 클러스터를 생성하거나 업그레이드할 때 각 새 Aurora PostgreSQL 버전을 일정 시간 동안 사용할 수 있습니다. 이 기간이 지나면 해당 버전을 사용하는 모든 클러스터를 업그레이드해야 합니다. 지원 기간이 끝나기 전에 클러스터를 수동으로 업그레이드하거나 Aurora PostgreSQL 버전이 더 이상 지원되지 않는 경우 Aurora에서 자동으로 클러스터를 업그레이드할 수 있습니다.

 Aurora는 특정 Aurora PostgreSQL 버전을 LTS(장기 지원) 릴리스로 지정합니다. LTS 릴리스를 사용하는 데이터베이스 클러스터는 비 LTS 릴리스를 사용하는 클러스터보다 동일한 버전을 더 오래 유지하고 더 적은 업그레이드 주기를 거칠 수 있습니다. LTS 마이너 버전에는 패치 버전을 통한 심각한 안정성 및 보안과 관련된 버그 수정만 포함합니다. LTS 버전에는 도입 후 릴리스된 새로운 기능은 포함하지 않습니다.

 일 년에 한 번 LTS 마이너 버전에서 실행되는 DB 클러스터는 LTS 릴리스의 최신 패치 버전으로 패치됩니다. 누적 보안 및 안정성 수정 프로그램의 혜택을 누릴 수 있도록 이 패치 작업을 수행합니다. 보안과 같이 적용해야 하는 중요한 수정 사항이 있는 경우 LTS 마이너 버전을 더 자주 패치할 수 있습니다.

**참고**  
수명 주기 동안 LTS 마이너 버전을 계속 사용하려면 해당 DB 인스턴스에 대해 자동 마이너 버전 업그레이드를 비활성화합니다. LTS 마이너 버전에서 DB 클러스터를 자동으로 업그레이드하지 않으려면 Aurora 클러스터의 모든 DB 인스턴스에서 **자동 마이너 버전 업그레이드 활성화** 확인란의 선택을 취소합니다.

 대부분의 Aurora PostgreSQL 클러스터에서 LTS 릴리스를 사용하는 대신 최신 릴리스로 업그레이드하는 것이 좋습니다. 이렇게 하면 Aurora를 관리형 서비스로 활용하고 최신 기능 및 버그 수정에 액세스할 수 있습니다. LTS 릴리스는 다음과 같은 특성을 가진 클러스터 전용입니다.
+  중요 패치의 경우 드문 경우를 제외하고는 업그레이드에 대한 Aurora PostgreSQL 애플리케이션의 가동 중지를 감당할 수 없는 경우 
+  Aurora PostgreSQL 데이터베이스 엔진을 업데이트할 때마다 클러스터 및 관련 애플리케이션의 테스트 주기 시간이 오래 걸리는 경우 
+  Aurora PostgreSQL 클러스터의 데이터베이스 버전에 애플리케이션에 필요한 모든 DB 엔진 기능과 버그 수정이 있는 경우 

 Aurora PostgreSQL에 대한 기존 LTS 릴리스는 다음과 같습니다.
+ PostgreSQL 16.8. 2025년 4월 7일에 릴리스되었습니다. 자세한 내용은 *Aurora PostgreSQL 릴리스 정보*의 [PostgreSQL 16.8](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version168x)을 참조하세요.
+ PostgreSQL 15.10 2024년 12월 27일에 릴리스되었습니다. 자세한 내용은 *Aurora PostgreSQL 릴리스 정보*의 [PostgreSQL 15.10](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#aurorapostgresql-versions-version1510x)을 참조하세요.
+ PostgreSQL 14.6. 2023년 1월 20일에 릴리스되었습니다. 자세한 내용은 *Aurora PostgreSQL 릴리스 정보*의 [PostgreSQL 14.6](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#AuroraPostgreSQL.Updates.20180305.146X)을 참조하세요.
+ PostgreSQL 13.9. 2023년 1월 20일에 릴리스되었습니다. 자세한 내용은 *Aurora PostgreSQL 릴리스 정보*의 [PostgreSQL 13.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#AuroraPostgreSQL.Updates.20180305.139X)를 참조하세요.
+ PostgreSQL 12.9. 2022년 2월 25일에 릴리스되었습니다. 자세한 내용은 *Aurora PostgreSQL 릴리스 정보*의 [PostgreSQL 12.9](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#AuroraPostgreSQL.Updates.20180305.129)를 참조하세요.
+ PostgreSQL 11.9(Aurora PostgreSQL 릴리스 3.4. 2020년 12월 11일에 릴리스되었습니다. 이 버전에 대한 자세한 내용은 *Aurora PostgreSQL 릴리스 정보*의 [PostgreSQL 11.9, Aurora PostgreSQL 릴리스 3.4](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/AuroraPostgreSQL.Updates.html#AuroraPostgreSQL.Updates.20180305.34)를 참조하세요.

LTS 버전의 지원 일정 및 릴리스 주기에 대한 자세한 내용은 [Aurora PostgreSQL의 릴리스 일정](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/aurorapostgresql-release-calendar.html)을 참조하세요.

Aurora 및 데이터베이스 엔진 버전을 식별하는 방법에 대한 자세한 내용은 [Amazon Aurora PostgreSQL 버전 식별](AuroraPostgreSQL.Updates.md#AuroraPostgreSQL.Updates.Versions) 섹션을 참조하세요.