

# PostgreSQL 데이터베이스 엔진을 실행하는 DB 인스턴스에 연결
<a name="USER_ConnectToPostgreSQLInstance"></a>

Amazon RDS가 DB 인스턴스를 프로비저닝한 후에는 표준 SQL 클라이언트 애플리케이션을 사용해 인스턴스에 연결할 수 있습니다. 연결하려면 먼저 DB 인스턴스를 사용할 수 있고 액세스할 수 있어야 합니다. VPC 외부에서 인스턴스에 연결할 수 있는지 여부는 Amazon RDS DB 인스턴스를 생성한 방법에 따라 달라집니다.
+ DB 인스턴스를 *퍼블릭*으로 생성한 경우 VPC 외부의 디바이스 및 Amazon EC2 인스턴스를 데이터베이스에 연결할 수 있습니다.
+ DB 인스턴스를 *프라이빗*으로 생성한 경우 Amazon VPC 내의 Amazon EC2 인스턴스 및 디바이스만 데이터베이스에 연결할 수 있습니다.

DB 인스턴스가 퍼블릭인지 프라이빗인지 확인하려면 AWS Management Console을 사용하여 인스턴스의 **연결 & 보안(Connectivity & security)** 탭을 봅니다. **보안(Security)** 아래에서 "퍼블릭 액세스 가능(Publicly accessible)" 값이 아니요(No)이면 프라이빗이고 예(Yes)이면 퍼블릭입니다.

다양한 Amazon RDS 및 Amazon VPC 구성과 이러한 구성이 접근성에 미치는 영향에 대한 자세한 내용은 [VPC에서 DB 인스턴스에 액세스하는 시나리오](USER_VPC.Scenarios.md) 섹션을 참조하세요.

**Contents**
+ [psql 클라이언트 설치](#install-psql)
+ [RDS for PostgreSQL DB 인스턴스에 대한 연결 정보 찾기](#postgresql-endpoint)
+ [pgAdmin을 사용하여 RDS for PostgreSQL DB 인스턴스에 연결](USER_ConnectToPostgreSQLInstance.pgAdmin.md)
+ [psql을 사용하여 RDS for PostgreSQL DB 인스턴스에 연결](USER_ConnectToPostgreSQLInstance.psql.md)
+ [Amazon Web Services(AWS) JDBC 드라이버를 사용하여 RDS for PostgreSQL에 연결](PostgreSQL.Connecting.JDBCDriver.md)
+ [Amazon Web Services(AWS) Python 드라이버를 사용하여 RDS for PostgreSQL에 연결](PostgreSQL.Connecting.PythonDriver.md)
+ [RDS for PostgreSQL 인스턴스에 대한 연결 문제 해결](USER_ConnectToPostgreSQLInstance.Troubleshooting.md)
  + [Error – FATAL: database {{name}} does not exist](USER_ConnectToPostgreSQLInstance.Troubleshooting.md#USER_ConnectToPostgreSQLInstance.Troubleshooting-DBname)
  + [Error – Could not connect to server: Connection timed out](USER_ConnectToPostgreSQLInstance.Troubleshooting.md#USER_ConnectToPostgreSQLInstance.Troubleshooting-timeout)
  + [보안 그룹 액세스 규칙 오류](USER_ConnectToPostgreSQLInstance.Troubleshooting.md#USER_ConnectToPostgreSQLInstance.Troubleshooting-AccessRules)

## psql 클라이언트 설치
<a name="install-psql"></a>

EC2 인스턴스에서 DB 인스턴스에 연결하려면 EC2 인스턴스에 PostgreSQL 클라이언트를 설치하면 됩니다. 최신 버전의 psql 클라이언트를 Amazon Linux 2023에 설치하려면 다음 명령을 실행하세요.

```
sudo dnf install postgresql{{<version number>}}
```

최신 버전의 psql 클라이언트를 Amazon Linux 2에 설치하려면 다음 명령을 실행하세요.

```
sudo yum install -y postgresql
```

최신 버전의 psql 클라이언트를 Ubuntu에 설치하려면 다음 명령을 실행하세요.

```
sudo apt install -y postgresql-client
```

## RDS for PostgreSQL DB 인스턴스에 대한 연결 정보 찾기
<a name="postgresql-endpoint"></a>

DB 인스턴스를 사용할 수 있고 액세스할 수 있는 경우 SQL 클라이언트 애플리케이션에 다음 정보를 제공하여 연결할 수 있습니다.
+ 인스턴스의 호스트 이름(DNS 이름) 역할을 하는 DB 인스턴스 엔드포인트입니다.
+ DB 인스턴스 서버가 수신 대기하는 포트입니다. PostgreSQL의 경우 기본 포트는 5432입니다.
+ DB 인스턴스의 사용자 이름 및 암호입니다. 기본으로 설정된 PostgreSQL의 '기본 사용자 이름'은 `postgres`입니다.
+ 데이터베이스의 이름 및 암호입니다(DB 이름).

 이러한 세부 정보는 AWS Management Console, AWS CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 명령 또는 Amazon RDS API [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 작업을 사용하여 확인할 수 있습니다.

**AWS Management Console을 사용하여 엔드포인트, 포트 번호, DB 이름을 찾는 방법**

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

1. RDS 콘솔을 연 다음 **데이터베이스**를 선택해 DB 인스턴스의 목록을 표시합니다.

1. 세부 정보를 표시하고자 하는 PostgreSQL DB 인스턴스 이름을 선택합니다.

1. **Connectivity & security(연결 및 보안)** 탭에서 엔드포인트를 복사합니다. 또한 포트 번호를 적어 둡니다. DB 인스턴스에 연결하려면 엔드포인트와 포트 번호가 모두 필요합니다.  
![RDS 콘솔에서 엔드포인트 가져오기](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/PostgreSQL-endpoint.png)

1. **구성** 탭에 나와 있는 DB 이름을 적어 둡니다. RDS for PostgreSQL 인스턴스를 만들 때 데이터베이스를 생성한 경우 DB 이름 아래에 이름이 표시됩니다. 데이터베이스를 만들지 않은 경우 DB 이름에 대시(‐)가 표시됩니다.  
![RDS 콘솔에서 DB 이름 가져오기](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/PostgreSQL-db-name.png)

다음은 PostgreSQL DB 인스턴스에 연결하는 두 가지 방법입니다. 첫 번째 예에서는 PostgreSQL의 잘 알려진 오픈 소스 관리 및 개발 도구인 pgAdmin을 사용합니다. 두 번째 예에서는 PostgreSQL 설치에 속하는 명령행 유틸리티인 psql을 사용합니다.