Amazon DocumentDB
開発者ガイド

ステップ 3: mongo シェルを使用して Amazon DocumentDB クラスターにアクセスして使用する

このステップでは、mongo シェルを使用して Amazon DocumentDB クラスターに接続します。「ステップ 2: Amazon EC2 インスタンスを起動する」で作成した Amazon EC2 インスタンスを使用して、以下のステップを実行します。

注記

開始する前に、必ず Amazon DocumentDB クラスターとインスタンスの両方が利用可能であることを確認します。クラスターまたはインスタンスのステータスの確認については、以下を参照してください。

ステップ 3.a: mongo シェルをインストールする

mongo シェルをシステムにインストールします。

Amazon Linux で

Amazon Linux で mongo シェルをインストールするには

  1. 次の内容で、リポジトリファイル /etc/yum.repos.d/mongodb-org-3.6.repo を作成します。

    [mongodb-org-3.6] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.6/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

    次の 1 行のコマンドはリポジトリファイルを作成します。

    echo -e "[mongodb-org-3.6] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.6/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc" | sudo tee /etc/yum.repos.d/mongodb-org-3.6.repo
  2. MongoDB シェルをインストールします。

    sudo yum install -y mongodb-org-shell

以前のバージョンの MongoDB の Amazon Linux システムへのインストールについては、MongoDB ドキュメントの「MongoDB Community Edition を Amazon Linux にインストールする」を参照してください。

 

Ubuntu 18.04 で

Ubuntu 18.04 で mongo シェルをインストールするには

  1. パッケージ管理システムで使用されるパブリックキーをインポートします。

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
  2. Ubuntu のバージョンに適切なコマンドを使用して、MongoDB の リストファイル /etc/apt/sources.list.d/mongodb-org-3.6.list を作成します。

    Ubuntu 18.04

    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
  3. 次のコマンドを使用してローカルパッケージデータベースを再ロードします。

    sudo apt-get update
  4. MongoDB シェルをインストールします。

    sudo apt-get install -y mongodb-org-shell

以前のバージョンの MongoDB の Ubuntu システムへのインストールについては、「Install MongoDB Community Edition on Ubuntu」を参照してください。

 

他のオペレーティングシステムで

mongo シェルを他のオペレーティングシステムにインストールするには、MongoDB ドキュメントの「MongoDB Community Edition のインストール」を参照してください。

ステップ 3.b: Amazon DocumentDB TLS を管理する

新しい Amazon DocumentDB クラスターに対してはデフォルトで Transport Layer Security (TLS) が有効になっていますが、無効にすることができます。詳細については、「Amazon DocumentDB クラスターの TLS 設定の管理」を参照してください。

転送中のデータを暗号化するには、Amazon DocumentDB のパブリックキーを https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem からダウンロードします。このオペレーションにより、rds-combined-ca-bundle.pem という名前のファイルがダウンロードされます。

wget https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem

Step 3.c: Amazon DocumentDB に接続して使用する

Amazon DocumentDB クラスターに接続して使用するには

  1. クラスターの mongo 接続コマンドを取得します。

    1. AWS マネジメントコンソールにサインインして、https://console.aws.amazon.com/docdb で Amazon DocumentDB コンソールを開きます。

    2. 接続先のクラスターが 米国東部(バージニア北部) リージョンにない場合は、コンソールの右上隅でクラスターのリージョンに変更します。

    3. 左のナビゲーションペインで [Clusters (クラスター)] を選択します。次に、クラスターのリストから、接続するクラスターの名前を選択します。

    4. クラスターの詳細ページで、[接続] セクションを探します。続いて、mongo shell 接続文字列を探してコピーします。この文字列は次のステップで使用します。

      
                           接続セクションの mongo shell 接続文字列を示すスクリーンショット。
  2. mongo シェルを使用して Amazon DocumentDB に接続します。

    mongo を使用してクラスターに接続するには、前のステップでコピーした接続コマンドをコマンドウィンドウに貼り付けます。<insertYourPassword> をマスターパスワードに変更したら、コマンドを実行します。

    例: 改行は読みやすくするためにのみ追加しています。

    mongo --ssl --host endpoint --sslCAFile rds-combined-ca-bundle.pem --username yourMasterUsername --password yourMasterPassword
  3. mongo シェルから、いくつかのオペレーションを実行します。

    1. 新しいドキュメントを挿入:

      db.inventory.insert( { "SKU" : "38220349", "Description" : "14 oz. whole wheat bread", "Vendor" : { "Name" : "Example Bakery, LLC.", "Street" : "321 No. Gilbert", "City" : "Anytown", "State-Provence" : "CA", "Country" : "USA", "Phone" : "000-555-0100", "Contacts" : [ { "LName" : "Stiles", "FName" : "Jonathan", "FriendlyName" : "JJ", "Role" : "Sales", "Phone" : "000-555-0111" } ], }, "Stock" : { "OnHand" : "4", "OrderWhenBelow" : "6", "OrderQuantity" : "8" }, "UnitPrice" : { "Wholesale" : "1.71", "Retail" : "2.39" } } )
    2. すべてのドキュメントを検索:

      db.inventory.find( {} ).pretty()
    3. ドキュメントの更新:

      以下の例では、現在の UnitPrice 埋め込みドキュメントを、Wholesale および Retail 価格を含む新しいドキュメントに置き換えて DayOld 価格を追加することで更新します。

      db.inventory.update( { "SKU" : "38220349" }, { $set: { "UnitPrice" : { "Wholesale" : "1.87", "Retail" : "2.69", "DayOld" : "1.89" } } } )

      このオペレーションが終了すると、埋め込み UnitPrice ドキュメントは以下のようになります。残りのドキュメントは変更されません。

      { "SKU" : "38220349", "Description" : "14 oz. whole wheat bread", "Vendor" : { "Name" : "Example Bakery, LLC.", "Street" : "321 No. Gilbert", "City" : "Anytown", "State-Provence" : "CA", "Country" : "USA", "Phone" : "000-555-0100", "Contacts" : [ { "LName" : "Stiles", "FName" : "Jonathan", "FriendlyName" : "JJ", "Role" : "Sales", "Phone" : "000-555-0111" } ], }, "Stock" : { "OnHand" : "4", "OrderWhenBelow" : "6", "OrderQuantity" : "8" }, "UnitPrice" : { "Wholesale" : "1.87", "Retail" : "2.69", "DayOld" : "1.89" } }
    4. ドキュメントを削除:

      db.inventory.remove( { "SKU" : "38220349" } )
  4. 完了したら、mongo シェルから終了します。

    exit

クラスターを削除してコストの発生を止めるには、ステップ 4: (オプション) Amazon DocumentDB インスタンスとクラスターを削除する に進みます。