본문 바로가기

DevOps/Terraform

(20)
[T102 4주차] (12) 테라폼 워크스페이스 cloudNet@ 팀의 가시다 님이 진행하는 테라폼 102 스터디 4주차 정리입니다. 4주차 내용: 테라폼 워크스페이스 1. 테라폼 워크스페이스란? ✅ State를 관리하는 논리적인 가상공간을 워크스페이스라 한다. (쿠버네티스의 네임스페이스와 유사함) ✅ 테라폼 구성 파일은 동일하지만 작업자는 서로 다른 경우 State를 갖는 실제 대상을 프로비저닝 할수 있다. ✅ 기본은 default로 정의 되며, 로컬 작업 환경에서 작업할 경우 기본 default 워크스페이스를 사용한다. terraform workspace list * default 2. 테라폼 워크스페이스 실습 ✅ 간단하게 가상머신 1개를 배포 해본다. ✅ 워크스페이스를 바꿔가면서 동일한 tf 파일을 활용해 가상머신을 3개까지 배포해보며 ec2 d..
(10) 테라폼으로 vmware 가상리소스 배포 cloudNet@ 팀의 가시다 님이 진행하는 테라폼 102 스터디 3주차 정리입니다. 3주차 내용: 테라폼 프로바이더 프로바이더란? vsphere 프로바이더 사용법 vsphere 자격증명 설정 os golden image 생성 *매우 중요* vmware template 사용하여 vm 배포 1. 프로바이더? 테라폼은 terraform 바이너리 파일을 시작으로 로컬 환경에나 배포 서버와 같은 원격 환경에서 원하는 대상을 호출하는 방식으로 실행된다. 이때 ‘원하는 대상’은 호출하는 방식이 서로 다르지만 대상의 공급자, 즉 프로바이더가 제공하는 API를 호출해 상호작용을 한다. 여기서 테라폼이 대상과의 상호작용을 할 수 있도록 하는 것이 ‘프로바이더’다. 즉, AWS에 원하는 리소스를 생성 하려 할때 상호작용 ..
[T102 3주차] (9) 테라폼 도전과제 cloudNet@ 팀의 가시다 님이 진행하는 테라폼 102 스터디 2주차 정리입니다. 3주차 내용: 테라폼 기본사용법 (3) + 도전과제 조건문을 활용하여 (각자 편리한) AWS 리소스를 배포하는 코드를 작성해보자! 내장 함수을 활용하여 (각자 편리한) 리소스를 배포하는 코드를 작성해보자! AWS EC2 배포 시 remote-exec/file 프로비저너 혹은 terraform-provider-ansible를 활용하는 코드를 작성해보자! terraform_data 리소스와 trigger_replace 를 사용한 테라폼 코드를 작성해보자! 1. 조건문 활용 AWS 리소스 배포 ami 리소스에 instance type을 조건문을 활용하여 variable 변수를 입력하지 않았을때 자동으로 t2.micro를 입력..
[T102 3주차] (8) 테라폼 기본사용법(3) cloudNet@ 팀의 가시다 님이 진행하는 테라폼 102 스터디 3주차 정리입니다. 3주차 내용: 테라폼 기본사용법 (3) 조건문 함수 프로비저너 (local, remote, file ) null resource와 terraform_data moved 블록 1. 조건문 테라폼에서의 조건식은 3항 연산자 형태를 갖는다. 조건은 true 또는 false로 확인되는 모든 표현식을 사용할 수 있다 비교, 논리 연산자를 사용해 조건을 확인한다 조건식은 (?) 기호를 기준으로 왼쪽은 조건이며, 오른쪽은 : 기호를 기준으로 왼쪽이 조건에 대해 true가 반환되는 경우이고 오른쪽이 false가 반환되는 경우다. # ? : var.a != "" ? var.a : "default-a" ? 기준으로 왼쪽 = 조건 : 기..
[T102 4주차] (11) 테라폼 상태 관리 및 격리 방안 cloudNet@ 팀의 가시다 님이 진행하는 테라폼 102 스터디 4주차 정리입니다. 4주차 내용: 테라폼 상태 및 격리 방안 1. 테라폼 State란? 상태 파일은 배포할 때마다 변경되는 프라이빗 API 로, 오직 테라폼 내부에서 사용하기 위한 것입니다. 상태 파일은 직접 편집하거나 직접 읽는 코드로 작성해서는 안됩니다. ✅ 팀 단위로 테라폼을 관리할 경우 상태 파일을 저장하는 공유 스토리지를 이용 합니다. 각 팀원이 동일한 테라폼 상태 파일 사용을 위해서, 공유 위치에 저장이 필요 하기 때문이죠. ✅ 상태 파일 잠금 ? - 잠금 기능 없이 두 팀원이 동시에 테라폼을 실행 한다면 상태 파일을 동시 업데이트 하기 때문에 충돌 가능 합니다. ( race condition ) ✅ 상태 파일 격리 ? - de..
[T102 2주차] (7) 도전과제 cloudNet@ 팀의 가시다 님이 진행하는 테라폼 102 스터디 2주차 정리입니다. 2주차 내용: 도전과제 5가지 data_block 활용 배포되는 리소스 이름과 참조에 대한 이해 입력 변수를 활용한 리소스 배포 local를 활용해서 리소스를 배포 count, for_each 반복문, for문, dynamic문 을 활용 1번,2번 도전과제 : 해당 링크는 aws_availability_zones의 데이터 소스 링크 페이지이다. 이를 참조하여, 현재 가용영역중 사용가능한 리스트를 뽑아 subnet 리소스에 적용시켜라. data "aws_availability_zones" "available" { state = "available" } terraform apply mzc01-kook@MZC01-KOOK ..
[T102 2주차] (6) 테라폼 반복문 cloudNet@ 팀의 가시다 님이 진행하는 테라폼 102 스터디 2주차 정리입니다. 2주차 내용: 테라폼 반복문 count for_each for dynamic 1. count list 형태의 값 목록이나 Key-Value 형태의 문자열 집합인 데이터가 있는 경우 동일한 내용에 대해 테라폼 구성 정의를 반복적으로 하지 않고 관리할 수 있다. 리소스나 모듈을 반복적으로 만든다. 5개의 파일이 생성되어야 하지만 파일명이 동일하여 결과적으로 하나의 파일만 존재 ← count 사용 시 주의 resource "local_file" "abc" { count = 5 content = "abc" filename = "${path.module}/abc.txt" } output "filecontent" { value =..
[T102 2주차] (5) 테라폼 VPC cloudNet@ 팀의 가시다 님이 진행하는 테라폼 102 스터디 2주차 정리입니다. 2주차 내용: 테라폼 VPC/ASG/ELB VPC 1. VPC VPC는 Virtual Private Cloud의 약자로 AWS 클라우드 내 논리적으로 독립된 섹션을 제공하여, 사용자가 정의한 가상 네트워크상에서 다양한 AWS 리소스를 실행할 수 있게 지원합니다. * 참고* VPC 이전의 AWS 환경은 어땟을까요? EC2 Classic Network 라는 이름으로 존재했답니다. 1. Public Cloud Service : 인터넷을 통해서만 서비스 2. 다른 고객과 공유하는 단일 일반 네트워크에서 인스턴스를 실행 독립된 가상의 클라우드 네트워크 하나의 계정에 여러개의 VPC 생성 가능 단일 리전에 여러개 VPC 생성 가능..