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
도커 튜토리얼 ► https://bit.ly/3iAT9Jx
AWS 자습서 ► https://bit.ly/3iAT9Jx

좋은 웹페이지 즐겨찾기