Tổng quan.
Ví dụ này sẽ tạo ra file Terraform để triển khai một máy chủ đơn trên AWS. Để sử dụng được ví dụ này, bạn cần phải cài đặt Terraform trên máy tính của mình và có một tài khoản AWS. Ví dụ này sử dụng Terraform AWS Provider để tương tác với nhiều tài nguyên được hỗ trợ bởi AWS thông qua các API của nó và ví dụ này triển khai trên Terraform phiên bản 0.10.x.
Cấu hình các khóa truy cập AWS của bạn.
Vì lý do bảo mật, nên sử dụng người dùng IAM thay vì tài khoản gốc để truy cập vào AWS.
Cấu hình thông tin xác thực AWS để sử dụng bởi Terraform có thể được thực hiện theo nhiều cách khác nhau, nhưng đây là những cách tiếp cận được khuyến khích:
Cách 1: Cài đặt thông tin xác thực AWS trên hệ thống local của bạn, đối với Linux, macOS hoặc Unix:
~/.aws/credentials
Hoặc đối với Windows nằm tại.
C:\Users\USERNAME\.aws\credentials
File này nên chứa các dòng theo định dạng dưới, lưu ý hãy thay thế các giá trị thông tin xác thực AWS của bạn vào các giá trị <your_access_key_id> và <your_secret_access_key> trong file.
[default]
aws_access_key_id = <your_access_key_id>
aws_secret_access_key = <your_secret_access_key>
Cách 2: Đặt các biến môi trường AWS_ACCESS_KEY_ID và AWS_SECRET_ACCESS_KEY.
Để đặt các biến này trên Linux, macOS hoặc Unix, sử dụng lệnh export:
export AWS_ACCESS_KEY_ID=<your_access_key_id>
export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
Đối với windows hãy sử dụng set:
set AWS_ACCESS_KEY_ID=<your_access_key_id>
set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>
Tạo file Terraform.
Tiếp theo chúng ta tạo file main.tf. Đoạn code khai báo cấu hình cho provider AWS, trong đó region được chọn là “eu-west-1”. Sau đó, đoạn code định nghĩa một tài nguyên EC2 instance với tên là “example”. Cụ thể, AMI (Amazon Machine Image) được sử dụng để tạo instance có mã là “ami-785db401” và loại instance được chọn là “t2.micro”. Terraform sẽ sử dụng thông tin này để tạo một EC2 instance trên AWS với AMI và instance type được xác định.
# Configure the AWS provider
provider "aws" {
region = "eu-west-1"
}
# Create an EC2 instance
resource "aws_instance" "example" {
ami = "ami-785db401"
instance_type = "t2.micro"
tags {
Name = "terraform-example"
}
}
Khởi tạo Instance.
Hãy sử dụng các lệnh sau để bắt đầu khởi tạo Instance.
terraform init
: Khởi tạo môi trường và tải về các provider và module được định nghĩa trong file cấu hình Terraform.terraform plan
: Xác định các thay đổi cần được áp dụng để đưa hệ thống về trạng thái mong muốn và hiển thị chi tiết các thay đổi này.terraform apply
: Áp dụng các thay đổi được xác định trongterraform plan
để triển khai hoặc cập nhật hệ thống.terraform destroy
: Sau khi triển khai xong nếu bạn muốn xoá instance này, hãy sử dụng lệnhterraform destroy
.
Chi phí.
Đoạn Terraform này sẽ tạo một EC2 instance trên AWS, nó sẽ tạo ra chi phí phụ thuộc vào loại instance (t2.micro) và thời gian sử dụng. Bạn sẽ phải trả tiền cho AWS để sử dụng tài nguyên của họ. Chi phí cụ thể phụ thuộc vào thời gian chạy, loại instance và số lượng tài nguyên được sử dụng. Bạn có thể xem thông tin giá cả trên trang web của AWS hoặc sử dụng AWS Pricing Calculator để ước tính chi phí.
Nếu bạn chạy test trên AWS và sau đó xóa ngay lập tức, thì không phát sinh chi phí cho tài khoản của bạn. Tuy nhiên, nếu bạn để lại các tài nguyên như EC2 instances hoặc EBS volumes mà bạn đã sử dụng để chạy test trong thời gian dài, bạn sẽ phải trả tiền cho chúng cho đến khi bạn xóa chúng. Nếu bạn không muốn tiếp tục sử dụng tài nguyên này, bạn nên xóa chúng để tránh phát sinh chi phí không cần thiết.