Amazon EC2 を手動で接続する - Amazon DocumentDB

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

Amazon EC2 を手動で接続する

以下の手順は、「前提条件」トピックに記載されるステップが完了済みであることを前提としています。

ステップ 1: Amazon EC2 インスタンスを作成する

このステップでは、後で Amazon DocumentDB クラスターのプロビジョニングに使用するのと同じリージョンと Amazon VPC に Amazon EC2 インスタンスを作成します。

  1. Amazon EC2 コンソールで、[インスタンスを起動] を選択します。

    Amazon EC2 コンソールの [インスタンスを起動] セクション。
  2. [名前とタグ] セクション内の [名前] フィールドに、名前または識別子を入力します。

  3. [Amazon マシンイメージ (AMI)] ドロップダウンリストで、[Amazon Linux 2 AMI] を選択します。

    Amazon Linux 2 AMI オプションが [クイックスタート] セクションで選択された [アプリケーションおよび OS イメージ] インターフェイス。
  4. [インスタンスタイプ] のドロップダウンリストで、[t3.micro] を選択します。

  5. [キーペア (ログイン)] セクションで、既存のキーペアの識別子を入力するか、もしくは [新しいキーペアの作成] を選択します。

    キーペア名フィールドと新しいキーペアの作成オプションを示す [キーペア] インターフェイス。

    Amazon EC2 キーペアを指定する必要があります。

    • Amazon EC2 のキーペアがある場合 :

      1. キーペアを選択し、リストからご自身のキーペアを選択します。

      2. Amazon EC2 インスタンスにログインするには、あからじめプライベートキーファイル (.pem もしくは.ppk ファイル) を利用可能にしておく必要があります。

    • Amazon EC2 のキーペアがない場合:

      1. [新しいキーペアの作成] を選択すると、[キーペアの作成] ダイアログボックスが表示されます。

      2. [キーペア名] フィールドに名前を入力します。

      3. [キーペアタイプ][プライベートキーファイル形式] を選択します。

      4. [キーペアの作成] を選択してください。

    キーペア名、タイプ、ファイル形式がある [キーペアの作成] インターフェイス。[キーペアの作成] ボタンは右下隅にあります。
    注記

    セキュリティ上の理由から、SSH とインターネット両方からの EC2 インスタンスへの接続にキーペアを使用することを強くお勧めします。

  6. [ネットワーク設定] セクションの [ファイアウォール (セキュリティグループ)] で、[セキュリティグループの作成] または [既存のセキュリティグループを選択する] を選択します。

    セキュリティグループを作成するためのオプションを示す [ネットワーク設定] インターフェイス。

    既存のセキュリティグループを選択する場合は、[共通セキュリティグループ] ドロップダウンリストから選択します。

    新しいセキュリティグループの作成を選択する場合は、以下を実行します。

    1. EC2 への接続に適用されるすべてのトラフィック許可ルールを確認します。

    2. [IP] フィールドで、[マイ IP] または [カスタム] を選択して、CIDR ブロックのリスト、プレフィックスリスト、もしくはセキュリティグループのいずれかを選択します。ここで [Anywhere] を選択するとどの IP アドレスからでも EC2 インスタンス へのアクセスが可能になるため、EC2 インスタンスが分離されたネットワーク上にある場合を除き、[Anywhere] を選択することはお勧めしません。

    My IP ドロップダウン。
  7. [概要] セクションで、EC2 設定を確認し、問題がなければ [インスタンスを起動] を選択します。

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

次に、デフォルトの Amazon VPC に新しいセキュリティグループを作成します。セキュリティグループ demoDocDB では、Amazon EC2 インスタンスからポート 27017 (Amazon DocumentDB のデフォルトポート) で Amazon DocumentDB クラスターに接続できます。

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

    [ネットワークとセキュリティ] ドロップダウンで [セキュリティグループ] オプションが選択された Amazon DocumentDB コンソールのナビゲーションペイン。
  2. [セキュリティグループの作成] を選択してください。

    [セキュリティグループの作成] ボタンを選択します。
  3. [基本的な詳細] セクションで、次の操作を行います。

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

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

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

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

    1. [タイプ] で [カスタム TCP ルール] を選択します (デフォルト)。

    2. [ポート範囲]27017 と入力します。

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

    タイプ、プロトコル、ポート範囲、ソース、および説明のフィールドを示す [インバウンドルール] セクション。[ルールの追加] ボタンは左下隅にあります。
  5. 他のすべてのデフォルトを受け入れ、[セキュリティグループの作成] を選択します。

    [セキュリティグループの作成] ボタンを選択します。

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

