콘텐츠로 이동

Terraform

Terraform AWS IAM

IAM User


  1. IAM 작업 디렉터리를 생성합니다

    mkdir iam
    cd iam
    
  2. 이제 자연스럽게 provider를 먼저 생성합니다

    다만 IAM서비스는 리전에 종속되는 서비스가 아닌 만큼 아무 리전이나 지정해도 됩니다

    vi provider.tf
    
    provider.tf
    provider "aws"{
            region = "ap-northeast-2"
    }
    

Terraform Backend

목표


  • Terraform의 Backend 기능을 이용해 state파일을 안전하게 관리해봅니다.
  • .tfstate를 로컬이 아닌 S3에 저장하고 DynamoDB를 이용해 파일을 Locking합니다
  • Backend를 이용함에 따른 이점

    • Locking

      협업시 원격 저장소를 사용하여 여러명이 동시에 같은 state 접근하는것을 막습니다

    • Backup

      원격저장소에 저장함으로써 데이터 유실을 방지합니다. 특히 S3에 저장하는 방법은 버전관리가 가능한 편리하고 안전한 방법입니다.

Terraform Practice

  • EC2에 SSH 접속을 위한 키페어 생성

    1. 비밀키를 생성합니다
    ssh-keygen -t rsa -b 2048 -f ~/dotoryeee.pem -q -N ""
    
    1. pem을 사용하려면 권한을 수정해야 합니다
    chmod 400 ~/dotoryeee.pem
    
    1. AWS에 넘겨줄 공개키를 생성합니다
    ssh-keygen -y -f ~/dotoryeee.pem > ~/dotoryeee.pub
    

Terraform deploy VPC

목표


  • 서브넷이 public인지 private인지 결정하는 것은 IGW유무입니다
  • terraform을 이용해 IGW와 NAT Gateway를 생성봅니다
  • 네트워크 트래픽의 Destination을 알려주는, 이정표 역할을 하는 라우팅 테이블을 작성합니다
  • 라우트테이블은 생성 후 association(=매핑)을 진행합니다. Terraform으로 이를 구현해봅니다