Amazon DocumentDB の使用開始
Amazon DocumentDB に接続して開始する方法は複数あります。このガイドは、ユーザーにとって最も速く、最もシンプルで、最も簡単にドキュメントデータベースを使い始めることができる方法を提供します。このガイドでは、AWS CloudShell を使用して、AWS マネジメントコンソール から直接 Amazon DocumentDB クラスターに接続してクエリを実行します。AWS 無料利用枠の対象である新規顧客は、Amazon DocumentDB と CloudShell を無料でご利用いただけます。AWS CloudShell 環境または Amazon DocumentDB クラスター が無料利用枠を超えてリソースを使用した場合、それらのリソースには通常の AWS 料金が課金されます。このガイドを読めば、Amazon DocumentDB を 5 分もかからずに使い始めることができます。
注記
このガイドの手順は、Amazon DocumentDB と AWS CloudShell が使用可能な場合、特に Amazon DocumentDB インスタンスベースのクラスターを作成して接続するためのものです。
Amazon DocumentDB エラスティッククラスターを作成して接続する場合は、「Amazon DocumentDB エラスティッククラスターの開始方法」を参照してください。
AWS 中国リージョンにお住まいの場合は、「Amazon EC2 への自動接続」を参照してください。
前提条件
最初の Amazon DocumentDB クラスターを作成する前に、以下の操作を行う必要があります。
- Amazon Web Services (AWS) アカウントを作成する
-
Amazon DocumentDB を使用する前に、Amazon Web Services (AWS) アカウントを持っている必要があります。AWS アカウントは無料です。使用しているサービスとリソースに対してのみ料金をお支払いいただきます。
AWS アカウント をお持ちでない場合は、以下の手順を実行してアカウントを作成してください。
AWS アカウントにサインアップするには
https://portal.aws.amazon.com/billing/signup
を開きます。 オンラインの手順に従います。
サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。
AWS アカウント にサインアップすると、AWS アカウントのルートユーザー が作成されます。ルートユーザーには、アカウントのすべての AWS のサービスとリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、ルートユーザーアクセスが必要なタスクの実行にはルートユーザーのみを使用するようにしてください。
- 必要な AWS Identity and Access Management (IAM) アクセス許可を設定します。
-
クラスター、インスタンス、クラスターパラメータグループなどの Amazon DocumentDB リソースを管理するためのアクセスでは、リクエストの認証に AWS が使用できる認証情報が必要です。詳細については、「Amazon DocumentDB の Identity and Access Management」を参照してください。
-
AWS マネジメントコンソール の検索バーで、表示されるドロップダウンメニューに IAM を入力し、[IAM] を選択します。
-
IAM コンソールにアクセスしたら、ナビゲーションペインから [ユーザー] を選択します。
-
ユーザーネームを選択します。
-
[Add permissions] (アクセス許可の追加) をクリックします。
-
[ポリシーを直接アタッチする] を選択します。
-
検索バーに
AmazonDocDBFullAccessと入力し、検索結果に表示されたら、それを選択します。 -
[次へ] をクリックします。
-
[Add permissions] (アクセス許可の追加) をクリックします。
-
注記
お使いの AWS アカウントでは、各リージョンごとに デフォルト VPC が含まれます。Amazon VPC を使用することを選択した場合は、「Amazon VPC ユーザーガイド」の「Amazon VPC を作成する」トピックの手順を完了します。
ステップ 1: クラスターを作成する
このステップでは、Amazon DocumentDB クラスターを作成します。
AWS マネジメントコンソール にサインインして、Amazon DocumentDB コンソール https://console.aws.amazon.com/docdb
を開いてください。 -
Amazon DocumentDB マネジメントコンソールで、[クラスター] の下にある [作成] を選択します。
-
「Amazon DocumentDB クラスターの作成」ページの [クラスタータイプ] セクションで、[インスタンスベースのクラスター] を選択します (これはデフォルトのオプションです)。
注記
このカテゴリのもう 1 つのオプションは Elastic クラスター です。「Amazon DocumentDB Elastic クラスター」の詳細については、「Amazon DocumentDB のエラスティッククラスター」を参照してください。
-
[クラスター設定] セクションで次を行います。
[クラスター識別子] には、
mydocdbclusterなどの一意の名称を入力します。コンソール操作では、入力方法に関係なくクラスター名のすべての文字が小文字に変換されることにご留意ください。[エンジンバージョン] で、[5.0.0] を選択します。
-
[クラスターストレージ設定]セクションでは、[Amazon DocumentDB 標準] (デフォルトのオプションです) を選択します。
注記
このカテゴリのもう 1 つのオプションは、[Amazon DocumentDB I/O 最適化] です。いずれかのオプションの詳細については、「Amazon DocumentDB クラスターストレージ設定」を参照してください。
-
インスタンス設定 セクション:
[DB インスタンスクラス] では、メモリ最適化クラス (r クラスを含む) を選択します (デフォルト)。
もう 1 つのインスタンスオプションは NVMe-backed クラス です。詳細についてはNVMe-backed インスタンスを参照してください。
[インスタンスクラス] で [t3.medium] を選択します。これは AWS 無料利用枠の対象となります。
[インスタンスの数] は、[1] を選択します。1 つのインスタンスを選択すると、コストを最小限に抑えることができます。これが本稼働システムの場合は、高可用性のために 3 つのインスタンスをプロビジョニングすることをお勧めします。
-
[接続] セクションで、デフォルト設定の [EC2 コンピューティングリソースに接続しない] のままにしておきます。
-
[認証] セクションで、プライマリユーザーのユーザー名を入力し、[セルフマネージド] を選択します。パスワードを入力して確認します。
代わりに [AWS Secrets Manager で管理] を選択した場合は、詳細については「Amazon DocumentDB と AWS Secrets Manager を使用したパスワード管理」を参照してください。
-
他のすべてのオプションはデフォルトのままにして、[クラスターの作成] を選択します。
Amazon DocumentDB がクラスターをプロビジョニングしています。完了までに数分かかる場合もあります。
注記
クラスターのステータス値については、「Amazon DocumentDB のモニタリング」の章の「クラスターステータスの値」を参照してください。
ステップ 2: クラスターに接続する
AWS CloudShell を使用して Amazon DocumentDB クラスターに接続します。
-
Amazon DocumentDB マネジメントコンソールの [クラスター] で、作成したクラスターを探します。クラスターの横にあるチェックボックスをクリックして選択します。
-
[クラスターに接続] (アクションドロップダウンメニューの横にある) をクリックします。このボタンは、クラスターの横にあるチェックボックスをクリックした後にのみ有効になり、リージョンクラスターとプライマリインスタンス (複数可) の両方のステータスが 使用可能 と表示されます。CloudShell の [Run コマンド] 画面が表示されます。
-
[新しい環境の名前] フィールドに、「test」などの一意の名前を入力し、[作成して実行する] をクリックします。VPC 環境の詳細は、Amazon DocumentDB データベースに自動的に設定されます。
-
プロンプトが表示されたら、ステップ 1: Amazon DocumentDB クラスターを作成する (サブステップ 7) で作成したパスワードを入力します。
パスワードを入力して、プロンプトが
rs0 [direct: primary] <env-name>>に変わったら、Amazon DocumentDB クラスターに正常に接続できています。
注記
トラブルシューティングについては、「Amazon DocumentDB のトラブルシューティング」を参照してください。
ステップ 3: データの挿入とクエリ
クラスターに接続できたので、いくつかのクエリを実行して、ドキュメントデータベースの使用に慣れることができます。
-
1 つのドキュメントを挿入するには、次のように入力します。
db.collection.insertOne({"hello":"DocumentDB"})次の出力が返ります。
{ acknowledged: true, insertedId: ObjectId('673657216bdf6258466b128c') } -
findOne()コマンドで書き込んだドキュメントを読み取ることができます (一つのドキュメントしか返さないため)。以下を入力します。db.collection.findOne()次の出力が返ります。
{ "_id" : ObjectId("5e401fe56056fda7321fbd67"), "hello" : "DocumentDB" } -
さらにいくつかのクエリを実行するには、ゲームプロファイルのユースケースを検討してください。まず、「
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 } } -
find()コマンドを使用して、プロファイルコレクション内のすべてのドキュメントを返します。以下を入力します。db.profiles.find()ステップ 3 で入力したデータに一致する出力が得られます。
-
フィルターを使用して 1 つのドキュメントに対して1つのクエリを使用します。以下を入力します。
db.profiles.find({name: "Katie"})次の出力が返ります。
{ "_id" : 4, "name" : "Katie", "status": "active", "level": 3, "score":27} -
それでは、プロファイルを探して、それを
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}] -
次のクエリを使用して、Matt のスコアが変更されたことを確認できます。
db.profiles.find({name: "Matt"})次の出力が返ります。
{ "_id" : 1, "name" : "Matt", "status" : "active", "level" : 12, "score" : 212 }
ステップ 4: 環境情報の確認
お疲れ様でした。Amazon DocumentDB インスタンスベースのクラスター入門ガイドを正常に完了しました。
次のステップ このデータベースを一般的な機能の一部を使用して、完全に活用する方法を学びましょう。
注記
この入門演習で作成したクラスターは、削除しない限り、引き続きコストを計上します。手順については、以下を参照してください。Amazon DocumentDB クラスターを削除する。