AlloyDB Language Connectors は、クラスタへの安全な接続を確立するための簡素化されたプロセスを提供するライブラリです。次のものを使用します。
- 自動 mTLS 接続
- Identity and Access Management(IAM)ベースの認可のサポート
- IAM 認証の自動化
ネットワーク パスがまだ存在しない場合、AlloyDB Language コネクタは AlloyDB クラスタへのネットワーク パスを提供できません。
AlloyDB Language Connectors の詳細については、AlloyDB Language Connectors の概要をご覧ください。
このページでは、次の AlloyDB 言語コネクタについて説明します。
- AlloyDB Java コネクタ
- AlloyDB Go コネクタ
- AlloyDB Python コネクタ
始める前に
AlloyDB Admin API を有効にします。
AlloyDB インスタンスを作成し、デフォルト ユーザーを構成します。
インスタンスの作成の詳細については、プライマリ インスタンスを作成するをご覧ください。
ユーザーロールの詳細については、事前定義された AlloyDB IAM ロールをご覧ください。
AlloyDB インスタンスへの接続に必要な次のロールと権限を構成します。
roles/alloydb.client
roles/serviceusage.serviceUsageConsumer
必要なロールと権限の詳細については、IAM 認証を管理するをご覧ください。
AlloyDB Language コネクタをインストールする
Java
AlloyDB Java コネクタは、AlloyDB インスタンスへの接続時に IAM ベースの認可と暗号化を提供するライブラリです。
インストール
Maven の場合は、プロジェクトの pom.xml
に次のコードを追加して AlloyDB Java Connector をインストールできます。
<!-- Add the connector with the latest version -->
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>alloydb-jdbc-connector</artifactId>
<version>0.4.0</version>
</dependency>
<!-- Add the driver with the latest version -->
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>46.6.0<</version>
</dependency>
<!-- Add HikariCP with the latest version -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>5.1.0</version>
</dependency>
Gradle の場合は、プロジェクトの gradle.build
に次のコードを追加して AlloyDB Java Connector をインストールできます。
// Add connector with the latest version
implementation group: 'com.google.cloud.alloydb', name: 'alloydb-jdbc-connector', version: '0.4.0'
// Add driver with the latest version
implementation group: 'org.postgresql', name: 'postgresql', version: '46.6.0'
// Add HikariCP with the latest version
implementation group: 'com.zaxxer', name: 'HikariCP', version: '5.1.0'
Python(pg8000)
AlloyDB Python コネクタは、データベース ドライバとともに使用できるライブラリです。これにより、十分な権限があるユーザーは IP を手動で許可リストに登録することなく、AlloyDB データベースに接続できるようになります。
インストール
AlloyDB Python Connector ライブラリは pip install
を使用してインストールできます。
pg8000 を使用している場合は、次のコマンドを実行します。
pip install "google-cloud-alloydb-connector[pg8000]" sqlalchemy
Python(asyncpg)
AlloyDB Python コネクタはデータベース ドライバとともに使用できるライブラリです。これにより、十分な権限があるユーザーは IP を手動で許可リストに登録することなく、AlloyDB データベースに接続できるようになります。
インストール
AlloyDB Python Connector ライブラリは pip install
を使用してインストールできます。
asyncpg を使用している場合は、次のコマンドを実行します。
asyncpg の場合は、次を使用します。
pip install "google-cloud-alloydb-connector[asyncpg]" "sqlalchemy[asyncio]"
非同期ドライバの使用方法の詳細については、非同期ドライバの使用をご覧ください。
Go(pgx)
AlloyDB Go コネクタは、Go 言語で使用するように設計された AlloyDB コネクタです。
インストール
AlloyDB Go Connector は go get
を使用してインストールできます。
pgx を使用している場合は、次のコマンドを実行します。
go get github.com/jackc/pgx/v5
go get cloud.google.com/go/alloydbconn
Go(database/sql)
AlloyDB Go コネクタは、Go 言語で使用するように設計された AlloyDB コネクタです。
インストール
AlloyDB Go Connector は go get
を使用してインストールできます。
database/sql を使用している場合は、次のコマンドを実行します。
go get cloud.google.com/go/alloydbconn
AlloyDB 言語コネクタを構成する
Java
AlloyDB Java コネクタを使用して AlloyDB クラスタに接続するには、次の手順で構成します。
このスニペットをウェブ アプリケーションのコンテキストで使用するには、GitHub の README をご覧ください。
パブリック IP を使用する
パブリック IP を使用して AlloyDB クラスタに接続する場合は、次のようにします。
config.addDataSourceProperty("alloydbIpType", "PUBLIC");
Private Service Connect を使用する
Private Service Connect を使用して AlloyDB インスタンスに接続する場合は、次のものを含めます。
config.addDataSourceProperty("alloydbIpType", "PSC");
IAM の自動認証
デフォルトでは、AlloyDB Language Connectors は組み込みの認証を使用します。AlloyDB Java コネクタでは、IAM の自動認証を使用できます。有効にするには、次のコードを含めます。
config.addDataSourceProperty("alloydbEnableIAMAuth", "true");
Python(pg8000)
AlloyDB Python Connector を使用して AlloyDB クラスタに接続するには、pg8000
を使用している場合は、次の手順でコネクタを構成します。
このスニペットをウェブ アプリケーションのコンテキストで使用するには、GitHub の README をご覧ください。
パブリック IP を使用する
パブリック IP を使用して AlloyDB クラスタに接続する場合は、接続関数を次のように置き換えます。
def getconn() -> pg8000.dbapi.Connection:
conn: pg8000.dbapi.Connection = connector.connect(
inst_uri,
"pg8000",
user=user,
password=password,
db=db,
# use ip_type to specify public IP
ip_type=IPTypes.PUBLIC,
)
return conn
Private Service Connect を使用する
Private Service Connect を使用して AlloyDB インスタンスに接続する場合は、次のものを含めます。
def getconn() -> pg8000.dbapi.Connection:
conn: pg8000.dbapi.Connection = connector.connect(
inst_uri,
"pg8000",
user=user,
password=password,
db=db,
# use ip_type to specify PSC
ip_type=IPTypes.PSC,
)
return conn
IAM の自動認証
デフォルトでは、AlloyDB Language Connectors は組み込みの認証を使用します。AlloyDB Python コネクタでは、IAM の自動認証を使用できます。有効にするには、接続関数を次のように置き換えます。
def getconn() -> pg8000.dbapi.Connection:
conn: pg8000.dbapi.Connection = connector.connect(
inst_uri,
"pg8000",
user=user,
password=password,
db=db,
# use enable_iam_auth to enable IAM authentication
enable_iam_auth=True,
)
return conn
Python(asyncpg)
AlloyDB Python Connector を使用して AlloyDB クラスタに接続するには、async
を使用している場合は、次の手順でコネクタを構成します。
このスニペットをウェブ アプリケーションのコンテキストで使用するには、GitHub の README をご覧ください。
パブリック IP を使用する
パブリック IP を使用して AlloyDB クラスタに接続する場合は、接続関数を次のように置き換えます。
async def getconn() -> asyncpg.Connection:
conn: asyncpg.Connection = await connector.connect(
inst_uri,
"asyncpg",
user=user,
password=password,
db=db,
# use ip_type to specify public IP
ip_type=IPTypes.PUBLIC,
)
return conn
Private Service Connect を使用する
Private Service Connect を使用して AlloyDB インスタンスに接続する場合は、次のものを含めます。
async def getconn() -> asyncpg.Connection:
conn: asyncpg.Connection = await connector.connect(
inst_uri,
"asyncpg",
user=user,
password=password,
db=db,
# use ip_type to specify PSC
ip_type=IPTypes.PSC,
)
return conn
IAM の自動認証
デフォルトでは、AlloyDB Language Connectors は組み込みの認証を使用します。AlloyDB Python コネクタでは、IAM の自動認証を使用できます。有効にするには、接続関数を次のように置き換えます。
async def getconn() -> asyncpg.Connection:
conn: asyncpg.Connection = await connector.connect(
inst_uri,
"asyncpg",
user=user,
password=password,
db=db,
# use enable_iam_auth to enable IAM authentication
enable_iam_auth=True,
)
return conn
Go(pgx)
AlloyDB Go Connector を使用して AlloyDB クラスタに接続するには、pgx
を使用している場合は、次の手順でコネクタを構成します。
このスニペットをウェブ アプリケーションのコンテキストで使用するには、GitHub の README をご覧ください。
パブリック IP を使用する
パブリック IP を使用して AlloyDB クラスタに接続する場合は、d.Dial
関数を次のように置き換えます。
d.Dial(ctx, instURI, alloydbconn.WithPublicIP())
Private Service Connect を使用する
Private Service Connect を使用して AlloyDB インスタンスに接続する場合は、次のものを含めます。
d.Dial(ctx, instURI, alloydbconn.WithPSC())
IAM の自動認証
デフォルトでは、AlloyDB Language Connectors は組み込みの認証を使用します。AlloyDB Go コネクタでは、IAM の自動認証を使用できます。有効にするには、alloydbconn.NewDialer
関数を次のように置き換えます。
d, err := alloydbconn.NewDialer(ctx, alloydbconn.WithIAMAuthN())
Go(database/sql)
AlloyDB Go コネクタを使用して AlloyDB クラスタに接続するには、database/sql
を使用している場合は、次の手順でコネクタを構成します。
このスニペットをウェブ アプリケーションのコンテキストで使用するには、GitHub の README をご覧ください。
パブリック IP を使用する
パブリック IP を使用して AlloyDB クラスタに接続する場合は、RegisterDriver
関数を次のように置き換えます。
cleanup, err := pgxv5.RegisterDriver(
"alloydb",
alloydbconn.WithDefaultDialOptions(alloydbconn.WithPublicIP())
)
Private Service Connect を使用する
Private Service Connect を使用して AlloyDB インスタンスに接続する場合は、次のものを含めます。
cleanup, err := pgxv5.RegisterDriver(
"alloydb",
alloydbconn.WithDefaultDialOptions(alloydbconn.WithPSC())
)
IAM の自動認証
デフォルトでは、AlloyDB Language Connectors は組み込みの認証を使用します。AlloyDB Go コネクタでは、IAM の自動認証を使用できます。有効にするには、RegisterDriver
関数を次のように置き換えます。
cleanup, err := pgxv4.RegisterDriver(
"alloydb",
alloydbconn.WithIAMAuthN()
)