목록IaC (13)
근묵자흑

1. 반복문 활용하기1.1 count 매개 변수를 이용한 반복count는 테라폼에서 가장 기본적인 반복 방법입니다. 동일한 리소스를 여러 개 생성할 때 사용합니다.resource "aws_instance" "web" { count = 3 # 3개의 동일한 인스턴스를 생성 ami = "ami-0c55b159cbfafe1f0" instance_type = "t2.micro" tags = { Name = "web-server-${count.index}" # 각 인스턴스에 순차적인 이름 부여 }}상세 설명:count = 3: 리소스를 3번 반복 생성합니다.count.index: 0부터 시작하는 인덱스 값을 제공합니다.생성되는 인스턴스 이름: "web-server-0", "we..

인프라를 코드로 관리하다 보면 비슷한 패턴의 코드가 자주 반복되는 것을 발견하게 됩니다. 예를 들어 개발 환경과 운영 환경에서 동일한 구조의 VPC를 생성하거나, 여러 리전에 비슷한 구성의 웹 서버를 배포해야 할 수 있습니다. 이런 상황에서 테라폼의 모듈(Module) 기능을 활용하면 코드의 재사용성을 높이고 유지보수를 쉽게 만들 수 있습니다.테라폼 모듈이란?테라폼 모듈은 여러 리소스를 하나의 논리적 단위로 패키징한 것입니다. 마치 프로그래밍 언어의 함수처럼, 입력값을 받아 정의된 로직에 따라 리소스를 생성하고 필요한 값을 출력할 수 있습니다. 잘 설계된 모듈은 다음과 같은 장점을 제공합니다:코드 재사용을 통한 생산성 향상일관된 인프라 구성 유지리소스 생성 로직의 캡슐화인프라 변경의 용이성모듈의 기본 구..

상태 관리terraform plan, apply 명령어를 실행하면 테라폼이 이전 생성한 리소스를 찾아 업데이트 할 수 있다.그럼 아래 와 같은 궁금증이 생길 수있다.리소스 관리는 어떻게 진행되는가?인프라 상태를 어떻게 탐지하는가?테라폼 프로젝트의 파일 레이아웃, 격리, 잠금 등에 미치는 영향을 어떻게 탐지하는가?Terraform state 란?테라폼은 생성한 인프라에 대한 정보를 테라폼 상태 파일에 기록 및 trraform.tfstate 파일 생성 (.json)테라폼을 실행할 때마다 AWS 에서 이 EC2 인스턴스의 최신 상태를 가져와서 테라폼의 구성과 비교.그 후 변경 사항을 적용해야 하는지 결정 할 수 있다.실제 운영환경에서는 팀단위로 사용됨으로 아래와 같은 몇가지 유의사항이 있다.상태파일을 저장하는..

Terraform syntax & 기본 구성요소Provider 설정테라폼 provider 에 관한 블로그 글은 아래 정리돼 있습니다.https://devstory.tistory.com/2terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } }}provider "aws" { region = "ap-northeast-2" # 서울 리전}Resource 정의Resource 블록은 실제로 생성할 인프라 자원을 정의하는 핵심 구성요소입니다. 각 리소스는 고유한 식별자를 가지며, 해당 리소스의 모든 속성을 정의합니다.클라우드 리소스 생성 및 관리리소스 간 의존성 정의리소스 설정..

데브옵스(DevOps)란?‘데브옵스(DevOps)’는 패트릭 드보이스(Patrick Debois)가 2009년에 처음 소개한 용어로 이후 그는 이 분야의 전문가로 부상했습니다. 이 용어는 개발(development)’과 ‘운영(operations)’을 결합한 말로, 사람들이 데브옵스가 무엇을 의미하는지 이해할 수 있는 시작점을 제공합니다. 데브옵스는 프로세스, 기술 또는 표준이 아닙니다. 많은 추종자들은 데브옵스를 하나의 ‘문화’라고 언급합니다.시장조사기관 가트너(Gartner)의 정의를 선호합니다.“데브옵스는 시스템 위주의 접근 방식이라는 문맥에서 민첩하고 효율적인 관행을 도입함으로써, IT 서비스를 신속하게 제공하는 데 초점을 맞춘 IT 문화의 변화를 나타냅니다. 데브옵스는 사람(과 문화)을 강조하며..

규모에 따른 워크플로우개인의 workflowwriteplanapply다중 작업자 / 다수 팀 workflowwriteplanapplygit Action을 사용한 workflowExample with git actionname: Example Service Releaseon: workflow_dispatch: push: branches: [main] paths: ["terraform/**"] pull_request: branches: [main] paths: ["terraform/**"]jobs: plan: name: Terraform plan runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 ..