LoginSignup
3
2

More than 3 years have passed since last update.

つくって終わりじゃない!継続的に開発できるポートフォリオサイトをつくる!

Last updated at Posted at 2020-07-17
1 / 34

これはなに

社内LTで使った発表資料です


自己紹介

profile-image.png

ohakutsu(おはくつ)

  • 20卒の新卒エンジニア
  • 青森県出身
  • なまりまくり
  • 最近、家系ラーメン食べてる🍜
  • サウナ初心者
  • 将棋

できること

  • Rails
  • JavaScript
  • TypeScript
  • React

が少し出来る程度


SNS

  • Twitter
  • Facebook
  • Qiita
  • サウナイキタイ

やってます

ohakutsuでGoogle検索すると大体出てきます
フォローしてくれると嬉しいです


Yaminabe-13


本題に入ります


以前まで公開していたポートフォリオサイト

以前までのファイルをS3にあげています
http://s3-old.ohakutsu.com.s3-website-ap-northeast-1.amazonaws.com/


  • 運用費 月100円くらい
    • いい感じ!

だけど、問題点が...


インフラどうやって構築したか覚えてねーよ


  • 少し盛りましたw
  • 多少は覚えてます

以前のポートフォリオサイトのインフラ図

b6ccc7cf-1517-4d0a-1c4b-e690b57d08af.png


覚えてるのはこれだけ


なぜこれだと問題なのか?

将来的にインフラをいじりたいってときに、詰む

ゼロからつくるしかない


どうすれば詰まないか?


f645786e-e222-1af4-dca4-9d711c5c7f1c.png


インフラをコードで管理できる!

あとからでも見直せる!


メリットはそれだけ?


んなこたぁない


  • コピペすれば再利用ができる!
  • インフラのバージョン管理ができる!

新しいポートフォリオサイト


新しいポートフォリオサイトのインフラ図

87250217-5d744800-c49e-11ea-9bcd-93d3600c0c85.png


さっきお見せした以前までのポートフォリオ


実はこれもTerraformを使ってます!


インフラ図

94fedb94-d843-3f8e-88a3-e7653bdd2ba7.png


シンプルだけど、スッとできないかも


Terraformならこれだけ!

variable "bucket_name" {
  default = "s3-old.ohakutsu.com"
}

provider "aws" {
  region = "ap-northeast-1"
}

data "aws_iam_policy_document" "s3_policy" {
  statement {
    actions = ["s3:GetObject"]
    effect  = "Allow"
    principals {
      type        = "AWS"
      identifiers = ["*"]
    }
    resources = ["arn:aws:s3:::${var.bucket_name}/*"]
    sid       = "PublicReadGetObject"
  }
}

resource "aws_s3_bucket" "b" {
  bucket = var.bucket_name
  acl    = "private"
  policy = data.aws_iam_policy_document.s3_policy.json
  website {
    index_document = "index.html"
    error_document = "error.html"
  }
}

output "url" {
  value = aws_s3_bucket.b.website_endpoint
}

たったこれだけです


もうおわりなの?


終わりですw なぜなら...


Yaminabe-13


まとめ

Terraformを使ってインフラをコードで管理

一回きりのインフラをやめよう!


ありがとうございました!

3
2
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
3
2