
Splunk Enterprise環境をAWSに構築してみた
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
データアナリティクス事業本部の藤川です。
SIEM製品であるSplunk Enterpriseを機能評価しようと思いました。
Splunk Cloudに登録する、Splunk Enterpriseをダウンロードしてインストールする等、環境を用意する方法は何パターンかあります。
AWS での Splunk Enterprise - クイックスタートという記事が紹介されていますが、機能評価用には堅牢過ぎるので、もっと簡単に構築する方法がないか探しました。
AWS Marketplaceでは、Splunk EnterpriseのAMIが提供されていますので、AMIからSplunk Enterprise環境を構築してみたいと思います。
なお、AWS Marketplace版Splunk Enterpriseは、HTTP通信にしか対応していません。通信を暗号化したいので、Apacheでリバースプロキシを構築し、HTTPS化しました。
概要
次の図のようなSplunk Enterprise環境をAWSに構築します。
VPCを作成
Cloud FormationテンプレートからVPCを作成
- こちらの記事を参考にVPCを構築します。
- AWSマネジメントコンソールを開きます。
- EC2の- インスタンスダッシュボードを開きます。
- セキュリティグループを表示します。
- SecureSGの- インバウンドルールに、- DmzSGからの- TCPの- 8000番ポートをルール追加します。
Splunk Enterprise 8.2.2を構築
splunkインスタンスを起動
- AWS MarketplaceでSplunk Enterpriseを検索します。
 あるいは、Splunk EnterpriseのURLにアクセスします。
- Continue Subscribeボタンをクリックします。
- Accept Termsボタンをクリックします。
- Effective date(発行日)と- Expiration date(有効期限)が表示されるので確認します。
- Continue to Configurationボタンをクリックします。
- AMI、- Software Version、- Regionを選択します。
- Monthly Estimateで月額利用料を確認します。くれぐれも、インスタンスの止め忘れにはご注意ください。
- Continue to Launchボタンをクリックします。
- Choose Actionは- Launch from Website、- EC2 Instance Typeは- c5.large(=推奨構成。最低でも、- t3.medium)を選択します。
- VPC Settings、- Subnet Settings、- Security Group Settings、- Key Pair Settingsには、それぞれ、先ほど作成したVPCに関する設定を選択します。ここでは、- PrivateSubnet1、- SecureSGに配置します。
- Launchボタンをクリックします。
splunkインスタンスを設定
- AWSマネジメントコンソールを開きます。
- EC2の- インスタンスダッシュボードを開きます。
- 先ほど起動したインスタンスのNameタグを編集し、splunkと入力します。
- splunkインスタンスの- インスタンスID、- プライベートIPv4アドレスを控えておきます。
リバースプロキシを構築
proxyインスタンスを起動
- t3a.nanoインスタンスを使用します。
- ここでは、PublicSubnet、DmzSGに配置します。
- Nameタグを編集し、- proxyと入力します。
- EC2の- インスタンスダッシュボードを開きます。
- proxyインスタンスの- パブリックIPv4アドレス、- プライベートIPv4アドレスを控えておきます。
Apache2をインストール
- NatInstanceインスタンスの- パブリックIPv4アドレスにSSH接続します。
- NatInstanceから- proxyインスタンスの- プライベートIPv4アドレスにSSH接続します。- ssh -i ~/.ssh/HOGEHOGE.pem ec2-user@10.0.0.60 
- proxyインスタンスのパッケージを最新化します。- sudo yum -y update 
- Apache2とmod_sslをインストールします。
sudo yum -y install httpd mod_ssl 
- 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>
- Apache2を起動します。問題なければ、自動起動するよう設定します。
sudo systemctl start httpd sudo systemctl enable httpd 
疎通確認
- splunkインスタンスの- プライベートIPv4アドレスを確認します。
- /etc/hostsファイルに設定します。- sudo vi /etc/hosts - 10.0.1.240 splunk 
- proxyインスタンスから- splunkインスタンスの- 8000番ポートに疎通確認します。- curl http://splunk:8000 
- 次のようなレスポンスがあれば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にログイン
- proxyインスタンスの- パブリックIPv4アドレスを確認します。
- 次のURLにアクセスします。
https://<proxyインスタンスのパブリックIPv4アドレス> 
- Chromeブラウザでは、警告メッセージが表示されてしまい、アクセスできません。
 ※あまりオススメできる方法ではありませんが、「thisisunsafe」と入力することで、アクセスできるようになります。
- Splunk Enterpriseにログインします。ユーザ名は- adminです。
- パスワードはSplunk Enterpriseのバージョンによって異なります。控えておいたsplunkインスタンスのインスタンスIDを使用します。- Splunk Enterprise 7.2.5以降: SPLUNK-<インスタンスID>
- Splunk Enterprise 7.2.0以前: <インスタンスID>
 
- Splunk Enterprise 7.2.5以降: 
- Splunk Enterpriseにログインできたなら、- NatInstanceを停止して構いません。
やってみよう!
念願のSplunk Enterprise環境を手に入れました。チュートリアル用のデータをダウンロードし、早速、こちらの記事のチュートリアルをやってみましょう。
スタックを削除
使い終わった環境は削除しましょう。次のいずれかの手順で削除できます。
- proxyインスタンス、- splunkインスタンスを- 終了します。
- AWSマネジメントコンソールからスタックを削除します。
- または、次の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 | 
※執筆時点の参考利用料












