본문 바로가기

전체 글

(220)
[Terraform]워크스페이스 디렉토리 구성 전략 테라폼 프로젝트를 시작할 때, 깔끔하고 일관된 디렉토리 구조를 가지고 시작하는 것은 중요합니다. 특히 프로젝트 규모가 커질수록 디렉토리 구조의 중요성은 커집니다. 이 포스팅에서는 테라폼 워크스페이스의 표준 디렉토리 구조와 그 설명을 공유합니다. Convention 기본적으로 다음과 같은 파일들을 포함하는 것이 좋습니다: versions.tf - 테라폼과 프로바이더의 버전을 지정 variables.tf - 이 워크스페이스에서 사용할 변수들을 선언 terraform.tf- 워크스페이스 설정, 백엔드 설정 및 프로바이더 설정 terraform.auto.tfvars - 자동 로딩되는 변수 값들 지정 remote-states.tf - 멀티 워크스페이스 간 의존성 관리를 위한 설정 outputs.tf - 이 워크스..
[Terraform]다른 워크스페이스의 정보 가져오기 - terraform_remote_state 사용법 개요: terraform_remote_state terraform_remote_state를 사용하면, 하나의 테라폼 워크스페이스에서 다른 워크스페이스의 상태(state) 정보를 읽어올 수 있습니다. 이 기능은 한 워크스페이스의 결과값(outputs)을 다른 워크스페이스의 입력값(inputs)으로 사용할 수 있기 때문에 여러 워크스페이스로 인프라를 나눠 관리할 때 유용합니다. terraform_remote_state를 통한 워크스페이스 관리 1. terraform_remote_state의 위치 terraform_remote_state는 테라폼 내에서 data source block 안에 위치해 사용됩니다. 이는 다른 워크스페이스의 상태 정보를 현재 워크스페이스에서 참조하기 위한 설정입니다. 2. 단일 워크..
[VSCode]한글이 깨져 보이는 파일 인코딩 변경하기 파일의 인코딩 문제로 인해 한글이나 특수 문자가 깨져 보일 때가 있습니다. 이런 문제를 해결하기 위해 VSCode를 사용하여 파일의 인코딩을 변경하는 방법을 소개하겠습니다. 1. 원본 파일을 VSCode에서 열기 먼저 VSCode를 실행한 후, 원하는 파일을 엽니다. 2. 현재 인코딩 확인하기 파일을 열었을 때 오른쪽 하단에 현재 인코딩 (예: EUC-KR, UTF-8 등)이 표시됩니다. 3. "Reopen with Encoding"을 사용하여 파일을 다른 인코딩으로 열기 오른쪽 하단의 인코딩을 클릭한 후, "Reopen with Encoding"을 선택합니다. 그런 다음 파일의 현재 인코딩 (예: EUC-KR)을 선택하여 파일을 해당 인코딩으로 다시 엽니다. 4. "Save with Encoding"을..
[Terraform]리소스 강제 교체하기: taint와 untaint 사용법 terraform taint terraform taint는 특정 리소스를 "tainted" 상태로 표시하여, 다음 terraform apply 때 해당 리소스를 강제로 다시 만들게 합니다. 특정 리소스를 교체해서 테스트하거나 디버깅해보고 싶을때 taint를 이용하여 리소스를 교체해 볼 수 있습니다. 예제: ig에 장애가 있다 생각하고 해당 리소스를 교체해 본다. 현재 상태 확인하기: tf state list ➜ tf state list module.route_table__private.aws_resourcegroups_group.this[0] module.route_table__private.aws_route_table.this module.route_table__private.aws_route_tabl..
[Terraform]상태(state) 관리 명령어 사용 방법 terraform에서 state 명령어는 Terraform의 상태를 관리하거나 세부내용을 확인할 수 있습니다. 이 글에서는 각 서브 커맨드에 대한 주요 특징과 사용 방법을 설명합니다. tf state command  tf state Usage: terraform [global options] state [options] [args] This command has subcommands for advanced state management. These subcommands can be used to slice and dice the Terraform state. This is sometimes necessary in advanced cases. For your safety, all state managem..
[Terraform]상태 저장소 설정하는 방법(Backend) Terraform이 작업을 수행하면서 인프라의 현재 상태를 추적하기 위한 상태 파일 (terraform.tfstate)을 생성하게 되는데, 이 상태 파일의 관리 방식에 따라 로컬 상태(Locate State)와 원격 상태(Remote State)로 구분됩니다. Locate State, Remote State 차이점 Local State 정의: Terraform이 리소스를 관리할 때 기본적으로 사용하는 상태 저장 방식입니다. 파일: terraform.tfstate - 이 파일은 Terraform이 관리하는 리소스의 현재 상태를 JSON 형식으로 저장합니다. 특징: - 로컬 시스템에 상태 정보가 저장됩니다. - 팀원 간 상태 공유가 어려울 수 있습니다. - 로컬 저장소가 손실될 경우 상태 정보도 손실될 위험..
[Kubernetes]클러스터의 안정성을 최대화할 수 있는 여러 설정과 구성요소 이번 글에서는 Kubernetes의 안정성을 향상시키는 주요 설정과 구성요소에 대해 다룹니다. 이러한 설정과 구성요소는 파드의 생명주기 관리, 자원 할당 및 사용, 스케줄링 전략, 노드 관리 등 여러 범주에 걸쳐 있습니다. 특히 다음 주제에 초점을 맞춥니다. 파드의 생명주기 및 상태 관리: 파드의 정상 작동을 지속적으로 확인하고 필요에 따라 복구 또는 재시작하는 메커니즘. 스케줄링 전략: 파드가 클러스터 내에서 어떻게 배치되며, 고가용성과 효율성을 동시에 달성하기 위한 전략. 리소스 관리: 클러스터의 리소스를 효율적으로 할당하고 사용하는 방법. 노드 관리 및 안정성: 노드의 상태를 모니터링하고, 장애 발생 시 자동 복구를 위한 전략. Pod Lifecycle Probe 개요: Kubernetes에서 Po..
[Terraform]반복문(For)을 사용하여 resource 작성하는 방법 Terraform의 반복문(Loops) 기능은 기본적인 코드 구성을 최소화하면서 다양한 리소스를 생성하거나 관리할 때 유용합니다. 기본 문법 핵심 개념 Input Collection: for 키워드 뒤에 오는 컬렉션은 반복을 수행할 대상이 됩니다. Output Expression: 콜론(:) 뒤의 표현식은 각 반복마다의 결과를 결정합니다. Condition: if 키워드를 사용하여 조건을 지정할 수 있습니다. 이 조건에 맞는 항목만 결과로 포함됩니다. Input Types A for expression's input (given after the in keyword) can be a list a set a tuple a map an object. Lists & Sets [for in : if ] Exam..