Terraform 기초 실습 스터디를 진행하고 있으며, 커리큘럼 1주차에 해당하는 내용입니다.
* [테라폼으로 시작하는 IaC] 도서 참조
이전 포스팅에서 작성한 테라폼 제공 유형 중 On-premise 에 해당하는 작업자 환경에서의 로컬 작업 환경을 구성해보자.
테라폼을 설치하기 전, 리눅스 사용자 환경 구성 세팅이 선작업되어 있어야 한다. (etc.macOS, 윈도우)
로컬에서 리눅스 환경 구성을 위해 WSL2 환경을 먼저 세팅하겠다.
WSL2 (Windows Subsystem for Linux) 환경 세팅
1. WSL 설치
WSL 설치를 위해서 다음과 같이 설정한다.
'제어판 > 프로그램 > 프로그램 및 기능 > Windows 기능 켜기/끄기' 에서, Linux용 Windows 하위 시스템의 체크박스를 활성화한다.
(활성화 및 확인을 누르면, 환경 세팅을 위해 윈도우 재부팅이 된다.)
2. Linux OS 설치
이후 Microsoft Store 에서 linux 를 검색하여, 원하는 배포판을 설치하면 된다.
내 로컬 환경에는 Ubuntu 22.04.3 LTS 가 기존 설치되어있는 상태이다.
(설치가 진행되는 도중 사용자 계정을 입력하라고 하는데, 원하는 계정으로 세팅하면 된다.)
3. WSL2 설치
WSL2 는 WSL 설치 후, 업그레이드를 통해 세팅할 수 있다.
WSL2를 설치하기에 앞서, '제어판 > 프로그램 > 프로그램 및 기능 > Windows 기능 켜기/끄기' 에서 가상 머신 플랫폼 의 체크박스를 활성화한다. (활성화 및 확인을 누르면, 환경 세팅을 위해 윈도우 재부팅이 된다.)
아래 링크를 클릭하여 리눅스 커널 업데이트 패키지를 설치하자.
x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지
설치가 완료되면, Windows PowerShell 을 관리자 권한 으로 실행하고, wsl -l -v 으로 wsl 설치 버전과 상태를 확인할 수 있다.
내 로컬 환경에는 이미 WSL2로 세팅되어 있는 상태라, VERSION 이 2로 확인된다.
(업그레이드 전이라면 1로 표시 될 것이다.)
wsl 이름과 버전을 확인하였다면, 아래와 같은 명령어로 세팅하자.
<wsl이름> 에는 임의로 이름을 지정하면 된다. 나의 경우에는 Ubuntu-22.04 로 지정하였다.
$ wsl --set-default-version 2
$ wsl --set-version <wsl이름> 2
(명령어를 입력하면, 업데이트가 되면서 WSL2로의 업그레이드가 완료된다.)
VSCode 와 WSL 연동
VisualCode Extension 에서 WSL 을 설치하자.
윈도우에서 wsl 을 검색하여, wsl 창을 연다.
로컬에서 테라폼 프로젝트를 관리할 폴더를 생성하고, 해당 디렉토리로 이동한 후 code . 을 입력한다.
code . 를 입력하면, cmd 가 실행되면서 잠시후 해당 프로젝트가 WSL 환경으로 VSCode 에서 자동 실행되는 것을 확인할 수 있다.
이후, VSCode 에서 Terminal 창을 열고 작업을 진행하면 된다. (wsl 창은 종료해도 된다.)
이렇게 WSL2 와 VSCode 까지, 테라폼 작업을 위한 기본 세팅이 완료되었다.
테라폼을 설치해보자.
테라폼 설치 (Ubuntu 22.04 LTS 사용자 환경 구성)
테라폼은 다양한 운영체제를 지원하므로, 사용중인 OS 및 플랫폼에 따라 해당하는 패키지를 설치해야한다.
참고. 테라폼 공식 사이트
$ wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
$ echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
$ sudo apt update && sudo apt install terraform
1. HashiCorp 패키지 인증을 위한 key 추가
2. 추가한 인증키를 HashiCorp 레포지토리에 추가
3. terraform 설치
4. 설치 완료 및 버전 확인
$ terraform --version
여기까지 해서, 테라폼 설치까지 완료되었다.
이제 테라폼 코드를 사용하여, AWS 리소스를 생성하기 위해 무엇을 해야 할까?
AWS CLI 설치
참고. awscliv2 설치 Link
1. AWS CLI 설치 시, 필요한 unzip 패키지 설치 및 awscliv2.zip 파일 다운로드
$ sudo apt install curl unzip
$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
$ unzip awscliv2.zip
그리고 unzip awscliv2.zip 으로 압축파일을 풀어주었다.
(패키지의 압축을 풀고 현재 디렉터리 아래에 `aws`라는 디렉터리 생성)
2. 설치 프로그램 실행 및 설치 위치 지정
$ sudo ./aws/install
$ ./aws/install -i /usr/local/aws-cli -b /usr/local/bin
3. 정상 설치 확인 및 버전 확인
$ which aws # aws 위치 확인
$ ls -l /usr/local/bin/aws # symbolic link 가 가리키는 디렉토리 확인
$ aws --version # 버전 확인
aws 버전 확인이 바로 안될 때, 관리자 권한에서 잠시 exit 하고 다시 접근하여 확인하면 정상적으로 설치 확인 가능하다.
AWS 에 테라폼이 접근할 수 있는 권한 부여
awscli 설치 후, 테라폼으로 aws 작업을 위해서는 aws configure 설정이 필요하다.
1. AWS 계정 액세스 키 생성
Application running outside AWS 를 선택하여 키를 생성한다. (테라폼 사용을 위한 외부로부터의 접근용)
2. 액세스 키 등록 및 등록된 키 정보 확인
$ aws configure
AWS Access Key ID [None]: 입력
AWS Secret Access Key [None]: 입력
Default region name [None]: ap-northeast-1 # 도쿄 리전 사용
Default output format [None]:
$ cat ~/.aws/credentials
3. 현재 권한 상태 보기
$ aws sts get-caller-identity
4. aws s3 ls
설정이 제대로 되었다면, s3 명령어를 실행했을 때 aws 계정의 s3 버킷 목록을 확인할 수 있다.
기본 사용법 공부를 위한 환경 세팅이 완료되었다.
다음 포스팅에서 간단한 실습을 통해 기본 명령어 등에 대해 익혀보도록 하자.