Splunk Enterprise環境をAWSに構築してみた
はじめに
データアナリティクス事業本部の藤川です。
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 |
※執筆時点の参考利用料