Amazon EC2 インスタンスのプロビジョニング中は、Amazon DocumentDB クラスターを作成します。

  1. Amazon DocumentDB コンソールに移動し、ナビゲーションペインから クラスター を選択します。

  2. [作成] を選択します。

  3. [クラスタータイプ] 設定は、デフォルトの [インスタンスベースのクラスター] のままにしておきます。

  4. [クラスター設定] では、一意の [クラスター名] を入力します。コンソール操作では、入力方法に関係なくクラスター名のすべての文字が小文字に変換されることにご留意ください。

    [エンジンバージョン] はデフォルト値の 5.0.0 のままにします。

  5. [クラスターストレージ設定] では、Amazon DocumentDB Standard のデフォルト設定のままにします。

  6. [インスタンスの設定] で:

    • [DB インスタンスクラス] では、メモリ最適化クラス (r クラスを含む) を選択します (デフォルト)。

      もう 1 つのインスタンスオプションは NVMe-backed クラス です。詳細については NVMe-backed インスタンス を参照してください。

    • [インスタンスクラス] では、ニーズに合ったインスタンスタイプを選択します。インスタンスクラスの詳細については、「インスタンスクラスの仕様」を参照してください。

    • [インスタンスの数] では、ニーズを最も反映する数を選択します。数値が低いほど、コストが低くなり、クラスターで管理できる読み取り/書き込みボリュームが低くなることに注意してください。

    インスタンス数が 1 に設定されている、クラスター識別子、エンジンバージョン、およびインスタンスクラスのデフォルト値がある設定インターフェイス。
  7. [接続] は、デフォルト設定の [EC2 コンピューティングリソースに接続しない] のままにしておきます。

    注記

    EC2 コンピューティングリソースに接続すると、お使いのクラスターへの接続向けセキュリティグループが自動的に作成されます。前のステップでセキュリティグループを既に手動で作成しているため、追加のセキュリティグループのセットが作成されないように、[EC2 コンピューティングリソースに接続しない] を選択しておく必要があります。

  8. [認証] セクションで、プライマリユーザーのユーザー名を入力し、[セルフマネージド] を選択します。パスワードを入力して確認します。

    代わりに Managed in AWS Secrets Manager を選択した場合は、詳細についてはAmazon DocumentDB と によるパスワード管理 AWS Secrets Manager「」を参照してください。

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

ステップ 4: Amazon EC2 インスタンスに接続します

Amazon EC2 インスタンスに接続すると、MongoDB シェルをインストールできるようになります。Mongo シェルをインストールすると、Amazon DocumentDB クラスターに接続してクエリを実行できます。以下のステップを実行します。

  1. Amazon EC2 コンソールで、インスタンスに移動し、作成したインスタンスが実行中かどうかを確認します。実行されている場合は、インスタンス ID をクリックしてインスタンスを選択します。

    Amazon EC2 コンソールで 2 つのインスタンスを一覧表示するインスタンステーブル。
  2. 接続 を選択します。

    Amazon EC2 インスタンスのインスタンス概要。[接続] ボタンは右上隅にあります。
  3. 接続方法として、Amazon EC2 Instance Connect、セッションマネージャー、SSH クライアント、EC2 シリアルコンソールの 4 つのオプションがタブ形式で表示されます。いずれかを選択し、その指示に従わなければなりません。完了したら、[接続する] を選択します。

    EC2 Instance Connect の接続方法の設定オプションを示すインターフェイス。
注記

このチュートリアルの開始後に IP アドレスが変更された場合、または後で環境に戻る場合は、demoEC2 セキュリティグループのインバウンドルールを更新して、新しい API アドレスからのインバウンドトラフィックを有効化します。

ステップ 5: MongoDB シェルをインストールする

これで、MongoDB シェルをインストールできます。これは、Amazon DocumentDB クラスターに接続してクエリするために使用するコマンドラインのユーティリティです。現在、MongoDB シェルには最新バージョンの mongosh と以前のバージョンの mongo シェルの 2 つのバージョンがあります。

重要

なお、バージョン 6.13.1 より前の Node.js ドライバーには既知の制限事項があり、現在 Amazon DocumentDB の IAM ID 認証ではサポートされていません。Node.js ドライバーを使用する Node.js ドライバーとツール (例えば、mongosh) は、Node.js ドライバーバージョン 6.13.1 以降を使用するようにアップグレードする必要があります。

以下の手順に従って、オペレーションシステム用の MongoDB シェルをインストールします。

On Amazon Linux

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

IAM を使用しておらず、最新の MongoDB シェル (mongosh) を使用して Amazon DocumentDB クラスターに接続する場合は、次の手順に従います。

  1. リポジトリファイルを作成します。作成した EC2 インスタンスのコマンドラインで、次のコマンドを入力します。

    echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://pgp.mongodb.com/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo
  2. 完了したら、コマンドプロンプトで次の 2 つのコマンドオプションのいずれかを使用して mongosh をインストールします。

    オプション 1 — Amazon EC2 の設定中にデフォルトの Amazon Linux 2023 を選択した場合は、次のコマンドを入力します。

    sudo yum install -y mongodb-mongosh-shared-openssl3

    オプション 2 — Amazon EC2 の設定中に Amazon Linux 2 を選択した場合は、次のコマンドを入力します。

    sudo yum install -y mongodb-mongosh

