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

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

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

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

Amazon DocumentDB に接続して開始する方法は複数あります。以下の手順は、ユーザーが私たちの強力なドキュメントデータベースの使用を開始するための最も迅速、シンプルかつ簡単な方法です。このガイドでは、AWS CloudShell を使用して、AWS マネジメントコンソール から直接 Amazon DocumentDB クラスターに接続してクエリを実行します。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 マネジメントコンソール の検索バーで、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 マネジメントコンソール または AWS CLI を使用してエラスティッククラスタースナップショットを手動で作成する方法とその手順を説明します。

Using the AWS マネジメントコンソール

AWS マネジメントコンソール を使用して エラスティッククラスター設定を作成するには、以下の手順に従います。

  1. AWS マネジメントコンソール にサインインして、Amazon DocumentDB コンソール https://console.aws.amazon.com/docdb を開いてください。

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

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

    インスタンスベースのクラスターとエラスティッククラスターの選択を表示するエラスティッククラスタータイプのダイアログ。
  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. [仮想プライベートクラウド (VPC)] フィールドのドロップダウンリストから VPC を選択します。

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

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

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

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

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

    重要

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

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

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

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

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

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

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

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

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

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

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

Using the AWS CLI

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 - オプションです。毎日自動バックアップを作成する希望の時間帯。デフォルトは、AWS リージョンごとに 8 時間の範囲からランダムに選択された、30 分の時間枠です。

  • --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: エラスティッククラスターに接続する

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

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

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

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

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

    ユーザーパスワードをリクエストするエラスティッククラスター 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 クラスターの削除」を参照してください。