対応プラットフォーム
| プラットフォーム | サポート |
|---|---|
| セルフホスト PostgreSQL | 12.x・13.x・14.x・15.x・16.x |
| AWS RDS PostgreSQL | 全バージョン |
| AWS Aurora PostgreSQL | 全バージョン |
| Google Cloud SQL | 全 PostgreSQL バージョン |
| Azure Database for PostgreSQL | Flexible Server・Single Server |
前提条件
- CloudThinker からネットワーク経由で到達可能な PostgreSQL インスタンス。
- 専用ユーザーの作成と権限付与に必要な管理者アクセス。
- クエリレベルの分析が必要な場合は
pg_stat_statements拡張のインストール(低速クエリデータに必要)。
セットアップ
ネットワークアクセスを設定する
CloudThinker がデータベースに到達できるよう設定します:
- CloudThinker の IP をセキュリティグループまたはファイアウォールに追加
- RDS の場合:パブリックアクセスを有効化するか VPC ピアリングを使用
接続詳細
| フィールド | 説明 | デフォルト |
|---|---|---|
| Host | データベースのホスト名または IP | — |
| Port | PostgreSQL ポート | 5432 |
| Database | データベース名 | — |
| Username | 専用ユーザー(例:cloudthinker_readonly) | — |
| Password | ユーザーパスワード | — |
| SSL mode | disable・allow・prefer・require・verify-ca・verify-full | require |
| Connection timeout | 接続待機秒数 | 10 |
| Statement timeout | クエリ実行の最大時間(ミリ秒) | 30000 |
必要な権限
最小権限
推奨(フル分析)
エージェントの機能
接続後、Tony は以下を実行できます:| 機能 | 説明 |
|---|---|
| クエリ分析 | 低速クエリの特定、実行計画の分析 |
| インデックス推奨 | 不足しているインデックスの発見、未使用インデックスの特定 |
| パフォーマンスメトリクス | 接続数・I/O・キャッシュヒット率の監視 |
| テーブル統計 | テーブルの膨張・デッドタプル・Vacuum 状態の分析 |
| レプリケーション監視 | レプリカのラグとストリーミング状態の確認 |
接続を確認する
プロンプト例
トラブルシューティング
接続が拒否される
接続が拒否される
- ホストとポートが正しいか確認してください
- セキュリティグループまたはファイアウォールが CloudThinker の IP を許可しているか確認してください
- RDS の場合:「Publicly accessible」が有効になっているか、VPC ピアリングを使用しているか確認してください
- PostgreSQL が正しいインターフェースでリッスンしているか確認してください
認証に失敗した
認証に失敗した
- ユーザー名とパスワードが正しいか確認してください
pg_hba.confが接続方式を許可しているか確認してください- ユーザーがデータベースに
CONNECT権限を持っているか確認してください
pg_stat_statements が見つからない
pg_stat_statements が見つからない
- 拡張がインストールされているか確認:
SELECT * FROM pg_extension WHERE extname = 'pg_stat_statements'; shared_preload_librariesにpg_stat_statementsが含まれているか確認してくださいshared_preload_libraries変更後は PostgreSQL を再起動してください- RDS の場合:パラメータグループを変更してインスタンスを再起動してください
権限が拒否された
権限が拒否された
- ユーザーが必要なテーブルに
SELECT権限を持っているか確認してください - PostgreSQL 14+ では
pg_read_all_statsロールを付与してください - psql で
\dn+を使ってスキーマ権限を確認してください
セキュリティ
- 最小権限 — エージェントがユースケースに必要な権限のみを付与します。まず読み取り専用から始め、後から拡張してください。
- デフォルトで読み取り専用 — エージェントにこの接続で変更を行わせる場合を除き、読み取り専用の認証情報を使用してください。
- 認証情報のローテーション — 通常のスケジュールに従ってキーとトークンをローテーションしてください。接続を更新すると、CloudThinker が新しい値を自動的に取得します。
- オフボーディング時に失効 — 接続を削除するか、チームメンバーが退職する際には、プロバイダー側で認証情報を無効化してください。
- SSL 必須 — 転送中のデータを暗号化するために、常に SSL モード
require以上を使用してください。 - 最小権限 — CloudThinker ユーザーには
SELECTのみを付与し、書き込みアクセスは絶対に付与しないでください。
関連
Tony Agent
データベース特化の最適化エージェント
MySQL 接続
MySQL データベースの同様のセットアップ