"backend"就是Terraform決定狀態檔(state)如何載入及運作。這個抽象化機制。讓狀態檔可以存放在「遠端」(及遠端操作等)。
其實,Terraform預設本來就是"本地端"backend。示意圖如下:
接下來我們就根據上面的圖,來「完成」backend的設定
AWS設定:
建立S3 bucket
Terraform可以支援多種Backend Types(Standard | Enhanced),小編當然是用S3(Standard )。
登入你的AWS帳號後 >> 點上方的「Services」 >> 搜尋S3 >> 前往S3 Console >> Create Bucket
輸入BucketName
輸入Region
剩下都選「下一步」即可。
設定S3權限to IAM User
請參考官網給的權限
設定backend Config
這邊S3 region就是上面在建S3 Bucket時下拉選單的「Asia Pacific (Tokyo)」 >> region = "ap-northeast-1"
,
可參考AWS文件 > Available Regions
provider "aws" {
region = "ap-northeast-1"
}
terraform {
backend "s3" {
bucket = "bright-terraform-backend"
key = "terraform.tfstate"
region = "ap-northeast-1"
}
}
resource "aws_instance" "example" {
ami = "ami-0689a2637ab83e607"
instance_type = "t2.micro"
}
執行初始化:terraform init
什麼時候需要執行Backend初始化
PS:各位邦友可以看一下工作目錄下的terraform.tfstate內容會被清空,會移轉到S3 bucket中。
這時候就大公告成了…
待續…