AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

Terraform 및 MongoDB Atlas 제공자 시작하기

Terraform을 사용하면 Atlas Terraform 제공자 와 함께 MongoDB Atlas 인프라를 코드로 관리 수 있습니다. Atlas Terraform 제공자 는 Atlas 인프라를 코드로 프로비저닝, 관리 및 제어하는 프로세스 를 간소화하여 인프라 배포를 자동화합니다.

이 가이드 기존 MongoDB Atlas 조직 에서 Atlas cluster를 생성하고 제거하는 방법을 설명합니다.

참고

Atlas Terraform 제공자 Atlas 프로젝트 및 리전 에서 지원하는 모든 MongoDB 버전을 지원합니다. 클러스터의 MongoDB 버전을 변경하는 방법을 학습 메이저 버전 업그레이드를 참조하세요.

테스트 환경을 구성한 후에는 MongoDB 및 HashiCorp의 추가 리소스 를 사용하여 Terraform 관리형 인프라를 계속 실험해 보세요.

Atlas Infinite 클러스터는 Atlas Terraform 제공자 지원 . Atlas Infinite에 대해 자세히 학습 MongoDB Atlas Infinite: 개요를 참조하세요.

Terraform과 함께 MongoDB Atlas 를 배포하기 전에 다음을 수행해야 합니다.

1
mkdir terraform-proj
cd terraform-proj
2

main.tf, provider.tf, variables.tf 및 versions.tf 파일을 만듭니다.

touch main.tf provider.tf variables.tf versions.tf
3

다음 콘텐츠를 provider.tf에 추가합니다:

provider "mongodbatlas" {
client_id = var.client_id
client_secret = var.client_secret
}

다음 콘텐츠를 variables.tf에 추가합니다:

variable "client_id" {
description = "Atlas Service Account client ID"
type = string
}
variable "client_secret" {
description = "Atlas Service Account client secret"
type = string
sensitive = true
}
variable "org_id" {
description = "Atlas organization ID"
type = string
}

다음 콘텐츠를 versions.tf에 추가합니다:

terraform {
required_providers {
mongodbatlas = {
source = "mongodb/mongodbatlas"
version = "~> 2.2"
}
}
required_version = "~> 1.0"
}

참고

Atlas 서비스 계정 클라이언트 ID 와 클라이언트 시크릿은 시크릿입니다.환경 변수로 저장하는 것이 좋습니다.

4

참고

다음 예시 프로젝트 모듈을 사용하여 프로젝트 만들고 mongodbatlas_advanced_cluster 리소스 사용하여 무료 클러스터 만듭니다.

main.tf 파일 에 다음 콘텐츠를 추가합니다.

module "project" {
source = "terraform-mongodbatlas-modules/project/mongodbatlas"
name = "tenant-example-project"
org_id = var.org_id
}
resource "mongodbatlas_advanced_cluster" "this" {
project_id = module.project.id
name = "TenantCluster"
cluster_type = "REPLICASET"
replication_specs = [
{
region_configs = [
{
provider_name = "TENANT"
backing_provider_name = "AWS"
region_name = "US_EAST_1"
priority = 7
electable_specs = {
instance_size = "M0"
}
}
]
}
]
}

다른 cloud 제공자 또는 리전 과 함께 작업하는 경우 환경에 맞게 다음 필드를 업데이트 할 수 있습니다.

필드
새 값

backing_provider_name

제공자. 가능한 값은 "AWS", "AZURE" 또는 "GCP" 입니다.

region_name

사용할 수 있는 모든 리전은 클라우드 제공자 및 리전 을 참조하세요.

중요

전용 클러스터 생성할 때 mongodbatlas_advanced_cluster 리소스 에 database_edition를 설정하다 수 있습니다. 나중에 변경할 수 없으며 전용 클러스터 무료 또는 Flex 클러스터 로 다시 확장하다 할 수 없습니다. database_edition는 이 예시 의 M0 클러스터 와 같은 무료 클러스터와 Flex 클러스터에는 사용할 수 없습니다.

mongodbatlas_advanced_cluster 리소스 와 단수형(mongodbatlas_advanced_cluster) 및 복수형(mongodbatlas_advanced_clusters) 데이터 소스는 모두 database_edition 및 읽기 전용 effective_database_edition 속성을 노출합니다. database_edition는 선택 사항이므로, 직접 설정하다 하지 않았더라도 effective_database_edition를 사용하여 Atlas 할당한 에디션을 확인하세요.

