본문 바로가기

스터디 이야기63

[T101] 5-1. Terraform - module 더보기이 스터디는 CloudNet@에서 진행하는 T101 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들과 테라폼으로 시작하는 IaC 를 바탕으로 작성되었습니다.Module테라폼 모듈이란 단일 디렉토리에 있는 Terraform 구성 파일 세트입니다.  테라폼으로 인프라와 서비스를 관리하면 시간이 지날수록 구성이 복잡해지고 관리하는 리소스가 자연스럽게 늘어나게 됩니다. 테라폼의 구성 파일과 디렉토리 구성에는 제약이 없기 때문에 단일 파일 구조상에서 지속적으로 업데이트가 가능하지만 몇가지 문제가 발생합니다.단일 구조의 단점1. 테라폼 구성에서 원하는 항목을 찾고 수정하는 것이 점점 번거로워짐2. 리소스들 간의 연관 관계가 복잡해질수록 변경 작업의 영향도.. 2024. 7. 9.
[T101] 4-2. Terraform - State 더보기이 스터디는 CloudNet@에서 진행하는 T101 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들과 테라폼으로 시작하는 IaC 를 바탕으로 작성되었습니다. State테라폼은 state(상태)가 있는 stateful 애플리케이션입니다. 프로비저닝 결과에 따른 State를 저장하고 프로비저닝한 모든 내용을 저장된 상태로 추적합니다. 로컬 실행 환경에서는 terraform.tfstate 파일에 JSON 형태로 저장되고, 팀이나 조직에서의 공동 관리를 위해서는 원격 저장소에 저장하여 공유하는 방식으로 활용합니다. state에는 작업자가 정의한 코드와 실제 반영된 프로비저닝 결과를 저장하고, 이 정보를 토대로 리소스 생성/리소스 수정/리소스 삭제에 대.. 2024. 7. 4.
[T101] 4-1. Terraform - Provider 더보기이 스터디는 CloudNet@에서 진행하는 T101 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들과 테라폼으로 시작하는 IaC 를 바탕으로 작성되었습니다. Provider테라폼은 terraform binary 파일을 시작으로 로컬 환경이나 배포 서버와 같은 원격 환경에서 원하는 대상을 호출하는 방식으로 실행됩니다. 이때 '원하는 대상'은 호출하는 방식이 서로 다르지만 대상의 공급자(프로바이더)가 제공하는 API를 호출하여 상호작용합니다. 각 프로바이더의 API 구현은 서로 다르지만 테라폼의 고유 문법으로 동일한 동작을 수행하도록 구현되어있습니다. 또한, 프로바이더는 플러그인 형태로 테라폼에 결합되어 대상이 되는 클라우드, SaaS, 기타 AP.. 2024. 7. 2.
[T101] 3-8. Terraform - moved 블록 더보기이 스터디는 CloudNet@에서 진행하는 T101 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들과 테라폼으로 시작하는 IaC 를 바탕으로 작성되었습니다. Moved 블록테라폼의 State에 기록되는 리소스 주소의 이름이 변경되면 기존 리소스는 삭제되고 새로운 리소스가 생성됩니다. 하지만 테라폼 리소스를 선언하다 보면 이름을 변경해야 하는 상황이 발생하기도 합니다.리소스 이름을 변경count로 처리하던 반복문을 for_each로 변경리소스가 모듈로 이동하여 참조되는 주소가 변경리소스의 이름은 변경되지만 이미 테라폼으로 프로비저닝된 환경을 그대로 유지하고자 하는 경우 테라폼 1.1 버전부터 moved 블록을 사용할 수 있습니다. moved 블록.. 2024. 6. 28.
[T101] 3-7. Terraform - null_resource와 terraform_data 더보기이 스터디는 CloudNet@에서 진행하는 T101 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들과 테라폼으로 시작하는 IaC 를 바탕으로 작성되었습니다.  null_resource와 terraform_data테라폼 1.4버전이 릴리즈되면서 기존 null_resource 리소스를 대체하는 terraform_data 리소스가 추가되었습니다. null_resourcenull_resource는 그 이름 그대로 아무 작업도 수행하지 않는 리소스를 구현합니다. 이 리소스가 필요한 이유는 테라폼 프로비저닝 동작을 설계하면서 사용자가 의도적으로 프로비저닝하는 동작을 조율해야 하는 상황이 발생하는데, 프로바이더가 제공하는 리소스 수명주기 관리만으로는 이를 .. 2024. 6. 28.
[T101] 3-6. Terraform - 프로비저너 더보기이 스터디는 CloudNet@에서 진행하는 T101 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들과 테라폼으로 시작하는 IaC 를 바탕으로 작성되었습니다. 프로비저너Provisioners are a Last Resort (다른 방안이 안되면, 최후의 수단으로 사용) 프로비저너는 프로바이더와 비슷하게 '제공자'로 해석되지만 프로바이더로 실행되지 않는 커맨드와 파일 복사 같은 역할을 수행합니다. 예를 들어 AWS EC2 생성 후 특정 패키지를 설치해야 하거나 파일을 생성해야 하는 경우, 이것들은 테라폼의 구성과 별개로 동작해야 합니다. 그렇기에 프로비저너로 실행된 결과는 테라폼의 상태 파일과 동기화되지 않으므로 프로비저닝에 대한 결과가 항상 같다.. 2024. 6. 28.
[T101] 3-5. Terraform - 함수 더보기이 스터디는 CloudNet@에서 진행하는 T101 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들과 테라폼으로 시작하는 IaC 를 바탕으로 작성되었습니다. 함수테라폼은 일반적인 프로그래밍 언어적인 특성처럼 값의 유형을 변경하거나 조합할 수 있는 함수들이 내장되어있습니다. 단, 내장된 함수외에 사용자가 구현하는 별도의 사용자 정의 함수는 지원하지 않습니다. 함수 종류https://developer.hashicorp.com/terraform/language/functions Functions - Configuration Language | Terraform | HashiCorp DeveloperAn introduction to the built-.. 2024. 6. 27.
[T101] 3-4. Terraform - 조건식 더보기이 스터디는 CloudNet@에서 진행하는 T101 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들과 테라폼으로 시작하는 IaC 를 바탕으로 작성되었습니다. 조건문테라폼에서 조건식은 3항 연상자 형태를 갖습니다. 조건은 true 또는 false로 확인되는 모든 표현식을 사용할 수 있고, 일반적으로 비교, 논리 연산자를 사용해 조건을 확인합니다# ? : var.a != "" ? var.a : "default-a" 조건식은 ? 기호를 기준으로 왼쪽이 조건이며 오른쪽은 : 기호를 기준으로 왼쪽이 조건에 대해 true가 반환되는 경우이고 오른쪽이 false가 반환되는 경우입니다.  var.a가 빈 문자열이 아니라면 var.a를 나타내지만, 비어 있을.. 2024. 6. 26.
[T101] 3-3. Terraform - 반복문(dynamic) 더보기이 스터디는 CloudNet@에서 진행하는 T101 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들과 테라폼으로 시작하는 IaC 를 바탕으로 작성되었습니다. 반복문dynamic리소스 같은 테라폼 구성을 작성하다 보면 count나 for_each구문을 사용한 리소스 전체를 여러 개 생성하는 것 외에도 리소스 내에 선언되는 구성 블록을 다중으로 작성해야 하는 경우가 있습니다. aws_security_group 리소스 내에 선언되는 구성 블록resource "aws_security_group" "allow_tls" { name = "allow_tls" description = "Allow TLS inbound trffic" vpc_id .. 2024. 6. 26.
[T101] 3-2. Terraform - 반복문 (for) 더보기이 스터디는 CloudNet@에서 진행하는 T101 스터디를 참여하면서 공부하는 내용을 기록하는 블로그 포스팅입니다.CloudNet@에서 제공해주는 자료들과 테라폼으로 시작하는 IaC 를 바탕으로 작성되었습니다. 반복문forfor문은 복합적인 형식의 값 형태를 변환하는 데에 사용됩니다. 예를 들어, list값의 포맷을 변경하거나 특정 접두사를 추가할 수도 있고, output에 원하는 형태로 반복적인 결과를 표현할 수도 있습니다.list 타입인 경우 value 또는 index와 value을 반환map 타입인 경우 key 또는 key와 value를 반환set 타입의 경우 key 값에 대해 반환variable "names"{ default = ["a", "b", "c"]}resource "local.. 2024. 6. 24.
728x90