Amazon DocumentDB エラスティッククラスターの開始方法 - Amazon DocumentDB

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

Amazon DocumentDB エラスティッククラスターの開始方法

このセクションでは、初めてのエラスティッククラスターを作成してクエリする方法を順を追って説明します。

Amazon DocumentDB に接続して開始する方法は複数あります。以下の手順は、ユーザーが当社の強力なドキュメントデータベースの使用を開始するための、最も迅速、簡単、かつ簡単な方法です。このガイドではAWS CloudShell、 を使用して、 から直接 Amazon DocumentDB クラスターに接続してクエリを実行します AWS Management Console。 AWS 無料利用枠の対象となる新規お客様は、Amazon DocumentDB と CloudShell を無料で使用できます。 AWS CloudShell 環境または Amazon DocumentDB エラスティッククラスターが無料利用枠を超えるリソースを使用する場合、それらのリソースの通常の AWS 料金が課金されます。このガイドでは、Amazon DocumentDB の使用を 5 分以内に開始できます。

前提条件

最初の 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. [Add permissions] (アクセス許可の追加) をクリックします。

  5. [ポリシーを直接アタッチする] を選択します。

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

  7. [次へ] をクリックします。

  8. [Add permissions] (アクセス許可の追加) をクリックします。

注記

AWS アカウントには、各リージョンにデフォルトの VPC が含まれています。Amazon VPC を使用する場合は、「Amazon VPC ユーザーガイド」の「Amazon VPC の作成」トピックの手順を完了します。

ステップ 1: エラスティッククラスターを作成する

このセクションでは、 AWS Management Console または を使用して、 AWS CLI 新しい Elastic クラスターを作成する方法について説明します。

Using the AWS Management Console

