

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

# Amazon EC2 を使用した接続
<a name="connect-ec2"></a>

このセクションでは、Amazon DocumentDB クラスターと Amazon EC2 間の接続を設定し、Amazon EC2 インスタンスから Amazon DocumentDB クラスターにアクセスする方法について説明します。

EC2 接続を設定する方法は複数あります。
+ [EC2 インスタンスを Amazon DocumentDB データベースに自動的に接続する](connect-ec2-auto.md) — EC2 コンソールの自動接続機能を使用して、EC2 インスタンスと新規または既存の Amazon DocumentDB データベース間の接続を自動で設定できます。この接続により、EC2 インスタンスと Amazon DocumentDB データベース間でやり取りされるトラフィックを確立できます。このオプションは通常、新しいセキュリティグループのテストと作成に使用されます。
+ [EC2 インスタンスを Amazon DocumentDB データベースに手動で接続する](connect-ec2-manual.md) — 自動接続機能によって作成されるのと同じ設定を再現することにより、セキュリティグループを手動で設定して割り当て、EC2 インスタンスと Amazon DocumentDB データベース間の接続を設定できます。このオプションは、通常、高度な設定を変更したり、既存のセキュリティグループを使用するために使用されます。

## 前提条件
<a name="connect-ec2-prerequisites"></a>

いずれのオプションを使用する場合でも、最初の Amazon DocumentDB クラスターを作成する前に、以下の操作を行う必要があります。

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

**にサインアップするには AWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

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

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   にサインアップすると AWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

**必要に応じて、必要な AWS Identity and Access Management (IAM) アクセス許可を設定します。**  
クラスター、インスタンス、クラスターパラメータグループなどの Amazon DocumentDB リソースを管理するには、 がリクエストの認証 AWS に使用できる認証情報が必要です。詳細については、「[Amazon DocumentDB の Identity and Access Management](security-iam.md)」を参照してください。  

1. の検索バーで AWS マネジメントコンソール、IAM と入力し、表示されるドロップダウンメニューで **IAM** を選択します。

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

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

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

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

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

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

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

**Amazon VPC (Amazon Virtual Private Cloud) を作成する**  
どの AWS リージョン にあるかによって、デフォルトの VPC が既に作成されているかどうかがわかります。デフォルトの VPC がない場合は、[Amazon VPC のユーザーガイド](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) の *Amazon VPC の開始方法* のステップ 1 を完了させます。これには 5 分もかかりません。

# Amazon EC2 への自動接続
<a name="connect-ec2-auto"></a>

