0
0

【AWS×Webアプリ】S3静的Webサイトホスティング(Terraform)

Last updated at Posted at 2024-05-06

目的

・AWS上にS3バケットを作成し、静的Webサイトホスティング設定を行う。

前提条件

・Terraformを使用してAWS上にリソースを作成する。
・作成する内容は以下と同様

TFファイル

aws_s3.tf
resource "aws_s3_bucket" "WebBucket" {
  bucket = "terraform-webbucket-${data.aws_caller_identity.self.account_id}"
}

resource "aws_s3_bucket_versioning" "versioning_WebBucket" {
  bucket = aws_s3_bucket.WebBucket.id
  versioning_configuration {
    status = "Enabled"
  }
}

resource "aws_s3_bucket_public_access_block" "public_access_block_WebBucket" {
  bucket = aws_s3_bucket.WebBucket.id

  block_public_acls       = false
  block_public_policy     = false
  ignore_public_acls      = false
  restrict_public_buckets = false
}

resource "aws_s3_bucket_website_configuration" "website_configuration_WebBucket" {
  bucket = aws_s3_bucket.WebBucket.id

  index_document {
    suffix = "index.html"
  }
}

resource "aws_s3_bucket_policy" "allow_access_to_WebBucket" {
  bucket = aws_s3_bucket.WebBucket.id
  policy = data.aws_iam_policy_document.allow_access_to_WebBucket.json
}

data "aws_caller_identity" "self" { }

data "aws_iam_policy_document" "allow_access_to_WebBucket" {
  statement {
    principals {
      type        = "*"
      identifiers = ["*"]
    }

    effect = "Allow"
    actions = ["s3:GetObject"]
    resources = ["${aws_s3_bucket.WebBucket.arn}/*"]
  }
}

・WebBucket:S3バケット
・versioning_WebBucket:バージョニング有効化
・public_access_block_WebBucket:パブリックアクセス有効化
・website_configuration_WebBucket:静的Webサイトホスティング設定
・allow_access_to_WebBucket:バケットポリシー設定

動作確認

①作成されたS3バケットへ「index.html」をアップロードする

index.html
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>My Website Home Page</title>
</head>
<body>
  <h1>Welcome to my website</h1>
  <p>Now hosted on Amazon S3 using Terraform!</p>
</body>
</html>

②Webサイトへアクセス
image.png

0
0
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
0
0