Amazon DocumentDB の使用開始 - Amazon DocumentDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon DocumentDB の使用開始

Amazon DocumentDB に接続して開始する方法は複数あります。このガイドを作成したのは、ユーザーにとって最も速く、最もシンプルで、最も簡単にドキュメントデータベースを使い始めることができる方法であることがわかったからです。このガイドでは、AWS Cloud9 というウェブベースのターミナルを利用して、AWS Management Console から直接 mongo シェルを使用して Amazon DocumentDB クラスターに接続してクエリします。AWS 無料利用枠の対象である新規顧客は、Amazon DocumentDBと AWS Cloud9 を無料でご利用いただけます。AWS Cloud9 環境または Amazon DocumentDBクラスター が無料利用枠を超えてリソースを使用した場合、それらのリソースには通常の AWS 料金が課金されます。このガイドを読めば、Amazon DocumentDB を15分もかからずに使い始めることができます。

注記

このガイドの手順は、特に Amazon DocumentDB インスタンスベースのクラスターを作成して接続するためのものです。Amazon DocumentDB エラスティッククラスターを作成して接続する場合は、Amazon DocumentDB エラスティッククラスターの開始方法を参照してください。

Amazon EC2 インスタンスへの SSH 接続を作成して、ローカルマシンから Amazon DocumentDB に接続する場合は、「EC2 との接続方法」を参照してください。

前提条件

最初の Amazon DocumentDB クラスターを作成する前に、以下の操作を行う必要があります。

Amazon Web Services (AWS) アカウントを作成する

Amazon DocumentDB を使用する前に、Amazon Web Services (AWS) アカウントを持っている必要があります。AWS アカウントは無料です。使用しているサービスとリソースに対してのみ料金をお支払いいただきます。

AWS アカウント をお持ちでない場合は、以下の手順を実行してアカウントを作成してください。

AWS アカウント にサインアップするには
  1. https://portal.aws.amazon.com/billing/signup を開きます。

  2. オンラインの手順に従います。

    サインアップ手順の一環として、通話呼び出しを受け取り、電話のキーパッドを使用して検証コードを入力するように求められます。

    AWS アカウントにサインアップすると、AWS アカウントのルートユーザーが作成されます。ルートユーザーには、アカウントのすべての AWS のサービスとリソースへのアクセス権があります。セキュリティのベストプラクティスとして、管理ユーザーに管理アクセスを割り当てルートユーザーアクセスが必要なタスクを実行する場合にのみ、ルートユーザーを使用してください。

必要な AWS Identity and Access Management (IAM) アクセス許可を設定します。

クラスター、インスタンス、クラスターパラメータグループなどの Amazon DocumentDB リソースを管理するためのアクセスでは、リクエストの認証に AWS が使用できる認証情報が必要です。詳細については、「Amazon DocumentDB の Identity and Access Management」を参照してください。

  1. AWS Management Console の検索バーで、表示されるドロップダウンメニューに IAM を入力し、[IAM] を選択します。

  2. IAM コンソールにアクセスしたら、ナビゲーションペインから [ユーザー] を選択します。

  3. ユーザーネームを選択します。

  4. [アクセス許可の追加] ボタンをクリックします。

  5. [Attach existing policies directly ( 既存のポリシーを直接アタッチ )] を選択します。

  6. 検索バーに AmazonDocDBFullAccess と入力し、検索結果に表示されたら、それを選択します。

  7. [Next: レビュー] と表示されている青いボタンをクリックします。

  8. [アクセス許可の追加] となっている下の青いボタンをクリックします。

Amazon VPC (Amazon Virtual Private Cloud) を作成する

このステップは、デフォルトの Amazon VPC がない場合にのみ必要です。デフォルトの VPC がない場合は、「Amazon VPC のユーザーガイド」の「Amazon VPC の開始方法」のステップ 1 を完了させます。これには 5 分もかかりません。

ステップ 1: AWS Cloud9 環境を作成する

AWS Cloud9 には、mongo シェルを使用して Amazon DocumentDB クラスターに接続してクエリを実行できるウェブベースのターミナルが用意されています。

  1. AWS Management Console から AWS Cloud9 コンソールに移動し、[環境を作成する] を選択します。

  2. [環境を作成] ダイアログの [詳細] セクションで、[名前] DocumentDBCloud9 フィールドに入力します。

  3. 新規 EC2 インスタンス」、「ネットワーク設定」、および「タグ」セクションでは、デフォルト設定をそのままにして、画面下部の「作成」をクリックします。

