입문 노트

7526 단어 Terraformtech
클라우드에 CLI로 기기 등을 만들려고 할 때 사용할 수 있는 옵션으로 테라폼이 있어 일단 노트를 만져봤다.
Terraform이 무엇인지에 관해서는 IaC(Infrastructure as Code)를 실현하기 위한 도구 중 하나일 것입니다.

시도된 창고


https://github.com/yumechi/terraform-suburi

컨디션

  • Ubuntu 20.04 on WSL2
  • terraform version 0.1.3
  • Windows build version 2004, 구축 번호 21277.1000(Windows insider 프로그램의 Dev 채널과 일치)
  • 공식 사이트


    https://www.terraform.io/
    강좌는 다음과 같다.상당히 알차게 보이기 때문에 AWS Get Started를 추진해 봅니다.
    https://learn.hashicorp.com/terraform

    AWS Get Started를 해봤어요.


    애니메이션 내용도 있지만 문서만으로도 할 수 있기 때문에 띄엄띄엄 필기를 한다.

    설치하다.


    https://learn.hashicorp.com/tutorials/terraform/install-cli?in=terraform/aws-get-started
    WSL2의 경우 Linux와 동일한 방법으로 설치됩니다.
    따라서 GPGkey를 설정하여 설치한다.설치 후 확인-help plan 또는 -version.
    ❯ terraform -version
    Terraform v0.14.3
    
    이어서 Docker를 이용해서 운전을 해보자(그때까지 Docker 컨테이너를 만들 수 있을지 몰랐다).
    Docker Desktop for Windows를 설정하면 튜토리얼에 따라 명령을 실행하면 이동할 수 있습니다.
    강좌대로 해도 심심하기 때문에 포트의 external을 적당히 8000으로 바꿨습니다.
    그리고 terraform init만약에 terraform apply브라우저에서 보면http://localhost:8020nginx의 화면을 볼 수 있을 것이다.docker ps에서 알 수 있듯이nginx의 컨테이너는 세워져 있다.
    실행 정지 용기terraform destroy.destroy 이전docker stop에 용기를 끄면 오류가 발생할 수 있으니 주의하세요.
    terraform으로 조작한 거, terraform으로 방법을 생각해서 한 일.

    AWS EC2 구축 시도


    https://learn.hashicorp.com/tutorials/terraform/aws-build?in=terraform/aws-get-started
    AWS CLI를 사전에 설정해야 합니다.도입99designs/aws-vault할 때 많이 해서 준비했어요.
    이것도 튜토리얼대로 진행했는데 아미의 설정값을 잘 몰라서 찾아봤는데 EC2 실례적인 인상(amai=Amazon Machine Image)인 것 같아요.
    다음 사이트를 확인했습니다. 튜토리얼에 지정된 아미는 Ubuntu 16.04이기 때문에 ap-northeast-1(도쿄지역)을 가리키는 Ubuntu 20.04ami-0f2322bff98877761로 변경되었습니다.
    리본을 ap-northeast-1로 변경합니다.
    https://cloud-images.ubuntu.com/locator/ec2/
    이 상태에서 terraform initterraform apply를 실행하여 EC2의 관리 화면을 표시하면 안전하게 진행할 수 있다.
    그런 다음 format, validation, state 등의 명령을 시도합니다.terraform.tfstate 이 서류는 매우 중요한 것 같다.
    그리고pre-commiit 연결고리로 뭘 하면 좋을지 알아봤는데 아래 창고가 발견됐어요. 한번 해보고 싶어요.
    https://github.com/antonbabenko/pre-commit-terraform

    옮기다


    https://learn.hashicorp.com/tutorials/terraform/aws-change?in=terraform/aws-get-started
    여기서 마이그레이션 한번 해보면 아까 도쿄에서 최신판 안 해도 되는데...
    설정을 변경한 후 다시 적용하면 이전도 가능하다.
    변경 사항이 있으면 apply 때 diff가 나와요. 잘 보면 알 거예요.+/-에서 보여준 것은 찢어지고 다시 제작되었고~에서 보여준 것은 현장에서 업데이트되었다.
    다만 이 튜토리얼은 삭제→제작된 것이기 때문에 그동안 처리된 것들은 다 할 수 있을 것 같지만 걱정이 돼요.
    뭐, OS 이미지 마이그레이션 같은 건 잘 안 될 것 같아서 다른 설정값을 바꿀 때 뚜렷하게 멈추지 않았다면 온라인 운행은 문제없을 것 같아요.

    자원 삭제


    https://learn.hashicorp.com/tutorials/terraform/aws-destroy?in=terraform/aws-get-started
    이전 강좌에서 시도해 보았지만 terraform destory에서 자원을 삭제할 수 있습니다.
    공식 환경에서는 자원을 파괴하지 않으려고 하지만 검증 환경 등 빈번하게 변화를 구성하는 곳에서도 자원을 삭제해야 하는 장면이 있으니 기억해야 한다.
    개인의 시도가 어느 정도인지, 쓸데없는 돈을 지불하지 않기 위해 미리 삭제하는 것도 잊지 않는다.

    이용 변수


    https://learn.hashicorp.com/tutorials/terraform/aws-variables?in=terraform/aws-get-started
    편의성을 높이기 위해 설정값에 파라미터를 활용한다.
    변수 설정 파일을 분리하거나 명령줄에서 파라미터를 설정할 수도 있습니다.
    하지만 *.tfvars의 변수 선언과 이용을 사용한 것은 익숙하다고 생각합니다.다음에 기술한 tfvars 파일에 기재된 상황
    region = "ap-northeast-1"
    
    파일 측면에서 사용해야 하는 변수 이름*.tf.
    variable region {}
    
    이 상태terraform apply에서 var.region에 설정ap-northeast-1.
    -var-file 덮어쓰기 시 region = "us-west-1" 등에 쓰기 production.tfvars CLI 로 덮어쓰기
    terraform apply -var-file="production.tfvars"
    
    TF_VAR_나노카를 환경 변수로 설정하면 환경 변수 측면에서도 값을 얻을 수 있을 것 같습니다. (시도하고 싶지 않기 때문에 검증되지 않았습니다.)
    변수에 대한 자세한 상황은 나중에 여기를 보세요.
    https://www.terraform.io/docs/configuration/variables.html#suppressing-values-in-cli-output
    리스트와 맵도 사용할 수 있을 것 같습니다.
    아래처럼 tf 파일에 써서 읽어 봤어요.
    # 書き込み
    variable "ubuntu2004" {
      type = map(string)
      default = {
        "ap-northeast-1" = "ami-0f2322bff98877761"
        "us-west-2"      = "ami-0c007ac192ba0744b"
      }
    }
    
    # 読み込み
      ami           = var.ubuntu2004[var.region]
    
    그리고 output을 적용할 때 표시되는 값으로 정의할 수 있습니다.어쨌든 나는 손에 아마나 리건 같은 걸 꺼냈어.

    실행 결과의 Output 보기


    https://learn.hashicorp.com/tutorials/terraform/aws-outputs?in=terraform/aws-get-started
    특별히 언급할 만한 것은 없고, 단지 한번 해 보고 바로 움직였다.
    이 장 자체도 짧고 설명도 많지 않아 특별히 신경 쓸 점도 없다.terraform output nantoka힘들면가보세요.

    원격 상태 저장(다음)


    https://learn.hashicorp.com/tutorials/terraform/aws-remote?in=terraform/aws-get-started
    팀워크를 할 때 로컬 정보뿐만 아니라 일어나는 서버에서 공유하는 정보를 사용하고 싶을 때도 이 기능의 필요성이다.API 토큰 등에 사용할 수 있습니다.
    단, 이 튜토리얼에서는 Terraform Could에 저장된 값을 활용하기 위해 Terraform Cloud를 미리 설치해야 합니다.
    그래서 테라form Could 튜토리얼을 만져보고 해보려고요.

    감상


    EC2가 손에 설정을 적어 반영하면 가동돼 체험성이 좋다.
    어쩌면 이 일대를 더 하고 싶을지도 몰라?
  • 설정에서 다중 부팅
  • 보안 그룹 및 키 쌍 지정 및 시작
  • (AWS를 사용하지 않아도 로컬에서 하고 싶을 때) Docker에서 더 많이 사용
  • 그리고 테라form Cloud가 뭘 할 수 있는지 몰라서 그 튜토리얼을 해보면 필기를 해보자고 생각했어요.

    좋은 웹페이지 즐겨찾기