🐡
URLを踏むだけでTerraformのbackendを作れるCFn
モチベーション
Terraformを使い始める時のS3 BucketとDynamoDBを毎回作るのがだるい。
解決策
CloudFormationのクイック作成リンクを使います、はい。
こちら非常ぉぉに便利です。
初めて使った時は感動しました。
ドキュメントはこちら
クイック作成リンクとはURLを踏むだけで、スタックを作成することができるというものです。
実装
下のようなyamlをS3に置いておいて、templateURLで指定するだけです
AWSTemplateFormatVersion: 2010-09-09
Description: Create terraform backend resources
Parameters:
AppName:
Type: String
Description: App Name
ConstraintDescription: Prefix of S3 Bucket And DynamoDB table
Resources:
BackendBucket:
Type: AWS::S3::Bucket
DeletionPolicy: Retain
Properties:
VersioningConfiguration:
Status: Enabled
BucketName: !Sub ${AppName}-terraform-state
PublicAccessBlockConfiguration:
BlockPublicAcls: True
BlockPublicPolicy: True
IgnorePublicAcls: True
RestrictPublicBuckets: True
BackendDynamoDbTable:
Type: AWS::DynamoDB::Table
Properties:
TableName: !Sub ${AppName}-state-lock
BillingMode: PROVISIONED
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
KeySchema:
- AttributeName: LockID
KeyType: HASH
AttributeDefinitions:
- AttributeName: LockID
AttributeType: S
Outputs:
BackendBucket:
Value: !Ref BackendBucket
BackendDynamoDbTable:
Value: !Ref BackendDynamoDbTable
そしたら以下のようにURLを作っておく、
https://ap-northeast-1.console.aws.amazon.com/cloudformation/home?region=ap-northeast-1#/stacks/create/review?templateURL=https://ispec-public.s3.ap-northeast-1.amazonaws.com/cfn-terraform-init-template.yaml&stackName=TerraformInit
そして作りたいアカウントでAWS consoleにログインしてる状態でURLを踏むと
みたいなページが開いて、AppNameを入力するだけで、S3のバケットとDynamoDBが作れちゃう!
こりゃ便利!
GitHubで編集を提案
Discussion