블로그 불러오는 중...
문의 보내기
남겨주면 블로그 주인에게 바로 전달돼요.
위 실습은 테라폼과, aws cli 를 필요로 한다. 추가로 윈도우 사용자의 경우 wsl 을 이용해서 생성된 쿠버네티스 실습을 진행해야 하니 wsl 설정도 필요하다.
아래는 윈도우 네이티브 환경에서 설치하는 글을 남겼으나, 실제로는 WSL 을 실행하고 그 안에서 설치해서 실습하는 것이 편했다. 윈도우에서도 사용하는 사람이 있을 수 있으니 설치 해서 쓰는 법은 남겨 둔다.
생략하고 WSL 설정만 해서 사용하면 된다. WSL 셋팅하고 실습을 진행하면 되므로 윈도우에 테라폼, aws cli 는 생략하고 바로 WSL 셋팅 부분과 AWS 셋팅 부분만 보면 된다.
테라폼(Terraform)은 하시코프(HashiCorp)에서 개발한 오픈소스 코드형 인프라(IaC) 도구로, HCL 언어를 사용하여 클라우드 및 온프레미스 인프라를 코드로 정의하고 프로비저닝, 변경, 관리하는 자동화 도구이다.
소스코드로 인프라를 관리하는 경우, 웹 UI 에서 눌러서 생성하는 것보다 추후 이력 측면에서 나았고 업무 인수인계 등에서도 조금 더 편리 하였다. 추가로 사용하는 자원들의 경우를 확인 할 때에 저장소 내에서 확인하면 되므로 조금 더 관리도 편했다. 물론 내가 테라폼이나 aws 를 다양한 케이스에서 사용해 보지 못했기 때문에 생각하지 못하는 장/단이 있을 수 있는데 그 부분에 대해서는 조금 더 공부하고 블로깅을 해 볼 수 있도록 하겠다.
필자는 윈도우 pc 를 사용하고 있기 때문에, 다른 PC 에는 이번에 설치해 보지 않았다. 리눅스 PC 기반의 경우 환경변수라던지 셋팅은 따로 필요 없을 것 같은데, 윈도우는 재부팅이 필요하다.
일단은 아래 절차를 통해 설치를 진행한다.
다운로드 링크 를 통해 다운로드를 진행한다.
아래 페이지를 이용해서 테라폼을 설치한다. AMD64로 설치 하였다.
다운 받은 압축 파일을 푼다. 다음과 같은 실행 프로그램이 1개 있다.

위 파일을 terraform 폴더 생성 이후 C:\Program Files\terraform 으로 이동시켰다

이동시킨 이후 윈도우 검색창에 환경변수 를 입력한다.

아래와 같이 창이 나오면 환경 변수 버튼을 클릭한다.
아래와 같은 버튼을 순서대로 클릭해 Path 환경변수를 수정한다.
아래와 같이 설정하고, 저장을 누른다. 그리고 바깥 창에서도 저장을 누른다.
나와같은 경우는 해당 창에서만 저장을 눌러 환경변수가 적용이 안 되는 경우가 있었다.

윈도우를 재부팅한다. explorer.exe 프로세스를 재 시작하는 방법도 있다고 하는데, 그냥 나는 재부팅 했다.
다음과 같이 cmd 에 terraform 입력 후 테라폼이 실행되면 된다.

