AWS CloudFormation を使用した Streams コンシューマーアプリケーションでの Neptune から Neptune へのレプリケーションのセットアップ - Amazon Neptune

AWS CloudFormation を使用した Streams コンシューマーアプリケーションでの Neptune から Neptune へのレプリケーションのセットアップ

CloudFormation テンプレートを使用して、Neptune ストリームコンシューマーアプリケーションをセットアップし、Neptune から Neptune へのレプリケーションをサポートできます。

リージョンの CloudFormation テンプレートの選択

CloudFormation コンソールで適切な CloudFormation スタックを起動するには、使用する AAWSリージョンに応じて、次の表に示す [Launch Stack] (スタックの起動) ボタンのいずれかを選択します。

リージョン ビュー デザイナーで表示 起動する
米国東部 (バージニア北部) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
米国東部 (オハイオ) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
米国西部 (北カリフォルニア) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
米国西部 (オレゴン) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
カナダ (中部) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
南米 (サンパウロ) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
欧州 (ストックホルム) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
欧州 (アイルランド) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
欧州 (ロンドン) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
欧州 (パリ) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
欧州 (フランクフルト) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
中東 (バーレーン) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
中東 (アラブ首長国連邦) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
イスラエル (テルアビブ) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
アフリカ (ケープタウン) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
アジアパシフィック (東京) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
アジアパシフィック (香港) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
アジアパシフィック (ソウル) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
アジアパシフィック (シンガポール) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
アジアパシフィック (シドニー) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
アジアパシフィック (ムンバイ) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
中国 (北京) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
中国 (寧夏) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
AWS GovCloud (米国西部) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.
AWS GovCloud (米国東部) ビュー デザイナーで表示 Orange button labeled "Launch Stack" with an arrow icon.

[Create Stack (スタックの作成)] ページで、[Next (次へ)] を選択します。

作成中の Neptune Streams コンシューマースタックの詳細の追加

[Specify Stack Details (スタック詳細の指定)] ページには、アプリケーションの設定を制御するために使用できるプロパティとパラメータがあります。

Stack Name (スタック名) - 作成する新しい CloudFormation スタックの名前。通常は、デフォルト値、NeptuneStreamPoller を使用できます。

[Parameters (パラメータ)] で、以下を指定します。

Streams コンシューマーが実行される VPC のネットワーク設定
  • VPC –ポーリング Lambda 関数を実行する VPC の名前を指定します。

  • SubnetIDs -ネットワークインターフェースが確立されるサブネット。Neptune クラスターに対応するサブネットを追加します。

  • SecurityGroupIds   –ソース Neptune DB クラスターへの書き込みインバウンドアクセスを許可するセキュリティグループの ID を指定します。

  • RouteTableIds –これは、Neptune VPC に Amazon DynamoDB エンドポイントを作成するために必要です (まだエンドポイントを持っていない場合)。サブネットに関連付けられたルートテーブル ID のコンマ区切りリストを指定する必要があります。

  • CreateDDBVPCEndPoint — ブール値。デフォルトは true であり、Dynamo DB VPC エンドポイントを作成する必要があるかどうかを示します。この値を false に変更する必要があるのは、VPC に作成済みの DynamoDB エンドポイントがある場合のみです。

  • CreateMonitoringEndPoint — ブール値。デフォルトは true であり、モニタリング VPC エンドポイントを作成する必要があるかどうかを示します。この値を false に変更する必要があるのは、VPC に作成済みのモニタリングエンドポイントがある場合のみです。

