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

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark