MauticをAWSにデプロイするためのterraformを作ってみました。
MauticをVPCごと作りたくなった時がちょいちょいあったので、terraform化してみました。 ソース https://github.com/megumiteam/terraform-mautic リソース VPC […]
目次
MauticをVPCごと作りたくなった時がちょいちょいあったので、terraform化してみました。
ソース
https://github.com/megumiteam/terraform-mautic
リソース
- VPCまわり一式
- EC2(Mautic AMI) * 1
- EIP * 1
- SES * 1
メリット
MauticインスタンスをVPCごとterraformで管理できる
デメリット
実際に使ってるやつなので定期的にアップデートはしていますが、事故った時の保証はしません。
使い方
設定ファイルの準備
設定ファイルを.example
から複製します。
$ cp terraform.tfvars.example terraform.tfvars
$ cp .envrc.example .envrc
terraform.tfvars
terraformで作る環境の設定値を書きます。
だいたいこんな感じ。
cidr = "172.31.0.0/16"
site_name = "mautictest"
stage = "development"
domain = "example.com"
allow_ip = "0.0.0.0/0"
instance_size="t2.medium"
email = "example.com"
key_name = "your_ssh_key_name"
domainは今の所EC2のTagに使ってるくらいです。
emailの方はSESのReceipt Rulesに使います。
.envrc
terraformを使う際の環境変数を設定します。
aws-cliのprofile名とリージョンを指定しdirenv allow
してください。
export AWS_PROFILE=YOUR_AWS_PROCILE
export AWS_REGION=ap-northeast-1
リソースを作る
いつも通り、plan / applyしちゃってください。
$ terraform plan
$ terraform apply
SSH Keyごと作る。
SSH鍵も環境毎に新しく作りたい場合ってありますよね。
そんな時用の横着スクリプトも一応作ってます。
事前にterraform.tfvars
のkey_name
の行を消してください。
$ /bin/bash ./bin/create_new.sh YOUR_SSH_KEY_NAME
これでYOUR_SSH_KEY_NAME
に入れた値で鍵を作ってくれます。
使い所とか
DoS攻撃きた時にVPCのNACLの設定書き換えてIP弾くとかできます。
https://github.com/megumiteam/terraform-mautic/blob/master/05_network-acl.tf
コードとして残りますし、コメントも残せるので引き継ぎとかも楽かなと思います。
今後について
RDSとかCloudFront + WAFとかもやりたいですね。