ストリームポーラー
  • ApplicationName –  通常は、この設定をデフォルト (NeptuneStream) のままにしておくことができます。別の名前を使用する場合は、一意である必要があります。

  • LambdaMemorySize -Lambda ポーラー関数で使用可能なメモリサイズを設定するために使用されます。デフォルト値は 2,048 メガバイトです。

  • LambdaRuntime –ストリームから項目を取得する Lambda 関数で使用される言語。これは python3.9 または java8 どちらにも設定できます。

  • LambdaS3Bucket —Lambda コードのアーティファクトを含む Amazon S3 バケット。別の Amazon S3 バケットからロードするカスタム Lambda ポーリング関数を使用している場合を除き、空白のままにしておきます。

  • LambdaS3Key —Lambda コードのアーティファクトに対応する Amazon S3 キー。カスタム Lambda ポーリング関数を使用している場合を除き、空白のままにしておきます。

  • LambdaLoggingLevel – 通常、デフォルト値 (INFO) のままにしておきます。

  • ManagedPolicies —Lambda 関数の実行に使用する管理ポリシーを一覧表示します。カスタム Lambda ポーリング関数を使用している場合を除き、通常は空白のままにしておきます。

  • StreamRecordsHandler –Neptune ストリーム内のレコードにカスタムハンドラを使用している場合を除き、通常は空白のままにしておきます。

  • StreamRecordsBatchSize —ストリームからフェッチされるレコードの最大数。このパラメータを使用して、パフォーマンスを調整できます。デフォルト (5000) は、開始に適しています。最大許容値は 10,000 です。数値が大きいほど、ストリームからレコードを読み取るために必要なネットワークの呼び出しは少なくなりますが、レコードを処理するために必要なメモリは多くなります。このパラメータの値を小さくすると、スループットが低下します。

  • 2 MaxPollingWaitTime —回のポーリング間の最大待機時間 (秒単位)。Neptune ストリームをポーリングするために Lambda ポーラーが呼び出される頻度を決定します。連続ポーリングの場合は、この値を 0 に設定します。最大値は 3,600 秒 (60 分) です。グラフデータの変化速度に応じて、デフォルト値 (60 秒) は開始に適しています。

  • MaxPollingInterval —最大連続ポーリング時間 (秒単位)。これを使用して、Lambda ポーリング関数のタイムアウトを設定します。値は 5 秒から 900 秒の範囲でなければなりません。デフォルト値 (600 秒) は、開始に適しています。

  • StepFunctionFallbackPeriod –ポーラーが待機するステップ関数フォールバック期間単位の数。この数に達すると、ステップ関数が Amazon CloudWatch Events から呼び出されて障害から回復します。デフォルト (5 分) は、開始に適しています。

  • StepFunctionFallbackPeriodUnit - 直前の StepFunctionFallbackPeriodUnit の測定に使用される時間単位 (minuteshours、または days)。通常は、デフォルト (minutes) で十分です。

  • StartingCheckpoint — ストリームポーラーの開始チェックポイント。デフォルトは 0:0 であり、Neptune ストリームの始めから開始することを意味します。

  • StreamPollerInitialState – ポーラーの初期状態。デフォルトは ENABLED であり、スタック全体の作成が完了するとすぐにストリームの複製が開始されることを意味します。

Neptune Stream
  • NeptuneStreamEndpoint — (必須) Neptune ソースストリームのエンドポイント。: これは次の 2 つの形式のいずれかになります。

    • https://your DB cluster:port/propertygraph/stream (またはそのエイリアス )https://your DB cluster:port/pg/stream

    • https://your DB cluster:port/sparql/stream.

  • Neptune Query Engine —Gremlin、openCypher、または SPARQL を選択します。

  • IAMAuthEnabledOnSourceStream –  Neptune DB クラスターで IAM 認証を使用している場合は、このパラメータを true に設定します。

  • StreamDBClusterResourceId –Neptune DB クラスターで IAM 認証を使用している場合は、このパラメータをクラスターのリソース ID に設定します。リソース ID はクラスター ID と同じではありません。正確には、28 文字の英数字が続く cluster- です。Neptune コンソールの [Cluster Details] (クラスターの詳細) で確認できます。

