DevOps/AWS Architecture

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 HCL resource와 data

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 HCL resource와 data

    https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance Terraform Registry registry.terraform.io 우선 위 공식문서를 기반으로 aws ec2인스턴스를 테라폼으로 생성하고 이미지를 Data Resource으로 받아와서 생성해 보는 작업까지 해보겠습니다. /main.tf provider "aws" { region = "ap-northeast-2" } data "aws_ami" "ubuntu" { most_recent = true filter { name = "name" values = ["ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server..

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 HCL 기초 문법

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 HCL 기초 문법

    우선 기본적인 HCL문법의 형태에 대해 알아보겠습니다. https://www.terraform.io/language Overview - Configuration Language | Terraform by HashiCorp You can use the Terraform language to write configuration files that tell Terraform how to manage a collection of infrastructure. www.terraform.io 다음과 같은 형태를 뜨게 됩니다. Block Type에 따라서 Label이 몇개 올지 결정됩니다. 그리고 그 안에는 Identifier와 expression이 key-value쌍으로 들어갈 수 있게 됩니다. 여기서 테라폼 코드를..

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 다루어보기

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 다루어보기

    테라폼에서 Worksspace란 한 프로젝트 단위를 말합니다. 기본적으로 조직의 규모에 따라 서비스가 소규모이다 보니까, 인프라의 규모도 작습니다. 그래서 하나의 워크스페이스에서 모든 인프라를 관리할 수 있습니다. 하지만 조직의 규모가 커지게 되면 infra라는 워크스페이스가 (network, account, domain, service-a ...)와 같이 나누어 질 수 있게 됩니다. 그리고 테라폼은 변경사항을 추적할 수 있게 됩니다. 이를 위해 상태 관리를 하게 됩니다. 상태관리를 하게되면 .terraform.tfstate라는 파일로 관리하게 됩니다. 이는 워크스페이스 단위로 관리합니다. 이제 본격적으로 실습을 위한 워크 스페이스를 만들어보도록 하겠습니다. 실습 https://registry.terra..

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 소개

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 소개

    우선 테라폼의 가장 기본적인 3가지 절차입니다 Write -> Plan -> Apply입니다. Write과정에서는 해당 인프라 코드를 작성하고, Plan단계에서는 해당 인프라를 검증하고, Apply단계에서는 검증된 결과를 바탕으로 실제 인프라에 반영하게 됩니다. Write Write과정에서는 오른쪽과 같이 HCL코드를 통해 간결하게 인프라를 정의할 수 있습니다. 오른쪽 경우는 aws infra를 만든 예시입니다. Plan terraform plan을 통해서 검증을 하게되는데, 아래 결과를 보면 1개가 추가되고, 0개가 변하고 0개가 없어진다는 것입니다. 그리고 과정중에 +을 통해 추가되는 인프라의 상세정보도 확인할 수 있습니다. Apply Apply는 이제 검증된 결과를 바탕으로 실제 인프라에 적용하는..