Terraform을 사용한 AWS 자동화

테라폼이란?



HashiCorp Terraform은 DevOps 엔지니어가 애플리케이션을 실행하는 데 필요한 물리적 리소스를 프로그래밍 방식으로 프로비저닝할 수 있게 해주는 오픈 소스 코드형 인프라(IaC) 소프트웨어 도구입니다. 코드형 인프라는 프로그래밍을 통해 애플리케이션의 기본 IT 인프라를 관리하는 IT 사례입니다.

AWS 자동화란 무엇입니까?



AWS Systems Manager의 기능인 자동화는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 및 기타 AWS 리소스의 일반적인 유지 관리 및 배포 작업을 간소화합니다. ... 인스턴스 및 AWS 리소스를 구성하고 관리하는 자동화를 구축합니다.
Here is the full tutorial video (Concept + Demo) based on AWS Automation using Terraform👇👇

리소스: aws_launch_configuration



자동 확장 그룹에 사용되는 새 시작 구성을 생성하기 위한 리소스를 제공합니다.

사용 예



data "aws_ami" "ubuntu" {
  most_recent = true

  filter {
    name   = "name"
    values = ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"]
  }

  filter {
    name   = "virtualization-type"
    values = ["hvm"]
  }

  owners = ["099720109477"] # Canonical
}

resource "aws_launch_configuration" "as_conf" {
  name          = "web_config"
  image_id      = data.aws_ami.ubuntu.id
  instance_type = "t2.micro"
}

AutoScaling 그룹과 함께 사용



시작 구성은 Amazon Web Service API로 만든 후에는 업데이트할 수 없습니다. 시작 구성을 업데이트하기 위해 Terraform은 기존 리소스를 삭제하고 대체 리소스를 생성합니다. AutoScaling Group 리소스와 함께 Launch Configuration 리소스를 효과적으로 사용하려면 수명 주기 블록에 create_before_destroy를 지정하는 것이 좋습니다. 시작 구성 이름 속성을 생략하거나 name_prefix로 부분 이름을 지정하십시오. 예시:

data "aws_ami" "ubuntu" {
  most_recent = true

  filter {
    name   = "name"
    values = ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"]
  }

  filter {
    name   = "virtualization-type"
    values = ["hvm"]
  }

  owners = ["099720109477"] # Canonical
}

resource "aws_launch_configuration" "as_conf" {
  name_prefix   = "terraform-lc-example-"
  image_id      = data.aws_ami.ubuntu.id
  instance_type = "t2.micro"

  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_autoscaling_group" "bar" {
  name                 = "terraform-asg-example"
  launch_configuration = aws_launch_configuration.as_conf.name
  min_size             = 1
  max_size             = 2

  lifecycle {
    create_before_destroy = true
  }
}


이 설정을 통해 Terraform은 시작 구성에 대한 고유한 이름을 생성한 다음 이전 시작 구성을 삭제하기 전에 충돌 없이 AutoScaling 그룹을 업데이트할 수 있습니다.


⛺⛰⛺⛰더 많은 정보를 원하십니까? ⛏⛰⛰⛰
전체 Terraform 자습서 ► https://bit.ly/2GwK8V2
Ansible과 같은 DevOps 도구 ► https://bit.ly/3iASHuP
Docker 자습서 ► https://bit.ly/3iAT9Jx
AWS 자습서 ► https://bit.ly/3iAT9Jx

좋은 웹페이지 즐겨찾기