ターゲットの Neptune DB クラスター
  • TargetNeptuneClusterEndpoint —ターゲットのバックアップクラスターのクラスターエンドポイント (ホスト名のみ)。

    TargetNeptuneClusterEndpoint を指定した場合、TargetSPARQLUpdateEndpoint も指定することはできません。

  • TargetNeptuneClusterPort —ターゲットクラスターのポート番号。

    TargetSPARQLUpdateEndpoint を指定した場合、TargetNeptuneClusterPort の設定は無視されることに注意してください。

  • IAMAuthEnabledOnTargetCluster —ターゲットクラスターで IAM 認証を有効にする場合は true に設定します。

  • TargetAWSRegion — ターゲットバックアップクラスターの AWS リージョン (us-east-1 など)。クロスリージョンレプリケーションの場合のように、ターゲットバックアップクラスターの AWS リージョンが Neptune ソースクラスターのリージョンと異なる場合にのみ、このパラメータを指定する必要があります。ソースリージョンとターゲットリージョンが同じ場合、このパラメータはオプションです。

    TargetAWSRegion 値が Neptune がサポートする有効な AWS リージョンでない場合、プロセスは失敗することに注意してください。

  • TargetNeptuneDBClusterResourceIdオプション: これはターゲット DB クラスターで IAM 認証が有効になっている場合にのみ必要です。ターゲットクラスターのリソース ID に設定します。

  • SPARQLTripleOnlyMode —トリプルオンリーモードを有効にするかどうかを決定するブール型フラグ。トリプルオンリーモードでは、名前付きグラフの複製は行われません。デフォルト値は false です。

  • TargetSPARQLUpdateEndpoint —など、SPARQL 更新のターゲットエンドポイントの URL。。https://abc.com/xyzこのエンドポイントは、クアッドまたはトリプルをサポートする任意の SPARQL ストアでもかまいません。

    TargetNeptuneClusterEndpoint を指定した場合、TargetNeptuneClusterPort も指定することはできず、TargetSPARQLUpdateEndpoint の設定は無視されることに注意してください。

  • BlockSparqlReplicationOnBlankNode — ブール型フラグ。true に設定された場合、SPARQL (RDF) データ内の BlankNode のレプリケーションを停止します。デフォルト値は false です。

アラーム
  • Required to create Cloud watch Alarm –  新しいスタックの CloudWatch アラームを作成する場合は、これを true に設定します。

  • SNS Topic ARN for Cloudwatch Alarm Notifications -CloudWatch アラーム通知の送信先の SNS トピック ARN (アラームが有効な場合のみ必要)。

  • Email for Alarm Notifications -アラーム通知の送信先の E メールアドレス (アラームが有効な場合のみ必要)。

アラーム通知の宛先には、SNS のみ、E メールのみ、または SNS と E メールの両方を追加できます。

CloudFormation テンプレートの実行

これで、次のように、Neptune ストリームコンシューマーアプリケーションインスタンスをプロビジョニングするプロセスを完了できます。

  1. CloudFormation では、[Specify Stack Details (スタック詳細の指定)] ページで [Next (次へ)] を選択します。

  2. [Options(オプション)] ページで、[Next(次へ)] を選択します。

  3. [確認] ページで、CloudFormation によって IAM リソースが作成されることを確認する最初のチェックボックスをオンにします。新しいスタックの CAPABILITY_AUTO_EXPAND を確認する 2 つ目のチェックボックスをオンにします。

    注記

    CAPABILITY_AUTO_EXPAND は、スタックの作成時に事前の確認なしにマクロが展開されることを明示的に確認します。ユーザーは、処理されたテンプレートから変更セットを作成することが多いため、実際にスタックを作成する前にマクロによって行われた変更を確認できます。詳細については、AWS CloudFormation API リファレンスCreateStack CloudFormation API を参照してください。

    次に [作成] を選択します。

最新の Lambda アーティファクトでストリームポーラーを更新するには

最新の Lambda アーティファクトで次のようにストリームポーラーを更新できます。

  1. AWS マネジメントコンソール で、CloudFormation に移動し、メイン親 CloudFormation スタックを選択します。

  2. スタックの[Update] (更新) オプションを選択します。

  3. [Replace current template] (現在のテンプレートを置換) を選択します。

  4. テンプレートソースで、Amazon S3 URL を選択し、次の S3 URL を入力します。

    https://aws-neptune-customer-samples.s3.amazonaws.com/neptune-stream/neptune_to_neptune.json
  5. CloudFormation パラメータを何も変更せずに [Next] (次へ) を選択します。

  6. [Update Stack] を選択します。

これで、スタックは Lambda アーティファクトを最新のアーティファクトで更新します。