1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Amazon DocumentDBに接続する

Last updated at Posted at 2022-10-27

Amazon DocumentDBとは

Amazon DocumentDBはMongoDB互換のAWSのフルマネージドサービスになります。
Amazon DocumentDBを使用することで構築の簡素化、自動スケーリングや自動パッチ適用など運用の簡素化を図ることができます。
Amazon DocumentDBは2022年10月現在、MongoDB 3.6および4.0のドライバーおよびツールと互換性があります。

Amazon DocumentDBに接続してみる

Amazon DocumentDBに接続するには、MongoDBが提供しているmongoコマンドで接続が可能です。そのため、まずはmongoコマンドをインストールします。

mongoのインストール

Amazon DocumentDB 4.0に接続することを想定します。
また、クライアント環境はAmazon Linux2のEC2インスタンスを想定します。
mongoコマンドのインストール手順についてはMongoDBのサイトを参考に記載をしています。

  • yumの設定を修正するために/etc/yum.repos.d/mongodb-org-4.0.repoファイルを作成し、以下の内容を記載します。

    [mongodb-org-4.0]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/4.0/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
    
  • 以下のコマンドを実行すると mongoコマンドがインストールされます。

    sudo yum install -y mongodb-org
    

DocumentDBに接続する

yumコマンドでインストールを行うと/var/lib/mongoにコマンドが作成されます。
mongoコマンドでのDocumentDBへの接続方法はAWSマネージメントコンソールのDocumentDBクラスタの画面のところに表示されてもいます。

connect_document_db.png

以下にはTLSを使用した接続方法を記載しています。

  • (初回のみ)認証に必要なAmazon DocumentDB認証機関(CA)証明書をダウンロードします。

    wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
    
  • mongoコマンドでDocumentDBクラスタに接続します。(/var/lib/mongoにパスが通っていない場合は事前に設定をしてください)

    mongo --ssl --host [クラスタ名]:[ポート番号] --sslCAFile rds-combined-ca-bundle.pem --username [ユーザ名] --password [パスワード名]
    

上記コマンドはクラスタ名等が補完されたコマンドラインをAWSマネージメントコンソールのDocumentDBクラスタの画面からコピーすることが可能です

DocumentDBにコマンドを実行してみる

DocumentDBに接続ができたら以下のようなコマンドを実行することができます。

コレクション一覧を表示する(show collections)

rs0:PRIMARY> show collections
table1
table2
table3

コレクションはRDBでのテーブルに相当します

コレクションを作成する(db.createCollection([コレクション名])

rs0:PRIMARY> db.createCollection('table1');
{ "ok" : 1, "operationTime" : Timestamp(1666829216, 1) }
rs0:PRIMARY>

データを追加する(db.[コレクション名].insert([JSON]))

rs0:PRIMARY> db.table1.insert({id: 1, name: 'Alen', age:10})
WriteResult({ "nInserted" : 1 })

全件表示する(db.[コレクション名].find())

rs0:PRIMARY> db.table1.find()
{ "_id" : ObjectId("6359cbf4cd7425fde3ab1dff"), "id" : 1, "name" : "Alen", "age" : 10 }
{ "_id" : ObjectId("6359cc02cd7425fde3ab1e00"), "id" : 2, "name" : "Bob", "age" : 21 }
1
3
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
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?