LoginSignup
2
3

More than 5 years have passed since last update.

Terraformで独自ドメインでファイル配信

Posted at

やりたいこと

www.共円.netで、あるhtmlが返却されるように設定する。

事前準備

お名前.comでドメインを取得。

Terraformの設定

main.tf
provider "aws" {
  region = "ap-northeast-1"
}

resource "aws_route53_zone" "kyouen-net" {
  name = "xn--b6qvb.net"
}

resource "aws_s3_bucket" "main" {
    bucket = "www.xn--b6qvb.net"
    acl = "public-read"
    policy = <<EOF
{"Statement":[{"Action":"s3:GetObject","Effect":"Allow","Principal":"*","Resource":"arn:aws:s3:::www.xn--b6qvb.net/*","Sid":"PublicReadForGetBucketObjects"}],"Version":"2012-10-17"}
EOF

    website {
        index_document = "index.html"
        error_document = "error.html"
    }
}

resource "aws_route53_record" "www" {
  zone_id = "${aws_route53_zone.kyouen-net.zone_id}"
  name = "www.xn--b6qvb.net"
  type = "A"

  alias {
    name = "${aws_s3_bucket.main.website_domain}"
    zone_id = "${aws_s3_bucket.main.hosted_zone_id}"
    evaluate_target_health = true
  }
}

output "name_servers.0" {
  value = "${aws_route53_zone.kyouen-net.name_servers.0}"
}
output "name_servers.1" {
  value = "${aws_route53_zone.kyouen-net.name_servers.1}"
}
output "name_servers.2" {
  value = "${aws_route53_zone.kyouen-net.name_servers.2}"
}
output "name_servers.3" {
  value = "${aws_route53_zone.kyouen-net.name_servers.3}"
}

aws_route53_zone

zoneの設定を行います。

Punycode表記のドメイン名を、name属性として与えます。

aws_s3_bucket

Static Website Hostingが出来るように設定します。
policy部分は、1度実行した後のterraform.tfstateから持ってきました。
(JSONのキー・値が一致してても、文字列として違ってたら変更ありとされるっぽい)

aws_route53_record

作成したzoneや、S3 bucketの情報を元に、
www.共円.netというドメインで、同名のS3 bucketにアクセスできるようになります。

Terraformの実行

計画の確認をします。

terraform plan

実行します。

terraform apply

数分待っていると、下記のようにname serverが出力されます。

Outputs:

  name_servers.0 = ns-NNNN.awsdns-NN.org
  name_servers.1 = ns-NNNN.awsdns-NN.co.uk
  name_servers.2 = ns-NNNN.awsdns-NN.com
  name_servers.3 = ns-NNNN.awsdns-NN.net

name serverの設定

お名前.comのネームサーバー変更画面にて、Terraformで出力されたネームサーバのドメイン名を設定する。

S3にファイルを配置、確認する。

Management Consoleとかでさくっとテキトーなindex.htmlを配置する。

http://www.共円.net/ でアクセスできればOK。

感想

取得した独自ドメインで、静的ファイルを簡単にホスティング出来ました。

S3なので、下手なVPSとかIaaS使うよりは安く・高い信頼性で配信できます。

また、Terraformで構築しているので、再現性が高く、破棄も一瞬で出来ます。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3