DevOps/AWS Architecture

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

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

    저번 강의에 이어서 Terraform의 상태와 관련된 명령어들을 간단히 알아보도록 하겠습니다. $ terraform state list 지금 terraform work-space가 관리중인 리소스 목록을 확인할 수 있습니다. $ terraform state show aws_iam_group.developer 그리고 show를 통해서 해당 리소스를 코드의 형태로 확인할 수도 있습니다. 그 다음에는 mv명령어를 알아보기 위해, 테라폼 코드를 리팩토링하는 과정을 거쳐보도록 하겠습니다. /main.tf # terraform { # backend "s3" { # bucket = "hyunseo-devops-terraform" # key = "s3-backend/terraform.tfstate" # region =..

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 상태 저장소(Backend)

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 상태 저장소(Backend)

    local State는 우리가 이전에 사용했던 terraform.tfstate라는 파일을 활용하는 것입니다. 이 반면에 remote state는 상태를 원격 저장소에 저장하는 경우를 말합니다. 그리고 이를 저장해 주기 위한 것이 Terraform Backend(State Storage)라고 합니다. 이 종류에는 Local, Remote, AWS S3 Backend등이 있습니다. 여기서는 간단히 S3, Remote Backend(Terraform Cloud)를 알아보겠습니다. 그리고 리모트 백엔드를 고를 떄 고려를 해야할 것이 Locking입니다. Locking은 Terraform상태 파일을 원격에 놓았을 때 여러 작업자들 사이에서 작업이 일어날 떄 발생하는 문제를 말합니다. S1 -> S2 -> S3라는..

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 HCL 반복문 (For)

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 HCL 반복문 (For)

    저번강의에서는 count랑 for_each에 대해 알아보았었습니다. 이 둘은 module, resource, data에서 사용 가능한 특수한 속성이였습니다. 하지만 이는 테라폼의 모든 곳에서 활용 가능합니다. https://www.terraform.io/language/expressions/for For Expressions - Configuration Language | Terraform by HashiCorp For expressions transform complex input values into complex output values. Learn how to filter inputs and how to group results. www.terraform.io 위 공식문서를 기준으로 실습을 진행해..

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 HCL 조건문 (Conditional)

    [ DevOps ] - (테라폼을 이용한 인프라 관리) 테라폼 HCL 조건문 (Conditional)

    우선 간단히 terraform에서 조건문을 쓰는 방법에 대해 알아보겠습니다. /main.tf provider "aws" { region = "ap-northeast-2" } /** * Conditional Expression * Conditional ? If_True : If_False */ variable "is_john" { type = bool default = true } locals { message = var.is_john ? "Hello John!" : "Hello!" } output "message" { value = local.message } 이 코드의 의미는 원래의 프로그래밍 언어와 같습니다. variable인 is_john이 true이면 "Hello John!"이 출력되고, fals..