입문 노트
Terraform이 무엇인지에 관해서는 IaC(Infrastructure as Code)를 실현하기 위한 도구 중 하나일 것입니다.
시도된 창고
컨디션
공식 사이트
강좌는 다음과 같다.상당히 알차게 보이기 때문에 AWS Get Started를 추진해 봅니다.
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:8020
nginx의 화면을 볼 수 있을 것이다.docker ps
에서 알 수 있듯이nginx의 컨테이너는 세워져 있다.실행 정지 용기
terraform destroy
.destroy 이전docker stop
에 용기를 끄면 오류가 발생할 수 있으니 주의하세요.terraform으로 조작한 거, terraform으로 방법을 생각해서 한 일.
AWS EC2 구축 시도
AWS CLI를 사전에 설정해야 합니다.도입99designs/aws-vault할 때 많이 해서 준비했어요.
이것도 튜토리얼대로 진행했는데 아미의 설정값을 잘 몰라서 찾아봤는데 EC2 실례적인 인상(amai=Amazon Machine Image)인 것 같아요.
다음 사이트를 확인했습니다. 튜토리얼에 지정된 아미는 Ubuntu 16.04이기 때문에 ap-northeast-1(도쿄지역)을 가리키는 Ubuntu 20.04
ami-0f2322bff98877761
로 변경되었습니다.리본을
ap-northeast-1
로 변경합니다.이 상태에서
terraform init
와 terraform apply
를 실행하여 EC2의 관리 화면을 표시하면 안전하게 진행할 수 있다.그런 다음 format, validation, state 등의 명령을 시도합니다.
terraform.tfstate
이 서류는 매우 중요한 것 같다.그리고pre-commiit 연결고리로 뭘 하면 좋을지 알아봤는데 아래 창고가 발견됐어요. 한번 해보고 싶어요.
옮기다
여기서 마이그레이션 한번 해보면 아까 도쿄에서 최신판 안 해도 되는데...
설정을 변경한 후 다시 적용하면 이전도 가능하다.
변경 사항이 있으면 apply 때 diff가 나와요. 잘 보면 알 거예요.
+/-
에서 보여준 것은 찢어지고 다시 제작되었고~
에서 보여준 것은 현장에서 업데이트되었다.다만 이 튜토리얼은 삭제→제작된 것이기 때문에 그동안 처리된 것들은 다 할 수 있을 것 같지만 걱정이 돼요.
뭐, OS 이미지 마이그레이션 같은 건 잘 안 될 것 같아서 다른 설정값을 바꿀 때 뚜렷하게 멈추지 않았다면 온라인 운행은 문제없을 것 같아요.
자원 삭제
이전 강좌에서 시도해 보았지만
terraform destory
에서 자원을 삭제할 수 있습니다.공식 환경에서는 자원을 파괴하지 않으려고 하지만 검증 환경 등 빈번하게 변화를 구성하는 곳에서도 자원을 삭제해야 하는 장면이 있으니 기억해야 한다.
개인의 시도가 어느 정도인지, 쓸데없는 돈을 지불하지 않기 위해 미리 삭제하는 것도 잊지 않는다.
이용 변수
편의성을 높이기 위해 설정값에 파라미터를 활용한다.
변수 설정 파일을 분리하거나 명령줄에서 파라미터를 설정할 수도 있습니다.
하지만
*.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_나노카를 환경 변수로 설정하면 환경 변수 측면에서도 값을 얻을 수 있을 것 같습니다. (시도하고 싶지 않기 때문에 검증되지 않았습니다.)변수에 대한 자세한 상황은 나중에 여기를 보세요.
리스트와 맵도 사용할 수 있을 것 같습니다.
아래처럼 tf 파일에 써서 읽어 봤어요.
# 書き込み
variable "ubuntu2004" {
type = map(string)
default = {
"ap-northeast-1" = "ami-0f2322bff98877761"
"us-west-2" = "ami-0c007ac192ba0744b"
}
}
# 読み込み
ami = var.ubuntu2004[var.region]
그리고 output을 적용할 때 표시되는 값으로 정의할 수 있습니다.어쨌든 나는 손에 아마나 리건 같은 걸 꺼냈어.실행 결과의 Output 보기
특별히 언급할 만한 것은 없고, 단지 한번 해 보고 바로 움직였다.
이 장 자체도 짧고 설명도 많지 않아 특별히 신경 쓸 점도 없다.
terraform output nantoka
힘들면가보세요.원격 상태 저장(다음)
팀워크를 할 때 로컬 정보뿐만 아니라 일어나는 서버에서 공유하는 정보를 사용하고 싶을 때도 이 기능의 필요성이다.API 토큰 등에 사용할 수 있습니다.
단, 이 튜토리얼에서는 Terraform Could에 저장된 값을 활용하기 위해 Terraform Cloud를 미리 설치해야 합니다.
그래서 테라form Could 튜토리얼을 만져보고 해보려고요.
감상
EC2가 손에 설정을 적어 반영하면 가동돼 체험성이 좋다.
어쩌면 이 일대를 더 하고 싶을지도 몰라?
Reference
이 문제에 관하여(입문 노트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/yumechi/articles/62ddae6207d0c95c6d9d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)