目標
Route53で独自ドメインを設定する。
やること
ドメインの登録
レコードの作成
ドメインの登録
.comの料金は1年で$12.00(約1380円)
今回はS3に対して独自ドメインを設定するので、
S3にドメイン名と同じ名前のバケットを作成している必要がある。
レコードの作成
provider "aws" {
region = "ap-northeast-1"
}
resource "aws_s3_bucket" "bucket" {
bucket = "{バケット名}"
acl = "public-read"
website {
index_document = "index.html"
}
}
resource "aws_s3_bucket_policy" "bucket_policy" {
bucket = aws_s3_bucket.bucket.id
policy = data.aws_iam_policy_document.policy_document.json
}
data "aws_iam_policy_document" "policy_document" {
statement {
sid = "Statement1"
effect = "Allow"
principals {
type = "*"
identifiers = ["*"]
}
actions = [
"s3:GetObject"
]
resources = [
"${aws_s3_bucket.bucket.arn}/*"
]
}
}
resource "aws_s3_bucket_object" "bucket_object" {
bucket = aws_s3_bucket.bucket.id
key = "index.html"
source = "index.html"
content_type = "text/html"
}
data "aws_route53_zone" "zone" {
name = "{ドメイン名}"
}
resource "aws_route53_record" "record" {
zone_id = data.aws_route53_zone.zone.zone_id
name = data.aws_route53_zone.zone.name
type = "A"
alias {
name = aws_s3_bucket.bucket.website_domain
zone_id = aws_s3_bucket.bucket.hosted_zone_id
evaluate_target_health = false
}
}
独自ドメインにアクセスする。
http://{S3のバケット名}/
「Hello, S3!」と表示されれば完了。
課題
現在のURL: http://{S3のバケット名}/
S3だけでは独自ドメインを常時SSL化できない -> CloudFrontを利用する
参考
Terraform Registry