웹사이트 검색

Terraform을 사용하여 AWS에서 DynamoDB 테이블을 생성하는 방법


이 페이지에서

  1. 전제 조건
  2. 무엇을 할 것인가?\n
  3. DynamoDB 테이블에 대한 Terraform 구성 파일 작성\n
  4. Terraform 구성 파일을 사용하여 DynamoDB 테이블 만들기\n
  5. Terraform을 사용하여 생성된 DynamoDB 테이블 삭제\n
  6. 결론

이 문서에서는 Terraform을 사용하여 DynamoDB 테이블을 생성하는 단계를 살펴봅니다. "PAY_PER_REQUEST" 청구 모델을 사용하여 DynamoDB 테이블을 생성합니다. 이 문서를 진행하기 전에 귀하가 AWS DynamoDB 서비스를 알고 있고 Terraform과 함께 해당 기본 사항을 알고 있다고 가정합니다.

Terraform에서 사용할 수 있는 DynamoDB 인수 및 속성에 대해 자세히 알아보려면 여기를 클릭하세요.

전제 조건

  1. Terraform에 대한 기본적인 이해.\n
  2. 시스템에 Terraform이 설치되어 있습니다.
  3. AWS 계정(계정이 없는 경우 생성).
  4. DynamoDB 테이블을 생성할 수 있는 충분한 권한이 있는 AWS IAM 사용자의 access_key 및 secret_key. (AWS에서 access_key 및 secret_key로 IAM 사용자를 생성하는 방법을 알아보려면 여기를 클릭하세요.)\n

우리는 무엇을 할 것인가?

  1. DynamoDB 테이블에 대한 Terraform 구성 파일을 작성합니다.\n
  2. Terraform 구성 파일을 사용하여 DynamoDB 테이블을 생성합니다.\n
  3. 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 명령을 사용하여 테이블을 삭제했습니다. 이제 사용 가능한 다양한 속성을 사용하여 기능을 확장하고 다양한 사용 사례를 시도할 수 있습니다.