Terraform을 사용하여 AWS에서 DynamoDB 테이블을 생성하는 방법
이 페이지에서
- 전제 조건
- 무엇을 할 것인가?\n
- DynamoDB 테이블에 대한 Terraform 구성 파일 작성\n
- Terraform 구성 파일을 사용하여 DynamoDB 테이블 만들기\n
- Terraform을 사용하여 생성된 DynamoDB 테이블 삭제\n
- 결론
이 문서에서는 Terraform을 사용하여 DynamoDB 테이블을 생성하는 단계를 살펴봅니다. "PAY_PER_REQUEST" 청구 모델을 사용하여 DynamoDB 테이블을 생성합니다. 이 문서를 진행하기 전에 귀하가 AWS DynamoDB 서비스를 알고 있고 Terraform과 함께 해당 기본 사항을 알고 있다고 가정합니다.
Terraform에서 사용할 수 있는 DynamoDB 인수 및 속성에 대해 자세히 알아보려면 여기를 클릭하세요.
전제 조건
- Terraform에 대한 기본적인 이해.\n
- 시스템에 Terraform이 설치되어 있습니다.
- AWS 계정(계정이 없는 경우 생성).
- DynamoDB 테이블을 생성할 수 있는 충분한 권한이 있는 AWS IAM 사용자의 access_key 및 secret_key. (AWS에서 access_key 및 secret_key로 IAM 사용자를 생성하는 방법을 알아보려면 여기를 클릭하세요.)\n
우리는 무엇을 할 것인가?
- DynamoDB 테이블에 대한 Terraform 구성 파일을 작성합니다.\n
- Terraform 구성 파일을 사용하여 DynamoDB 테이블을 생성합니다.\n
- Terraform을 사용하여 생성된 DynamoDB 테이블을 삭제합니다.\n
DynamoDB 테이블에 대한 Terraform 구성 파일 쓰기
DynamoDB 테이블을 생성하기 위해 Terraform 파일을 작성하고 저장할 전용 디렉터리를 생성합니다.
이제 "main.tf"라는 새 파일을 만들고 다음 코드를 저장합니다. 내 Github 저장소에서도 동일한 코드를 사용할 수 있습니다. 거기에서 코드를 복사할 수도 있습니다.
다음 코드는 "region = eu-west-3"에 리소스를 생성합니다. 원하는 대로 지역을 변경합니다.
Github Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/terraform/create-dynamodb-table/main.tf
File: main.tf
provider "aws" { access_key = "${var.access_key}" secret_key = "${var.secret_key}" region = "eu-west-3" } resource "aws_dynamodb_table" "my_first_table" { name = "${var.table_name}" billing_mode = "${var.table_billing_mode}" hash_key = "employee-id" attribute { name = "employee-id" type = "S" } tags = { environment = "${var.environment}" } }
여기,
- name : (필수) 생성 중인 테이블의 이름입니다.\n
- billing_mode :(선택사항) 읽기 및 쓰기 요금이 청구되는 방식을 제어합니다.\n
- hash_key:(필수, 강제 새 리소스) 테이블의 해시(파티션) 키로 사용할 속성입니다.\n
- 속성: (필수) 중첩된 속성 정의 목록입니다. 테이블의 hash_key 및 range_key 속성에만 필요합니다.\n
- tags: (선택사항) 테이블에 채울 태그입니다.\n
다음 단계는 "terraform.tfvars"라는 파일에 AWS 액세스 및 비밀 키를 로드하는 것입니다. DynamoDB에 대한 충분한 권한이 있는 보안 및 액세스 키가 있는 AWS IAM 사용자가 이미 있어야 합니다. 해당 키를 가져와서 파일에 저장합니다.
Github Link: https://github.com/shivalkarrahul/DevOps/blob/master/aws/terraform/create-dynamodb-table/terraform.tfvars
File: terraform.tfvars
access_key = "<your-aws-access-here>"
secret_key = "<your-aws-secret-here>"
마지막 단계는 "variables.tf"를 만들고 그 안의 변수에 값을 할당하는 것입니다. table_name, table_billing_mode 및 환경 변수의 값을 변경할 수 있습니다. 사용 가능한 유효한 인수/속성을 확인하려면 여기를 클릭하여 Terraform 문서를 참조하세요.
Github Link:
File: variables.tf
variable "access_key" { description = "Access key of AWS IAM user" } variable "secret_key" { description = "Secret key of AWS IAM user" } variable "table_name" { description = "Dynamodb table name (space is not allowed)" default = "my-first-test-table" } variable "table_billing_mode" { description = "Controls how you are charged for read and write throughput and how you manage capacity." default = "PAY_PER_REQUEST" } variable "environment" { description = "Name of environment" default = "test" }
여기,
- table_name: 정의된 값=my-first-test-table. 변경할 수 있습니다.\n
- table_billing_mode: 정의된 값=PAY_PER_REQUEST. PROVISIONED 또는 PAY_PER_REQUEST를 지정할 수 있습니다.\n
- 환경: 정의된 태그 값 = 테스트. 태그 키 환경에 값을 할당할 수 있습니다.\n
Terraform 구성 파일을 사용하여 DynamoDB 테이블 만들기
main.tf, terraform.tfvars 및 variables.tf가 있으면 Terraform을 사용하여 DynamoDB 테이블을 생성하도록 설정됩니다.
다음은 Terraform 구성 파일이 포함된 작업 디렉터리를 초기화하는 첫 번째 명령어입니다.
terraform init

실행 계획을 만들기 위한 다음 명령어는 다음과 같습니다. 여기에서 모든 변경 사항이 발생하는지 알 수 있습니다.
terraform plan

이제 다음 명령을 사용하여 원하는 구성 상태에 도달하는 데 필요한 변경 사항을 적용할 준비가 되었습니다. 이렇게 하면 지정된 리전의 AWS 계정에 DynamoDB 테이블이 생성됩니다.
terraform apply

이제 AWS 콘솔로 이동하여 테이블이 생성되었는지 확인할 수 있습니다.

Terraform을 사용하여 생성된 DynamoDB 테이블 삭제
테이블이 더 이상 필요하지 않고 테이블에서 삭제할 항목이 있는 경우 AWS 콘솔로 이동하여 삭제할 필요가 없습니다. 대신 다음 명령을 사용하여 매우 쉽게 삭제할 수 있습니다. 다음 명령은 삭제를 확인한 후 테이블을 삭제합니다.
terraform destroy

결론
이 문서에서는 AWS 액세스 및 보안 키를 사용하여 "region = eu-west-3"에서 "PAY_PER_REQUEST" 청구 모델로 DynamoDB 테이블을 생성하는 단계를 살펴보았습니다. 또한 destroy 명령을 사용하여 테이블을 삭제했습니다. 이제 사용 가능한 다양한 속성을 사용하여 기능을 확장하고 다양한 사용 사례를 시도할 수 있습니다.