RDS for PostgreSQL 인스턴스에 대한 연결 문제 해결
주제
Error – FATAL: database name
does not exist
연결할 때 FATAL: database
같은 오류가 발생하면 name
does not exist--dbname
옵션에 기본 데이터베이스 이름 postgres를 사용해봅니다.
Error – Could not connect to server: Connection timed out
DB 인스턴스에 연결할 수 없도록 만드는 가장 많은 오류가 Could
not connect to server: Connection timed out.
입니다. 이 오류 메시지가 표시되면 다음을 확인합니다.
-
사용한 호스트 이름이 DB 인스턴스 엔드포인트이고 포트 번호가 올바른지 확인하십시오.
-
외부 연결을 허용하도록 DB 인스턴스의 퍼블릭 액세스 가능성이 예(Yes)로 설정되어 있는지 확인합니다. 퍼블릭 액세스(Public access) 설정을 수정하려면 Amazon RDS DB 인스턴스 수정 섹션을 참조하세요.
-
데이터베이스에 연결하는 사용자에게 CONNECT 액세스 권한이 있는지 확인합니다. 다음 쿼리를 사용하여 데이터베이스에 대한 연결 액세스를 제공할 수 있습니다.
GRANT CONNECT ON DATABASE
database name
TOusername
; -
DB 인스턴스에 할당된 보안 그룹에 모든 연결이 통과할 수 있는 방화벽을 통한 액세스를 허용하는 데 필요한 규칙이 있는지 확인하십시오. 기본값 포트 5432를 사용해 DB 인스턴스를 생성했는데, 기업 방화벽 규칙이 외부 회사 디바이스의 해당 포트 연결을 차단하는 경우를 예로 들 수 있습니다.
이 오류를 수정하려면 다른 포트를 사용하도록 DB 인스턴스를 수정해야 합니다. 또 DB 인스턴스에 적용된 보안 그룹의 새로운 포트에 대한 연결이 허용되어야 합니다. 데이터베이스 포트(Database port) 설정을 수정하려면 Amazon RDS DB 인스턴스 수정 섹션을 참조하세요.
-
또한 보안 그룹 액세스 규칙 오류 단원도 참조하십시오.
보안 그룹 액세스 규칙 오류
지금까지 가장 많이 발생하고 있는 연결 문제는 DB 인스턴스에 할당된 보안 그룹의 액세스 규칙과 관련이 있습니다. DB 인스턴스를 만들 때 기본 보안 그룹을 사용한 경우 인스턴스에 액세스할 수 있도록 허용하는 규칙이 보안 그룹에 없을 확률이 큽니다.
연결이 되도록 만들려면, 생성 때 DB 인스턴스에 할당한 보안 그룹이 DB 인스턴스 액세스를 허용해야 합니다. 예를 들어, DB 인스턴스가 VPC 내부에서 생성된 경우 이 인스턴스의 VPC 보안 그룹에서 연결 권한을 부여해야 합니다. 애플리케이션이 실행되고 있는 디바이스 또는 Amazon EC2 인스턴스의 연결을 승인하지 않는 보안 그룹을 사용하여 DB 인스턴스를 생성했는지 여부를 확인합니다.
보안 그룹에서 인바운드 규칙을 추가하거나 편집할 수 있습니다. 소스로 내 IP를 선택하면 브라우저에서 감지된 IP 주소에서 DB 인스턴스에 액세스할 수 있습니다. 자세한 내용은 보안 그룹을 생성하여 VPC 내부의 DB 인스턴스에 대한 액세스를 제공 섹션을 참조하세요.
또한, DB 인스턴스가 VPC 외부에서 생성된 경우에는 이 인스턴스의 데이터베이스 보안 그룹에서 이 연결을 승인해야 합니다.
Amazon RDS 보안 그룹에 대한 자세한 내용은 보안 그룹을 통한 액세스 제어 단원을 참조하십시오.