AWS Cloud9新しい環境が Environments テーブルに表示されます。

注記

AWS Cloud9 環境のプロビジョニングには最大 3 分かかることがあります。

ステップ 2: セキュリティグループを作成する

このセキュリティグループにより、お客様の AWS Cloud9 環境から Amazon DocumentDB クラスターに接続できるようになります。

  1. Amazon EC2 マネジメントコンソール で、[ネットワークとセキュリティ] の下にある [セキュリティグループ] を選択します。

  2. [Create Security Group] を選択します。

  3. 「基本詳細」セクションで、次の操作を行います。

    1. [Security group name (セキュリティグループ名)] に「 demoDocDB 」と入力します。

    2. [説明] に説明を入力します。

    3. VPC については、デフォルトの VPC の使用を受け入れます。

  4. [インバウンドルール] セクションで、[ルールの追加] を選択します。

    1. [Type] で [Custom TCP Rule] を選択します。

    2. [ポート範囲] には、27017 を入力します。

    3. ソース で、先ほど作成したAWS Cloud9環境のセキュリティグループを選択します。使用可能なセキュリティグループのリストを表示するには、[ソース]cloud9 フィールドの右側にある検索フィールドに入力します。aws-cloud9-<environment name> という名前のセキュリティグループを選択します。

    4. 送信先 で、カスタム を選択します。その横にあるフィールドで、先ほど demoEC2 と名前を付けたセキュリティグループを検索します。demoEC2 のソース名を自動入力するには、Amazon EC2 コンソールでブラウザを更新することが必要な場合があります。

    注記

    ポート 27017 は、Amazon DocumentDB のデフォルトのポートです。

  5. 他のすべてのデフォルトを受け入れ、セキュリティグループの作成 を選択します。

ステップ 3: Amazon DocumentDB クラスターを作成する

このステップでは、前のステップで作成したセキュリティグループを使用して Amazon DocumentDB クラスターを作成します。

注記

このステップの手順は、特に Amazon DocumentDB インスタンスベースのクラスターを作成するためのものです。Amazon DocumentDB エラスティッククラスターを作成する場合は、Amazon DocumentDB エラスティッククラスターの開始方法を参照してください。

  1. Amazon DocumentDB マネジメントコンソールで、[クラスター] の下にある [作成] を選択します。

  2. 「Amazon DocumentDB クラスターの作成」ページの[クラスタータイプ]セクションで、[インスタンスベースのクラスタ]を選択します (これはデフォルトのオプションです)。

  3. [設定] セクションで、1 インスタンスを選択します。1 つのインスタンスを選択すると、コストを最小限に抑えることができます。これが本稼働システムの場合は、高可用性のために 3 つのインスタンスをプロビジョニングすることをお勧めします。[設定] セクションの他の設定はデフォルトのままで構いません。

  4. 接続 の場合、デフォルト設定の EC2 コンピューティングリソースに接続しない のままにします

  5. [認証] セクションに、サインイン認証情報を入力します。

  6. [アドバンスト設定の表示] を有効化します。

  7. テストクラスターまたはデモクラスターを作成する場合は、[ネットワーク設定] セクションの VPC セキュリティグループで [DemoDocDB (VPC)] を選択します。本番システム用のクラスターを作成する場合は、デフォルト (VPC) を選択するか、特定の VPC セキュリティグループを作成する場合は、[Amazon Virtual Private Cloud ユーザーガイド]の[セキュリティグループ]を参照してください。

  8. [クラスターを作成] を選択します。

Amazon DocumentDB がクラスターをプロビジョニングしています。完了までに数分かかる場合もあります。クラスターとインスタンスのステータスが「available」と表示されている場合は、クラスターに接続できます。

注記

クラスターのステータス値については、「Amazon DocumentDB のモニタリング」の章のクラスターステータスの値を参照してください。

インスタンスのステータス値については、「Amazon DocumentDB のモニタリング」の章のインスタンスのステータス値を参照してください。

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

これで mongo シェルを AWS Cloud9 ステップ 1 で作成した環境にインストールします。mongo シェルは、Amazon DocumentDB クラスターを接続してクエリするために使用するコマンドラインユーティリティです。

  1. ステップ 1 のAWS Cloud9 環境が残っている場合は、その環境に戻り、ステップ 3 に進みます。AWS Cloud9 環境から移動した場合は、AWS Cloud9 マネジメントコンソールの環境で、DocumentDBCloud9 というラベルのついた環境があります。[Cloud9 IDE]列で[開く]を選択します。

  2. コマンドプロンプトで、次のコマンドを使用してリポジトリファイルを作成します。

    echo -e "[mongodb-org-4.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo
  3. 完了したら、次のコマンドで mongo シェルをインストールします。

    sudo yum install -y mongodb-org-shell

