공부하면서/Terraform

[T1012] 1주차 - 테라폼 기본 사용 1/2 (환경구성)

omelette master 2023. 7. 6. 14:48
해당 내용은 T1012 스터디에 나온 내용과 '테라폼으로 시작하는 IaC' 책을 기준으로 정리 했습니다

[1. 개요]

  • 첫 스터디 참여
  • 테라폼 설치와, 기본 사용에 대하여 정리

[2. 사전준비]

실행환경
Windows 10 pro
WSL2 (Ubuntu-20.04)

  • (VSCODE 플러그인) HashiCorp Terraform

  • (VSCODE 플러그인) graphviz

  • Route53 (옵션, 가비아에 이미 사둔게 있어서 Route53에 등록 진행)

[WSL 구성]

  1. tfenv
  2. aws CLI
  3. tree, jq install

[tfenv 설치]

$ git clone --depth=1 https://github.com/tfutils/tfenv.git ~/.tfenv
$ echo 'export PATH=$PATH:$HOME/.tfenv/bin' >> ~/.bashrc
$ ln -s ~/.tfenv/bin/* /usr/local/bin

[tfenv 간단 사용법]

tfenv list (설치된 버전 확인)
tfenv list-remote (사용 가능한 terraform 버전 리스트)
tfenv install [특정 버전] (최신버전 설치, 특정 버전 설치)
tfenv use [버전] (특정 버전으로 전환)

[AWS CLI 설치]

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

[AWS CLI 버전 확인]

kkyoung@DESKTOP-26MI22N:~$ aws --version
aws-cli/2.12.6 Python/3.11.4 Linux/5.10.16.3-microsoft-standard-WSL2 exe/x86_64.ubuntu.20 prompt/off

[AWS CLI 셋팅]

IAM 생성 후 "보안 자격 증명 - 액세스 키 만들기 - Command Line Interface(CLI)" 를 통해 만든 Key를 등록 합니다.

cat ~/.aws/credentials
---
[default]
aws_access_key_id = ****************AIRV
aws_secret_access_key = ****************BLK4
---

cat ~/.aws/config
---
[default]
region = ap-northeast-2
output = json
---

kkyoung@DESKTOP-26MI22N:~$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************AIRV shared-credentials-file
secret_key     ****************BLK4 shared-credentials-file
    region           ap-northeast-2      config-file    ~/.aws/config

[tree, jq 패키지 설치]

tree 패키지는 디렉터리 구조를 보기좋게 표현해주는 패키지

# 설치
sudo apt install -y tree

kkyoung@DESKTOP-26MI22N:~$ tree
.
├── awscliv2.zip
└── study
    └── t101
        └── terraform-basic
            ├── 3-1.tf
            ├── 3-10.tf
            ...
# 설치
sudo apt install -y jq

# 예시
echo '{"foo" : "bar"}'

echo '{"foo" : "bar"}' | jq
{
  "foo": "bar"
}