728x90
안녕하세요, 이번 포스팅은 테라폼 모듈을 활용한 athena datacatalog 배포에 대해서 포스팅을 올립니다.
CloudNet@의 테라폼 스터디 내용을 기반하고 있습니다.
본 포스팅에서는 데이터 카탈로그를 만들기 위해서 공식문서의 모듈을 나눴습니다.
트리
트리는 다음과 같습니다.
main.tf
athena_data_catalog/
├── aws_athena_data_catalog.tf
└── variables.tf
루트 모듈 정의 (main.tf)
module "athena_data_catalog" {
source = "./athena_data_catalog"
name = "athena-data-catalog"
description = "Example Athena data catalog"
type = "LAMBDA"
function_arn = "arn:aws:lambda:ap-northeast-2:xxxxxxxxxxxx:function:not-important-lambda-function"
tags = {
Name = "example-athena-data-catalog"
}
}
Terraform을 사용하여 AWS Athena 데이터 카탈로그를 생성하기 위한 매개변수들을 설정해 주겠습니다.
이 코드를 통해서 모듈을 호출하고, 해당 모듈에 필요한 변수들을 전달합니다.
다음은 각 항목에 대한 설명입니다:
- source: 모듈의 소스 경로를 지정합니다. 현재 디렉토리의 athena_data_catalog 폴더를 가리킵니다. 즉, 이 폴더 내에 정의된 하위 모듈을 사용합니다.
- name: 생성할 Athena 데이터 카탈로그의 이름을 지정합니다. "athena-data-catalog"로 설정됩니다.
- description: Athena 데이터 카탈로그의 설명을 지정합니다. "Example Athena data catalog"로 설정됩니다.
- type: 데이터 카탈로그의 유형을 지정합니다. "LAMBDA"로 설정됩니다.
- function_arn: Lambda 함수의 ARN(아마존 리소스 이름)을 지정합니다. arn:aws:lambda:ap-northeast-2:xxxxxxxxxxxx:function:not-important-lambda-function으로 설정됩니다.
- tags: 데이터 카탈로그에 적용할 태그들을 지정합니다. { Name = "example-athena-data-catalog" }로 설정됩니다.
차일드 모듈 정의(aws_athena_data_catalog.tf)
resource "aws_athena_data_catalog" "this" {
name = var.name
description = var.description
type = var.type
parameters = {
"function" = var.function_arn
}
tags = var.tags
}
AWS Athena 데이터 카탈로그를 생성하기 위한 구성입니다.
var.name, var.description, var.type, var.function_arn, var.tags를 사용하여 데이터 카탈로그의 속성을 정의합니다.
다음은 각 항목에 대한 설명입니다:
- name: Athena 데이터 카탈로그의 이름을 설정합니다. var.name 변수를 사용하여 이름을 설정합니다.
- description: Athena 데이터 카탈로그의 설명을 설정합니다. var.description 변수를 사용하여 설명을 설정합니다.
- type: 데이터 카탈로그의 유형을 설정합니다. var.type 변수를 사용하여 유형을 설정합니다. (예: "LAMBDA")
- parameters: 데이터 카탈로그의 매개변수를 설정합니다. var.function_arn 변수를 사용하여 Lambda 함수의 ARN을 설정합니다.
- tags: 데이터 카탈로그에 적용할 태그들을 설정합니다. var.tags 변수를 사용하여 태그를 설정합니다.
차일드 모듈 정의(variables.tf)
variable "name" {
description = "The name of the Athena data catalog"
type = string
}
variable "description" {
description = "The description of the Athena data catalog"
type = string
}
variable "type" {
description = "The type of the Athena data catalog"
type = string
}
variable "function_arn" {
description = "The ARN of the Lambda function"
type = string
}
variable "tags" {
description = "A map of tags to assign to the resource"
type = map(string)
}
- name: Athena 데이터 카탈로그의 이름을 설정합니다.
- description: 데이터 카탈로그의 설명을 설정합니다.
- type: 데이터 카탈로그의 유형을 설정합니다. 기본값은 "LAMBDA"입니다.
- function_arn: Lambda 함수의 ARN을 설정합니다.
- tags: 데이터 카탈로그에 적용할 태그들을 설정합니다.
이제 terraform plan을 통해서 해당 내용 확인해 보겠습니다.
다음과 같이 확인됩니다.
해당 내용을 통해서 생성된 athena-data-catalog입니다.
물론 람다는 연동하지 않았기 때문에 해당 내용 람다를 클릭하면 오류가 납니다!
감사합니다.
728x90
반응형
'DevOps > Terraform' 카테고리의 다른 글
[Terraform] Karpenter on EKS Fargate (0) | 2024.07.28 |
---|---|
[Terraform] 테라폼 모듈을 활용한 AWS EC2 인스턴스 반복 배포 (2) | 2024.07.14 |
[Terraform] 테라폼 코드를 활용한 IPAM 배포 (0) | 2024.07.07 |
[Terraform] 테라폼 코드를 활용한 레드시프트 배포 (0) | 2024.07.07 |
[Terraform] 프로바이더를 활용한 리전별, 멀티 클라우드 리소스 생성 (0) | 2024.07.07 |