이 페이지에서는 PostgreSQL용 AlloyDB에서 제공하는 데이터베이스에 연결하는 방법을 요약해서 보여줍니다.
네트워킹: AlloyDB 인스턴스는 가상 프라이빗 클라우드(VPC)에서 공개 또는 비공개 IP를 사용합니다. 다양한 기법을 통해 VPC 외부에서 실행되는 애플리케이션에서 안전하게 연결할 수 있습니다.
승인: AlloyDB Auth Proxy를 사용하면 Identity and Access Management(IAM)를 사용하여 데이터에 액세스할 수 있는 사용자를 제어할 수 있습니다. VPC의 방화벽을 통해 AlloyDB 리소스에 대한 액세스를 더 세밀하게 조정할 수 있습니다.
인증: 표준 PostgreSQL 사용자 인증 방식을 사용해 인스턴스에 로그인합니다. 또한 AlloyDB는 표준 PostgreSQL 사용자 역할을 사용하는 IAM 기반 인증도 지원합니다.
네트워킹
AlloyDB 인스턴스에는 여러 노드가 포함되어 있지만 애플리케이션은 단일 고정 IP 주소를 통해 인스턴스에 연결합니다. 이 주소는 인스턴스 클러스터를 처음 설정할 때 지정한 VPC에 대한 비공개 IP일 수도 있고, VPC 외부에서 직접 연결을 허용하는 공개 IP일 수도 있습니다.
비공개 IP
AlloyDB를 비공개 IP로 구성하면 인스턴스에 VPC 내의 비공개 IP 주소가 할당됩니다.
비공개 IP 주소는 애플리케이션 연결에 두 가지 방식으로 영향을 줍니다.
프로젝트의 VPC 내 다른 곳에서 실행되는 애플리케이션은 추가 단계나 리소스 없이 인스턴스 또는 인스턴스를 나타내는 프록시에 연결할 수 있습니다.
예를 들어 인스턴스에 psql 클라이언트 연결에서는 VPC 내 Compute Engine VM에서
psql
명령줄 프로그램을 실행하여 AlloyDB 인스턴스에 연결하는 방법을 보여줍니다.VPC 외부에서 실행되는 애플리케이션은 AlloyDB 인스턴스에 연결하기 위해 중개 서비스가 필요합니다. 이를 해결하는 솔루션에는 인스턴스의 VPC 내 VM에서 프록시 서비스를 실행하거나 다른Google Cloud 제품을 사용하여 애플리케이션과 VPC 간에 영구 연결을 설정하는 방법이 포함됩니다.
자세한 내용은 VPC 외부에서 클러스터에 연결을 참조하세요.
일반적으로 비공개 IP를 통한 연결은 인터넷을 거칠 필요가 없으므로 지연 시간이 짧고 공격 벡터가 제한됩니다.
AlloyDB의 비공개 IP에 대한 자세한 내용은 비공개 IP 개요를 참조하세요.
공개 IP
AlloyDB를 공개 IP로 구성하면 인스턴스에 인바운드 연결을 위한 공개 IP 주소가 할당되며, 이 주소는 공개 인터넷에서 액세스할 수 있습니다. 선택적으로 승인된 외부 네트워크를 사용하여 인스턴스에 액세스할 수 있는 IP 주소 범위를 CIDR 형식으로 지정할 수 있습니다.
클라이언트와 인스턴스 간의 보안 연결을 보장하려면 AlloyDB 언어 커넥터와 함께 공개 IP를 사용하는 것이 좋습니다.
인스턴스에 공개 IP 및 승인된 외부 네트워크를 추가하는 방법에 대한 자세한 내용은 공개 IP를 사용하여 연결을 참조하세요.
AlloyDB는 인스턴스로의 아웃바운드 연결도 지원합니다. 아웃바운드 공개 IP를 사용 설정하면 Database Migration Service 또는 자체 관리 pglogical
설정을 사용해외부 소스에서 AlloyDB로 직접 데이터베이스를 마이그레이션할 수 있습니다. 또한 AlloyDB는 postgres_fdw
또는 oracle_fdw
와 같은 외부 데이터 래퍼를 사용하여 외부 데이터 소스에 연결하는 것도 지원합니다.
아웃바운드 공개 IP를 사용 설정하는 방법에 대한 자세한 내용은 인스턴스에 아웃바운드 연결 추가를 참조하세요.
승인
AlloyDB 클러스터에 대한 액세스는 AlloyDB 언어 커넥터, AlloyDB 인증 프록시 또는 VPC 방화벽 규칙을 사용하여 제어할 수 있습니다.
AlloyDB 언어 커넥터
AlloyDB 언어 커넥터는 AlloyDB 클러스터에 연결할 때 TLS 1.3 기반의 자동 mTLS와 IAM 승인을 제공하는 클라이언트 라이브러리입니다.
이 라이브러리는 각 프로그래밍 언어에서 직접 사용할 수 있습니다. 외부 프로세스를 실행하지 않고도 AlloyDB 프록시와 동일한 기능을 제공합니다. 따라서 AlloyDB에 연결할 때 보안이 강화되고 구성 요구사항이 줄어듭니다.
자세한 내용은 AlloyDB 언어 커넥터 개요를 참조하세요.
IAM 및 AlloyDB 인증 프록시로 액세스 제어
인스턴스의 IP 주소를 통해 직접 연결할 수도 있지만 프로덕션 환경에서는 AlloyDB 인증 프록시를 사용하는 것이 좋습니다. 인증 프록시는 IAM 기반 액세스 제어와 프록시 및 클러스터 간의 엔드 투 엔드 암호화를 제공합니다.
자세한 내용은 AlloyDB 인증 프록시 정보를 참조하세요.
방화벽 규칙으로 VPC 액세스 제한
클라우드 기반 프로젝트와 마찬가지로 애플리케이션이 연결하는 IP 범위 또는 서브네트워크만 네트워크 액세스를 허용하도록 VPC 방화벽 규칙을 조정해야 합니다. 이는 특히 외부 애플리케이션의 경우에 중요합니다. 자세한 내용은 VPC 외부에서 클러스터에 연결을 참조하세요.
VPC 방화벽 구성에 대한 자세한 내용은 VPC 방화벽 규칙을 참조하세요.
인증
AlloyDB는 두 가지 유형의 데이터베이스 사용자를 지원하며, 각각 데이터베이스를 인증하는 고유한 방식이 있습니다.
표준 PostgreSQL 사용자 역할은 사용자 이름과 비밀번호를 사용해 인증합니다. 이러한 계정은 일반적인 PostgreSQL 사용자 관리 기법으로 관리합니다. 자세한 내용은 AlloyDB 사용자 역할 관리를 참조하세요.
IAM 사용자 및 서비스 계정은 OAuth 2.0 토큰을 사용해 데이터베이스 사용자로 인증합니다. 이러한 계정은Google Cloud IAM 시스템을 사용해 관리합니다. 자세한 내용은 IAM 인증 관리를 참조하세요.
AlloyDB 인스턴스에 인증이 완료되면 애플리케이션은 해당 인스턴스를 일반 PostgreSQL 서버처럼 사용할 수 있습니다. 인스턴스에 네트워킹 및 승인 경로를 설정한 후 표준 PostgreSQL 기법을 사용해 인스턴스에 로그인하고 데이터를 액세스할 수 있습니다. 이는 psql
과 같은 도구를 사용해 수동으로 로그인하거나 PostgreSQL 코드 라이브러리를 사용해 프로그래매틱 방식으로 데이터베이스에 연결하는 경우 모두 동일합니다.
일반적으로 새 AlloyDB 클러스터에서 처음 인증을 수행할 때는 클러스터를 만들 때 지정한 비밀번호를 사용하여 기본 인스턴스에 postgres
사용자로 로그인합니다. 이후에는 애플리케이션에서 사용할 수 있도록 관리자 권한이 없는 데이터베이스 사용자를 만드는 것이 좋습니다.
다음 단계
psql
명령줄 셸을 사용하여 AlloyDB 인스턴스에 연결하는 방법을 알아봅니다. 여기에는 VPC 내에 VM을 설정하고 여기에psql
를 설치하는 안내가 포함됩니다.데이터베이스 만들기 방법을 알아봅니다.
AlloyDB 인증 프록시를 설치하고 사용하여 AlloyDB 인스턴스와 보안 연결을 설정하는 방법을 알아봅니다.
AlloyDB 언어 커넥터를 사용한 연결 방법에 대해 알아봅니다.