terraform 50

테라폼으로 EKS만들기 프로젝트 3-3편 - 테라폼 버전 설정

영상: https://youtu.be/9Kt-m7_5g58 테라폼 버전마다 테라폼 동작이 다릅니다. 다른 사람과 협업 시 서로 다른 테라폼 버전을 사용하면, 예상치 못한 장애가 발생할 수 있습니다. 그러므로 테라폼 코드에 버전을 명시하는 것이 좋습니다. 테라폼 버전은 terraform block에서 설정합니다. 아래 예제는 테라폼 1.4버전 이상만 실행하도록 설정했습니다. terraform { required_version = ">= 1.4" } 테라폼 1.4버전 아래인 0.13버전을 사용하면, 테라폼 명령어 실행시 오류가 발생합니다.

연재 시리즈 2023.06.27

테라폼으로 EKS만들기 프로젝트 3-2편 - 테라폼 동작원리

이 글은 테라폼이 어떻게 동작하는지 설명합니다. 3편에서 실행했던 hello world예제를 참고합니다. ▶ 테라폼 동작원리 유투브 영상: https://youtu.be/47FJVP437nk 1. 동작원리 테라폼은 코드를 읽어 코드가 실행가능한지 분석합니다. 이 후, 대상에서 지원하는 API를 사용하여 코드를 대상에 반영합니다. 테라폼 내부(아키텍처)는 테라폼 공식문서에서 설명합니다. 테라폼은 코어와 플러그인으로 구성되어 있습니다. ① 코어는 테라폼 코드를 읽어 코드 문법검사와 실행 순서를 결정합니다. 실행 순서 형태를 리소스 종속성 그래프(resource dependency graph)라고 부릅니다. ② 코어는 테라폼 코드 실행을 플러그인에게 요청합니다. ③ 플러그인은 provider 설정을 읽어 적절..

연재 시리즈 2023.06.24

테라폼으로 EKS만들기 프로젝트 3-1편 - helloworld

이 글은 테라폼을 어떻게 실행하는지 체험합니다. 영상: https://youtu.be/-1OQ_lb3x0k 1. 예제코드 다운로드 예제 코드는 git repo에 공개되어 있습니다. helloworld 폴더가 이번 챕터 예제 코드입니다. git clone https://github.com/choisungwook/terraform_practice.git example cd example cd helloworld 2. 테라폼 초기화 테라폼 코드를 실행하기 위해 초기화 과정이 필요합니다. 초기화 과정은 테라폼 코드가 사용하는 모듈을 다운로드 받습니다. terraform init 3. 테라폼 실행결과 미리보기 테라폼 코드가 실행되면 어떻게 대상에 적용되는지 예상결과를 볼 수 있습니다. terraform plan명..

연재 시리즈 2023.06.18

테라폼으로 EKS만들기 프로젝트 2편 - 테라폼과 코드에디터 설치

이 글은 테라폼 설치화 테라폼 코드 작성을 위한 코드 편집기 설치 과정을 설명합니다. 1. 테라폼 설치 테라폼은 윈도우, 리눅스, 맥에서 사용가능합니다. 이 글은 윈도우 운영체제 WSL ubuntu 20.04LTS에서 테라폼 설치 방법을 설명합니다. 그러므로 WSL ubuntu 20.04LTS가 이미 설치되어 있어야 합니다. 테라폼 다운로드 페이지를 엽니다. [Linux -> Ubuntu/Debian]메뉴를 클릭하고 다운로드 명령어를 복사합니다. WSL리눅스 쉘에서 다운로드 명령어를 실행합니다. 정상적으로 설치되면 terraform 명령어를 실행할 수 있습니다. 테라폼 버전은 아래 명령어로 확인합니다. 23년 6월 기준으로 v.1.5.0이 최신버전입니다. terraform -version 2. 코드에디터..

연재 시리즈 2023.06.18

테라폼으로 EKS만들기 프로젝트 1편 - 개요

EKS스터디가 끝나고 EKS 템플릿을 만드는게 좋을 것 같다고 생각했습니다. 그래서 EKS스터디에서 진행하지 못했던 테라폼을 병행해서 EKS템플릿을 만들기로 생각했습니다. 목표 회사 팀원들도 같이 따라갈 수 있도록 문서작성과 예제생성 테라폼으로 EKS배포 테라폼으로 argocd배포(변경될 수 있음) argocd를 사용하여 bootstrap 쿠버네티스 오픈소스 배포

연재 시리즈 2023.06.18

테라폼 스터디 졸업과제 - kind cluster + argocd

1. 선수지식 이 글은 쿠버네티스 그리고 helm, argocd, minio, argoworkflow, cnpg operator, terraform을 사용할 수 있다는 전제로 설명합니다. 2. 프로젝트 작업분리 프로젝트의 작업은 테라폼파트와 argocd파트로 나눠집니다. 테라폼이 쿠버네티스 필수 리소스와 argocd설치 작업을 관리합니다. argocd는 나머지 쿠버네티스 리소스를 관리합니다. 2.1 테라폼 파트 테라폼 kind provider로 쿠버네티스를 구축합니다. 테라폼 kubectl proivder로 필수 쿠버네티스 리소스를 설치(예: nginx ingress)합니다. 테라폼 helm provider로 argocd를 설치합니다. 2.2 Argocd 파트 argocd를 app of apps패턴을 이..

연재 시리즈 2022.12.11

테라폼 시리즈. 졸업과제 준비

영상: https://youtu.be/4hqu5eagYJQ 1. 아이디어 테라폼 스터디 졸업과제로 할까 고민 중, 요즘 개인공부로 로컬테스트할 때 불편했던 쿠버네티스 구축이 떠올랐습니다. 쿠버네티스 설치와 삭제가 쉬우면서 테스트에 필요한 환경을 자동화해보면 좋지 않을까라는 시작으로 자료조사를 시작했습니다. 2. 자료조사 2.1 쿠버네티스 생성 제일 먼저 로컬에서 설치할 수 있는 쿠버네티스 오픈소스를 찾았습니다. kubespray rancher desktop docker desktop kind 2.2 후보선택: kind 후보 중 kind가 설치와 삭제가 제일 간편하고 시간도 안걸려서 kind 공식문서를 훓어봤습니다. kind는 쿠버네티스 노드를 도커 컨테이너로 사용하는 독특한 오픈소스였습니다. 그리고 In..

연재 시리즈 2022.12.04

테라폼 시리즈 35편. 중앙 집중식 비밀저장소와 테라폼 연동

영상: https://youtu.be/IM8Xdx9-wGk 테라폼 코드에 불가피하게 민감정보를 작성해야 하는 경우, 중앙 집중식 비밀 저장소(aws Secret Manager, Valut 등)를 사용하여 민감정보 노출을 최소화 할 수 있습니다. 중앙 집중식 비밀 저장소란? 중앙 집중식 비밀 저장소는 민감정보를 안전하게 저장하는 저장소입니다. 운영자가 민감정보를 저장소에 저장하면 사용자는 저장소에 접근하여 민감정보를 조회합니다. 테라폼 연동 테라폼에서는 data block으로 중앙 집중식 비밀 저장소에 저장된 민감정보를 조회할 수 있습니다. 예제 - aws secret manager aws secret manager를 이용하여 aws RDS 계정과 비밀번호를 설정하는 예제를 실습하겠습니다. 먼저 secre..

연재 시리즈 2022.11.26