Amazon Relational Database Service
사용 설명서 (API 버전 2014-10-31)

PostgreSQL 데이터베이스 엔진 기반 DB 인스턴스에 연결하기

Amazon RDS가 DB 인스턴스를 프로비저닝한 후에는 표준 SQL 클라이언트 애플리케이션을 사용해 인스턴스에 연결할 수 있습니다. Amazon RDS DB 인스턴스의 세부 정보를 나열하려면 AWS Management 콘솔, AWS CLI describe-db-instances 명령 또는 Amazon RDS API DescribeDBInstances 작업을 사용할 수 있습니다. 다음 정보를 제공해야 연결할 수 있습니다.

  • DB 인스턴스의 호스트나 호스트 이름에 대한 예입니다.

    myinstance.123456789012.us-east-1.rds.amazonaws.com
  • DB 인스턴스 서버가 수신 대기하는 포트입니다. 예를 들어, PostgreSQL 포트의 기본값은 5432입니다.

  • DB 인스턴스의 사용자 이름 및 암호입니다.

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

pgAdmin을 사용해 PostgreSQL DB 인스턴스에 연결

또한, 오픈 소스 도구인 pgAdmin을 사용하여 PostgreSQL DB 인스턴스를 연결할 수 있습니다.

pgAdmin을 사용해 PostgreSQL DB 인스턴스에 연결하는 방법

  1. http://www.pgadmin.org/에서 pgAdmin을 설치하십시오. 클라이언트 컴퓨터에 PostgreSQL의 로컬 인스턴스가 없어도 pgAdmin을 다운로드하고 사용할 수 있습니다.

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

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

  4. [Create - Server] 대화 상자에서 pgAdmin의 서버를 식별하기 위해 [General] 탭에 이름을 입력합니다.

  5. [Connection] 탭에서 사용자 DB 인스턴스에 있는 다음 정보를 입력합니다.

    • Host(호스트)에 엔드포인트를 입력합니다(예: mypostgresql.c6c8dntfzzhgv0.us-east-2.rds.amazonaws.com).

    • [Port]에 할당된 포트를 입력합니다.

    • [username]에서 DB 인스턴스를 생성할 때 입력했던 사용자 이름을 입력합니다.

    • Password(암호)에 DB 인스턴스를 생성할 떄 입력했던 암호를 입력합니다.

  6. Save를 선택합니다.

    연결 문제는 연결 문제 해결를 참조하십시오.

  7. pgAdmin 브라우저에서 데이터베이스에 액세스 하려면, [Servers], DB 인스턴스, [Databases]를 확장합니다. DB 인스턴스의 데이터베이스 이름을 선택합니다.

  8. SQL 명령을 입력할 수 있는 패널을 열려면, [Tools], [Query Tool]를 선택합니다.

psql을 사용해 PostgreSQL DB 인스턴스에 연결

psql 명령줄 유틸리티의 로컬 인스턴스를 사용하여 PostgreSQL DB 인스턴스에 연결할 수 있습니다. 클라이언트 컴퓨터에 PostgreSQL 또는 psql 클라이언트를 설치해야 할 수도 있습니다. psql을 사용해 PostgreSQL DB 인스턴스에 연결하려면 호스트 정보 및 액세스 자격 증명을 제공해야 합니다.

다음 형식 중 하나를 사용하여 Amazon RDS의 PostgreSQL DB 인스턴스에 연결합니다. 연결이 되면 암호를 입력하라는 메시지가 표시됩니다. 배치 작업이나 스크립트에는 --no-password 옵션을 사용합니다.

Unix는 다음 형식을 사용합니다.

psql \ --host=<DB instance endpoint> \ --port=<port> \ --username=<master user name> \ --password \ --dbname=<database name>

Windows는 다음 형식을 사용합니다.

psql ^ --host=<DB instance endpoint> ^ --port=<port> ^ --username=<master user name> ^ --password ^ --dbname=<database name>

예를 들어 다음 명령은 가상 자격 증명을 사용해 mypostgresql이라는 PostgreSQL DB 인스턴스에서 mypgdb라는 데이터베이스에 연결합니다.

psql --host=mypostgresql.c6c8mwvfdgv0.us-west-2.rds.amazonaws.com --port=5432 --username=awsuser --password --dbname=mypgdb

연결 문제 해결

DB 인스턴스에 연결할 수 없도록 만드는 가장 많은 오류가 Could not connect to server: Connection timed out.입니다. 이 오류 메시지가 표시되면 다음을 조치합니다.

  • 사용한 호스트 이름이 DB 인스턴스 엔드포인트이고 포트 번호가 올바른지 확인하십시오.

  • DB 인스턴스의 퍼블릭 액세스 가능성을 [Yes]로 설정하십시오.

  • DB 인스턴스에 할당된 보안 그룹에 모든 연결이 통과할 수 있는 방화벽을 통한 액세스를 허용하는 데 필요한 규칙이 있는지 확인하십시오. 기본값 포트 5432를 사용해 DB 인스턴스를 생성했는데, 기업 방화벽 규칙이 기업 장치의 해당 포트 연결을 차단하는 경우를 예로 들 수 있습니다.

    이 오류를 수정하려면 다른 포트를 사용하도록 DB 인스턴스를 수정해야 합니다. 또 DB 인스턴스에 적용된 보안 그룹의 새로운 포트에 대한 연결이 허용되어야 합니다.

  • 애플리케이션이 실행되고 있는 디바이스 또는 Amazon EC2 인스턴스의 연결을 승인하지 않는 보안 그룹을 사용하여 DB 인스턴스를 생성했는지 여부를 확인합니다. 연결이 되도록 만들려면, 생성 때 DB 인스턴스에 할당한 보안 그룹이 DB 인스턴스 액세스를 허용해야 합니다. 예를 들어, DB 인스턴스가 VPC 내부에서 생성된 경우 이 인스턴스의 VPC 보안 그룹에서 연결 권한을 부여해야 합니다. 또한, DB 인스턴스가 VPC 외부에서 생성된 경우에는 이 인스턴스의 데이터베이스 보안 그룹에서 이 연결을 승인해야 합니다.

지금까지 가장 많이 발생하고 있는 연결 문제는 DB 인스턴스에 할당된 보안 그룹의 액세스 규칙과 관련이 있습니다. DB 인스턴스를 만들 때 기본 DB 보안 그룹을 사용한 경우 인스턴스에 액세스할 수 있도록 허용하는 규칙이 보안 그룹에 없을 확률이 큽니다. Amazon RDS 보안 그룹에 대한 자세한 내용은 보안 그룹을 통한 액세스 제어 단원을 참조하십시오.