가상 컨테이너 기술로 여러개의 서버, 컨테이너들을 띄워 서비스를 한다.
하지만 여러개의 서버, 컨테이너가 생긴다는 말은 여러개의 컨테이너를 관리해야한다는 뜻과 같다.
이를 자동화하는 여러 프로그램중 하나이다.
Infrastructure as Code == 코드로 인프라 스트럭처를 관리한다.
크게
1. Declarative IaC - Terrafrom 등
2. Imperative IaC - Ansible 등
3. HybridIaC - Puppet 등
가 있다
그중 Terrafrom은 Declarative 도구로 자원을 생성 및 구성한다.
작성한 코드로 자동으로 생성 하고 이를 통해 속도와 안전성을 얻을 수 있다.
코드로 작성되기 때문에 자동으로 문서화 가 가능하고 코드이기 때문에 형상관리(GIT) 또한 가능하다. 또한 테스트 도 지원한다.
자세한건 추후 검색하는것으로 한다.
이를 설치해야 한다. 우리가 웹에서 누르는건 내부 API를 웹으로 호출하는거고(콘솔 이용) 코드로 호출할려면 CLI로 호출하는 방식을 사용한다.
CLI에서는 로그인을 위해 AccessKey 방식을 이용한다.(해킹의 위험)
IAM >> 사용자 >> 보안 자격 증명으로 들어간다. 여러 방식이 있고 그중 액세스 키를 사용한다.
(다른 방식도 가능한듯)
크게 액세스 키 비밀 액세스 키를 준다.
액세스키는 크게 2개까지 사용 가능하다
이후 aws configure
을 이용하여 acceesskey, secretkey를 등록한다,
이는 aws configure list
를 통해 확인가능하다.
강의에서는 aws s3 ls
를 입력했을때 아무것도 안나오면 성공이라고 한다.
아마 S3 버킷 리스트를 뽑는것 같은데 생성한게 없으면 안나오는게 정상이니 그런것 같다.
Terraform 같은 도구는 CLI를 이용하여 설정을 한다
따라서 이를 위해 CLI 툴을 설치하고 로그인을 한다.
이를 위해서 AccessKey를 발급받아 이용한다
terraform 을 설치한다
386은 i386으로 32비트이고 amd64는 64비트이다(참고)
어차피 요즘컴터는 거의 64비트이다. cpu 보고 참고해서 설치.
윈도우의 경우 환경변수도 설정해줘야 한다.
terraform 명령어
1. terraform init: 필요한 라이브러리 가져오기, npm -i
2. terraform plan: 적용 가능한지 여부 확인
3. terraform apply: 적용
terraform {
// 자바의 import 와 비슷함
// aws 라이브러리 불러옴
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.0"
}
}
}
# Configure the AWS Provider
provider "aws" {
region = "ap-northeast-2"
}
resource "aws_vpc" "example" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "example"
}
}
vpc를 만들어보는 예제 코드이다.
apply를 하면 실제 vpc가 생성되고, destroy를 통해 삭제 가능하다.
아래는 삭제를 하는 모습이다.