業務でDocumentDBを利用する場面があったので、慣れるために一旦EC2からDocumentDBに接続してみました。
どうやらDocumentDBはMongoDB互換のデータベースらしいです。
私はMongoDB自体も初めてだったので、なんのこっちゃという感じでした。
この記事が、私と同じように困っている方の参考になれば幸いです。
前提
- DocumentDBに
mongo
コマンドでアクセスしたい場合はmongo-org-shell
をインストールする必要がある - Linuxに
mongo-org-shell
をインストールするにはリポジトリを追加する必要がある- 普通に
yum install
のではダメ。リポを追加しないと
- 普通に
- 今回のOSには「Amazon Linux2」を利用する
- Amazon Linux2のパッケージ管理ツールは
yum
- Amazon Linux2のパッケージ管理ツールは
事前準備
- VPC(サブネットなどの周辺リソースも)とEC2インスタンスを作成
- 上記で作成したVPCでDocumentDBを作成
- セキュリティグループを適切にEC2インスタンス・DocumentDBに設定
ゼロから接続する手順
mongodbのyumリポジトリを追加する
/etc/yum.depos.d/
下にmongodb-org-4.4.repo
というファイルを作成
mongodb-org-4.4.repo
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
注意)利用したいmongodbのバージョンによって、ファイル名やコードは変更してください。
例えば、4.0を利用したいならmongodb-org-4.4.repo
ではなくmongodb-org-4.0.repo
mongo-org-shellをインストールする
$ yum install -y mongo-org-shell
DocumentDBへのSSL接続に必要な鍵をダウンロード
$ wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
mongoコマンドでDocumentDBにSSL接続
以下のコマンドを実行するとDocumentDBに接続でき、mongo-shellの対話画面が始まる。
$ mongo --ssl --host <host_name>:27017 <db_name> --sslCAFile rds-combined-ca-bundle.pem --username <username> --password <password>
おまけ
mongoimportを使いたい場合
mongo-org-tools
をインストールする
$ yum install -y mongo-org-tools
以下のようにコマンドを実行すればjsonデータを挿入できる
$ mongoimport --ssl --host <host:port> --db mydb --collection mycollection --file myfile.json --sslCAFile rds-combined-ca-bundle.pem --username <username> --password <password>