IAM を使用している場合は、以前のバージョンの MongoDB シェル (5.0) を使用して Amazon DocumentDB クラスターに接続する必要があり、次の手順を実行します。

  1. リポジトリファイルを作成します。作成した EC2 インスタンスのコマンドラインで、次のコマンドを入力します。

    echo -e "[mongodb-org-5.0] \nname=MongoDB Repository\nbaseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/5.0/x86_64/\ngpgcheck=1 \nenabled=1 \ngpgkey=https://pgp.mongodb.com/server-5.0.asc" | sudo tee /etc/yum.repos.d/mongodb-org-5.0.repo
  2. 完了したら、コマンドプロンプトで次のコマンドオプションを使用して mongodb 5.0 シェルをインストールします。

    sudo yum install -y mongodb-org-shell
On Ubuntu
Ubuntu に mongosh をインストールするには
  1. パッケージ管理システムで使用されるパブリックキーをインポートします。

    curl -fsSL https://pgp.mongodb.com/server-5.0.asc | sudo gpg --dearmor -o /usr/share/keyrings/mongodb-server-5.0.gpg
  2. Ubuntu のバージョンに適切なコマンドを使用して、MongoDB の リストファイル mongodb-org-5.0.list を作成します。

    echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-5.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
  3. 次のコマンドを使用してローカルパッケージデータベースをインポートして更新します。

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

    sudo apt-get install -y mongodb-mongosh

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

On other operating systems

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

ステップ 6: Amazon DocumentDB TLS の管理

次のコード wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem を使用して Amazon DocumentDB の CA 証明書をダウンロードします。

注記

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

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

  1. Amazon DocumentDB コンソールの [クラスター] で、接続したいクラスターを見つけます。そのクラスターの [クラスター識別子] をクリックして、作成済みのクラスターを選択します。

    プライマリインスタンスの詳細を含むリージョンクラスターを示す Amazon DocumentDB クラスターリスト。
  2. [接続とセキュリティ] タブの [接続する] ボックス内で、[mongo シェルを使用してこのクラスターに接続する] を見つけます。

    Mongo シェルを使用して Amazon DocumentDB クラスターに接続するための Amazon DocumentDB 接続文字列が強調表示されたクラスター接続設定。

    表示された接続文字列をコピーし、ターミナルに貼り付けます。

    これに以下の変更を加えます。

    1. 文字列に正しいユーザー名が含まれているのを確認してください。

    2. <insertYourPassword> は省略します。これにより、接続時に mongo シェルによりパスワードの入力を求められます。

    3. オプション: IAM 認証を使用している場合、または以前のバージョンの MongoDB シェルを使用している場合は、次のように接続文字列を変更します。

      mongo --ssl --host mydocdbcluster.cluster-cozt4xr9xv9b.us-east-1.docdb.amazonaws.com:27017 --sslCAFile global-bundle.pem --username SampleUser1 --password

      mydocdbcluster.cluster-cozt4xr9xv9b.us-east-1 をクラスターの同じ情報に置き換えます。

  3. ターミナル上で Enter キーを押します。ここで、パスワードの入力を求められます。パスワードを入力します。

  4. パスワードを入力し、rs0 [direct: primary] <env-name>> プロンプトが表示されたら、Amazon DocumentDB クラスターに正常に接続されています。

接続に問題がありますか。Amazon DocumentDB のトラブルシューティング を参照してください。

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

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

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

    db.collection.insertOne({"hello":"DocumentDB"})

    次の出力が返ります。

    { acknowledged: true, insertedId: ObjectId('673657216bdf6258466b128c') }
  2. findOne() コマンドで書き込んだドキュメントを読み取ることができます (一つのドキュメントしか返さないため)。以下を入力します。

    db.collection.findOne()

    次の出力が返ります。

    { "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
  3. さらにいくつかのクエリを実行するには、ゲームプロファイルのユースケースを検討してください。まず、「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 } ])

    次の出力が返ります。

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

    db.profiles.find()

    ステップ 3 で入力したデータと一致する出力を取得します。

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

    db.profiles.find({name: "Katie"})

    次の出力が返ります。

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

    db.profiles.findAndModify({ query: { name: "Matt", status: "active"}, update: { $inc: { score: 10 } } })

    次のような出力が得られます (Mattのスコアはまだ上がっていないことに注意してください) 。

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

    db.profiles.find({name: "Matt"})

    次の出力が返ります。

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

ステップ 9: 環境情報の確認

お疲れ様でした。Amazon DocumentDB のクイックスタートガイドを正常に完了しました。

次のステップ この強力なデータベースを一般的な特徴をいくつか使って十分に活用する方法を学びましょう。

注記

コストを節約するために、Amazon DocumentDB クラスターを停止してコストを削減するか、クラスターを削除することができます。デフォルトでは、30 分間非アクティブになると、 AWS Cloud9 環境は基盤となる Amazon EC2 インスタンスを停止します。