**Topics**
+ [EC2 インスタンスを新しい Amazon DocumentDB データベースに自動接続する](#auto-connect-ec2.process)
+ [EC2 インスタンスを既存の Amazon DocumentDB データベースに自動的に接続する](#auto-connect-ec2-existing-cluster)
+ [EC2 インスタンスとの自動接続の概要](#auto-connect-ec2.overview)
+ [接続中のコンピューティングリソースを表示する](#auto-connect-ec2.compute)

EC2 インスタンスと新しい Amazon DocumentDB データベース間の接続を設定する前に、「[EC2 インスタンスとの自動接続の概要](#auto-connect-ec2.overview)」に記載される要件を満たしているか確認してください。接続の設定後にこれらのセキュリティグループに変更を加えると、EC2 インスタンスと Amazon DocumentDB データベース間の接続に影響を及ぼす可能性があります。

**注記**  
 AWS マネジメントコンソールを使用することでのみ、EC2 インスタンスと Amazon DocumentDB データベース間の接続を自動的に設定できます。 AWS CLI または Amazon DocumentDB API を使用して接続を自動的にセットアップすることはできません。

## EC2 インスタンスを新しい Amazon DocumentDB データベースに自動接続する
<a name="auto-connect-ec2.process"></a>

以下のプロセスは、[前提条件](connect-ec2.md#connect-ec2-prerequisites) トピック記載のステップが完了済みであることを前提としています。

**Topics**
+ [ステップ 1: Amazon EC2 インスタンスを作成する](#auto-connect-ec2.launch-ec2-instance)
+ [ステップ 2: Amazon DocumentDB クラスターを作成する](#auto-connect-ec2.launch-cluster)
+ [ステップ 3: Amazon EC2 インスタンスに接続する](#manual-connect-ec2.connect)
+ [ステップ 4: MongoDB シェルをインストールする](#auto-connect-ec2.install-mongo-shell)
+ [ステップ 5: Amazon DocumentDB TLS の管理](#auto-connect-ec2.tls)
+ [ステップ 6: Amazon DocumentDB クラスターに接続する](#auto-connect-ec2.connect-use)
+ [ステップ 7: データの挿入とクエリ](#auto-cloud9-insert-query)
+ [ステップ 8: 使ってみる](#auto-connect-ec2.explore)

### ステップ 1: Amazon EC2 インスタンスを作成する
<a name="auto-connect-ec2.launch-ec2-instance"></a>

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

1. Amazon EC2 コンソールで、[**インスタンスを起動**] を選択します。  
![\[Amazon EC2 コンソールの [インスタンスを起動] セクション。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/launch-instance.png)

1. **[名前とタグ]** セクション内の **[名前]** フィールドに、名前または識別子を入力します。

1. **[Amazon マシンイメージ (AMI)]** ドロップダウンリストで、**[Amazon Linux 2 AMI]** を選択します。  
![\[Amazon Linux 2 AMI オプションが [クイックスタート] セクションで選択された [アプリケーションおよび OS イメージ] インターフェイス。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/linux2-ami.png)

1. **[インスタンスタイプ]** のドロップダウンリストで、**[t3.micro]** を選択します。

1. **[キーペア (ログイン)]** セクションで、既存のキーペアの識別子を入力するか、もしくは **[新しいキーペアの作成]** を選択します。  
![\[キーペア名フィールドと新しいキーペアの作成オプションを示す [キーペア] インターフェイス。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/key-pair.png)

   Amazon EC2 キーペアを指定する必要があります。
   + Amazon EC2 のキーペアがある場合 :

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

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

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

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

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

     1. [**キーペアの作成**] を選択してください。  
![\[キーペア名、タイプ、ファイル形式がある [キーペアの作成] インターフェイス。[キーペアの作成] ボタンは右下隅にあります。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/create-key-pair.png)
**注記**  
セキュリティ上の理由から、SSH とインターネット両方からの EC2 インスタンスへの接続にキーペアを使用することを強くお勧めします。

1. **オプション:** **ネットワーク設定セクション** の **ファイアウォール (セキュリティグループ)** で、[**セキュリティグループの作成**] を選択します。  
![\[セキュリティグループを作成するためのオプションを示す [ネットワーク設定] インターフェイス。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/firewall.png)

   **[セキュリティグループの作成]** を選択します (EC2 接続に適用されるすべてのトラフィック許可ルールを確認します)。
**注記**  
既存のセキュリティグループを使用する場合は、「[Amazon EC2 を手動で接続する](connect-ec2-manual.md)」の手順に従います。

1. **[概要]** セクションで、EC2 設定を確認し、問題がなければ **[インスタンスを起動]** を選択します。

### ステップ 2: Amazon DocumentDB クラスターを作成する
<a name="auto-connect-ec2.launch-cluster"></a>

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

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

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

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

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

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

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

1. **[インスタンスの設定]** で:
   + **[DB インスタンスクラス]** では、**メモリ最適化クラス (r クラスを含む) ** を選択します (デフォルト）。

     もう 1 つのインスタンスオプションは **NVMe-backed クラス** です。詳細については [NVMe-backed インスタンス](db-instance-nvme.md) を参照してください。
   + **[インスタンスクラス]** では、ニーズに合ったインスタンスタイプを選択します。インスタンスクラスの詳細については、「[インスタンスクラスの仕様](db-instance-classes.md#db-instance-class-specs)」を参照してください。
   + **[インスタンスの数]** では、ニーズを最も反映する数を選択します。数値が低いほど、コストが低くなり、クラスターで管理できる読み取り/書き込みボリュームが低くなることに注意してください。  
![\[インスタンス数が 1 に設定されている、クラスター識別子、エンジンバージョン、およびインスタンスクラスのデフォルト値がある設定インターフェイス。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/create-cluster/instance-config.png)

1. **[接続]** で、**[EC2 コンピューティングリソースに接続する]** を選択します。これは、ステップ 1 で作成した EC2 インスタンスです。  
![\[選択した EC2 コンピューティングリソースへの接続オプションがある接続インターフェイス。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2-connect.png)
**注記**  
EC2 コンピューティングリソースに接続すると、Amazon DocumentDB クラスターへの EC2 コンピューティングリソース接続向けセキュリティグループが自動的に作成されます。クラスターの作成完了後、新しく作成したセキュリティグループを確認したい場合は、クラスターリストに移動して該当するクラスター識別子を選択します。**[接続とセキュリティ]** タブ内で **[セキュリティグループ]** に移動して、**[セキュリティグループ名 (ID)]** で見たいグループを見つけます。クラスターの名前と `docdb-ec2-docdb-2023-12-11-21-33-41:i-0e4bb09985d2bbc4c (sg-0238e0b0bf0f73877)` のような内容が表示されます。

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

   代わりに **Managed in AWS Secrets Manager** を選択した場合、詳細については[Amazon DocumentDB と によるパスワード管理 AWS Secrets Manager](docdb-secrets-manager.md)「」を参照してください。

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

### ステップ 3: Amazon EC2 インスタンスに接続する
<a name="manual-connect-ec2.connect"></a>

Mongo Shell をインストールするには、まず Amazon EC2 インスタンスに接続する必要があります。Mongo シェルをインストールすると、Amazon DocumentDB クラスターに接続してクエリを実行できます。以下のステップを実行します。

1. Amazon EC2 コンソールで、インスタンスに移動し、作成したインスタンスが実行中かどうかを確認します。実行されている場合は、インスタンス ID をクリックしてインスタンスを選択します。  
![\[Amazon EC2 コンソールで 2 つのインスタンスを一覧表示するインスタンステーブル。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/ec2-instance-table.png)

1. **接続** を選択します。  
![\[Amazon EC2 インスタンスのインスタンス概要。[接続] ボタンは右上隅にあります。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/ec2-instance-summary.png)

1. 接続方法として、Amazon EC2 Instance Connect、セッションマネージャー、SSH クライアント、EC2 シリアルコンソールの 4 つのオプションがタブ形式で表示されます。いずれかを選択し、その指示に従わなければなりません。完了したら、**[接続する]** を選択します。  
![\[EC2 Instance Connect の接続方法の設定オプションを示すインターフェイス。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/connect-options.png)

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

### ステップ 4: MongoDB シェルをインストールする
<a name="auto-connect-ec2.install-mongo-shell"></a>

これで、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
   ```

1. 完了したら、コマンドプロンプトで次の 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
   ```

1. 完了したら、コマンドプロンプトで次のコマンドオプションを使用して 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
   ```

1. 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
   ```

1. 次のコマンドを使用してローカルパッケージデータベースをインポートして更新します。

   ```
   sudo apt-get update
   ```

1. mongosh をインストールします。

   ```
   sudo apt-get install -y mongodb-mongosh
   ```

以前のバージョンの MongoDB の Ubuntu システムへのインストールについては、「 [Install MongoDB Community Edition on Ubuntu](https://docs.mongodb.com/v3.6/tutorial/install-mongodb-on-ubuntu/) 」を参照してください。

------
#### [ On other operating systems ]

mongo シェルを他のオペレーティングシステムにインストールするには、MongoDB ドキュメントの「 [MongoDB Community Edition のインストール](https://www.mongodb.com/docs/manual/administration/install-community/) 」を参照してください。

------

### ステップ 5: Amazon DocumentDB TLS の管理
<a name="auto-connect-ec2.tls"></a>

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

**注記**  
全ての新しい Amazon DocumentDB クラスターに対して、デフォルトで Transport Layer Security (TLS) が有効になっています。詳細については、「[Amazon DocumentDB クラスター TLS 設定の管理](https://docs.aws.amazon.com/documentdb/latest/developerguide/security.encryption.ssl.html)」を参照してください。

### ステップ 6: Amazon DocumentDB クラスターに接続する
<a name="auto-connect-ec2.connect-use"></a>

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

1. **[接続とセキュリティ]** タブの **[接続する]** ボックス内で、**[mongo シェルを使用してこのクラスターに接続する]** を見つけます。  
![\[Mongo シェルを使用して Amazon DocumentDB クラスターに接続するための Amazon DocumentDB 接続文字列が強調表示されたクラスター接続設定。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/connect-mongosh.png)

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

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

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

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

   1. オプション: 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` をクラスターの同じ情報に置き換えます。

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

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

接続に問題がありますか。[Amazon DocumentDB のトラブルシューティング](https://docs.aws.amazon.com/documentdb/latest/developerguide/troubleshooting.html) を参照してください。

### ステップ 7: データの挿入とクエリ
<a name="auto-cloud9-insert-query"></a>

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

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

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

   次の出力が返ります。

   ```
   {
     acknowledged: true,
     insertedId: ObjectId('673657216bdf6258466b128c')
   }
   ```

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

   ```
   db.collection.findOne()
   ```

   次の出力が返ります。

   ```
   { "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
   ```

1. さらにいくつかのクエリを実行するには、ゲームプロファイルのユースケースを検討してください。まず、「`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 } }
   ```

1. `find()` コマンドを使用して、プロファイルコレクション内のすべてのドキュメントを返します。以下を入力します。

   ```
   db.profiles.find()
   ```

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

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

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

   次の出力が返ります。

   ```
   { "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}
   ```

1. それでは、プロファイルを探して、それを `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}]
   ```

1. 次のクエリを使用して、Matt のスコアが変更されたことを確認できます。

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

   次の出力が返ります。

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

### ステップ 8: 使ってみる
<a name="auto-connect-ec2.explore"></a>

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

次のステップ この強力なデータベースを一般的な特徴をいくつか使って十分に活用する方法を学びましょう。
+  [Amazon DocumentDB の管理](https://docs.aws.amazon.com/documentdb/latest/developerguide/managing-documentdb.html) 
+  [スケーリング](https://docs.aws.amazon.com/documentdb/latest/developerguide/operational_tasks.html) 
+  [バックアップと復元](https://docs.aws.amazon.com/documentdb/latest/developerguide/backup_restore.html) 

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

## EC2 インスタンスを既存の Amazon DocumentDB データベースに自動的に接続する
<a name="auto-connect-ec2-existing-cluster"></a>

次の手順では、既存の Amazon DocumentDB クラスターと既存の Amazon EC2 インスタンスを利用できることを前提としています。

**Amazon DocumentDB クラスターにアクセスし、Amazon EC2 接続をセットアップする**

1. Amazon DocumentDB クラスターにアクセスします。

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

   1. ナビゲーションペインで **クラスター** を選択します。
**ヒント**  
画面の左側にナビゲーションペインが表示されない場合は、ページの左上隅にあるメニューアイコン (![\[Hamburger menu icon with three horizontal lines.\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/docdb-menu-icon.png)) を選択します。

   1. クラスター名の左側にあるボタンを選択して、アクセスしたいクラスターを指定します。

1. Amazon EC2 接続を設定します。

   1. **[アクション]** をクリックし、**[EC2 接続の設定]** をクリックします。  
![\[[EC2 接続のセットアップ] オプションが選択された [アクション] ドロップダウンリスト。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/setup-ec2-connect.png)

      **[EC2 接続の設定]** ダイアログが開きます。

   1. **[EC2 インスタンス]** フィールドで、クラスターに接続する EC2 インスタンスを選択します。  
![\[[EC2 インスタンス] ドロップダウンリストが強調表示された [EC2 接続のセットアップ] インターフェイス。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/setup-ec2-connect-dialog.png)

   1. [**続行**] をクリックしてください。

      **[確認と確定]** ダイアログページが表示されます。

   1. 変更内容が正しいことを確認します。続いて、**[接続の設定]** を選択します。  
![\[変更の概要を示す [確認と確定] インターフェイス。[接続の設定] ボタンは右下隅にあります。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/setup-ec2-review-confirm.png)

正常に接続が設定されると、以下の検証結果が表示されます。

![\[Amazon DocumentDB データベースと EC2 インスタンス間の接続設定が成功したことの確認メッセージ。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/setup-ec2-connect-success.png)


## EC2 インスタンスとの自動接続の概要
<a name="auto-connect-ec2.overview"></a>

EC2 インスタンスと Amazon DocumentDB データベース間の接続を設定すると、Amazon DocumentDB ではその EC2 インスタンスと Amazon DocumentDB データベース向けの VPC セキュリティグループを自動的に設定します。

EC2 インスタンスと Amazon DocumentDB データベースを接続するための要件は次のとおりです。
+ EC2 インスタンスは、Amazon DocumentDB データベースと同じ VPC 内に存在する必要があります。

  同じ VPC に EC2 インスタンスが存在しない場合、コンソールには EC2 インスタンス作成用のリンクが表示されます。
+ 接続を設定するユーザーには、以下の Amazon EC2 オペレーションを実行するアクセス許可が必要です。
  + `ec2:AuthorizeSecurityGroupEgress`
  + `ec2:AuthorizeSecurityGroupIngress`
  + `ec2:CreateSecurityGroup`
  + `ec2:DescribeInstances`
  + `ec2:DescribeNetworkInterfaces`
  + `ec2:DescribeSecurityGroups`
  + `ec2:ModifyNetworkInterfaceAttribute`
  + `ec2:RevokeSecurityGroupEgress`

DB インスタンスと EC2 インスタンスが異なるアベイラビリティーゾーンにある場合、アベイラビリティーゾーン間のコストが発生する可能性があります。

EC2 インスタンスへの接続を設定すると、Amazon DocumentDB は、次の表に示すように、その Amazon DocumentDB データベースと EC2 インスタンスに関連付けられているセキュリティグループの現在の設定に従って動作します。


| 現在の Amazon DocumentDB セキュリティグループ設定 | 現在の EC2 セキュリティグループの設定 | Amazon DocumentDB の動作 | 
| --- | --- | --- | 
| パターン DocumentDB-ec2-n に一致する名前をもつ Amazon DocumentDB データベースに関連付けられたセキュリティグループが 1 つ以上存在します。パターンに一致するセキュリティグループは変更されていません。このセキュリティグループには、EC2 インスタンスの VPC セキュリティグループをソースとするインバウンドルールが 1 つのみ存在します。 | パターン DocumentDB-ec2-n (n は数字) に一致する名前の EC2 インスタンスに関連付けられたセキュリティグループが 1 つ以上存在します。パターンに一致するセキュリティグループは変更されていません。このセキュリティグループには、Amazon DocumentDB データベースの VPC セキュリティグループをソースとするアウトバウンドルールが 1 つのみ存在します。 | Amazon DocumentDB はアクションを実行しません。EC2 インスタンスと Amazon DocumentDB データベース間の接続は、既に自動で設定されています。EC2 インスタンスと Amazon DocumentDB データベース間には既に接続が存在するため、セキュリティグループの変更は行われません。 | 
| 次の条件のいずれかが適用されます。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/connect-ec2-auto.html)  | 次の条件のいずれかが適用されます。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/connect-ec2-auto.html) | Amazon DocumentDB アクション: 新しいセキュリティグループを作成する | 
| パターン DocumentDB-ec2-n に一致する名前をもつ Amazon DocumentDB データベースに関連付けられたセキュリティグループが 1 つ以上存在します。パターンに一致するセキュリティグループは変更されていません。このセキュリティグループには、EC2 インスタンスの VPC セキュリティグループをソースとするインバウンドルールが 1 つのみ存在します。 | EC2 インスタンスに関連付けられた、パターン ec2-DocumentDB-n に一致する名前のセキュリティグループが 1 つまたは複数存在します。ただし、Amazon DocumentDB は、これらのセキュリティグループのいずれも、Amazon DocumentDB データベースとの接続には使用できません。Amazon DocumentDB は、Amazon DocumentDB データベースの VPC セキュリティグループをソースとするアウトバウンドルールが 1 つもないセキュリティグループを使用できません。また、Amazon DocumentDB は、変更が加えられたセキュリティグループを使用できません。 | Amazon DocumentDB アクション: 新しいセキュリティグループを作成する | 
| パターン DocumentDB-ec2-n に一致する名前をもつ Amazon DocumentDB データベースに関連付けられたセキュリティグループが 1 つ以上存在します。パターンに一致するセキュリティグループは変更されていません。このセキュリティグループには、EC2 インスタンスの VPC セキュリティグループをソースとするインバウンドルールが 1 つのみ存在します。 | 接続に有効な EC2 セキュリティグループは存在しますが、EC2 インスタンスに関連付けられていません。このセキュリティグループには、パターン DocumentDB-ec2-n に一致する名前が付いています。このセキュリティグループには変更が加えられていません。このセキュリティグループには、Amazon DocumentDB データベースの VPC セキュリティグループをソースとするアウトバウンドルールが 1 つのみ存在します。 | Amazon DocumentDB アクション: EC2 セキュリティグループを関連付ける | 
| 次の条件のいずれかが適用されます。[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/connect-ec2-auto.html)  | EC2 インスタンスに関連付けられた、パターン DocumentDB-ec2-n に一致する名前のセキュリティグループが 1 つまたは複数存在します。パターンに一致するセキュリティグループは変更されていません。このセキュリティグループには、Amazon DocumentDB データベースの VPC セキュリティグループをソースとするアウトバウンドルールが 1 つのみ存在します。 | Amazon DocumentDB アクション: 新しいセキュリティグループを作成する | 

**Amazon DocumentDB アクション: 新しいセキュリティグループを作成する**

Amazon DocumentDB は以下のアクションを実行します。
+ パターン `DocumentDB-ec2-n` に一致する新しいセキュリティグループを作成します。このセキュリティグループには、EC2 インスタンスの VPC セキュリティグループをソースとするインバウンドルールが存在します。このセキュリティグループは Amazon DocumentDB データベースに関連付けられており、EC2 インスタンスが Amazon DocumentDB データベースにアクセスするのを許可します。
+ パターン `ec2-DocumentDB-n` に一致する新しいセキュリティグループを作成します。このセキュリティグループには、Amazon DocumentDB データベースの VPC セキュリティグループをソースとするアウトバウンドルールが存在します。このセキュリティグループには EC2 インスタンスに関連付けられており、EC2 インスタンスが Amazon DocumentDB データベースにトラフィックを送信するのを許可します。

**Amazon DocumentDB アクション: EC2 セキュリティグループを関連付ける**

Amazon DocumentDB は、有効な既存の EC2 セキュリティグループを EC2 インスタンスに関連付けます。このセキュリティグループは、EC2 インスタンスが Amazon DocumentDB データベース にトラフィックを送信するのを許可します。

## 接続中のコンピューティングリソースを表示する
<a name="auto-connect-ec2.compute"></a>

を使用して AWS マネジメントコンソール 、Amazon DocumentDB データベースに接続されているコンピューティングリソースを表示できます。表示されるリソースには、自動的に設定されたコンピューティングリソース接続が含まれます。コンピューティングリソースとの接続は、次の方法で自動的に設定できます。
+ データベースを作成するときに、コンピューティングリソースを選択できます。詳細については、「[Amazon DocumentDB クラスターの作成](db-cluster-create.md)」および「マルチ AZ DB クラスターの作成」を参照してください。
+ 既存のデータベースとコンピューティングリソース間の接続を設定できます。詳細については、「[Amazon EC2 への自動接続](#connect-ec2-auto)」を参照してください。

コンピューティングリソースリストには、手動でデータベースに接続されたものは含まれていません。例えば、データベースに関連付けられた VPC セキュリティグループにルールを追加することで、コンピューティングリソースがデータベースに手動でアクセスできるようになります。

コンピューティングリソースをリスト化するには、次の条件を満たしている必要があります。
+ コンピューティングリソースに関連付けられているセキュリティグループの名前がパターン `ec2-DocumentDB-n` (n は数字) と一致する。
+ コンピューティングリソースに関連付けられたセキュリティグループには、Amazon DocumentDB データベースが使用するポート向けに設定されたポート範囲を持つアウトバウンドルールがある。
+ コンピューティングリソースに関連付けられたセキュリティグループには、Amazon DocumentDB データベースに関連付けられたセキュリティグループをソースとするアウトバウンドルールがある。
+ Amazon DocumentDB データベースに関連付けられたセキュリティグループの名前が、パターン `DocumentDB-ec2-n` (n は数字) に一致する。
+ Amazon DocumentDB データベースに関連付けられたセキュリティグループには、Amazon DocumentDB データベースが使用するポート向けに設定されたポート範囲を持つインバウンドルールがある。
+ Amazon DocumentDB データベースに関連付けられたセキュリティグループには、コンピューティングリソースに関連付けられたセキュリティグループをソースとするインバウンドルールがある。

**Amazon DocumentDB データベースに接続されているコンピューティングリソースを確認するには**

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

1. ナビゲーションペインで、**[データベース]** を選択し、確認したい Amazon DocumentDB データベースの名前を選択します。

1. **[接続とセキュリティ]** タブ内の **[接続されたコンピューティングリソース]** で、接続されているコンピューティングリソースを確認します。

# Amazon EC2 を手動で接続する
<a name="connect-ec2-manual"></a>

**Topics**
+ [ステップ 1: Amazon EC2 インスタンスを作成する](#manual-connect-ec2.launch-ec2-instance)
+ [ステップ 2: セキュリティグループを作成する](#manual-connect-ec2.security-group)
+ [ステップ 3: Amazon DocumentDB クラスターを作成する](#manual-connect-ec2.launch-cluster)
+ [ステップ 4: Amazon EC2 インスタンスに接続します](#manual-connect-ec2.connect)
+ [ステップ 5: MongoDB シェルをインストールする](#manual-connect-ec2.install-mongo-shell)
+ [ステップ 6: Amazon DocumentDB TLS の管理](#manual-connect-ec2.tls)
+ [ステップ 7: Amazon DocumentDB クラスターに接続する](#manual-connect-ec2.connect-use)
+ [ステップ 8: データの挿入とクエリ](#manual-cloud9-insert-query)
+ [ステップ 9: 環境情報の確認](#manual-connect-ec2.explore)

以下の手順は、「[前提条件](connect-ec2.md#connect-ec2-prerequisites)」トピックに記載されるステップが完了済みであることを前提としています。

## ステップ 1: Amazon EC2 インスタンスを作成する
<a name="manual-connect-ec2.launch-ec2-instance"></a>

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

1. Amazon EC2 コンソールで、[**インスタンスを起動**] を選択します。  
![\[Amazon EC2 コンソールの [インスタンスを起動] セクション。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/launch-instance.png)

1. **[名前とタグ]** セクション内の **[名前]** フィールドに、名前または識別子を入力します。

1. **[Amazon マシンイメージ (AMI)]** ドロップダウンリストで、**[Amazon Linux 2 AMI]** を選択します。  
![\[Amazon Linux 2 AMI オプションが [クイックスタート] セクションで選択された [アプリケーションおよび OS イメージ] インターフェイス。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/linux2-ami.png)

1. **[インスタンスタイプ]** のドロップダウンリストで、**[t3.micro]** を選択します。

1. **[キーペア (ログイン)]** セクションで、既存のキーペアの識別子を入力するか、もしくは **[新しいキーペアの作成]** を選択します。  
![\[キーペア名フィールドと新しいキーペアの作成オプションを示す [キーペア] インターフェイス。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/key-pair.png)

   Amazon EC2 キーペアを指定する必要があります。
   + Amazon EC2 のキーペアがある場合 :

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

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

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

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

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

     1. [**キーペアの作成**] を選択してください。  
![\[キーペア名、タイプ、ファイル形式がある [キーペアの作成] インターフェイス。[キーペアの作成] ボタンは右下隅にあります。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/create-key-pair.png)
**注記**  
セキュリティ上の理由から、SSH とインターネット両方からの EC2 インスタンスへの接続にキーペアを使用することを強くお勧めします。

1. **[ネットワーク設定]** セクションの **[ファイアウォール (セキュリティグループ)]** で、**[セキュリティグループの作成]** または **[既存のセキュリティグループを選択する]** を選択します。  
![\[セキュリティグループを作成するためのオプションを示す [ネットワーク設定] インターフェイス。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/firewall.png)

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

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

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

   1. [IP] フィールドで、**[マイ IP]** または **[カスタム]** を選択して、CIDR ブロックのリスト、プレフィックスリスト、もしくはセキュリティグループのいずれかを選択します。ここで **[Anywhere]** を選択するとどの IP アドレスからでも EC2 インスタンス へのアクセスが可能になるため、EC2 インスタンスが分離されたネットワーク上にある場合を除き、[Anywhere] を選択することはお勧めしません。  
![\[My IP ドロップダウン。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/ip-field.png)

1. **[概要]** セクションで、EC2 設定を確認し、問題がなければ **[インスタンスを起動]** を選択します。

## ステップ 2: セキュリティグループを作成する
<a name="manual-connect-ec2.security-group"></a>

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

1. [Amazon EC2 マネジメントコンソール](https://console.aws.amazon.com/ec2) で、[**ネットワークとセキュリティ**] の下にある [**セキュリティグループ**] を選択します。  
![\[[ネットワークとセキュリティ] ドロップダウンで [セキュリティグループ] オプションが選択された Amazon DocumentDB コンソールのナビゲーションペイン。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/nav-security-groups.png)

1. **[セキュリティグループの作成]** を選択してください。  
![\[[セキュリティグループの作成] ボタンを選択します。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/create-sg-btn-2.png)

1. **[基本的な詳細]** セクションで、次の操作を行います。

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

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

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

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

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

   1. **[ポート範囲]** に `27017` と入力します。

   1. **[ソース]** で **[カスタム]** を選択します。その横にあるフィールドで、先ほどステップ 1 で作成したセキュリティグループを検索します。 のソース名を自動入力するには、Amazon EC2 コンソールでブラウザを更新することが必要な場合があります。  
![\[タイプ、プロトコル、ポート範囲、ソース、および説明のフィールドを示す [インバウンドルール] セクション。[ルールの追加] ボタンは左下隅にあります。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/inbound-rules.png)

1. 他のすべてのデフォルトを受け入れ、[**セキュリティグループの作成**] を選択します。  
![\[[セキュリティグループの作成] ボタンを選択します。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/create-sg-btn-2.png)

## ステップ 3: Amazon DocumentDB クラスターを作成する
<a name="manual-connect-ec2.launch-cluster"></a>

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

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

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

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

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

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

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

1. **[インスタンスの設定]** で:
   + **[DB インスタンスクラス]** では、**メモリ最適化クラス (r クラスを含む) ** を選択します (デフォルト）。

     もう 1 つのインスタンスオプションは **NVMe-backed クラス** です。詳細については [NVMe-backed インスタンス](db-instance-nvme.md) を参照してください。
   + **[インスタンスクラス]** では、ニーズに合ったインスタンスタイプを選択します。インスタンスクラスの詳細については、「[インスタンスクラスの仕様](db-instance-classes.md#db-instance-class-specs)」を参照してください。
   + **[インスタンスの数]** では、ニーズを最も反映する数を選択します。数値が低いほど、コストが低くなり、クラスターで管理できる読み取り/書き込みボリュームが低くなることに注意してください。  
![\[インスタンス数が 1 に設定されている、クラスター識別子、エンジンバージョン、およびインスタンスクラスのデフォルト値がある設定インターフェイス。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/create-cluster/instance-config.png)

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

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

   代わりに **Managed in AWS Secrets Manager** を選択した場合、詳細については[Amazon DocumentDB と によるパスワード管理 AWS Secrets Manager](docdb-secrets-manager.md)「」を参照してください。

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

## ステップ 4: Amazon EC2 インスタンスに接続します
<a name="manual-connect-ec2.connect"></a>

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

1. Amazon EC2 コンソールで、インスタンスに移動し、作成したインスタンスが実行中かどうかを確認します。実行されている場合は、インスタンス ID をクリックしてインスタンスを選択します。  
![\[Amazon EC2 コンソールで 2 つのインスタンスを一覧表示するインスタンステーブル。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/ec2-instance-table.png)

1. **接続** を選択します。  
![\[Amazon EC2 インスタンスのインスタンス概要。[接続] ボタンは右上隅にあります。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/ec2-instance-summary.png)

1. 接続方法として、Amazon EC2 Instance Connect、セッションマネージャー、SSH クライアント、EC2 シリアルコンソールの 4 つのオプションがタブ形式で表示されます。いずれかを選択し、その指示に従わなければなりません。完了したら、**[接続する]** を選択します。  
![\[EC2 Instance Connect の接続方法の設定オプションを示すインターフェイス。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/ec2/connect-options.png)

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

## ステップ 5: MongoDB シェルをインストールする
<a name="manual-connect-ec2.install-mongo-shell"></a>

これで、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
   ```

1. 完了したら、コマンドプロンプトで次の 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
   ```

1. 完了したら、コマンドプロンプトで次のコマンドオプションを使用して 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
   ```

1. 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
   ```

1. 次のコマンドを使用してローカルパッケージデータベースをインポートして更新します。

   ```
   sudo apt-get update
   ```

1. mongosh をインストールします。

   ```
   sudo apt-get install -y mongodb-mongosh
   ```

以前のバージョンの MongoDB の Ubuntu システムへのインストールについては、「 [Install MongoDB Community Edition on Ubuntu](https://docs.mongodb.com/v3.6/tutorial/install-mongodb-on-ubuntu/) 」を参照してください。

------
#### [ On other operating systems ]

mongo シェルを他のオペレーティングシステムにインストールするには、MongoDB ドキュメントの「 [MongoDB Community Edition のインストール](https://www.mongodb.com/docs/manual/administration/install-community/) 」を参照してください。

------

## ステップ 6: Amazon DocumentDB TLS の管理
<a name="manual-connect-ec2.tls"></a>

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

**注記**  
全ての新しい Amazon DocumentDB クラスターに対して、デフォルトで Transport Layer Security (TLS) が有効になっています。詳細については、「[Amazon DocumentDB クラスター TLS 設定の管理](https://docs.aws.amazon.com/documentdb/latest/developerguide/security.encryption.ssl.html)」を参照してください。

## ステップ 7: Amazon DocumentDB クラスターに接続する
<a name="manual-connect-ec2.connect-use"></a>

1. Amazon DocumentDB コンソールの **[クラスター]** で、接続したいクラスターを見つけます。そのクラスターの **[クラスター識別子]** をクリックして、作成済みのクラスターを選択します。  
![\[プライマリインスタンスの詳細を含むリージョンクラスターを示す Amazon DocumentDB クラスターリスト。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/cluster-connect-choose.png)

1. **[接続とセキュリティ]** タブの **[接続する]** ボックス内で、**[mongo シェルを使用してこのクラスターに接続する]** を見つけます。  
![\[Mongo シェルを使用して Amazon DocumentDB クラスターに接続するための Amazon DocumentDB 接続文字列が強調表示されたクラスター接続設定。\]](http://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/images/connect-mongosh.png)

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

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

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

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

   1. オプション: 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` をクラスターの同じ情報に置き換えます。

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

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

接続に問題がありますか。[Amazon DocumentDB のトラブルシューティング](https://docs.aws.amazon.com/documentdb/latest/developerguide/troubleshooting.html) を参照してください。

## ステップ 8: データの挿入とクエリ
<a name="manual-cloud9-insert-query"></a>

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

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

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

   次の出力が返ります。

   ```
   {
     acknowledged: true,
     insertedId: ObjectId('673657216bdf6258466b128c')
   }
   ```

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

   ```
   db.collection.findOne()
   ```

   次の出力が返ります。

   ```
   { "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" }
   ```

1. さらにいくつかのクエリを実行するには、ゲームプロファイルのユースケースを検討してください。まず、「`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 } }
   ```

1. `find()` コマンドを使用して、プロファイルコレクション内のすべてのドキュメントを返します。以下を入力します。

   ```
   db.profiles.find()
   ```

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

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

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

   次の出力が返ります。

   ```
   { "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27}
   ```

1. それでは、プロファイルを探して、それを `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}]
   ```

1. 次のクエリを使用して、Matt のスコアが変更されたことを確認できます。

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

   次の出力が返ります。

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

## ステップ 9: 環境情報の確認
<a name="manual-connect-ec2.explore"></a>

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

次のステップ この強力なデータベースを一般的な特徴をいくつか使って十分に活用する方法を学びましょう。
+  [Amazon DocumentDB の管理](https://docs.aws.amazon.com/documentdb/latest/developerguide/managing-documentdb.html) 
+  [スケーリング](https://docs.aws.amazon.com/documentdb/latest/developerguide/operational_tasks.html) 
+  [バックアップと復元](https://docs.aws.amazon.com/documentdb/latest/developerguide/backup_restore.html) 

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