0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DatagripからPosticoへ乗り換えた時にやったこと

0
Posted at

環境

Mac OS Tahoe 26.6.2
AWS CLIツールインストール済み
brewインストール済み
jq(brew)
RDSには踏み台サーバーを使用
RDSはもちろんPostgreSQL

経緯

  • Datagripが重くなってきて立ち上がるまで数分かかるようになった
  • Posticoが買い切りで安くメンテがされているので試しに使ってみようとなった
  • 個人的に使っている

価格帯

クライアント 値段 課金方式
Datagrip ¥3,626/月(法人) サブスク
Postico ¥11,000(個人/法人) 買い切り(AppStore)

Posticoでできない事

  • IAM認証が対応していない

AppStore経由で買ってもらっちゃったので使えるようになる所までやってみる

PosticoはProxyCommandProxyJumpなどの高度なSSH設定(~/.ssh/configの独自ディレクティブ)を直接サポートしておらず、これは内部で使用しているlibssh2ライブラリの制限によるものです。
AppStore経由でなく、公式Webサイトから購入したものはPre-Connect Shell Scriptの機能があり、案内にある通りすればできるはず?(未検証)

~/.aws/configを設定する

ご自身の環境に読み替えて下さい。

  • sso_session
  • sso_account_id
  • sso_role_name
  • sso_start_url
[profile koko]
sso_session = aws-dev-org-root-sso
sso_account_id = *************
sso_role_name = DevlopAccess
region = ap-northeast-1
output = json

[sso-session aws-dev-org-root-sso-sso]
sso_start_url = https://************.awsapps.com/start#/
sso_region = ap-northeast-1
sso_registration_scopes = sso:account:access

~/.ssh/configを設定する

適宜読み替えて下さい。

  • 秘密鍵:develop-key.pem
  • awsのプロファイル名:develop
  • bastionサーバー:ecs-develop-bastion
Host test-bation
    User ec2-user
    ProxyCommand sh -c "aws --profile develop ssm start-session --target $(aws --profile develop ec2 describe-instances --filters 'Name=tag:Name,Values=ecs-develop-bastion' 'Name=instance-state-name,Values=running' --query 'Reservations  [*].Instances[*].InstanceId' --output text) --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
    IdentityFile ~/.ssh/develop-key.pem

SSOを通す

aws sso login --profile develop

IAMトークンの生成

IAMトークンの生成し、コピーまでコマンドで行う。
適宜読み替えて下さい。

  • hostname:..ap-northeast-1.rds.amazonaws.com
  • username:dev-user
aws rds generate-db-auth-token \
  --hostname ***********.***********.ap-northeast-1.rds.amazonaws.com \
  --port 5432 \
  --username dev-user \
  --region ap-northeast-1 \
  --profile develop | pbcopy

Posticoの設定

PosticoのSSHタブは使わず、ターミナルでSSHトンネルを張ってから127.0.0.1に接続する。
適当に読み替えて下さい。

項目 設定値
Nickname dev-bastion
Host 127.0.0.1
Port 54323(何でもいいがSSHトンネル掘る時に合わせないと駄目)
Database postgres
User dev_readonly_user
Password

SSHトンネルを掘る

ターミナルを開き下記コマンドを実行。
このターミナルは開きっぱなしにする。
ここでPosticoで設定したポートと合わせる必要がある。

ssh -N -L 54323:***********.***********.ap-northeast-1.rds.amazonaws.com:5432 dev-user

Posticoで接続

Connectボタンをクリックすると繋がる。
DBはつながった後に接続したいDBを選択できます。

まとめ

  • Posticoは公式Webサイトから購入すべし。
  • 15分でSSOは切れるので後はAIにまかせてシェルスクリプトを組んでみてはいかがでしょうか。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?