본문 바로가기

DevOps

(72)
[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 생성 가능..
[T102 2주차] (4) 테라폼 기본 사용법(2) cloudNet@ 팀의 가시다 님이 진행하는 테라폼 102 스터디 2주차 정리입니다. 2주차 내용: 테라폼 기본사용법 data블록이란? variable 변수를 어떻게 사용할까? local 변수? vpc 관련 테라폼 실습을 통해 data블록과 variable 변수를 더 알아보자 data블록 데이터 소스는 테라폼으로 정의되지 않은 외부 리소스 또는 저장된 정보를 테라폼 내에서 참조할 때 사용 소스를 보면서 이해해보자. local_file ( 프로바이더 = 로컬, 리소스 유형 = 파일 ) abc ( 고유한 이름 , 고정된 값인지 아시는분들도 있음!? ) { 구성 인수들 } { 구성인수 안필요해도 } ---> {} data "local_file" "abc" { filename = "${path.module}/a..
[T102 1주차] (3) 테라폼 기본 사용법(1) cloudNet@ 팀의 가시다 님이 진행하는 테라폼 102 스터디 1주차 정리입니다. 1주차 내용: 테라폼 HCL 분석 1. 테라폼 HCL HCL이란? hashiCorp Configuration Language은 하시코프사에서 IaC와 구성 정보를 명시하기 위해 개발된 오픈 소스 도구이다 HCL 특징 ? 선언적 특성을 가지며, 튜링-complete한 언어적 특성을 갖는다. 튜링 complete란? 어떤 프로그래밍 언어나 추상 기계가 튜링 기계와 동일한 계산 능력을 가진다는 의미이다. 즉, 그안에서 프로그래밍 언어와 같이 조건문,for문,while 등 자동화에 필요한 동작들이 가능하다. 자동화와 더불어, 쉽게 버저닝해 히스토리를 관리하고 함께 작업 할 수 있는 기반을 제공. ( SCM과 연계 가능 ) 예시..