AWS Management Consoleを使用して エラスティッククラスター設定を作成するには、以下の手順に従います。

  1. にサインインし AWS Management Console、https://console.aws.amazon.com/docdb で Amazon DocumentDB コンソールを開きます。

  2. Amazon DocumentDB マネジメントコンソール[クラスター][作成] を選択します。

    開始点としてクラスターがないことを示すエラスティッククラスターテーブル。
  3. Amazon DocumentDB クラスターの作成ページのクラスタータイプセクションで、Elastic cluster を選択します。

    インスタンスベースのクラスターと Elastic クラスターの選択を表示する Elastic クラスタータイプのダイアログ。
  4. 設定 セクションで、以下を設定します。

    1. クラスター名フィールドに、一意のクラスター識別子を入力します ( フィールドの下の命名要件に従います)。

    2. [シャード数] フィールドに、クラスターに必要なシャードの数を入力します。クラスターあたりのシャードの最大数は 32 です。

      注記

      シャードごとに 2 つのノードが展開されます。両方のノードのシャード容量は同じになります。

    3. [シャードインスタンス数] フィールドで、各シャードに関連付けるレプリカインスタンスの数を選択します。シャードインスタンスの最大数は 16 で、1 刻みで設定できます。すべてのレプリカインスタンスのシャード容量は、次のフィールドで定義するものと同じになります。テスト目的では、デフォルト値の 2 で十分です。

      注記

      レプリカインスタンスの数は、Elastic クラスター内のすべてのシャードに適用されます。シャードインスタンス数の値が 1 の場合、ライターインスタンスが 1 つあり、それ以外の追加のインスタンスはすべてレプリカで、読み取りや可用性の向上に使用できます。テスト目的では、デフォルト値の 2 で十分です。

    4. [シャード容量] フィールドで、各シャードインスタンスに関連付ける仮想 CPU (vCPU) の数を選択します。1 シャードインスタンスあたりの vCPU の最大数は 64 です。使用できる値は、2、4、8、16、32、64 です。テスト目的では、デフォルト値の 2 で十分です。

    5. Virtual Private Cloud (VPC) フィールドで、ドロップダウンリストから VPC を選択します。

    6. [サブネット][VPC セキュリティグループ] では、デフォルトを使用するか、選択した 3 つのサブネットと最大 3 つの VPC セキュリティグループ (最低 1 つ) を選択できます。

    設定可能なフィールドを表示する Elastic クラスター設定ダイアログ。
  5. 認証セクションで、プライマリユーザーのログイン名を識別する文字列をユーザー名フィールドに入力します。

    パスワード フィールドに、指示に従った一意のパスワードを入力し、確認します。

    ユーザー名とパスワードの入力フィールドを含む認証セクション。
  6. 暗号化セクションで、デフォルト設定 (デフォルトキー) のままにします。

    必要に応じて、作成した AWS KMS key ARN を入力できます。詳細については、「Amazon DocumentDB エラスティッククラスターで保管中のデータ暗号化」を参照してください。

    重要

    エラスティッククラスターでは暗号化を有効にする必要があります。

  7. [バックアップ] セクションで、該当するバックアップ要件に従ってフィールドを編集します。テスト目的で、デフォルト設定を保持できます。

    クラスターのバックアップウィンドウを設定する手順を示す Backup ダイアログのスクリーンショット。
    1. [バックアップ保持期間] - リストで、このクラスターの自動バックアップを削除するまで保持する日数を選択します。

    2. [バックアップウィンドウ] - Amazon DocumentDB によってこのクラスターのバックアップが作成される毎日の時刻と期間を設定します。

      1. バックアップの作成タイミングと期間を設定したい場合は、[ウィンドウを選択] を選択します。

        [開始時刻] - 最初のリストで、自動バックアップを開始する時間 (UTC 時) を選択します。2 番目のリストで、自動バックアップを開始する時間 (UTC 分) を選択します。

        [期間] - リストで、自動バックアップの作成に割り当てる時間を選択します。

      2. Amazon DocumentDB 動作に従ってバックアップの作成タイミングや期間を自動選択する場合は、[設定なし] を選択します。

  8. [メンテナンス] セクションで、クラスターに変更やパッチを適用する日と時間、期間を選択します。テスト目的で、デフォルト設定を保持できます。

    メンテナンスウィンドウのオプションを示すメンテナンスセクション。
  9. [クラスターを作成] を選択してください。

エラスティッククラスターは現在プロビジョニング中です。このプロセスには数分かかることがあります。エラスティッククラスターのステータスがクラスターリストで利用可能と表示されたら、クラスターに接続できます。

Using the AWS CLI

