概要
Apache Druid on AWS を利用したスケーラブルな分析は、コスト効率と可用性が高く、回復力があり、耐障害性に優れたホスティング環境である Apache Druid on AWS を迅速かつ効率的に設定、運用、および管理できるようにする AWS のソリューションです。このソリューションでは、Apache Druid の機能と性能の完全なスイートを使用しながら、AWS のコンピューティングおよびストレージサービスの伸縮性、スケーラビリティ、および柔軟な料金設定を最適化できます。
メリット
さまざまなインスタンスおよびサーバーレスのオプションから選択した AWS コンピューティングエンジンとストレージを利用して、インストールを柔軟にカスタマイズできます。
OpenID Connect プロトコルを通じてユーザーを認証する ID プロバイダーを指定したり、ソリューションのすぐに使用可能な Lightweight Directory Access Protocol (LDAP) のサポートを使用したりできるほか、ユーザー名やパスワードなどの基本的な認証設定を構成することもできます。
一元化された Amazon CloudWatch ロググループに対して Druid によって出力されたログエントリを使用して、デバッグやトラブルシューティングのアクティビティを容易にしたり、
Druid クラスターの状態を追跡するためにモニタリングダッシュボードを設定したりできるほか、お好みでアラームを設定することもできます。
中核的な拡張機能やコミュニティ拡張機能など、Druid の拡張機能をロードするためのネイティブサポートを使用してこのソリューションをインストールおよび設定できます。
技術的な詳細情報
このアーキテクチャは、実装ガイドを使用して自動的にデプロイできます。
ステップ 1
AWS WAF は、可用性に影響を及ぼしたり、セキュリティを侵害したり、過剰なリソースを消費したりする可能性のある一般的なウェブエクスプロイトやボットから Druid ウェブコンソールと Druid API エンドポイントを保護します。AWS WAF は、インターネットに接続されたクラスターにのみプロビジョニングおよびデプロイされます。
ステップ 2
セキュリティが強化された Linux サーバー (踏み台ホスト) は、外部ネットワークとは別のプライベートネットワークで実行されている Druid サーバーへのアクセスを管理します。また、プライベート Application Load Balancer (ALB) がデプロイされている SSH トンネリング経由で Druid ウェブコンソールにアクセスするために使用することもできます。
ステップ 3
ALB は、クライアント用の単一の通信先として機能します。ロードバランサーは、着信アプリケーショントラフィックを、複数のアベイラビリティーゾーン内の複数のクエリサーバーに分散します。
ステップ 4
プライベートサブネットは次で構成されます。
- Druid マスター Auto Scaling グループ: Auto Scaling グループには、Druid マスターサーバーのコレクションが含まれています。マスターサーバーはデータインジェストと可用性を管理するとともに、新しいインジェストジョブを開始し、「データサーバー」上のデータの可用性を調整します。マスターサーバー内では、機能は「Coordinator」と「Overlord」という 2 つのプロセスに分かれます。
- Druid データ Auto Scaling グループ: Auto Scaling グループには、Druid データサーバーのコレクションが含まれています。データサーバーはインジェストジョブを実行し、クエリ可能なデータを保存します。データサーバー内では、機能は「Historical」と「MiddleManager」という 2 つのプロセスに分かれます。
- Druid クエリ Auto Scaling グループ: Auto Scaling グループには、Druid クエリサーバーのコレクションが含まれています。クエリサーバーは、ユーザーとクライアントアプリケーションがやり取りするエンドポイントを提供し、クエリをデータサーバーまたは他のクエリサーバーにルーティングします。クエリサーバー内では、機能は「Broker」と「Router」という 2 つのプロセスに分かれます。
- ZooKeeper Auto Scaling グループ: Auto Scaling グループには、ZooKeeper サーバーのコレクションが含まれています。Apache Druid は、現在のクラスターの状態管理のために Apache ZooKeeper (ZK) を利用します。
ステップ 5
Amazon Simple Storage Service (S3) バケットは、Apache Druid クラスターにディープストレージを提供します。ディープストレージは、セグメントが保存される場所です。
ステップ 6
AWS Secrets Manager は、Amazon Relational Database Service (RDS) のシークレットや管理者ユーザーのシークレットなど、Apache Druid によって使用されるシークレットを保存します。また、Druid のコンポーネントが相互に認証するために使用するシステムアカウントの認証情報も保存します。
ステップ 7
Amazon CloudWatch は、ログ、メトリクス、ダッシュボードをサポートします。
ステップ 8
Amazon Aurora PostgreSQL データベースは、Apache Druid クラスターのためにメタデータストレージを提供します。Druid はメタデータストアを使用してシステムに関するメタデータのみを格納し、実際のデータは格納しません。
ステップ 9
Amazon Simple Notification Service (Amazon SNS) を利用した通知システムは、システムイベントが発生するとすぐにアラートまたはアラームを配信します。これにより、必要なときに即座に事態を認識して対応できるようになります。