소개
Terraform은 구조화된 방식으로 인프라를 구축하고 관리하는 도구입니다. 디지털오션 도로플릿, 로드 밸런서, 심지어 다른 제공업체가 제공하는 다양한 서비스까지 관리할 수 있습니다. Terraform은 명령 줄 인터페이스를 사용하며 데스크톱이나 원격 서버에서 실행할 수 있습니다.
Terraform은 애플리케이션 환경이나 데이터 센터를 구성하는 구성 파일을 읽어들여 작동합니다. 구성에 따라 원하는 상태에 도달하기 위해 수행할 작업을 설명하는 실행 계획을 생성합니다. 그런 다음 Terraform을 사용하여 이 계획을 실행하여 인프라를 구축합니다. 구성 변경이 발생하면 Terraform은 기존 인프라를 새로 설명된 상태로 업데이트하기 위해 증분 계획을 생성하고 실행할 수 있습니다.
이 튜토리얼에서는 Terraform을 설치하고, 두 개의 Nginx 서버로 구성된 디지털오션 인프라를 만들어 로드 밸런서로 균형을 조절한 다음, 디지털오션에 DNS 항목을 추가하여 로드 밸런서로 연결합니다. 이를 통해 Terraform을 사용하여 자신의 요구 사항에 맞는 디지털오션 기반 인프라를 관리하고 배포하는 방법에 대한 개요를 얻을 수 있습니다.
참고:이 튜토리얼은 Terraform 1.1.3
에서 테스트되었습니다.
필수 조건
이 튜토리얼을 완료하려면 다음이 필요합니다:
- A DigitalOcean account. If you do not have one, sign up for a new account.
- A DigitalOcean Personal Access Token, which you can create via the DigitalOcean control panel. Instructions to do that can be found at: How to Create a Personal Access Token.
- A password-less SSH key added to your DigitalOcean account, which you can create by following How To Use SSH Keys with DigitalOcean Droplets. When you add the key to your account, remember the name you give it, as you’ll need it in this tutorial. (For Terraform to accept the name of your key, it must start with a letter or underscore and may contain only letters, digits, underscores, and dashes.)
- A personal domain pointed to DigitalOcean’s nameserver, which you can do by following the tutorial, How To Point to DigitalOcean Nameservers From Common Domain Registrars.
단계 1 — Terraform 설치
Terraform은 데스크톱이나 원격 서버에서 실행하는 명령줄 도구입니다. 설치하려면 해당 패키지를 다운로드하고 PATH
에 배치하여 작업 중인 디렉터리에서 실행할 수 있도록합니다.
먼저, OS 및 아키텍처에 맞는 패키지를 공식 다운로드 페이지에서 다운로드합니다. macOS 또는 Linux를 사용하는 경우 curl
을 사용하여 Terraform을 다운로드 할 수 있습니다.
macOS에서는 다음 명령을 사용하여 Terraform을 다운로드하고 홈 디렉터리에 배치합니다:
Linux에서는 다음 명령을 사용합니다:
~/opt/terraform
디렉토리를 만듭니다:
그런 다음 unzip
명령을 사용하여 Terraform을 ~/opt/terraform
에 푸는 것입니다. Ubuntu에서는 apt
를 사용하여 unzip
을 설치할 수 있습니다:
다음을 실행하여 다운로드 된 아카이브를 ~/opt/terraform
디렉터리로 추출합니다:
마지막으로 ~/opt/terraform
을(를) PATH
환경 변수에 추가하여 실행 파일의 전체 경로를 지정하지 않고도 terraform
명령을 실행할 수 있습니다.
리눅스에서는 새 셸이 열릴 때 실행되는 .bashrc
에서 PATH
를 재정의해야 합니다. 다음 명령을 실행하여 편집합니다:
참고: macOS에서는 Bash를 사용하고 있다면 파일 .bash_profile
에 경로를 추가하거나 ZSH를 사용하고 있다면 .zshrc
에 추가하십시오.
테라폼 경로를 PATH에 추가하려면 파일 끝에 다음 줄을 추가하십시오:
완료되면 파일을 저장하고 닫으십시오.
이제 모든 새로운 셸 세션에서 terraform
명령을 찾을 수 있게 됩니다. 현재 세션에 새로운 PATH
를 로드하려면 리눅스 시스템에서 Bash를 사용하는 경우 다음 명령을 실행하십시오:
macOS에서 Bash를 사용하는 경우 대신 다음 명령을 실행하십시오:
ZSH를 사용하는 경우 다음 명령을 실행하십시오:
테라폼이 올바르게 설치되었는지 확인하려면 인수 없이 terraform
명령을 실행하십시오:
다음과 비슷한 출력이 표시됩니다:
OutputUsage: terraform [global options] <subcommand> [args]
The available commands for execution are listed below.
The primary workflow commands are given first, followed by
less common or more advanced commands.
Main commands:
init Prepare your working directory for other commands
validate Check whether the configuration is valid
plan Show changes required by the current configuration
apply Create or update infrastructure
destroy Destroy previously-created infrastructure
All other commands:
console Try Terraform expressions at an interactive command prompt
fmt Reformat your configuration in the standard style
force-unlock Release a stuck lock on the current workspace
get Install or upgrade remote Terraform modules
graph Generate a Graphviz graph of the steps in an operation
import Associate existing infrastructure with a Terraform resource
login Obtain and save credentials for a remote host
logout Remove locally-stored credentials for a remote host
output Show output values from your root module
providers Show the providers required for this configuration
refresh Update the state to match remote systems
show Show the current state or a saved plan
state Advanced state management
taint Mark a resource instance as not fully functional
test Experimental support for module integration testing
untaint Remove the 'tainted' state from a resource instance
version Show the current Terraform version
workspace Workspace management
Global options (use these before the subcommand, if any):
-chdir=DIR Switch to a different working directory before executing the
given subcommand.
-help Show this help output, or the help for a specified subcommand.
-version An alias for the "version" subcommand.
이 명령들은 테라폼이 허용하는 명령입니다. 출력에서 간단한 설명을 확인할 수 있으며, 이 튜토리얼에서 이에 대해 자세히 알아볼 것입니다.
이제 테라폼이 설치되었으니, DigitalOcean의 리소스와 작동하도록 구성해 봅시다.
단계 2 — DigitalOcean을 위한 Terraform 구성
Terraform은 설치할 수 있는 다양한 서비스 제공업체를 통해 제공자를 지원합니다. 각 제공자는 일반적으로 해당 서비스 제공업체의 API에 매핑되는 고유한 사양을 갖습니다.
DigitalOcean 제공자는 Terraform이 인프라를 구축하기 위해 DigitalOcean API와 상호 작용할 수 있게 해줍니다. 이 제공자는 다음을 포함한 다양한 DigitalOcean 리소스를 생성하는 것을 지원합니다:
- digitalocean_droplet: 드롭렛(서버)
- digitalocean_loadbalancer: 로드 밸런서
- digitalocean_domain: DNS 도메인 항목
- digitalocean_record: DNS 레코드
Terraform은 DigitalOcean 개인 액세스 토큰을 사용하여 DigitalOcean API와 통신하고 계정의 리소스를 관리합니다. 이 키를 다른 사람과 공유하지 마시고, 스크립트 및 버전 관리에서 이를 제외하십시오. 다음 명령을 실행하여 DigitalOcean 개인 액세스 토큰을 DO_PAT
이라는 환경 변수로 내보내십시오:
이렇게 하면 후속 명령에서 사용이 쉬워지고 코드에서 분리되어 유지됩니다.
참고: 테라폼과 디지털오션을 자주 사용할 것이라면 이전 단계에서 PATH
환경 변수를 수정한 것과 같은 방법을 사용하여 셸 구성 파일에 이 줄을 추가하세요.
다음 명령을 실행하여 인프라 구성을 저장할 디렉터리를 생성하세요:
새로 생성된 디렉터리로 이동하세요:
테라폼 구성은 확장자가 .tf
인 텍스트 파일입니다. 이들은 사람이 읽을 수 있으며 주석을 지원합니다. (테라폼은 JSON 형식의 구성 파일도 지원하지만 이에 대해서는 다루지 않습니다.) 테라폼은 선언적인 방식으로 작업 디렉터리의 모든 구성 파일을 읽으므로 자원 및 변수 정의의 순서는 중요하지 않습니다. 전체 인프라를 단일 구성 파일에 두는 것이 가능하지만, 명확성을 유지하기 위해 자원 유형별로 구성 파일을 분리하는 것이 좋습니다.
테라폼으로 인프라를 구축하는 첫 번째 단계는 사용할 프로바이더를 정의하는 것입니다.
테라폼에서 디지털오션 프로바이더를 사용하려면 테라폼에게 해당 프로바이더에 대해 알려주고 적절한 자격 증명 변수로 플러그인을 구성해야 합니다. 프로바이더 구성을 저장할 provider.tf
라는 파일을 생성하세요:
다음 줄을 파일에 추가하여 테라폼에게 디지털오션 프로바이더를 사용하고 어디에서 찾을지 알려주세요:
그런 다음 파일에 다음 변수를 정의하여 나머지 구성 파일에서 이를 참조할 수 있도록 합니다:
do_token
: 귀하의 DigitalOcean 개인 액세스 토큰입니다.pvt_key
: 개인 키 위치, 이를 통해 Terraform이 새로운 Droplets에 로그인하고 Nginx를 설치할 수 있습니다.
이러한 변수의 값을 Terraform 실행 시에 전달하고, 여기에 값을 하드 코딩하는 대신에 더 이동성이 있는 구성을 만듭니다.
이러한 변수를 정의하려면 파일에 다음 라인을 추가하십시오:
그런 다음, DigitalOcean 프로바이더를 구성하고 귀하의 DigitalOcean 계정 자격 증명을 지정하려면 do_token
을 프로바이더의 token
인수에 할당하십시오:
마지막으로, Terraform이 새로 생성하는 모든 Droplets에 SSH 키를 자동으로 추가하도록하려면 원격 키를 DigitalOcean에 추가 할 때 이름을 지정했습니다. Terraform은 이 이름을 사용하여 공개 키를 검색할 수 있습니다. 다음 라인을 추가하십시오. 귀하의 DigitalOcean 계정에서 제공한 키 이름으로 terraform
을 바꿉니다:
완성된 provider.tf
파일은 다음과 같이 보일 것입니다:
작업이 완료되면 파일을 저장하고 닫으십시오.
참고: TF_LOG
환경 변수를 1
로 설정하면 Terraform이 수행하려는 작업의 자세한 로깅을 활성화합니다. 다음을 실행하여 설정할 수 있습니다:
프로젝트에 대해 Terraform을 초기화하려면 다음을 실행하십시오:
이렇게하면 구성이 읽히고 프로바이더에 대한 플러그인이 설치됩니다. 출력에 로그인된 것을 볼 수 있습니다:
OutputInitializing the backend...
Initializing provider plugins...
- Finding digitalocean/digitalocean versions matching "~> 2.0"...
- Installing digitalocean/digitalocean v2.16.0...
- Installed digitalocean/digitalocean v2.16.0 (signed by a HashiCorp partner, key ID F82037E524B9C0E8)
Partner and community providers are signed by their developers.
If you'd like to know more about provider signing, you can read about it here:
https://www.terraform.io/docs/cli/plugins/signing.html
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.
Terraform has been successfully initialized!
You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.
If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
만약 Terraform이 예상대로 작동하지 않고 꼼짝없다면, terraform.tfstate
파일을 삭제하고 수동으로 생성된 리소스(예: 제어판을 통해)를 제거하여 다시 시작할 수 있습니다.
Terraform은 이제 구성되어 있으며 DigitalOcean 계정에 연결할 수 있습니다. 다음 단계에서는 Terraform을 사용하여 Nginx 서버를 실행할 Droplet을 정의합니다.
단계 3 — 첫 번째 Nginx 서버 정의
Terraform을 사용하여 DigitalOcean Droplet을 생성하고 Droplet이 시작되면 Droplet에 소프트웨어를 설치할 수 있습니다. 이 단계에서는 Terraform을 사용하여 단일 Ubuntu 20.04 Droplet을 프로비저닝하고 Nginx 웹 서버를 설치합니다.
www-1.tf
라는 새 Terraform 구성 파일을 생성하고, Droplet의 구성을 유지할 것입니다:
다음 줄을 삽입하여 Droplet 리소스를 정의합니다:
앞선 구성에서 첫 번째 줄은 www-1
이라는 이름의 digitalocean_droplet 리소스를 정의합니다. 나머지 줄은 Droplet의 속성을 지정합니다. 이 중에는 Droplet이 위치할 데이터 센터와 Droplet의 크기를 식별하는 슬러그도 포함됩니다. 이 경우에는 s-1vcpu-1gb
를 사용하며, 이는 하나의 CPU와 1GB의 RAM이 있는 Droplet을 생성합니다. (사용 가능한 슬러그를 확인하려면 이 크기 슬러그 차트를 방문하세요.)
ssh_keys
섹션은 Droplet에 추가하려는 공개 키 목록을 지정합니다. 이 경우에는 provider.tf
에서 정의한 키를 지정하고 있습니다. 여기에 지정한 이름이 provider.tf
에서 지정한 이름과 일치하는지 확인하십시오.
Terraform을 DigitalOcean API에 대해 실행하면 Droplet에 대한 다양한 정보를 수집합니다. 이 정보는 구성에서 다른 리소스에서 사용할 수 있습니다.
Droplet 리소스에 필요한 인수 또는 선택적 인수가 무엇인지 궁금하다면 공식 Terraform 문서를 참조하십시오: DigitalOcean Droplet Specification.
Terraform이 SSH를 통해 서버에 연결할 수 있는 connection
을 설정하려면 다음 줄을 파일 끝에 추가하십시오:
이러한 줄은 Terraform이 서버에 연결하는 방법을 설명합니다. 따라서 Terraform은 SSH를 통해 Nginx를 설치하기 위해 서버에 연결할 수 있습니다. var.pvt_key
변수를 사용하는 것에 유의하십시오 – Terraform을 실행할 때 해당 값이 전달됩니다.
이제 연결을 설정했으므로 Nginx를 설치하는 데 사용할 remote-exec
프로비저너를 구성하십시오. 다음 줄을 구성에 추가하여 작업을 수행하십시오:
root 사용자가 Nginx를 설치하기 위해 실행할 명령은 inline
배열의 문자열입니다.
완료된 파일은 다음과 같습니다:
파일을 저장하고 편집기를 종료합니다. 서버를 정의했으며, 이제 배포할 준비가 되었습니다.
단계 4 — 테라폼을 사용하여 Nginx 서버 만들기
현재의 테라폼 구성은 단일 Nginx 서버를 설명합니다. 이제 드롭렛을 정확히 정의된 대로 배포할 것입니다.
terraform plan
명령을 실행하여 실행 계획 또는 Terraform이 설명한 인프라를 구축하기 위해 시도할 작업을 확인합니다. 디지털오션 액세스 토큰과 개인 키 경로의 값을 지정해야 합니다. 구성에서 이 정보를 사용하여 Nginx를 설치하기 위해 드롭렛에 액세스합니다. 다음 명령을 실행하여 계획을 생성합니다:
경고: terraform plan
명령은 계획을 저장하기 위한 -out
매개변수를 지원합니다. 그러나 계획은 API 키를 저장하며, 테라폼은 이 데이터를 암호화하지 않습니다. 이 옵션을 사용할 때 다른 사람에게 전송하거나 장기간 보관할 계획이라면 이 파일을 암호화하는 것을 고려해야 합니다.
다음과 같은 출력이 표시됩니다:
+ 리소스 "digitalocean_droplet" "www-1"
라인은 Terraform이 세부 사항이 뒤따르는 www-1
이라는 새로운 Droplet 리소스를 생성할 것을 의미합니다. 이것이 바로 발생해야 할 일입니다. 따라서 현재 계획을 실행하려면 terraform apply
명령을 실행하십시오:
이전과 동일한 출력을 받게 될 것입니다. 그러나 이번에는 Terraform이 진행할지 여부를 묻습니다:
Output...
Plan: 1 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
yes
를 입력하고 ENTER
를 누릅니다. Terraform이 Droplet을 프로비저닝합니다:
Outputdigitalocean_droplet.www-1: Creating...
잠시 후, Terraform이 remote-exec
프로비저너를 사용하여 Nginx를 설치하고 프로세스가 완료됩니다:
Output
digitalocean_droplet.www-1: Provisioning with 'remote-exec'...
....
digitalocean_droplet.www-1: Creation complete after 1m54s [id=your_www-1_droplet_id]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
...
Terraform이 www-1
이라는 새로운 Droplet을 생성하고 Nginx를 설치했습니다. 새로운 Droplet의 공용 IP 주소를 방문하면 Nginx 환영 화면이 표시됩니다. Droplet이 생성될 때 공용 IP가 표시되었지만 Terraform의 현재 상태를 확인하여 언제든지 볼 수 있습니다. Terraform은 계획을 실행하거나 상태를 새로 고칠 때마다 상태 파일 terraform.tfstate
를 업데이트합니다.
환경의 현재 상태를 보려면 다음 명령을 사용하십시오:
이렇게 하면 Droplet의 공용 IP 주소가 표시됩니다.
브라우저에서 http://your_www-1_server_ip
로 이동하여 Nginx 서버가 실행 중인지 확인합니다.
주의: Terraform 외부에서 인프라를 수정하면 상태 파일이 오래될 수 있습니다. Terraform 외부에서 리소스가 수정되면 상태 파일을 최신 상태로 업데이트하기 위해 상태 파일을 새로 고쳐야 합니다. 이 명령은 공급자에서 업데이트된 리소스 정보를 가져올 것입니다:
이 단계에서는 Terraform으로 설명한 드롭렛을 배포했습니다. 이제 두 번째 것을 만들겠습니다.
단계 5 — 두 번째 Nginx 서버 생성
이미 Nginx 서버를 설명했으므로 기존 서버의 구성 파일을 복사하고 드롭렛 리소스의 이름과 호스트 이름을 대체하여 빠르게 두 번째 서버를 추가할 수 있습니다.
이를 수동으로 수행할 수 있지만 sed
명령을 사용하여 www-1.tf
파일을 읽고 모든 www-1
인스턴스를 www-2
로 대체하고 www-2.tf
라는 새 파일을 만드는 것이 더 빠릅니다. 다음은 그 작업을 수행하는 sed
명령입니다:
sed
에 대해 더 알아보려면 sed 사용하기를 방문하십시오.
terraform plan
을 다시 실행하여 Terraform이 수행할 변경 사항을 미리 보십시오:
출력에서 Terraform이 두 번째 서버인 www-2
를 만들 것임을 보여줍니다:
terraform apply
를 다시 실행하여 두 번째 드롭렛을 생성합니다:
이전과 마찬가지로, Terraform은 진행하길 원하는지 확인하도록 요청할 것입니다. 계획을 다시 검토하고 계속 진행하려면 yes
를 입력하세요.
잠시 후에 Terraform은 새로운 서버를 생성하고 결과를 표시합니다:
Outputdigitalocean_droplet.www-2: Creation complete after 1m47s [id=your_www-2_droplet_id]
...
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Terraform은 새로운 서버를 생성하면서 기존 서버를 변경하지 않았습니다. 추가적인 Nginx 서버를 추가하려면 이 단계를 반복할 수 있습니다.
이제 Nginx를 실행하는 두 개의 드롭렛이 있으므로 트래픽을 분할하는 로드 밸런서를 정의하고 배포할 것입니다.
단계 6 — 로드 밸런서 생성
두 웹 서버 간의 트래픽을 라우팅하기 위해 공식 Terraform 제공자가 지원하는 DigitalOcean 로드 밸런서를 사용할 것입니다.
loadbalancer.tf
라는 새로운 Terraform 구성 파일을 생성합니다:
다음 라인을 추가하여 로드 밸런서를 정의합니다:
로드 밸런서 정의는 이름, 위치하는 데이터 센터, 트래픽을 균형 잡기 위해 수신 대기할 포트, 헬스 체크를 위한 구성, 및 균형을 맞출 드롭렛의 ID를 지정합니다. Terraform 변수를 사용하여 이들을 가져옵니다. 파일을 저장하고 닫습니다.
terraform plan
명령을 다시 실행하여 새로운 실행 계획을 검토합니다:
다음과 같은 여러 줄의 출력을 볼 수 있습니다:
이는 www-1
및 www-2
드롭렛이 이미 존재하며 Terraform이 www-lb
로드 밸런서를 생성할 것임을 의미합니다.
로드 밸런서를 구축하려면 terraform apply
를 실행하십시오:
다시 한번, Terraform은 계획을 검토하도록 요청할 것입니다. 계획을 승인하려면 yes
를 입력하여 계속하십시오.
그렇게 하면 다음 줄을 포함한 출력이 표시됩니다(간결함을 위해 일부 내용이 줄어듭니다):
Output...
digitalocean_loadbalancer.www-lb: Creating...
...
digitalocean_loadbalancer.www-lb: Creation complete after 1m18s [id=your_load_balancer_id]
...
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
...
terraform show terraform.tfstate
를 사용하여 로드 밸런서의 IP 주소를 찾습니다:
IP는 www-lb
항목 하위에 있습니다:
브라우저에서 http://your_load_balancer_ip
로 이동하면 로드 밸런서가 두 Nginx 서버 중 하나로 트래픽을 보내기 때문에 Nginx 환영 화면이 표시됩니다.
이제 Terraform을 사용하여 DigitalOcean 계정의 DNS를 구성하는 방법을 배웁니다.
단계 7 — DNS 도메인 및 레코드 생성
Droplets 및 로드 밸런서 외에도 Terraform은 DNS 도메인 및 레코드 도메인을 생성할 수 있습니다. 예를 들어, 도메인을 로드 밸런서로 지정하려면 해당 관계를 설명하는 구성을 작성할 수 있습니다.
참고: 고유한 도메인 이름을 사용하거나 Terraform이 DNS 리소스를 배포할 수 없습니다. 도메인이 DigitalOcean 네임 서버를 가리키는지 확인하십시오.
새 파일을 만들어 DNS를 설명하세요:
다음 도메인 리소스를 추가하고, your_domain
을(를) 사용자의 도메인 이름으로 바꿉니다:
작업을 완료하면 파일을 저장하고 닫으십시오.
www.your_domain
을 your_domain
에 지정하는 CNAME 레코드를 추가할 수도 있습니다. CNAME 레코드용 새 파일을 만드세요:
다음 줄을 파일에 추가하십시오:
작업을 완료하면 파일을 저장하고 닫으십시오.
DNS 항목을 추가하려면 다른 리소스와 마찬가지로 terraform plan
을 실행한 다음 terraform apply
를 실행하십시오.
도메인 이름으로 이동하면 로드 밸런서로 트래픽을 보내는 도메인 때문에 Nginx 환영 화면이 표시됩니다. 이 로드 밸런서는 두 개의 Nginx 서버 중 하나로 트래픽을 보냅니다.
단계 8 — 인프라 파괴
비록 프로덕션 환경에서는 일반적으로 사용되지 않지만, Terraform은 생성한 인프라를 파괴할 수도 있습니다. 이것은 주로 여러 번 배포되고 파괴되는 개발 환경에서 유용합니다.
먼저, terraform plan -destroy
를 사용하여 인프라를 파괴하기 위한 실행 계획을 생성하십시오:
Terraform은 자원이 빨간색으로 표시된 계획을 출력하고, 앞에 마이너스 부호가 붙어 해당 자원을 인프라에서 삭제할 것임을 나타냅니다.
그런 다음 계획을 실행하려면 terraform apply
를 사용하십시오:
Terraform은 생성된 계획에 따라 자원을 파괴하기 시작합니다.
결론
이 튜토리얼에서는 DigitalOcean에서 로드 밸런스된 웹 인프라를 두 개의 Nginx 웹 서버가 DigitalOcean 로드 밸런서 뒤에서 실행되도록 Terraform을 사용하여 구축했습니다. 현재 상태를 보고 Terraform을 사용하여 DNS 항목을 구성하는 방법을 알게 되었습니다.
이제 Terraform이 작동하는 방식을 이해했으므로 자신의 프로젝트를 위한 서버 인프라를 설명하는 구성 파일을 만들 수 있습니다. 이 튜토리얼의 예제는 서버 배포를 자동화하는 방법을 보여주는 좋은 시작점입니다. 이미 프로비저닝 도구를 사용하고 있다면 이를 Terraform과 통합하여 프로비저닝 방법 대신 서버를 구성하는 데 사용할 수 있습니다.
Terraform에는 더 많은 기능이 있으며 다른 공급업체와 함께 작동할 수 있습니다. 자신의 인프라를 개선하는 데 Terraform을 사용하는 방법에 대해 알아보려면 공식 Terraform 문서를 확인하십시오.
이 자습서는 Terraform으로 인프라 관리하는 방법 시리즈의 일부입니다. 이 시리즈는 처음으로 Terraform을 설치하는 것부터 복잡한 프로젝트를 관리하는 것까지 다양한 Terraform 주제를 다룹니다.
Source:
https://www.digitalocean.com/community/tutorials/how-to-use-terraform-with-digitalocean