Open5

TiDB ServerlessへEC2から接続してクエリ叩くまで

naan4810naan4810

接続情報確認

画面右上の「Connect」を押すと接続情報が確認できる。

Endpoint Typeが Public だと、macなどから直接接続できる。
Private だと、VPCエンドポイント経由で、EC2からアクセスできる。
(接続情報は、Endpoint Type を切り替えたときに画面上に情報が表示される)

naan4810naan4810

Private 接続を試す1 - VPCエンドポイント関連の設定

具体的な手順は公式にあり。
https://docs.pingcap.com/ja/tidbcloud/set-up-private-endpoint-connections#step-3-create-an-aws-interface-endpoint

事前準備として、AWS側で以下を実施済み。

  • VPCを作成
    • Public Subnet x2、Private Subnet x2 ※今回使うのはPublic Subnet1つだけ
  • EC2を作成(Amazon Linux 2023)
    • EC2はSSHで接続するため、Public Subnetに配置
    • EC2には、mariadb105 をインストールし、mysqlコマンドでTiDBへ接続できるようにした。
    • sudo dnf install mariadb105

AWS側の準備ができたあとは、公式手順でVPCエンドポイントを作成する。

設定メモ

  • VPCエンドポイント作成時、サブネットの指定があるが、EC2サーバーが配置されているサブネットを指定。
  • セキュリティグループはVPCエンドポイント作成後にインバウンドルールの追加を実施。
    • ポート 4000 に対し、特定のIPレンジは通信可能とした。
      • 今回は、EC2サーバーのプライベートIPが 10.0.x.x だったため、10.0.0.0/16 をソースに設定。
naan4810naan4810

Private 接続を試す2 - EC2から接続

EC2にSSH接続したターミナルで、mysql コマンドを実行し接続する

※接続用コマンドは、TiDBの Connect から表示される接続情報の中にコマンド文字列が表示されるため、そのまま流用。

コマンド例

mysql --comments -u 'xxxxxxxxxx.root' -h gateway01-privatelink.ap-northeast-1.prod.aws.tidbcloud.com -P 4000 -D 'test' -p'xxxxxxxxxx'

接続できるとこんな感じ。

naan4810naan4810

パブリック接続の制限方法

  • 画面左下の Networking をクリックと、Public Endpoint の有効・無効を切り替える画面が開く。
  • Disable をクリックし、確認画面でもう一度 Disable をクリックすると、パブリック接続が無効化される。


Overviewの Connect から、Endpoint Typeを選択するとき、 Public が選べなくなる。