✔️DevOps 15

[(IaC)Terraform] Terraform Variables 활용하기

Terraform은 HCL 문법을 가진 언어로, 변수를 정의하고 주입해서 사용할 수 있다. 지원하는 type들은 www.terraform.io/docs/language/values/variables.html에서 확인 할 수 있다. 1. Variables를 사용하는 이유 일반적으로 코드작업을 할 때 변수를 사용하는 것처럼 매번 변수 대신 해당하는 값을 직접 적어주면 너무 불편하다. 게다가 여러 서비스가 연결되어 작동하는 인프라인 경우 변수가 매우 편리하다. 2. 변수 정의하기 해당 인프라 코드, 즉 .tf 파일 어디서나 변수를 정의할 수는 있지만 보통 variables.tf 파일을 따로 만들어 그 파일에 정의하는게 편하다. variable ["변수명"] { type = [타입] default = [defa..

Dev/DevOps, Infra 2021.05.10

[(IaC)Terraform] Terraform Backend 활용하기

[AWS][Network][(IaC)Terraform] AWS Network의 구성 요소와 생성처럼 terraform apply를 하는 경우, 리소스가 생성된 후 terraform.tfstate 파일이 생성된다. 이 파일의 내용(terraform metadata; terraform knows what infrastructure it controls)이 terraform state이다. 즉, 내가 실행한 apply의 결과를 저장해놓은 상태이다. (여기서 상태란 terraform apply를 했을 시점의 상태이지, 현재 인프라의 상태를 반영해주는 것은 아니다. ) 이 state는 backend에도 저장 될 수 있다. backend가 뭐지?? 그리고 이는 어떻게 활용되고 왜 사용될까? 어떻게 쓰는걸까? 1. ..

Dev/DevOps, Infra 2021.05.09

[AWS][Network][(IaC)Terraform] AWS Network의 구성 요소와 생성

0. Infrastructure as Code 코드로써의 인프라란 인프라를 이루는 서버, 미들웨어 그리고 서비스 등의 인프라 구성요소들을 코드를 통해 구축하는 것이다. 이렇게 코드로 구축하게되면 재사용성, 유지보수 등의 장점을 가진다. 1. AWS VPC AWS VPC(Amazon Virtual Private Cloud)를 사용하면 AWS Cloud에서 논리적으로 격리된 공간을 프로비저닝하여 고객이 정의하는 가상 네트워크에서 AWS 리소스를 시작할 수 있다. 클라우드 위에서 생성한 리소스(EC2, RDS....등)들은 네트워크를 통해 접근하는데, 클라우드 서비스인 AWS는 다양한 고객들이 사용하는 공용공간이다. 즉, 너무 많은 리소스들이 있다. 그리고 이 리소스들에도 하나의 계정에서 생성하는 리소스들만의..

Dev/DevOps, Infra 2021.05.02

[DevOps] CI/CD

DevOps DevOps란 개발(Development)과 운영(Operation)의 합성어로, 개발과 운영을 하나로 합쳐서 일하는 철학, 도구, 환경, 문화 등의 조합을 나타낸다. 개발부터 배포까지 모든 단계에 자동화와 모니터링을 도입해서 더 짧은 개발 주기, 더 많은 배포 빈도, 안정적인 소프트웨어를 배포하자는 목표를 가지고 있다. 위의 설명을 보면 '자동화'와 '모니터링'이 필요한 것 같다. 그래서 데브옵스는 서버 구성, 배포, 테스트에 있는 반복작업을 최대한 자동화하여 배포 리소스를 줄이는 것이 시작이다. 데브옵스를 실천하는 방식은 여러가지가 있고, 그 중 One-Step 빌드와 배포가 있다. 빌드(Build)란 여러 개발자가 개발한 소스 코드 파일을 통합하고, 실제 동작 가능한 독립적인 S/W 변..

Dev/DevOps, Infra 2021.01.15