これはなに
社内LTで使った発表資料です
自己紹介
ohakutsu(おはくつ)
- 20卒の新卒エンジニア
- 青森県出身
- なまりまくり
- 最近、家系ラーメン食べてる🍜
- サウナ初心者
- 将棋
できること
- Rails
- JavaScript
- TypeScript
- React
が少し出来る程度
SNS
- Qiita
- サウナイキタイ
やってます
ohakutsu
でGoogle検索すると大体出てきます
フォローしてくれると嬉しいです
Yaminabe-13
本題に入ります
以前まで公開していたポートフォリオサイト
以前までのファイルをS3にあげています
http://s3-old.ohakutsu.com.s3-website-ap-northeast-1.amazonaws.com/
- 運用費 月100円くらい
- いい感じ!
だけど、問題点が...
インフラどうやって構築したか覚えてねーよ
- 少し盛りましたw
- 多少は覚えてます
以前のポートフォリオサイトのインフラ図
覚えてるのはこれだけ
なぜこれだと問題なのか?
↓
将来的にインフラをいじりたいってときに、詰む
↓
ゼロからつくるしかない
どうすれば詰まないか?
インフラをコードで管理できる!
↓
あとからでも見直せる!
メリットはそれだけ?
んなこたぁない
- コピペすれば再利用ができる!
- インフラのバージョン管理ができる!
新しいポートフォリオサイト
新しいポートフォリオサイトのインフラ図
さっきお見せした以前までのポートフォリオ
実はこれもTerraformを使ってます!
インフラ図
シンプルだけど、スッとできないかも
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を使ってインフラをコードで管理
↓
一回きりのインフラをやめよう!