このガイダンスにより、Amazon DynamoDB を Amazon OpenSearch Service と統合してリアルタイム検索を実現できます。ほとんどのアプリケーションは、Amazon DynamoDB と Amazon OpenSearch Service のゼロ ETL 統合を使用すべきです。ゼロ ETL 統合と整合しない要件を持つアプリケーションのために、このガイダンスは、並列関数を通じて DynamoDB から OpenSearch Service にデータの初期ロードを実行する方法と、新しいデータを OpenSearch Service にレプリケートする方法を示します。両方の場所にデータを保持することで、要件に最適なデータベースにクエリをターゲットできます。DynamoDB はパフォーマンスとスケーラビリティを必要とする固定アクセスパターンを強化し、OpenSearch Service は検索とフィルタリングの柔軟性を必要とするアクセスパターンを強化します。

注: [免責事項]

アーキテクチャ図

[アーキテクチャ図の説明]

アーキテクチャダイアグラムの PDF をダウンロード 

Well-Architected の柱

AWS Well-Architected フレームワークは、クラウドでシステムを構築する際に行う決定の長所と短所を理解するのに役立ちます。フレームワークの 6 つの柱により、信頼性が高く、安全かつ効率的で、費用対効果が高く、持続可能なシステムを設計および運用するためのアーキテクチャのベストプラクティスを学ぶことができます。AWS マネジメントコンソールで無料で提供されている AWS Well-Architected Tool を使用し、各柱の一連の質問に回答することで、これらのベストプラクティスに照らしてワークロードを確認できます。

上記のアーキテクチャ図は、Well-Architected のベストプラクティスを念頭に置いて作成されたソリューションの例です。完全に Well-Architected であるためには、可能な限り多くの Well-Architected ベストプラクティスに従う必要があります。

  • AWS Cloud Development Kit (AWS CDK) は、ソリューションのインフラストラクチャをコードとして定義し、一貫したデプロイの実現をサポートします。Lambda は作業を小さな作業単位に分割し、各作業単位は異なるアプリケーション機能を担当します。これらの単一タスク機能は、人為的エラーを減らし、失敗した場合に元に戻すのが容易である小規模な増分変更をサポートします。

    運用上の優秀性に関するホワイトペーパーを読む 
  • 該当する場合、このガイダンスでは、パブリックではなくプライベートの Amazon Virtual Private Cloud (Amazon VPC) ネットワークでサービスを起動します。Amazon VPC を通じたプライベートネットワーキングは、データへのアクセス方法を制御できるようにすることで、すべてのレイヤーでセキュリティをサポートします。さらに、単一目的かつ最小特権の AWS Identity and Access Management (IAM) ポリシーを使用すると、許可の変更によって予期しない結果が広範に生じるのを防ぐのに役立つほか、ユーザーが機密データを誤って処理するリスクを軽減できます。AWS Secrets Manager は、管理者シークレットを生成して安全に保存し、認証情報の漏えいリスクが生じないよう、ユーザーがコードまたは環境変数に認証情報を保存するのを防ぎます。

    セキュリティに関するホワイトペーパーを読む 
  • Amazon SQS は、インポートの一部が失敗した場合に自動再試行メカニズムを提供し、障害から迅速に回復するのをサポートします。記録システムとして、DynamoDB はポイントインタイムリカバリを使用して継続的なバックアップを行い、直近 35 日間の任意の秒にリカバリできるようにします。OpenSearch Service は、初期データロードで「作成」オペレーションを使用して 2 つのデータベース間のドリフトを防ぎ、古いデータによって新しいデータが上書きされないようにするのに役立ちます。OpenSearch Service は単一ノードのクラスターを使用するように設定されていますが、これをマルチアベイラビリティーゾーンのクラスターに変更して、本番での可用性を維持できます。

    信頼性に関するホワイトペーパーを読む 
  • Lambda を使用すると、ワークロードを並列化できます。DynamoDB からの読み取りは、複数の Lambda 関数呼び出しで分割される、セグメント化された並列スキャンを経由します。この並列化により、単一のスレッドで管理できるよりもはるかに多くのスループットを実現できます。

    パフォーマンス効率に関するホワイトペーパーを読む 
  • Lambda は、DynamoDB の項目を、個別の GetItem リクエストとしてではなく、バッチでまとめて読み取ります。その結果、このガイダンスで消費される読み取りキャパシティユニットは少なくなります。接続の初期化などのタスクに費やされる作業量を減らすことで、バッチの使用によりコンピューティング時間と Lambda 呼び出し回数が減り、コンピューティングコストが削減されます。さらに、OpenSearch Service のバッチオペレーションは効率的で、コンピューティングリソースの全体的なコストを削減するのに役立ちます。

    コスト最適化に関するホワイトペーパーを読む 
  • Lambda は、データを OpenSearch Service に移動する必要がある場合にのみ関数を呼び出し、アイドル時には実行されません。これは、コンピューティングリソースを最大限に活用するのに役立ちます。さらに、サーバーレスマネージドサービスである DynamoDB は、非効率性を減らし、ワークロードによって消費される総電力を削減するのに役立ちます。

    持続可能性に関するホワイトペーパーを読む 
ブログ

Amazon DynamoDB と Amazon OpenSearch Service のゼロ ETL 統合が利用可能に

このブログ記事には、Amazon DynamoDB と Amazon OpenSearch Service のゼロ ETL 統合の使用を開始する方法が記載されています。

免責事項

サンプルコード、ソフトウェアライブラリ、コマンドラインツール、概念の実証、テンプレート、またはその他の関連技術 (私たちの担当者から提供される前述のものを含む) は、AWS カスタマーアグリーメント、またはお客様と AWS との間の関連文書契約 (いずれか該当する方) に基づき、AWS コンテンツとしてお客様に提供されるものです。お客様は、この AWS コンテンツを、お客様の本番アカウント、または本番データもしくはその他の重要なデータで使用すべきではありません。お客様は、サンプルコードなどの AWS コンテンツを、お客様固有の品質管理手法および基準に基づいて、本番グレードでの使用に適したテスト、セキュリティ確保、および最適化を行う責任を負います。AWS コンテンツのデプロイには、Amazon EC2 インスタンスの実行や Amazon S3 ストレージの使用など、AWS の課金対象リソースを作成または使用するための AWS 料金が発生する場合があります。

本ガイダンスにおける第三者のサービスまたは組織への言及は、Amazon または AWS と第三者との間の承認、後援、または提携を意味するものではありません。AWS からのガイダンスは技術的な出発点であり、アーキテクチャをデプロイするときにサードパーティのサービスとの統合をカスタマイズできます。

このページはお役に立ちましたか?