目次

  1. はじめに
  2. 構成図
  3. 実施内容
  4. 悩んだこと
  5. まとめ

 

1.はじめに

こんにちは。Creageビジネス事業部のシラトリです。

本ブログは、「VPC 内で Amazon OpenSearch Service ドメインを起動する - Amazon OpenSearch Service」を参考に、Amazon OpenSearch Service ドメインを作成し、Amazon OpenSearch ServiceのDashboardsにEC2でポートフォワードしてローカルPCで接続した手順と、実施時に悩んだことを記載します。

想定読者は下記の2つに該当する方になります。
・初めてAmazon OpenSearch Serviceを扱う方
・VPC内にOpenSearchドメインを作成しすぐにDashboardsを確認したい方
 

Amazon OpenSearch Service は、OpenSearch クラスターのデプロイ、オペレーション、スケーリングを容易にしてくれるサービスです。
OpenSearch はログ分析、リアルタイムのアプリケーションモニタリング、クリックストリーム分析などに便利な、オープンソースの検索および分析エンジンです。
OpenSearchについての詳細は公式サイト「OpenSearch documentation - OpenSearch documentation」をご覧ください。
 

2. 構成図

※補足説明
こちらのブログでは、VPCとSubnet(PublicとPrivate)、インターネットゲートウェイ、ルートテーブルなどは事前に作成している前提で進んでいきます。
事前にご準備ください。

 

3. 実施内容

3-1.EC2を作成

作成方法は割愛します。
インバウンドルールはローカルPCのIPアドレスからのポート22のみ許可したセキュリティグループをアタッチします。
EC2は起動しておきます。
 

3-2. Amazon OpenSearch Service ドメインを起動

デフォルトから変更した部分を紹介します。
(AWSコンソールは2023年7月30日の画面になります。)
 

前提条件は、「コスト重視の最小構成」です。
セキュリティは無料の範囲で設定します。
 

下記表の設定値で作成します。

テンプレート 開発/テスト
アベイラビリティゾーン 1
インスタンスタイプ t3.small.search
ノード数 1
ストレージサイズ 10GB

「開発/テスト環境」を選択します。

アベイラビリティゾーンは「1-AZ」を選択します。

インスタンスタイプは「t3.small.search」、ノードの数「1」、EBSのボリュームは「10GB」にします。

ネットワークは「VPCアクセス(推奨)」にし、サブネットは事前に作成したPrivate Subnetのものを選択します。
セキュリティグループは、EC2にアタッチされたセキュリティグループからのポート443のみ許可したものを選択します。
 

※参考:セキュリティグループインバウンドルールの設定
ソースはEC2にアタッチされたセキュリティグループを選択します。
 

「きめ細かなアクセスコントロールを有効化」し、「マスターユーザの作成」を選択します。
マスターユーザはログイン時に必要になりますので忘れないようにしましょう。
 

「きめ細かなアクセスコントロールのみを使用」を選択します。

「作成」をクリックします。

※余談
権限の足りていないIAMユーザやIAMロールで作成しようとすると、作成から画面が一向に変わらなかったです。(エラーは出てきませんでした。)
 

ステータスが「アクティブ」になれば作成完了です(30分くらいかかった気がします。)

3-3.ポートフォワード設定

ssh -i 「pemキーのパス」 「ec2のログインユーザ」@ -N -L 9200:「OpenSearchのドメイン」:443 を入力(私はローカルPCのGit Bashで実行しました)

3-4. OpenSearch Dashboardsへログイン

ウェブブラウザで https://localhost:9200/_dashboards/を入力します。
証明書エラーとなりますが、そのままアクセスしてください。
 

ログイン画面になるので、OpenSearchドメイン作成時のマスターユーザとパスワードを入力します。

ログインできました!

3-5.Sample dataの追加

画面にしたがって、Sample dataを追加できます。

4.悩んだこと

参考にしたURLに『OpenSearchドメインと同じサブネットにEC2を作成する(全文は下記画像部分参照)』とあります。

しかし、本検証では次の2つの理由からOpenSearchドメインとEC2を別のSubnetに作成したため、接続確認ができるか少し悩みました。

  • ローカルPCのブラウザでOpenSearch Dashboardsにログインして操作したい。
  • OpenSearchは実際のプロジェクトを想定しPrivate Subnetに配置したい。

結果として、セキュリティグループなど含めネットワーク経路を正しく設定すれば、
OpenSearchドメインとEC2を別のSubnetに作成しても、ローカルPCからOpen Search Dashboardsに接続することができました。
悩みは杞憂でしたが、検証したいことが明確であれば必ずしも参考URL通りの構成にこだわらなくても実現できることを学べました。
 

なお、Private Subnetに配置したOpenSearchのDashboardsにアクセスする方法として

  • Private SubnetにWindowsサーバを立て、Fleet Manager を使用してログイン
  • WorkspacesをVPCに立ててログイン

も考えましたが、ローカルPCのブラウザでログインして操作したい希望からずれてしまうと考えたため今回は採用しませんでした。
 

5.まとめ

プロジェクトでAmazon OpenSearch Serviceを使うことになったのですが、作成したことがなかったので良い勉強になりました。
Dashboardsに簡単にSample dataを加えられるため、初めてでも使い方のイメージが出来、今後の設定や構築の参考になるので、とても親切だなと思いました。
今回のやり方はSSMのエンドポイントやIAMロールの設定などの必要なく、Private SubnetのAmazon OpenSearch Serviceにアクセスできますので、すぐにDashboardsを触ってみたい方の参考になれば幸いです。