ステップ 5: Amazon DocumentDB クラスターに接続する

次に、ステップ 4 でインストールした mongo シェルを使用して Amazon DocumentDB クラスターに接続します。

  1. Amazon DocumentDB マネジメントコンソールで、[クラスター] の下にあるお客様のクラスターを選択します。クラスター識別子をクリックして、作成したクラスターを選択します。

  2. E ncryption-in-transit は、Amazon DocumentDB でデフォルトで有効になっています。オプションで TLS を無効にできます。クラスターへの認証に必要な現在の証明書をダウンロードするには、[接続とセキュリティ] タブの [接続] セクションの [クラスターへの認証に必要な Amazon DocumentDB 認証局 (CA) 証明書のダウンロード] で、提供された接続文字列をコピーします。お客様の AWS Cloud9 環境に戻り、接続文字列を貼り付けます。

  3. Amazon DocumentDB コンソールのクラスターに戻り、[接続とセキュリティ] タブの [接続] セクションの [mongo シェルでこのクラスターに接続] で、提供された接続文字列をコピーします。<insertYourPassword> のコピーを省略すると、接続時に mongo シェルからパスワードの入力を求められます。

    お客様の AWS Cloud9 環境に戻り、接続文字列を貼り付けます。

パスワードを入力し、rs0:PRIMARY> プロンプトが表示されたら、Amazon DocumentDB クラスターに正常に接続されています。

注記

トラブルシューティングについては、「Amazon DocumentDB のトラブルシューティング」を参照してください。

ステップ 6: データの挿入とクエリ

クラスターに接続できたので、いくつかのクエリを実行して、ドキュメントデータベースの使用に慣れることができます。

  1. 1 つのドキュメントを挿入するには、次のように入力します。

    db.collection.insert({"hello":"DocumentDB"})
  2. 次の出力が返ります。

    WriteResult({ "nInserted" : 1 })
  3. findOne() コマンドで書き込んだドキュメントを読み取ることができます (一つのドキュメントしか返さないため)。以下を入力します。

    db.collection.findOne()
  4. 次の出力が返ります。

    { "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
  5. さらにいくつかのクエリを実行するには、ゲームプロファイルのユースケースを検討してください。まず、「profiles」というタイトルのコレクションにエントリをいくつか挿入します。以下を入力します。

    db.profiles.insertMany([ { "_id" : 1, "name" : "Matt", "status": "active", "level": 12, "score":202}, { "_id" : 2, "name" : "Frank", "status": "inactive", "level": 2, "score":9}, { "_id" : 3, "name" : "Karen", "status": "active", "level": 7, "score":87}, { "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27} ])
  6. 次の出力が返ります。

    { "acknowledged" : true, "insertedIds" : [ 1, 2, 3, 4 ] }
  7. find() コマンドを使用して、プロファイルコレクション内のすべてのドキュメントを返します。以下を入力します。

    db.profiles.find()
  8. ステップ 5 で入力したデータに一致する出力が得られます。

  9. フィルターを使用して 1 つのドキュメントに対して1つのクエリを使用します。以下を入力します。

    db.profiles.find({name: "Katie"})
  10. この出力を返す必要があります。

    { "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}
  11. それでは、プロファイルを探して、それを findAndModify コマンドで変更してみましょう。次のコードを使用して、ユーザー Matt に10 ポイント追加します。

    db.profiles.findAndModify({ query: { name: "Matt", status: "active"}, update: { $inc: { score: 10 } } })
  12. 次のような出力が得られます (Mattのスコアはまだ上がっていないことに注意してください) 。

    { "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 202 }
  13. 次のクエリを使用して、Matt のスコアが変更されたことを確認できます。

    db.profiles.find({name: "Matt"})
  14. 次の出力が返ります。

    { "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 212 }

ステップ 7: 確認

お疲れ様でした。Amazon DocumentDB 入門ガイドを正常に完了しました。

次のステップ このデータベースを一般的な機能の一部を使用して、完全に活用する方法を学びましょう。

注記

この入門演習で作成したクラスターは、削除しない限り、引き続きコストを計上します。手順については、以下を参照してください。Amazon DocumentDB クラスターを削除する