총 섹션 4까지 듣는 중 이었습니다.
짧게나마 들으면서 중요하다고 생각했던 것과 궁금했던 것을 적었습니다.
테라폼은 IaC 이자 인프라의 자동화를 돕는 도구이며, 인프라의 상태를 유지하도록 도와준다.
수동으로 무언가를 변경하더라도, 테라폼은 실제 인프라와 코드를 일치하게 만든다.
테라폼 파일만 봐도 인프라를 검사, 구성 파악, 변경사항 유지 할 수 있다.
깃, 서브버전과 같은 버전관리 시스템에서 인프라의 변경기록 유지
ansible, chef, puppet,saltstack 은 소프트웨어의 설치와 구성을 자동화 하는데에 초점을 맞추고있다.
반면, 테라폼은 인프라 프로비저닝을 자동화 한다.
한번 더 짚고가보자.
<aside> 💡 오케스트레이션 vs 구성관리
</aside>
| Terraform | Ansible |
|---|---|
| 인프라 관리를 위한 포괄적인 솔루션 제공 | 클라우드 인프라를 프로비저닝 할 수도 있지만 충분히 포괄적이지 않다. |
| 클라우드 제공자 API 를 사용하여 선언된 리소스를 기반으로 인프라를 프로비저닝 및 디프로비저닝 한다. | 주로 구성관리에 맞춰져 있으며, 애플리케이션과 종속성을 최신상태로 유지하는 프로세스이다. |

더 자세한건 요 블로그 클릭
ansible의 선언적 방식 ..?!!?
왜 terraform 을 쓰고 ansible 을 쓰는건가 언제!
도메인의 차이 → 도메인에 맞는 도구를 사용하자.
terraform console 이라는 명령어를 통해 변수 적용을 확인할 수 있다는 명령어가 새로웠다.
Command: console | Terraform | HashiCorp Developer
테라폼 console은 대화형(interactive command-line) 콘솔입니다. 테라폼 특정 문법을 실시간으로 테스트할 때 사용한다고 한다.

중간에 진행하면서 그대로 이 코드를 따라치니까 오류가 났었는데,
variable "myvar"{
type="string"
default = "hello terraform"
}
알고보니, Terraform 0.11 버전 이전에는 변수 타입 제약사항을 따옴표 안에 지정해야 했지만, 이제는 따옴표 없이 지정해야 한다는 내용입니다. 따라서 "string" 대신 string으로 수정해야 한다고 한다.
terraform init : 데모 실행할때마다 치는 명령어
terraform plan : 변경사항을 보여주는..
terraform plan -out out.terraform :출력값으로 이용하고 싶은 파일을 입력하면, 테라폼은 변경사항을 out.terraform 에 저장되게 변경함
terraform plan -out file; terraform apply file; rm file; 이건 단축키
프로덕션 환경에서 사용할거라면 -out file 을 꼭 사용하라고
"-out 파일명" 옵션은 Terraform 실행 후 출력된 변경 사항을 파일로 저장한다. 이 파일은 "terraform apply" 명령으로 실제 변경 사항을 적용할 때 사용할 수 있다.
예를 들어, "terraform plan -out=tfplan" 명령을 실행하면 변경 사항이 "tfplan"이라는 파일로 저장된다. 이후 "terraform apply tfplan" 명령을 실행하면 저장된 변경 사항이 적용된다.
terraform apply : 자동 yes 명령은 terraform apply -auto-approve
terraform apply out.terraform
terraform destroy : 제거
에서 다룬 Packer 에 대해 궁금했다.

뭔진 잘 모르겠지만 이런 글도 있다. AMI 도 만들수가있구나 싶었다.
Packer와 Ansible을 이용한 표준 AMI 만들기 | 우아한형제들 기술블로그