を使用して Elastic クラスターを作成するには AWS CLI、以下のパラメータを指定して create-clusterオペレーションを使用します。

  • --cluster-name — 必須 作成時に入力した、または最終変更時のエラスティックスケールクラスターの現在の名前。

  • --shard-capacity — 必須 各シャードに割り当てられた vCPU の数。最大数は 64 です。使用できる値は、2、4、8、16、32、64 です。

  • --shard-count — 必須 クラスターに割り当てられたシャードの数。最大数は 32 です。

  • --shard-instance-count - オプションです。このクラスター内のすべてのシャードに適用されるレプリカインスタンスの数。最大数は 16 です。

  • --admin-user-name — 必須 管理者ユーザーに関連付けられているユーザー名。

  • --admin-user-password — 必須 管理者ユーザーに関連付けられているパスワード。

  • --auth-type — 必須 エラスティッククラスターへのアクセスに使用するパスワードの取得先の特定に使用している認証タイプ。有効なタイプは、PLAIN_TEXT または SECRET_ARN です。

  • --vpc-security-group-ids - オプションです。このクラスターに関連付ける EC2 VPC セキュリティグループのリストを設定します。

  • --preferred-maintenance-window - オプションです。週 1 回のシステムメンテナンスを実行できる時間帯 (世界標準時 (UTC)) を設定します。

    形式は ddd:hh24:mi-ddd:hh24:mi です。有効な曜日 (ddd): 月、火、水、木、金、土、日

    デフォルトは、1 週間のうちのランダムな日に起こる、Amazon Web Services リージョンあたり 8 時間の範囲からランダムに選択された 30 分のウィンドウです。

    最短 30 分のウィンドウ。

  • --kms-key-id - オプションです。暗号化されたクラスターの KMS キー識別子を設定します。

    KMS キー識別子は、 AWS KMS 暗号化キーの Amazon リソースネーム (ARN) です。新しいクラスターの暗号化に使用する KMS 暗号化キーを所有する Amazon Web Services アカウントと同じアカウントを使用してクラスターを作成する場合、KMS 暗号化キーの ARN の代わりに KMS キーエイリアスを使用できます。

    KmsKeyId で暗号化キーが指定がなく、かつ StorageEncrypted パラメータが true の場合、Amazon DocumentDB はデフォルトの暗号化キーを使用します。

  • --preferred-backup-window - オプションです。毎日自動バックアップを作成する希望の時間帯。デフォルトは、それぞれ 8 時間の時間ブロックからランダムに選択された 30 分のウィンドウです AWS リージョン。

  • --backup-retention-period - オプション。自動バックアップを保管する日数。デフォルト値は 1 です。

  • --storage-encrypted - オプションです。クラスターが暗号化されているかどうかを設定します。

    --no-storage-encrypted はクラスターが暗号化されていない指定です。

  • --subnet-ids - オプションです。ネットワークのサブネット ID を設定します。

次の例では、各 ユーザー入力プレースホルダー を独自の情報に置き換えます。

注記

以下の例には、特定の KMS キーの作成例が含まれています。デフォルトの KMS キーを使用するには、--kms-key-id パラメータを含めないでください。

Linux、macOS、Unix の場合:

aws docdb-elastic create-cluster \ --cluster-name sample-cluster-123 \ --shard-capacity 8 \ --shard-count 4 \ --shard-instance-count 3 \ --auth-type PLAIN_TEXT \ --admin-user-name testadmin \ --admin-user-password testPassword \ --vpc-security-group-ids ec-65f40350 \ --kms-key-id arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 \ --subnet-ids subnet-9253c6a3, subnet-9f1b5af9 \ --preferred-backup-window 18:00-18:30 \ --backup-retention-period 7

Windows の場合:

aws docdb-elastic create-cluster ^ --cluster-name sample-cluster-123 ^ --shard-capacity 8 ^ --shard-count 4 ^ --shard-instance-count 3 ^ --auth-type PLAIN_TEXT ^ --admin-user-name testadmin ^ --admin-user-password testPassword ^ --vpc-security-group-ids ec-65f40350 ^ --kms-key-id arn:aws:docdb-elastic:us-east-1:477568257630:cluster/b9f1d489-6c3e-4764-bb42-da62ceb7bda2 ^ --subnet-ids subnet-9253c6a3, subnet-9f1b5af9 \ --preferred-backup-window 18:00-18:30 \ --backup-retention-period 7

ステップ 2: Elastic クラスターに接続する

を使用して Amazon DocumentDB エラスティッククラスターに接続します AWS CloudShell。

  1. Amazon DocumentDB マネジメントコンソールのクラスターで、作成した Elastic クラスターを見つけます。クラスターの横にあるチェックボックスをクリックして、クラスターを選択します。

    エラスティッククラスターを示す Amazon DocumentDB クラスター管理インターフェイス
  2. クラスターに接続する (アクションドロップダウンメニューの横にある をクリックします。このボタンは、クラスターの横にあるチェックボックスをオンにした後にのみ有効になり、クラスターのステータスは利用可能と表示されます。CloudShell Run コマンド画面が表示されます。

  3. 新しい環境名フィールドに、「test」などの一意の名前を入力し、作成して実行をクリックします。VPC 環境の詳細は、Amazon DocumentDB データベースに自動的に設定されます。

    新しい環境名をリクエストする Elastic クラスター CloudShell Run コマンド画面
  4. プロンプトが表示されたら、「ステップ 1: Amazon DocumentDB エラスティッククラスターを作成する (サブステップ 5)」で作成したパスワードを入力します。

    ユーザーパスワードをリクエストする Elastic クラスター CloudShell 画面

    パスワードを入力し、プロンプトが になるとdirect: mongos] <env-name>>、Amazon DocumentDB クラスターに正常に接続されます。

