IaC 5

[Terraform] 배포 및 플래그

Terraform 배포 시 사용되는 명령어 및 플래그를 정리해 둔 공간입니다.배포initTerraform 작업 디렉터리를 초기화planTerraform 구성 파일 기반 실행 계획 생성실제로 리소스를 변경하지 않고, 어떤 리소스가 추가, 변경, 삭제될지 미리 보여줌applyTerraform plan 명령어에서 생성된 실행 계획을 실제로 실행하여 인프라 변경 terraform initprovider가 정의되어 있는 위치에서 해당 명령어를 입력한다면 provider, module, state를 설정한다. (사용준비) .terraform 디렉터리 생성, .terraform.lock.hcl 파일 생성 terraform plan이전 state와 비교하여 변경될 내역을 보여준다.terraform apply현재 작성된..

IaC/Terraform 2024.06.11

[Terraform] 디렉터리 구조

.terraform 의존되는 파일들이 다운로드(외부, 로컬까지도) 되어 저장되는 공간이다.내부적으로 .tfstate의 정보 포함 .teeraform.lock.hcl의존성 관련 잠금파일이다. 의존되는 파일들에 대해 명시되어 있다.git과 같은 버전관리 시스템에서 .terraform 디렉터리를 업로드하지 않고 이 파일만 업로드한다. 다른 PC/유저들은 init 명령어를 사용하여 이 파일에 명시되어 있는 의존 파일들을 다운로드한다. terraform.tfstateTerraform의 상태 파일이다. apply를 통해 실제 인프라에 적용한 결과를 기억하는 파일이다.인프라 설계 인원이 많아질 경우 이 파일을 원격으로 공유하며 사용해야한다.각 로컬에서 관리할 경우 모든 이들의 tfstate가 다르므로 인프라가 꼬일 ..

IaC/Terraform 2024.06.11

[Terraform] 용어

Terraform 키워드 terraformprovider Terraform 자체에 대한 설정을 작성하는 블록 Terraform과 외부 서비스를 연결해주는 기능 resourcedata 인프라 구성요소 Terraform 외부에 정의되어 있는 정보를 가져와서 사용할 수 있게 해주는 기능 variablelocals개발자로부터 입력받는 변수. 재사용성 O지역변수 선언 키워드. 현재 파일에서만 사용 가능outputmodule인프라에 대한 정보를 명령줄에 노출(숨기기 가능)시킬 수 있으며 자식 모듈의 output 값에 접근하여 사용할 수 있게 해주는 기능하나의 폴더 내에 있는 Terraform 구성 파일들의 집합 terraformterraform {  required_providers {    aws = {   ..

IaC/Terraform 2024.04.02

[Terraform] 환경 구성

참조 문서: https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/getting-started-install.html 1. Terraform 설치VS Code에서 Extensions > HashiCorp HCL 설치환경변수 설정 2. AWS IAM 계정 생성AccessKey 발급: AWS Console 액세스가 아닌 프로그래밍 방식 액세스가 필요하므로, 자격 증명 유형은 액세스 키 이다. 3. AWS CLI 설치https://awscli.amazonaws.com/AWSCLIV2.msi설치 확인$ aws --versionaws-cli/2.15.34 Python/3.11.8 Windows/10 exe/AMD64 prompt/off 4. 액세스 키 설정$ aws c..

IaC/Terraform 2024.04.02

IaC 도구 비교

Terraform Ansible CloudFormation 유형 프로비저닝 구성 관리 프로비저닝 오픈소스 여부 공개 공개 비공개 적용 대상 클라우드 멀티 멀티 AWS 전용 정책 설정 가능 불가능 부분적 구성 방식 Immutable mutable Immutable 라이프사이클 관리 가능 불가능 부분적 온프레미스 지원 부분적 부분적 불가능 ✔︎ Immutable : 인프라스트럭처의 상태를 변경할 때, 기존 인프라스트럭처를 수정하거나 업데이트하는 것이 아니라 새로운 인프라스트럭처를 생성하여 이전 상태의 인프라스트럭처를 교체하는 방식을 의미한다. Ansible 프로비저닝보다 구성 관리에 더 큰 장점을 가지고 있고, 테라폼으로 자원을 생성(프로비저닝)하고 앤서블로 생성된 자원에 대한 구성 관리하는 방식으로 조합해..

IaC 2024.04.02