

# PostgreSQL 互換クライアントを使用した Aurora DSQL へのアクセス
<a name="accessing"></a>

Aurora DSQL は [PostgreSQL ワイヤプロトコル](https://www.postgresql.org/docs/current/protocol.html)を使用します。AWS CloudShell、psql、DBeaver、DataGrip など、さまざまなツールやクライアントを使用して PostgreSQL に接続できます。次の表は、Aurora DSQL が一般的な PostgreSQL 接続パラメータをマッピングする方法をまとめたものです。


| PostgreSQL | Aurora DSQL | 注意事項 | 
| --- | --- | --- | 
| ロール (ユーザーまたはグループとも呼ばれます) | データベースロール | Aurora DSQL は、admin という名前のロールを作成します。カスタムデータベースロールを作成する場合は、admin ロールを使用して、それをクラスターへの接続時の認証に使用する IAM ロールに関連付ける必要があります。詳細については、「[データベースロールと IAM 認証の使用](using-database-and-iam-roles.md)」を参照してください。 | 
| ホスト (hostname または hostspec とも呼ばれます) | クラスターエンドポイント | Aurora DSQL の単一リージョンクラスターは、単一のマネージドエンドポイントを提供し、リージョン内で利用できない場合はトラフィックを自動的にリダイレクトします。 | 
| ポート | 該当なし - デフォルトの 5432 を使用 | これは PostgreSQL のデフォルトです。 | 
| データベース (dbname) | postgres を使用 | Aurora DSQL は、クラスターの作成時にこのデータベースを作成します。 | 
| SSL モード | SSL は常にサーバー側で有効 | Aurora DSQL では、Aurora DSQL は require SSL モードをサポートしています。SSL を使用しない接続は Aurora DSQL によって拒否されます。 | 
| パスワード | 認証トークン | Aurora DSQL には、存続期間の長いパスワードの代わりに一時的な認証トークンが必要です。詳細については「[Amazon Aurora DSQL での認証トークンの生成](SECTION_authentication-token.md)」を参照してください。 | 

接続する場合、Aurora DSQL は従来のパスワードの代わりに署名付き IAM [認証トークン](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/SECTION_authentication-token.html)を必要とします。これらの一時トークンは AWS 署名バージョン 4 を使用して生成され、接続確立中のみ使用されます。接続すると、セッションが終了するかクライアントが切断されるまで、セッションはアクティブのままになります。

期限切れのトークンを使用して新しいセッションを開こうとすると、接続リクエストは失敗し、新しいトークンを生成する必要があります。詳細については、「[Amazon Aurora DSQL での認証トークンの生成](SECTION_authentication-token.md)」を参照してください。

## サポートされているセッションパラメータ
<a name="accessing-session-parameters"></a>

Aurora DSQL は、ストレージ、接続管理、トランザクション処理を自動的に最適化するため、焦点を絞ったセッションパラメータのセットをサポートします。Aurora DSQL は、次の表に示すパラメータを受け入れます。このセットに含まれないパラメータは、次のエラーを返します。

```
ERROR: setting configuration parameter "{{parameter_name}}" not supported
```

Aurora DSQL は、次の PostgreSQL セッションパラメータをサポートしています。特に明記されていない限り、これらは `SET`、`SET SESSION`、または接続文字列のオプションを使用して設定できます。`SET LOCAL` を使用して、単一のトランザクションの期間中、これらのパラメータのいずれかを設定することもできます。`RESET` を使用して、パラメータをデフォルト値に戻します。


**サポートされているセッションパラメータ**  

| パラメータ | Category | 説明 | 
| --- | --- | --- | 
| application\_name | クライアント識別 | 接続メタデータでレポートされるアプリケーション名を設定します。モニタリングで接続を識別するのに役立ちます。 | 
| client\_encoding | ローカライゼーション | クライアント側の文字エンコードを設定します。データベースは内部的に UTF-8 を使用します。 | 
| datestyle | 出力フォーマット | 日付と時刻の値の表示形式を設定します (例: ISO, MDY)。 | 
| extra\_float\_digits | 出力フォーマット | 浮動小数点値の表示桁数を設定します。JDBC などの一部のドライバーは、このパラメータを使用します。 | 
| intervalstyle | 出力フォーマット | 間隔値の表示形式を設定します。 | 
| timezone | ローカライゼーション | セッションのタイムゾーンを設定します。Aurora DSQL は、タイムゾーンに対応したすべての日付と時刻を内部的には UTC で保存します。このパラメータは、Aurora DSQL がクライアントに値を表示する方法を制御します。 | 
| search\_path | スキーマ解決 | 非修飾オブジェクト名のスキーマ検索順序を設定します。 | 
| enable\_bitmapscan | クエリプランナー | クエリプランナーによるビットマップスキャンプランタイプの使用を有効または無効にします。 | 
| enable\_hashjoin | クエリプランナー | クエリプランナーによるハッシュ結合プランタイプの使用を有効または無効にします。 | 
| enable\_indexonlyscan | クエリプランナー | クエリプランナーによるインデックスのみのスキャンプランタイプの使用を有効または無効にします。 | 
| enable\_indexscan | クエリプランナー | クエリプランナーによるインデックススキャンプランタイプの使用を有効または無効にします。 | 
| enable\_material | クエリプランナー | クエリプランナーによるマテリアル化の使用を有効または無効にします。 | 
| enable\_mergejoin | クエリプランナー | クエリプランナーによるマージ結合プランタイプの使用を有効または無効にします。 | 
| enable\_nestloop | クエリプランナー | クエリプランナーによるネステッドループ結合プランの使用を有効または無効にします。 | 
| enable\_seqscan | クエリプランナー | クエリプランナーによるシーケンシャルスキャンプランタイプの使用を有効または無効にします。 | 
| disable\_sync\_create\_index | Aurora DSQL 固有 | CREATE INDEX を非同期的に実行するかどうかを制御します。デフォルトは on です。つまり、Aurora DSQL はインデックスを非同期的に作成します。空のテーブルで同期的にインデックスを作成するには、off に設定します。 | 
| role | セッション ID | 現在のロールを設定します。Aurora DSQL では、このパラメータはトランザクションブロック内で SET LOCAL を使用してのみ設定できます。 | 

Aurora DSQL はデータベースの次の側面を自動的に管理するため、対応する PostgreSQL セッションパラメータを設定する必要はありません。
+ **接続およびネットワークパラメータ** – Aurora DSQL は `tcp_keepalives_idle`、`tcp_keepalives_interval`、`tcp_keepalives_count` を含む接続ライフサイクルと TCP 設定を内部的に管理します。
+ **メモリとリソースのパラメータ** – Aurora DSQL は、`work_mem` や `shared_buffers` を含むメモリ割り当てを自動的に管理します。
+ **タイムアウトパラメータ** – Aurora DSQL は、`statement_timeout`、`lock_timeout`、`idle_in_transaction_session_timeout` を含む独自のトランザクション期間制限を適用します。
+ **レプリケーションおよび WAL パラメータ** – Aurora DSQL は、`wal_level` や `synchronous_commit` を含む組み込みマルチリージョンアーキテクチャを通じてレプリケーションを自動的に処理します。
+ **ログ記録パラメータ** – Aurora DSQL は、`log_statement` や `client_min_messages` を含むログ記録を内部で管理します。
+ **トランザクションパラメータ** – Aurora DSQL は、すべてのトランザクションに対して固定の `REPEATABLE READ` 分離レベルを使用します。ドライバーで分離レベルを指定する必要がある場合は、`BEGIN ISOLATION LEVEL REPEATABLE READ` を使用します。

## SQL クライアントを使用した Aurora DSQL へのアクセス
<a name="accessing-sql-clients"></a>

Aurora DSQL は、クラスターに接続するための複数の PostgreSQL 互換クライアントをサポートしています。以下のセクションでは、PostgreSQL を使用して AWS CloudShell またはローカルコマンドラインに接続する方法と、DBeaver や JetBrains DataGrip などの GUI ベースのツールについて説明します。各クライアントには、前のセクションで説明した有効な認証トークンが必要です。

**Topics**
+ [サポートされているセッションパラメータ](#accessing-session-parameters)
+ [SQL クライアントを使用した Aurora DSQL へのアクセス](#accessing-sql-clients)
+ [DBeaver を使用して Aurora DSQL にアクセスする](accessing-dbeaver.md)
+ [Aurora DSQL へのアクセスに JetBrains DataGrip を使用する](accessing-datagrip.md)
+ [psql (PostgreSQL インタラクティブターミナル) を使用して Aurora DSQL にアクセスする](accessing-psql.md)
+ [Aurora DSQL Driver for SQLTools を使用する](accessing-vscode.md)
+ [トラブルシューティング](#accessing-troubleshooting)

## トラブルシューティング
<a name="accessing-troubleshooting"></a>

**SQL クライアントの認証情報の有効期限**

確立されたセッションは、最大 1 時間、または明示的な切断またはクライアント側のタイムアウトが発生するまで認証されたままになります。新しい接続を確立する必要がある場合は、新しい認証トークンを生成し、接続の **[パスワード]** フィールドに指定する必要があります。新しいセッションを開こうとすると (例えば、新しいテーブルを一覧表示したり、新しい SQL コンソールを開いたりする場合)、新しい認証が強制的に試行されます。**[接続]** 設定で設定された認証トークンが無効になった場合、その新しいセッションは失敗し、以前に開かれたすべてのセッションは無効になります。`expires-in` オプションで IAM 認証トークンの有効期間を選択する際は、デフォルトで 15 分に設定可能であり、最大 7 日間まで設定できる点に留意してください。

さらに、Aurora DSQL ドキュメントの「[トラブルシューティング](https://docs.aws.amazon.com/aurora-dsql/latest/userguide/troubleshooting.html)」セクションを参照してください。