[Dev] 코드형 인프라(IaC)와 테라폼

퍼블릭 클라우드에서 IaC로 많이 사용하는 테라폼의 기본 명령어들입니다. DevOps나 SRE하시는분들은 참고하시면 좋을거 같습니다~^^


💻 코드형 인프라(IaC = Infrastructure as Code)

  • 개념: 수동 프로세스가 아닌 코드를 통해 인프라를 관리하고 프로비저닝하는 것

  • 주요 특징

    • 일관성: 인프라를 코드로 정의하여 수동 오류 제겅

    • 반복성: 표준화된 구성으로 환경을 빠르게 복제

    • 버전 관리: 애플리케이션 코드처럼 인프라 변경 사항 추적

  • 주요 IaC 도구들

    • 테라폼(Terraform)

      • 다양한 클라우드 프로바이더 및 온-프렘 기반의 인프라스트럭처를 지원하는 자동화 도구. 단순성, 유연성, 제공자에 구애받지 않는 접근 방식

      • Hashicorp: 2024년 4월 IBM에 인수됨

    • 앤서블(Ansible)

      • IT 환경에서 시스템 설정, 소프트웨어 배포, 작업 자동화 등 다양한 작업을 자동화하는 데 사용

      • RedHat: 2018년 11월 IBM에 인수됨


🎃 주요 Terraform 명령어: 종합 가이드


1. 초기화 및 설정

  • terraform init: Terraform 구성 파일이 포함된 작업 디렉터리 초기화

  • terraform login: 테라폼 클라우드에 대한 자격 증명 저장

  • terraform logout: 테라폼 클라우드의 자격 증명 제거


2.계획 및 실행

  • terraform plan: Terraform이 수행할 작업을 요약한 실행 계획 생성

  • terraform apply: Terraform 구성에 설명된 변경 사항 적용

  • terraform apply --auto-approve: 승인 없이 변경 사항을 자동적용

  • terraform apply -target=resource: 특정 리소스에만 변경 사항 적용

  • terraform apply -var='key=value': 명령줄에서 직접 변수 값 설정

  • terraform apply -var-file=filename.tfvars: 변수 정의가 포함된 파일 지정

  • terraform plan -out=파일명: 생성된 계획 파일 저장


3. 리소스 관리

  • terraform destroy: 구성에 설명된 모든 리소스 삭제

  • terraform destroy -target=resource: 특정 리소스 파괴

  • terraform taint: 리소스를 재생할 수 있도록 수동 표시

  • terraform untaint: 자원에서 '오염' 상태 제거

  • terraform import: 기존 인프라를 테라폼 상태로 가져옴


4. 검증 및 출력

  • terraform validate: Terraform 구성 파일의 구문과 유효성 확인

  • terraform output: 스테이트에서 출력 값을 표시하거나 검색

  • terraform show: 현재 상태 또는 특정 리소스의 사람이 읽을 수 있는 출력 표시


5.상태 관리

  • terraform state list: 테라폼 스테이트 내의 리소스 나열

  • terraform state mv: 스테이트에 있는 항목 이동

  • terraform state rm: 스테이트에서 아이템 제거

  • terraform state pull: 원격 백엔드에서 상태 가져옴

  • terraform state push: 상태를 원격 백엔드 푸시

  • terraform refresh: 공급자의 실제 리소스에 대해 상태 파일 업데이트


6. 포맷 및 시각화

  • terraform fmt: 구성 파일을 표준 형식으로 재작성

  • terraform graph: Terraform 종속성 그래프의 시각적 표현 생성


7.워크스페이스 관리

  • terraform workspace list: 사용 가능한 워크스페이스 나열

  • terraform workspace select: 다른 기존 워크스페이스 전환

  • terraform workspace new: 새 워크스페이스 생성

  • terraform workspace delete: 기존 워크스페이스 삭제


8.문제 해결 및 잠금 관리

  • terraform force-unlock: 잠긴 상태 해제


  • source: https://dev.to/mohamednasser018/infrastructure-as-code-iac-and-terraform-1phm

Infrastructure as Code (IaC) and Terraform

DEV Community

Infrastructure as Code (IaC) and Terraform

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 11월 24일 오후 12:40

댓글 0

    함께 읽은 게시물

    < 음악 산업의 미래는 음반이 아니라 '굿즈'다 >

    1. 굿즈 사업의 미래는 밝아 보인다.

    ... 더 보기

    ‘경영의 신’이란 칭호를 받은 마쓰시타 고노스케는 경영자가 가져야 할 가장 중요한 자질을 ‘인간에 대한 이해’라고 했다. 경영의 진짜 핵심을 찌른 이야기다. 경영이란 무엇인가? 한마디로 ‘사람을 움직여 가치를 창조하는 업(業)’이다.

    ... 더 보기

    [경영의 맥] 성공하는 CEO의 조건은 '인간에 대한 이해'

    한국경제

    [경영의 맥] 성공하는 CEO의 조건은 '인간에 대한 이해'

    하나부터 열까지 리더가 상세히 설명해 주기를 바라는 구성원이 있습니다. 반대로 큰 얼개만 듣고 나머지는 자율적으로 하고 싶어 하는 경우도 있죠. 회식에 참여하는 것을 너무나 힘겨워 하는 구성원이 있는 반면, 동료들과 함께 시간을 보내며 가까워지는 것을 원하는 구성원도 있습니다.

    ... 더 보기

    다양한 구성원을 하나로 모으고 싶다면 - 리더가 가져야 할 모순

    네이버 블로그 | HSG 휴먼솔루션그룹

    다양한 구성원을 하나로 모으고 싶다면 - 리더가 가져야 할 모순

    “To jobs that pay the rent! 집세 내주는 직장을 위해!” 영화 <악마는 프라다를 입는다>에 나온 대사다. 저널리스트를 꿈꾸는 대학 졸업생인 주인공. 하지만 그녀는 당장 생계를 위한 일자리가 급하다.

    ... 더 보기

    구성원의 ‘괴로운 밥벌이’를 ‘행복한 밥벌이’로 바꿔주려면? - HSG 휴먼솔루션그룹

    네이버 블로그 | HSG 휴먼솔루션그룹

    구성원의 ‘괴로운 밥벌이’를 ‘행복한 밥벌이’로 바꿔주려면? - HSG 휴먼솔루션그룹

    < 애플을 구한 건 스티브 잡스의 '두 번째 버전'이었다 >

    1. 20대의 스티브 잡스가 했던 행동과 50대에 그가 보여주었던 효율적인 리더십을 혼동하면 안 된다.

    ... 더 보기