Atlas Infinite에서 전용 클러스터 생성하려면 다음 예시 와 같이 database_edition를 "INFINITE"로 설정하다 하고 auto_scaling에서 compute_enabled를 설정하다 .

resource "mongodbatlas_advanced_cluster" "infinite" {
project_id = module.project.id
name = "InfiniteCluster"
cluster_type = "REPLICASET"
database_edition = "INFINITE"
replication_specs = [
{
region_configs = [
{
provider_name = "AWS"
priority = 7
region_name = "US_EAST_1"
electable_specs = {
instance_size = "M10"
node_count = 2
}
auto_scaling = {
compute_enabled = true
compute_max_instance_size = "M60_GEN_2"
storage_config = {
shard_size_limit_gb = 10240
}
}
}
]
}
]
}

전용 Atlas Infinite 클러스터는 REPLICASET 클러스터 유형만 지원 .

compute_max_instance_size compute_enabled이 true일 때 필요합니다. M30+ Atlas Infinite 클러스터는 AWS Gen2에서만 사용할 수 있으므로 M60_GEN_2에서와 같이 계층 이름에 _GEN_2를 추가합니다. 자세한 학습 은 Gen2 전용 클러스터를 참조하세요.

Atlas Infinite 클러스터 에는 프라이머리 와 대기 노드, 이렇게 두 개의 선택 가능한 컴퓨팅 노드가 있으므로 node_count을 2로 설정하다 .자세한 학습 은 복제 및 페일오버를 참조하세요.

더 많은 읽기를 제공 하거나 운영 워크로드 에서 분석 쿼리를 격리하려면 동일한 region_configs 객체 에서 read_only_specs 또는 electable_specs와 함께 analytics_specs를 설정하여 읽기 전용 또는 분석 노드를 추가합니다. 자세히 학습 Atlas Infinite 클러스터의 워크로드 격리를 참조하세요.

storage_config.shard_size_limit_gb storage_config을 포함하는 경우에만 필요합니다. storage_config를 생략하면 Atlas 기본값 최대 저장 한도를 적용합니다. 자세한 학습 은 최대 저장 용량 한도를 참조하세요.

참고

storage_config.shard_size_limit_gb 클러스터 가 저장 수 있는 최대 데이터 양을 설정합니다. 자세한 학습 은 Terraform 제공자 설명서를 참조하세요.

5

Terraform 구성의 정보를 터미널 창 으로 출력할 수 있습니다. 이는 Atlas 가 연결 string 과 같은 리소스를 생성할 때까지 알 수 없는 값에 유용합니다.

프로젝트 배포 후 매개변수를 표시하려면 main.tf 파일 에 일부 출력 코드 줄을 추가합니다.

6

프로젝트 를 초기화하려면 다음 명령을 실행 합니다.

terraform init

이 명령은 MongoDB Atlas 제공자를 다운로드하여 설치하기도 합니다(아직 다운로드하지 않은 경우).

7

실행 계획을 보려면 다음 명령을 실행 합니다.

terraform plan

Terraform은 향후 변경 사항을 자세히 설명합니다. 출력이 예상과 다른 경우 main.tf 파일 에 문제가 있을 수 있습니다.

8

인프라를 배포 하려면 다음 명령을 실행 합니다.

terraform apply

메시지가 Do you want to perform these actions? 표시되면 을 yes 입력합니다.

참고

새 Atlas 리소스를 프로비저닝하는 데 몇 분 정도 걸릴 수 있습니다. Atlas Terraform 제공자 는 완료될 때까지 10초마다 업데이트합니다.

terraform apply 가 완료되면 클러스터가 배포되었는지 확인합니다.

  • 새 클러스터가 프로젝트 아래 Atlas UI에 표시됩니다.

  • main.tf에 출력 값을 추가한 경우 연결 문자열이 Terraform 출력에 표시됩니다.

Terraform 디렉토리 에 생성된 모든 리소스를 삭제 하려면 다음 명령을 실행 합니다.

terraform destroy

경고

모든 리소스를 삭제 하면 복구할 수 없습니다.

메시지가 Do you really want to destroy all resources? 표시되면 을 yes 입력합니다.

클러스터를 배포한 후 다음을 수행할 수 있습니다.

추가 리소스: