Splunk Enterprise環境をAWSに構築してみた

SIEM製品であるSplunk Enterpriseを機能評価しようと思い、AMI(AWS Marketplace版Splunk Enterprise)から構築しました。比較的簡単に構築できましたのでご紹介します。
2021.11.19

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

データアナリティクス事業本部の藤川です。
SIEM製品であるSplunk Enterpriseを機能評価しようと思いました。
Splunk Cloudに登録する、Splunk Enterpriseをダウンロードしてインストールする等、環境を用意する方法は何パターンかあります。
AWS での Splunk Enterprise - クイックスタートという記事が紹介されていますが、機能評価用には堅牢過ぎるので、もっと簡単に構築する方法がないか探しました。

AWS Marketplaceでは、Splunk EnterpriseのAMIが提供されていますので、AMIからSplunk Enterprise環境を構築してみたいと思います。
なお、AWS MarketplaceSplunk Enterpriseは、HTTP通信にしか対応していません。通信を暗号化したいので、Apacheでリバースプロキシを構築し、HTTPS化しました。

概要

次の図のようなSplunk Enterprise環境をAWSに構築します。

Splunk(Marketplace)

VPCを作成

Cloud FormationテンプレートからVPCを作成

  1. こちらの記事を参考にVPCを構築します。
  2. AWSマネジメントコンソールを開きます。
  3. EC2インスタンスダッシュボードを開きます。
  4. セキュリティグループを表示します。
  5. SecureSGインバウンドルールに、DmzSGからのTCP8000番ポートをルール追加します。

Splunk Enterprise 8.2.2を構築

splunkインスタンスを起動

  1. AWS MarketplaceでSplunk Enterpriseを検索します。
    あるいは、Splunk EnterpriseのURLにアクセスします。
  2. Continue Subscribeボタンをクリックします。
  3. Accept Termsボタンをクリックします。
  4. Effective date(発行日)Expiration date(有効期限)が表示されるので確認します。
  5. Continue to Configurationボタンをクリックします。
  6. AMISoftware VersionRegionを選択します。
  7. Monthly Estimateで月額利用料を確認します。くれぐれも、インスタンスの止め忘れにはご注意ください。
  8. Continue to Launchボタンをクリックします。
  9. Choose ActionLaunch from WebsiteEC2 Instance Typec5.large(=推奨構成。最低でも、t3.medium)を選択します。
  10. VPC SettingsSubnet SettingsSecurity Group SettingsKey Pair Settingsには、それぞれ、先ほど作成したVPCに関する設定を選択します。ここでは、PrivateSubnet1SecureSGに配置します。
  11. Launchボタンをクリックします。

splunkインスタンスを設定

  1. AWSマネジメントコンソールを開きます。
  2. EC2インスタンスダッシュボードを開きます。
  3. 先ほど起動したインスタンスのNameタグを編集し、splunkと入力します。
  4. splunkインスタンスのインスタンスIDプライベートIPv4アドレスを控えておきます。

リバースプロキシを構築

proxyインスタンスを起動

  1. t3a.nanoインスタンスを使用します。
  2. ここでは、PublicSubnetDmzSGに配置します。
  3. Nameタグを編集し、proxyと入力します。
  4. EC2インスタンスダッシュボードを開きます。
  5. proxyインスタンスのパブリックIPv4アドレスプライベートIPv4アドレスを控えておきます。

Apache2をインストール

  1. NatInstanceインスタンスのパブリックIPv4アドレスにSSH接続します。
  2. NatInstanceからproxyインスタンスのプライベートIPv4アドレスにSSH接続します。
    ssh -i ~/.ssh/HOGEHOGE.pem ec2-user@10.0.0.60
  3. proxyインスタンスのパッケージを最新化します。
    sudo yum -y update
  4. Apache2とmod_sslをインストールします。
    sudo yum -y install httpd mod_ssl
  5. Apache2の設定ファイルを新規作成します。
    sudo vi /etc/httpd/conf.d/proxy_splunk.conf
    ProxyRequests Off
    RequestHeader set X_FORWARDED_PROTO 'https'
    
    <Location "/">
        ProxyPass http://splunk:8000/
        ProxyPassReverse http://splunk:8000/
    </Location>
  6. Apache2を起動します。問題なければ、自動起動するよう設定します。
    sudo systemctl start httpd
    sudo systemctl enable httpd

疎通確認

  1. splunkインスタンスのプライベートIPv4アドレスを確認します。
  2. /etc/hostsファイルに設定します。
    sudo vi /etc/hosts
    10.0.1.240  splunk
  3. proxyインスタンスからsplunkインスタンスの8000番ポートに疎通確認します。
    curl http://splunk:8000
  4. 次のようなレスポンスがあればOKです。
    <!doctype html><html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><meta http-equiv="refresh" content="1;url=http://splunk:8000/en-US/"><title>303 See Other</title></head><body><h1>See Other</h1><p>The resource has moved temporarily <a href="http://splunk:8000/en-US/">here</a>.</p></body></html>

Splunk Enterpriseにログイン

  1. proxyインスタンスのパブリックIPv4アドレスを確認します。
  2. 次のURLにアクセスします。
    https://<proxyインスタンスのパブリックIPv4アドレス>
  3. Chromeブラウザでは、警告メッセージが表示されてしまい、アクセスできません。
    ※あまりオススメできる方法ではありませんが、「thisisunsafe」と入力することで、アクセスできるようになります。
  4. Splunk Enterpriseにログインします。ユーザ名はadminです。
  5. パスワードはSplunk Enterpriseのバージョンによって異なります。控えておいたsplunkインスタンスのインスタンスIDを使用します。
    • Splunk Enterprise 7.2.5以降: SPLUNK-<インスタンスID>
    • Splunk Enterprise 7.2.0以前: <インスタンスID>
  6. Splunk Enterpriseにログインできたなら、NatInstanceを停止して構いません。

やってみよう!

念願のSplunk Enterprise環境を手に入れました。チュートリアル用のデータをダウンロードし、早速、こちらの記事のチュートリアルをやってみましょう。

スタックを削除

使い終わった環境は削除しましょう。次のいずれかの手順で削除できます。

  1. proxyインスタンス、splunkインスタンスを終了します。
  2. AWSマネジメントコンソールからスタックを削除します。
  3. または、次のAWS CLIコマンドでスタックを削除します。
    aws cloudformation delete-stack --stack-name MyVpc --profile HOGEHOGE

さいごに

Splunk Enterprise環境をt3.mediumインスタンスで構築しましたが、推奨構成であるc5.largeで構築してもAWS利用料に大きな差はないようです。 もちろん、運用に入って継続利用するとなると、この差は大きいですが、評価目的であればこれで十分でしょう。

構築した環境でSplunk Enterpriseを評価して、機能面でもご紹介して参りたいと思います。

インスタンスタイプ Software/hr + EC2/hr = Total/hr トータル/hr
c5.large $0/hr + $0.085/hr = $0.085/hr 約9円/hr
t3.medium $0/hr + $0.0544/hr = $0.0544/hr 約6円/hr

※執筆時点の参考利用料