Terraform으로 Vercel 환경 만들기

9863 단어 VercelTerraformtech
최근Terraform을 터치할 기회가 늘어나면서 코드로 인프라를 관리할 수 있는 장점을 조금씩 알게 됐다.얼마 전에 이쪽 문서를 보고 Vercel의 자원도 Terraform으로 관리할 수 있다는 것을 알았습니다.그래서 실제로 시도해 봤기 때문에 비망록으로 남기고 싶어요.
https://vercel.com/guides/integrating-terraform-with-vercel

본 보도의 종점


Terraform으로 Vercel을 제작하는 환경으로 샘플 애플리케이션을 개발합니다.

전제 조건

  • Terraform
  • 설치
  • Terraform의 사용 방법에 대한 설명 생략
  • Terraform으로 Vercle 환경 만들기


    컨디션

  • Terraform v1.1.2
  • Vercel Terraform Provider v0.2.5
  • Vercel에서 디자인된 샘플 응용 프로그램 제작


    우선 Vercel에서 디버깅을 할 샘플을 만들어서 적용해 보세요.
    이번에는Vite+React의 구성으로 프로젝트명sample-app-for-vercel이다.
    $ yarn create vite
    
    혹시 모르니까 동작 확인.
    다음 작업을 수행한 후 http://localhost:3000/로 마이그레이션하면 Hello Vite + React!됩니다.
    $ cd sample-app-for-vercel
    $ yarn
    $ yarn dev
    
    GiitHub에 창고를 만들고 상기 코드를 미리 push한다.
    나중에 Vercel과 함께 작성된 저장소를 사용합니다.

    Vercel 토큰 발행


    이어서 영패를 발행한다.이름은 VERCEL_API_TOKEN입니다.
    https://vercel.com/account/tokens
    トークン発行
    생성된 영패는 잠시 후 사용할 수 있습니다. 기록하세요.

    Vercel Provider 설정


    먼저 Vercel Provider 설정에 대해 설명합니다.
    main.tf
    terraform {
      required_providers {
        vercel = {
          source  = "vercel/vercel"
          version = "~> 0.1"
        }
      }
    }
    
    provider.tf
    provider "vercel" {
      api_token = var.vercel_api_token
    }
    
    획득한 Vercel 토큰을 설정합니다.
    variables.tf
    variable "vercel_api_token" {}
    
    terraform.tfvars
    vercel_api_token = "<取得したトークン>"
    
    이 상태에서 terraform init로 초기화됩니다.
    $ terraform init
    
    이렇게 하면 Provider 설정이 끝납니다.
    git로 Terraform 코드를 관리하는 경우
    설정된 코드에도 영패 등이 포함되어 있기 때문이다.gitignore를 제작하고 다음 내용을 보충해 주십시오.
    .gitignore
    # Local .terraform directories
    **/.terraform/*
    
    # .tfstate files
    *.tfstate
    *.tfstate.*
    
    # Crash log files
    crash.log
    
    # Exclude all .tfvars files, which are likely to contain sentitive data, such as
    # password, private keys, and other secrets. These should not be part of version
    # control as they are data points which are potentially sensitive and subject
    # to change depending on the environment.
    #
    *.tfvars
    
    # Ignore override files as they are usually used to override resources locally and so
    # are not checked in
    override.tf
    override.tf.json
    *_override.tf
    *_override.tf.json
    
    # Include override files you do wish to add to version control using negated pattern
    #
    # !example_override.tf
    
    # Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
    # example: *tfplan*
    
    # Ignore CLI configuration files
    .terraformrc
    terraform.rc
    

    Vercel 항목 생성


    그런 다음 Vercel 항목이 생성됩니다.
    project.tf
    resource "vercel_project" "with_git" {
      name = "sample-app-for-vercel"
      git_repository = {
        type = "github"
        # ユーザー名/リポジトリ名
        repo = "<リポジトリのパス>"
      }
    }
    
    이 상태에서 차점을 확인합니다.
    $ terraform plan
    
    Terraform used the selected providers to generate the following execution
    plan. Resource actions are indicated with the following symbols:
      + create
    
    Terraform will perform the following actions:
    
      # vercel_project.with_git will be created
      + resource "vercel_project" "with_git" {
          + git_repository = {
              + repo = "<リポジトリのパス>"
              + type = "github"
            }
          + id             = (known after apply)
          + name           = "sample-app-for-vercel"
        }
    
    Plan: 1 to add, 0 to change, 0 to destroy.
    
    문제가 없으면 리소스를 계속 생성합니다.
    $ terraform apply
    
    실행 후 https://vercel.com/dashboard로 이전하면 제작된 프로젝트가 표시됩니다.이 상태에서 마스터 or main 지점을 변경해 보세요.자동으로 디버깅을 시작합니다. 이렇게 하면 미리보기가 성공합니다🎉
    プレビュー

    끝맺다


    Terraform을 사용하여 Vercel 환경을 만들어 보았습니다.이번에는 언급하지 않았고, 도메인 이름 등도 테라form을 통해 설정할 수 있다.배포된 이력을 보면 적극적으로 개발하는 것 같아서 앞으로도 동향 추적을 이어가겠습니다!
    https://github.com/vercel/terraform-provider-vercel/releases

    참고 자료

  • https://vercel.com/guides/integrating-terraform-with-vercel
  • https://registry.terraform.io/providers/vercel/vercel/latest/docs
  • 좋은 웹페이지 즐겨찾기