Terraform 구성을 사용하여 인프라를 쉽게 자동화

Terraform 구성 파일



동일한 인프라를 반복해서 만들어야 했던 적이 있습니까? Terraform을 사용하면 시스템을 한 번 작성한 다음 원하는 만큼 자주 배포하는 자동화된 솔루션을 만들 수 있습니다.

구성을 한 번만 작성하면 Terraform이 사용자로부터 인프라를 생성하는 힘든 작업을 수행합니다. 오늘은 그러한 Terraform 구성 파일의 필수 내용을 보여드리겠습니다. 따라서 가능한 한 빨리 시작하고 시간을 절약하여 더 멋진 일을 할 수 있습니다.

Terraform 블록




terraform {
  required_providers {
    docker = {
      source  = "kreuzwerker/docker"
      version = "~> 2.13.0"
    }
  }
}


이 예제에서는 terraform을 사용하여 로컬에서 실행되는 간단한 nginx 컨테이너를 만드는 방법을 보여드리겠습니다. 유일한 전제 조건은 terraform 및 docker를 로컬에 설치하는 것입니다. 저와 함께하고 싶지만 모든 것이 설치되어 있지 않은 경우 다음 단계를 따르십시오. https://learn.hashicorp.com/tutorials/terraform/install-cli?in=terraform/docker-get-started

이 구성은 모든 terraform 프로젝트의 핵심입니다. 대상 인프라를 설명하고 정의된 인프라를 계획하고 생성하는 데 사용됩니다. 간단한 도커 설정을 위한 구성을 만드는 방법을 보여 드리겠습니다.

공급자 블록




# The default provider configuration; resources that begin with `aws_` will use
# it as the default, and it can be referenced as `aws`.
provider "aws" {
  region = "us-east-1"
}

# Additional provider configuration for west coast region; resources can
# reference this as `aws.west`.
provider "aws" {
  alias  = "west"
  region = "us-west-2"
}


구성 내의 첫 번째 블록은 terraform 블록입니다. 여기에서 사용하려는 테라폼 설정과 사용할 공급자를 설명합니다. 공급자는 인프라를 생성하기 위해 대상 환경과 상호 작용하는 API와 같습니다. 공급자에 대한 특정 버전을 지정하려는 경우 그렇게 할 수 있습니다. 기본적으로 terraform은 최신 버전을 사용합니다. 이 예에서는 공급자 수준 구성을 추가하지 않으므로 빈 공급자 블록을 사용합니다.

provider "docker" {
}


테라포밍 리소스




resource "docker_image" "nginx" {
  name         = "nginx:latest"
  keep_locally = false
}

resource "docker_container" "nginx" {
  image = docker_image.nginx.latest
  name  = "tutorial"
  ports {
    internal = 80
    external = 8000
  }
}


terraform 내의 리소스는 생성할 특정 인프라 구성 요소(리소스)를 설명합니다. terraform 리소스를 만들 때 다음 두 문자열을 제공해야 합니다.
  • 첫 번째 문자열은 만들 리소스 유형을 명확히 합니다. 이 예에서는 "docker_container"입니다. 첫 번째 부분은 공급자(도커)를 설명하고 두 번째 부분은 리소스 유형(컨테이너)을 설명합니다.
  • 두 번째 문자열은 리소스의 이름을 지정합니다. 여기에서 원하는 이름을 선택할 수 있으며 나중에 리소스가 무엇인지 알기 위해 합리적인 이름을 사용하는 것이 좋습니다.

  • 이 두 문자열 다음에 추가 구성 세부 정보를 제공할 수 있습니다. 예를 들어 클라우드 컴퓨팅 인스턴스의 경우 이는 인스턴스 크기 또는 연결할 네트워크입니다. 이 예에서는 두 개의 리소스를 만듭니다.
  • 첫 번째 리소스는 nginx를 사용하는 이미지입니다. 여기에서 이미지에 대한 몇 가지 기본 설정을 제공한 다음 컨테이너에 다시 사용할 수 있습니다.
  • 두 번째 리소스는 컨테이너입니다. 여기서 우리는 이전에 생성된 이미지와 사용된 포트를 사용하도록 컨테이너에 지시합니다.
    최종 구성은 이제 다음과 같아야 합니다.

  • terraform {
      required_providers {
        docker = {
          source  = "kreuzwerker/docker"
          version = "~> 2.13.0"
        }
      }
    }
    
    provider "docker" {
    
    }
    
    resource "docker_image" "nginx" {
      name         = "nginx:latest"
      keep_locally = false
    }
    
    resource "docker_container" "nginx" {
      image = docker_image.nginx.latest
      name  = "tutorial"
      ports {
        internal = 80
        external = 8000
      }
    }
    


    이를 통해 terraform 구성 내에서 필요한 모든 것을 설정했습니다. 이제 로컬 도커 환경에 대한 구성 및 인프라를 실행할 수 있습니다.

    결론



    보시다시피 docker의 기본 사항을 이해하는 것은 간단합니다. 이 예제를 위해 로컬 도커 환경을 위한 간단한 컨테이너를 만들었습니다. 원하는 클라우드 환경에 인프라를 배포할 수 있습니다. 공급자를 변경하고 요구 사항에 맞게 몇 가지 구성을 추가하기만 하면 됩니다.

    좋은 웹페이지 즐겨찾기