
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 |
※執筆時点の参考利用料








