DevOps BootCamp/Iac 7

Git Action + Terraform을 통한 자동화

Summary 테라폼을 이용하여 인프라를 관리할 수 있다. aws의 s3, dynamodb를 이용하여 테라폼 백엔드를 구축하여 비용 효율적으로 tfstate를 관리한다. GitOps를 활용하여 인프라 프로비저닝을 자동화 할 수 있다. GitOps란? GitOps는 클라우드 네이티브 애플리케이션을 위한 지속적인 배포를 구현하는 방법입니다. GitOps의 핵심 아이디어는 현재 프로덕션 환경에서 원하는 인프라에 대한 선언적 설명을 항상 포함하는 Git 저장소와 프로덕션 환경이 저장소의 설명된 상태와 일치하도록 하는 자동화된 프로세스를 갖는 것 입니다. 새 응용 프로그램을 배포하거나 기존 응용 프로그램을 업데이트하려는 경우 저장소만 업데이트하면 됩니다. 출처 - https://s-core.co.kr/insigh..

DevOps BootCamp/Iac 2023.08.15

Terraform module 사용 방법

테라폼 모듈 사용 방법 ● 테라폼 디렉터리 하위에 module로 쓰기 위한 디렉터리 생성 ● 테라폼 모듈이 위치한 경로를 상대 경로로 지정해서 이용할 수 있다. module "mission_link_db" { source = "./modules/database" } ● 테라폼 각 모듈에 있는 자원을 output로 받아와서 다른 모듈에 사용할 수 있다. # modules/vpc/outputs.tf output "vpc_id" { value = aws_vpc.mission_link_vpc.id } ● 테라폼 outputs.tf 파일에 있는 자원을 사용하기 위해 variables.tf 작성 # modules/database/variables.tf variable "vpc_id_db" { description ..

DevOps BootCamp/Iac 2023.07.04

Terraform x AWS - Iac를 이용한 인프라 구축

Terraform 작성: 공식 문서 Terraform Registry registry.terraform.io STEP 1: 자습서: DB 인스턴스에 사용할 Amazon VPC 생성 자습서: DB 인스턴스에 사용할 Amazon VPC 생성(IPv4 전용) - Amazon Relational Database Service Amazon RDS에서는 다중 AZ DB 인스턴스 배포를 지원하려면 서로 다른 두 가용 영역에 있는 Amazon RDS가 필요합니다. 이 자습서에서는 단일 AZ 배포를 생성하지만 요구 사항에 따라 향후 다중 AZ DB 인스 docs.aws.amazon.com 0. Terraform을 실행 시키기위한 요구사항 작성 1. VPC 생성 2. Subnet 생성 subnet.tf 파일을 만들고 pu..

DevOps BootCamp/Iac 2023.05.17

Terraform x AWS

IaC 코드를 작성하려면 먼저 AWS Management Console을 이용해 먼저 최종 인프라 상태를 만들어놓고, 잘 작동하는지 확인한 다음, 이를 해당하는 리소스를 하나씩 코드로 옮기는 방법을 사용하는 방식을 사용해 보면 좋음 먼저 AWS Management Console을 통해 최종 결과물을 따라해보고, 예상 상태가 무엇인지 먼저 파악해야 함 STEP 1: 자습서: DB 인스턴스에 사용할 Amazon VPC 생성 자습서: DB 인스턴스에 사용할 Amazon VPC 생성(IPv4 전용) - Amazon Relational Database Service Amazon RDS에서는 다중 AZ DB 인스턴스 배포를 지원하려면 서로 다른 두 가용 영역에 있는 Amazon RDS가 필요합니다. 이 자습서에서는..

DevOps BootCamp/Iac 2023.05.16

Terraform 기본 명령어

디렉터리 초기화 새 구성을 생성하거나 버전 제어에서 기존 구성을 체크아웃할 때, > terraform init > Terraform은 aws공급자를 다운로드하여 현재 작업 디렉토리의 숨겨진 하위 디렉토리인 에 설치 -> .terraform > 사용된 정확한 공급자 버전을 지정하는 이름의 잠금 파일을 생성하므로 .terraform.lock.hcl프로젝트에 사용되는 공급자를 업데이트하려는 시기를 제어할 수 있음 가독성과 일관성을 위해 현재 디렉터리의 구성을 자동으로 업데이트 > terraform fmt 구성이 구문적으로 유효하고 내부적으로 일관성이 있는지 확인 > terraform validate 인프라 만들기 > terraform apply 상태 검사 > 상태 파일을 안전하게 저장하고 인프라를 관리해야 하..

DevOps BootCamp/Iac 2023.05.12

Infrastructure as Code (코드형 인프라)

IaC의 의미와 필요성 다음을 가정해 보자 인프라를 완전히 다른 리전에 똑같이 복제하고 싶을 경우 특히, 해당 리전이 갑자기 사용할 수 없는 상황에 직면했을 경우 기존과는 다른 새로운 아키텍처를 빠른 시간 내에서 적용해야 할 경우 수동 설정의 한계 수동설정은 쉽게 서비스를 제공하고, 아키텍처를 빠르게 실험해 볼 수 있다는 점에서 유리하지만, 많은 단점도 가지고 있음 휴먼 에러 때문에 서비스를 설정할 때에 잘못 설정하기 쉬움 설정을 통해 예측되는 상태를 관리하기 어려움 환경 설정에 대한 내용을 다른 팀 멤버에 전달하기 어려움 IaC DevOps의 주요 가치 중 하나는 바로 자동화임 코드형 인프라(Infrastructure as Code), 즉 IaC는 설정을 코드로 작성하여 클라우드 인프라스트럭처의 생성/..

DevOps BootCamp/Iac 2023.05.12

Research & Presentation

가변적(mutable) 인프라와 불변적(immutable) 인프라의 차이는 무엇인가요? 가변적(mutable) 인프라: 가변적(mutable) 인프라는 변화 가능한 인프라를 의미합니다. 서버, 네트워크 및 스토리지와 같은 인프라 자원을 변경할 수 있습니다. 예를 들어, 새로운 패치를 적용하거나 구성 변경을 수행할 수 있습니다. 가변적(mutable) 인프라는 높은 유연성과 적응성을 제공하지만, 변경이 잘못되면 시스템 전체에 영향을 줄 수 있습니다. 불변적(immutable) 인프라: 불변적(immutable) 인프라는 변경 불가능한 인프라를 의미합니다. 서버, 네트워크 및 스토리지와 같은 인프라 자원을 변경할 수 없으며, 변경이 필요한 경우 새로운 인프라 자원을 만들어야 합니다. 예를 들어, 컨테이너를 ..

DevOps BootCamp/Iac 2023.05.12