この記事では、ローカルのWindows環境にあるStudio 3Tを使用し、EC2(踏み台)を経由してAWSのDocumentDBに接続する方法について詳しく説明します。
Studio 3Tは、NoSQLを使うデータベースエンジニアや開発者にとって非常に便利なツールであり、MongoDBと互換性があるDocumentDBへの接続も簡単に行うことができます。
目標
今回の目標は、プライベートサブネットにいるDocumentDBに対して、パブリックサブネットにいる踏み台のEC2を経由して、ローカルにあるStudio 3Tから接続します。
なお、接続するVPCやDocument DB、EC2は構築済みであることを前提とし、Studio 3Tの設定に焦点を当てて説明しますので、まだAWSの環境を構築済みでない場合はこちらを参考にしてください。
![](https://minory.org/wp-content/uploads/2023/10/aws-documentdb-300x200.jpg)
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JTVCQVdTJTVEJTIwRG9jdW1lbnREQiVFRiVCQyU4OE1vbmdvREIlRTQlQkElOTIlRTYlOEYlOUIlRUYlQkMlODklRTMlODElQjglRTglQjglOEYlRTMlODElQkYlRTUlOEYlQjAlRTMlODIlQjUlRTMlODMlQkMlRTMlODMlOTAlRTclQjUlOEMlRTclOTQlQjElRTMlODElQTclRTYlOEUlQTUlRTclQjYlOUElRTMlODElOTclRTMlODElQTYlRTMlODElQkYlRTMlODElOUYmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTRkN2IzNmRhMGYyY2M3OWVhZGI0OTBhNDgwODIxOGFl&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBoaXJvLXRlY2gxMTkyJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz00Yjc5M2U4MTE3MzMxNDFlZTIwZTU5OWViZTVjZWZkMQ&blend-x=142&blend-y=486&blend-mode=normal&s=cea7ddcc61b7ab95b5656a521a3081a6)
それでは以下のステップに従って、効果的に設定しましょう。
接続するサーバーやユーザ、パスワード、DB名等は適宜置き換えてください。
DocumentDBの接続情報を確認
DocumentDBへの接続には、いくつかの情報が必要です。
まずはAWSコンソールにログインし、DocumentDBのクラスター情報やエンドポイント、ユーザー名などを確認しましょう。
これらの情報は後でStudio 3Tの設定で使用します。
接続情報は、DocumentDBのクラスター情報から確認することができます。
クラスターの「接続」を確認
以下のコマンドで、認証に必要なAmazon DocumentDB 認証機関 (CA) 証明書をダウンロードできます。
まだ持っていない場合はダウンロードしておきましょう。
1 |
wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem |
こちらは、mongoシェルでクラスターに接続する方法です。
1 |
mongo --ssl --host docdb-db.cluster-xxxxxxxxxxxx.ap-northeast-1.docdb.amazonaws.com:27017 --sslCAFile global-bundle.pem --username master --password <insertYourPassword> |
そして、アプリケーションでクラスターに接続方法です。
1 |
mongodb://master:********@docdb-db.cluster-xxxxxxxxxxxx.ap-northeast-1.docdb.amazonaws.com:27017/?ssl=true&ssl_ca_certs=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false |
できれば事前に、EC2のmongoシェルかアップリケーションから接続できることを確認しておいてください。
Studio 3Tの設定
ここから、上記で確認したDocumentDBとEC2の接続情報を基に、Studio 3Tの接続設定をしていきます。
Studio 3Tを開き、左から順に以下の4つのタブについて設定していきます。
Serverタブ
![](https://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/studio3t/studio3t-endpoint.png)
項目 | 設定値 |
---|---|
Connection Type: | Standalone |
Server: | docdb-db.cluster-xxxxxxxxxxxx.ap-northeast-1.docdb.amazonaws.com |
Port: | 27017(←変更してなければデフォルト) |
Authenticationタブ
![](https://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/studio3t/studio3t-auth.png)
項目 | 設定値 |
---|---|
Authentication Model: | Legacy (SCRAM-SHA-1) |
User name: | master(DocumentDBのユーザー名) |
Password: | ********(DocumentDBのパスワード) |
Authentication DB: | admin |
SSLタブ
![](https://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/studio3t/studio3t-ssl.png)
項目 | 設定値 |
---|---|
Use SSL protocol to connect | チェックする |
Use own Root CA file (–sslCAFile) | チェックする Document DBの.pemのファイルパスを指定する |
SSHタブ
![](https://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/studio3t/studio3t-ssh.png)
項目 | 設定値 |
---|---|
Use SSH tunnel to connect | チェックする |
SSH Address: | ec2-XXX-XXX-XXX-XXX.ap-northeast-1.compute.amazonaws.com |
Port: | 22(EC2のSSHポートを指定) |
SSH User name: | ec2-user(EC2のログインユーザー) |
SSH Auth Mode: | Private Key |
Private Key: | EC2の.pemのファイルパスを指定する |
これで設定が完了しました。設定情報が正確であることを確認し、接続をテストしてみましょう。
接続が成功すると、Studio 3Tを使用してDocumentDBにアクセスできるようになります。
引用・出典は以下のAWS公式サイトより。
まとめ
この方法を使用することで、Studio 3Tを通じてEC2を経由してDocumentDBに安全かつ効率的に接続できます。
データベースのクエリやデータの操作がスムーズに行えるようになり、効率的な開発やデータ解析が可能になります。
DocumentDBのデータベースユーザーについての記事も書いていますので、併せて参考にしてみてください。
お疲れ様でした!
![](https://minory.org/wp-content/uploads/2023/08/aws-documentdb-user-300x200.jpg)
![](https://minory.org/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
![](https://minory.org/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
コメント