By production-grade infrastructure 란? 서버, 로드 밸런서, 보안 기능, 모니터링 및 경고 도구, 파이프라인 구축 및 비즈니스 운영에 필요한 기타 모든 기술들이 유기적으로 결합된 구조 이중화 및 장애 대응이 가능한 인프라 전체 아키텍처를 프로덕션 수준의 인프라로 구성하기 위해선 규모에 따라 대략적으로 6~36...
Terraform Study(T101) - Production-level Terraform code
Terraform Study(T101) - Managing Secrets with Terraform
Secret Management Basics 배포 과정에서 민감 정보 (DB암호, API 키, TLS인증서, SSH키, GPG 키 등)를 안전하게 관리가 필요하며 절대 민감 정보를 평문으로 저장해서는 안됩니다. 테라폼에서 민감 정보가 노출되는 부분과 이를 어떻게 보완해야하는지 확인해봅니다. 민감 정보의 종류 Personal secrets ...
Terraform Study(T101) - 조건문(Conditional Statement)
반복문과 조건문을 같이 사용하는 CASE 테라폼에서 사용할 수 있는 조건문의 구성은 아래와 같습니다. count parameter : 조건부 리소스에서 사용 for_each, for expressions : 리소스 내의 조건부 리소스 및 인라인 블록에서 사용 if string directive(문자열 지시어) : 문자열 내 조건문에 사...
Terraform Study(T101) - 반복문(iteration Statement)
반복문의 종류 테라폼에서 제공하는 반복문의 종류는 아래와 같습니다. count parameter for_each expressions for expressions for string directive(문자열 지시어) count count 만큼 리소스와 모듈 실행을 반복합니다. 실습 1 - IAM 유저 생성하기 아래 코드...
Terraform Study(T101) - Terraform Module
Terraform Module 모듈은 하나의 디렉토리 내 .tf파일로 구성된 파일 모음이며 여러 테라폼 리소스를 하나의 논리적 그룹으로 관리하는 방법입니다. 루트 모듈(Root Module) 현재 작업 디렉터리 내 테라폼 코드 모음 차일드 모듈(Child Module) 다른 모듈의 테라폼 코드 내에...
최신 AMI로 자동 교체되는 Launch Template 구성하기
구성 배경 기존에는 앱푸시, 라이브 방송 등의 이벤트로 인한 트래픽 증가가 예상되는 경우 WEB 인스턴스 타입을 Scale-up / down 하는 방식으로 대응해왔습니다. 하지만 위 방법은 로드밸런서에서 인스턴스를 분리하고 재시작 하는 과정이 필요해서 번거롭고, 비용적인 측면에서도 효율적이지 않았습니다. 이후 이벤트가 시간 단위로 반복해서 발생하게 ...
Terraform Study(T101) - Terraform에서 민감 정보를 다루는 방법
Terraform Variable sensitive option RDS에 접근하기 위해서는 사용자명과 비밀번호가 필요합니다. 일반적으로 사용자명과 비밀번호는 민감한 정보이며 외부에 공개되어서는 안됩니다. Terraform에서는 이를 위해 기본적으로 변수에 sensitive 옵션을 지원합니다. 이전 ‘Terraform 상태 파일을 격리하는 방법’ ...
Terraform Study(T101) - Terraform 상태 파일을 격리하는 방법
작업 공간(Workspace)을 통한 격리 Terraform에서는 상태를 구분하여 저장할 수 있는 작업 공간을 제공합니다. 별도로 작업 공간을 설정하지 않았다면 기본적으로 default 작업 공간을 사용합니다. terraform workspace 명령어를 사용하여 새로운 작업 공간을 생성하거나 전환할 수 있습니다. Workspace 특징 ...
Terraform Study(T101) - Terraform 상태 관리하기
Terraform State 란 Terraform은 인프라 구성에 대한 상태를 파일 형태로 저장해야 합니다. 상태파일은 코드로 정의한 리소스가 실제 리소스로 매핑될 수 있도록 JSON 형식으로 기록됩니다. 상태 파일은 배포할 때마다 변경되는 프라이빗 API로, 오직 테라폼 내부에서 사용하기 위한 것입니다. 따라서 테라폼 상태 파일을 직접 편집하는 ...
Terraform Study(T101) - Terraform DataSources
Terraform Data Sources 란 Data Source를 사용하면 Terraform으로 구성되지 않은 리소스 또는 다른 Terraform Code를 통해 생성된 리소스의 데이터를 가져올 수 있습니다. AWS의 경우 VPC, subnet, AMI IDs, IP address ranges, user’s identity 등의 데이터를 제공합니...