注記

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

ステップ 3: コレクションをシャードし、データを挿入してクエリを実行する

エラスティッククラスターでは Amazon DocumentDB でのシャーディングのサポートが追加されています。クラスターに接続できたので、クラスターをシャーディングし、データを挿入して、クエリを実行できます。

  1. コレクションをシャーディングするには、次のように入力します。

    sh.shardCollection("db.Employee1" , { "Employeeid" : "hashed" })
  2. 1 つのドキュメントを挿入するには、次のように入力します。

    db.Employee1.insertOne({"Employeeid":1, "Name":"Joe", "LastName": "Bruin", "level": 1 })

    以下のような出力が表示されます。

    WriteResult({ "nInserted" : 1 })
  3. findOne() コマンドで書き込んだドキュメントを読み取るには、 コマンドを入力します (コマンドから一つのドキュメントが返される)。

    db.Employee1.findOne()

    以下のような出力が表示されます。

    { "_id" : ObjectId("61f344e0594fe1a1685a8151"), "EmployeeID" : 1, "Name" : "Joe", "LastName" : "Bruin", "level" : 1 }
  4. さらにクエリを実行するには、ゲームプロファイルのユースケースを検討してみてください。最初に、「Employee」というタイトルのコレクションにエントリをいくつか挿入します。次のように入力します。

    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': ObjectId('679d02cd6b5a0581be78bcbd'), '1': ObjectId('679d02cd6b5a0581be78bcbe'), '2': ObjectId('679d02cd6b5a0581be78bcbf'), '3': ObjectId('679d02cd6b5a0581be78bcc0') } }
  5. プロファイルコレクション内のすべてのドキュメントを取得するには、find() コマンドを使用します。

    db.Employee.find()

    ステップ 4 で入力したデータが表示されます。

  6. 1 つのドキュメントに対してクエリを発行するには、フィルター (「Katie」など) を含めます。次のように入力します。

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

    以下のような出力が表示されます。

    [
 {
 _id: ObjectId('679d02cd6b5a0581be78bcc0'),
 Employeeid: 4,
 name: 'Katie',
 lastname: 'Schaper',
 level: 3
 }
 ]
  7. プロファイルを見つけて変更するには、findAndModify コマンドを入力します。この例では、従業員「Matt」にはより高いレベル「14」が割り当てられています。

    db.Employee.findAndModify({ query: { "Employeeid" : 1, "name" : "Matt"}, update: { "Employeeid" : 1, "name" : "Matt", "lastname" : "Winkle", "level" : 14 } })

    以下のような出力が表示されます (レベルはまだ変更されていないことに注意してください)。

    {
 _id: ObjectId('679d02cd6b5a0581be78bcbd'),
 Employeeid: 1,
 name: 'Matt',
 lastname: 'Winkle',
 level: 12
 }
  8. レベルが上がったことを確認するには、次のクエリを入力します。

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

    以下のような出力が表示されます。

    [ {
 _id: ObjectId('679d02cd6b5a0581be78bcbd'),
 Employeeid: 1,
 name: 'Matt',
 lastname: 'Winkle',
 level: 14
 } ]

ステップ 4: 探索する

お疲れ様でした。Amazon DocumentDB エラスティッククラスターの開始手順が正常に完了しました。

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

注記

この開始手順で作成した Elastic クラスターは、削除しない限り、引き続きコストが発生します。手順については、「Elastic クラスターの削除」を参照してください。