aws cli 는 웹이 아닌, cli 를 통해 aws 를 제어할 수 있다. 해당 설치는 단순하다.
다운로드 링크를 접속한다.
아래 사진대로 cmd 에서 명령어를 입력하면 바로 설치되며, 재부팅 필요없이 cli 가 바로 작동하는 것을 확인했다. 다음을 계속 클릭해서 설치를 완료 하면 된다.
해당 내용은 복잡할 것이 없어 생략한다.
WSL을 설치하는 코드이다.
# DISM(배포 이미지 서비스 및 관리) 명령어로 Microsoft-Windows-Subsystem-Linux 기능을 활성화
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# DISM 명령어로 VirtualMachinePlatform 기능을 활성화
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# wsl 설치
wsl --install
# 기본값 WSL 2 버전 설정
wsl --set-default-version 2
# wsl 업데이트
wsl --updatepowershell 에서 실행 이후 필요한 툴을 설치한다.
# 설치 가능한 배포판 확인
wsl --list --online
# Ubuntu 배포판 설치
wsl --install Ubuntu-24.04
...
Enter new UNIX username: <각자 Ubuntu 사용 계정>
New password: <해당 계정 암호>
Retype new password: <해당 계정 암호>
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
---------------------------------------
# 기본 정보 확인
hostnamectl
whoami
id
pwd
# apt 업데이트
sudo apt update
sudo apt install jq htop curl wget ca-certificates net-tools -y
ifconfig eth0
ping -c 1 8.8.8.8
# 빠져나오기
$ exit
---------------------------------------
# 설치된 배포판 확인
wsl -l -v
# Ubuntu 재진입
wsl쿠버네티스 매니징을 위한 툴들을 설치한다.
# 기본 사용자 디렉터리 이동
cd $PWD
pwd
# apparmor 비활성화
sudo systemctl stop apparmor && sudo systemctl disable apparmor
# 유용한 툴 설치
sudo apt update && sudo apt-get install bridge-utils net-tools jq tree unzip kubectx kubecolor -y
# Install kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv ./kubectl /usr/bin
sudo kubectl version --client=true
# Install Helm
curl -s https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
helm version
# Source the completion
source <(kubectl completion bash)
echo 'source <(kubectl completion bash)' >> ~/.bashrc
# Alias kubectl to k
echo 'alias k=kubectl' >> ~/.bashrc
echo 'complete -o default -F __start_kubectl k' >> ~/.bashrc
# Install Kubeps & Setting PS1
git clone https://github.com/jonmosco/kube-ps1.git
echo -e "source $PWD/kube-ps1/kube-ps1.sh" >> ~/.bashrc
cat <<"EOT" >> ~/.bashrc
KUBE_PS1_SYMBOL_ENABLE=true
function get_cluster_short() {
echo "$1" | cut -d . -f1
}
KUBE_PS1_CLUSTER_FUNCTION=get_cluster_short
KUBE_PS1_SUFFIX=') '
PS1='$(kube_ps1)'$PS1
EOT
# .bashrc 적용을 위해서 logout 후 터미널 다시 접속
exit리눅스 내 cli 및 인증정보 설정한다. 인증정보 설정의 경우 아래에 추가로 게시했으니, 아래에서 Access Key를 만드는 가이드를 먼저 보고 위 명령어를 적용해도 된다.
# 1. Update your Ubuntu packages
sudo apt update
sudo apt upgrade -y
# 2. Install unzip if you don't have it already
sudo apt install -y unzip curl
# 3. Download the AWS CLI v2 installation package
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
# 4. Unzip the installer
unzip awscliv2.zip
# 5. Run the install program
sudo ./aws/install
# 6. Verify the installation
aws --version
# 7. iam (주체) 자격 증명 설정
aws configure
AWS Access Key ID : <액세스 키 입력>
AWS Secret Access Key : <시크릿 키 입력>
Default region name : ap-northeast-2
# 8. 확인
aws sts get-caller-identity테라폼 설치한다.
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
# 테라폼 버전 정보 확인
terraform version아래는 공식 EKS 페이지에서 가져온 EKS 의 설명이다.
Amazon Elastic Kubernetes Service(Amazon EKS)는 AWS 클라우드와 온프레미스 데이터 센터 모두에서 원활하게 Kubernetes를 실행하는 데 사용되는 완전관리형 Kubernetes 서비스입니다.
쿠버네티스를 구성하려고 하면 controlplane 을 직접 관리해야 하는데, 아마존이 control plane 을 직접 관리해 주는 장점이 있다.
비용은 발생한다. 그러나 고가용성 구성하여 ec2 로 구성하는 것 보다는 싸다고 생각이 된다.
아래는 공식 문서에서 가져온 AWS 구성도 이다.

아마존 공식 문서에서 조금 더 자세히 알아볼 수 있다. AWS EKS 공식 문서 - Amazon EKS란 무엇입니까? AWS EKS 공식 문서 - Kubernetes 개념
위에서 AWS Configure 에서 설정하는 값들을 설정하기 위해 AWS 키를 발급받는다.
테스트로 실습하는 것이기 때문에, 루트 계정에서 key 를 생성했다.
실제로 사용하는 경우엔 최소 권한 원칙에 따라, 필요한 권한만을 쓰기를 바란다. 해당 실습 이후 access key 를 삭제할 예정이다.
우측 상단을 클릭하고, 보안 자격 증명 클릭한다.

액세스 키 만들기를 눌러 Access Key 를 만든다.


다음과 같이 생성하면 된다.
일단 다음과 같은 방식으로 생성하면 기본 준비가 완성 된다.