terraform

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.tfvarskey_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とかもやりたいですね。

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts