/
20231201 Azure SA 업무환경 설정 및 Terraform 기초 가이드

20231201 Azure SA 업무환경 설정 및 Terraform 기초 가이드

 

 

 

<출처> https://docs.microsoft.com/en-us/windows/wsl/install

 

 

 

 

image-20240325-013055.png

 

 

 

 

 

 

Azure SA 업무환경 설정

 

Azure VM 생성 - Windows 11

 

구독, 리소스 그룹을 선택 및 입력한다.

Image는 Windows 11 pro를 선택하고 Size는 Standard D4s v5 (4 vcpus, 16 GiB memory)를 선택하여 VM 생성을 시작한다.

 

 

 

 

업무 환경 구성

 

사전 작업

생성된 VM 서버 접속 후 Windows features 에서 Hyper-VVirtual Machine Platform을 선택한다.

 

Don't restart를 선택한다.

 

 

WSL 설치

Terminal 또는 Windows PowerShell을 관리자 권한으로 실행 하고 다음과 같이 명령을 입력한다.

# 온라인 스토어를 통해 다운로드할 수 있는 사용 가능한 Linux 배포판 목록을 확인 wsl -l -o # 지정 배포판 설치 : wsl --install -d <Distribution Name> wsl --install --distribution Ubuntu-22.04

 

설치 가능한 목록을 확인한다. 여기서는 Ubuntu-22.04를 기준으로 한다. 

 

설치가 완료되면 시스템을 재부팅 한다. 

재부팅 후 자동으로 터미널이 팝업되어  설치가 마무리 된다. username과 password 입력을 수행한다. 

 

Windows PowerShell을 관리자 권한으로 실행 하고 다음과 같이 명령을 입력한다.

wsl -l -v

 

 

Docker Desktop for Windows 설치

여기에서 Docker Desktop for Windows를 다운로드 및 기본으로 설치 후 Close and log out을 클릭하여 재부팅 한다.

 

재부팅이 완료되고 Docker Desktop이 시작되면 설정 아이콘을 클릭하고 들어가 Resoures > WSL Integration에서 Ubuntu-22.04를 활성화 하고 Apply & Restart를 클릭한다.

 

Terminal을 실행하고 다음과 같이 명령을 입력한다.

# Docker 상태 점검 (on Windows) docker ps # wsl 환경으로 전환 wsl # Docker 상태 점검 및 버전 확인 (on Linux) docker ps docker version

 

 

 

Git Bash 설치

For Windows

여기로 이동하여 최신 버전을 기본값으로 설치한다. 2022년 7월 17일 현재 최신 버전은 2.37.1이다.

 

 

For Linux(WSL) → 불필요. 이미 설됨

Git은 대부분의 Linux용 Windows 하위 시스템 배포판과 함께 이미 설치되어 있지만 최신 버전으로 업데이트할 수 있다. 또한 git 구성 파일을 설정해야 한다.

 

 

Git 구성 파일 설정

bash (Ubuntu-20.04)터미널에서 다음 명령을 수행하여 사용자 이름을 설정한다.

추가로 이메일 정보를 설정한다. 

 

 

Terraform 설치

For Windows

먼저 여기에서 최신 Terraform 버전을 다운로드 받는다.

 

다운로드 완료 후 C:\ 드라이브 밑에 Terraform이라는 디렉토리를 생성하고 다운로드한 Terrraform 압축파일을 해당 디렉토리 내에 압축해제하여 위치시킨다.

 

윈도우즈 키와 R키를 누르고 “sysdm.cpl ,3”를 입력하여 실행한다.

환경 변수를 선택하고 시스템 변수 에서 Path를 클릭한다.

새로 만들기(N)을 선택하고 다음과 같이 Terraform 디렉토리 패스 정보를 입력하고 확인을 선택한다.

 

새로 Windows Terminal 창을 띄우고 다음 명령을 수행하여 Terraform 버전을 확인한다.

 

 

 

 

For Linux(WSL)

다음 명령을 수행하여 설치를 진행하고 결과를 검증한다.

 

 

 

AZ CLI 설치

For Windows

먼저 여기에서 최신 버전을 다운로드 받고 기본으로 설치를 진행한다. ← 32bit

64bit는 여기

 

For Linux(WSL)

다음 명령을 수행하여 설치를 진행하고 결과를 검증한다.

 

 

Azure Az PowerShell 모듈 설치

여기를 참조하여 다운로드 및 설치한다.

이 모듈을 설치하면 일반적으로 사용 가능한 Az PowerShell 모듈이 다운로드되고, cmdlet을 사용할 수 있게 된다.

 

중요

Az PowerShell 모듈은 모든 플랫폼에서 Azure 리소스를 관리하는 데 권장되는 PowerShell 모듈입니다.

 

 

 

 

kuberctl 설치

For Windows

먼저 여기에서 최신 버전을 다운로드 받고 기본으로 설치를 진행한다.

kubectl 디렉토리에 다운로드 받은 실행 파일을 위치시키고 terraform과 같은 방식으로 환경변수 path에 등록한다.

 

For Linux(WSL)

다음 명령을 수행하여 설치를 진행하고 결과를 검증한다.

 

 

VS Code 설치

다운로드 후 설치한다.

 

 

설치 과정에서 추가 작업 선택 화면에서 다음 두 개를 체크하고 진행한다.

 

Visual Studio 설치 (옵션)

여기를 클릭하여 다운로드 및 설치한다.

 

 

 

Terraform을 사용하여 Azure Kubernetes Service로 Kubernetes 클러스터 만들기

 

소스 준비

 

git clone https://github.com/zer0big/TDG-TerraformAKSDemo.git

cd TerroformAksDeployDemo/

code .

 

 

 

Terraform 배포

 

az login

terraform init

terraform plan

terraform apply -auto-approve

 

 

 

Terraform 배포 결과 확인

Azure Portal로 이동하여 배포 결과를 확인한다.

 

ACR에 대한 AKS 관리 ID Role 부여 현황을 확인한다.

 

 

AKS 클러스터 검증

# Define variables
AKS_Name="tdgzeroaksdemo"

ACR_Name="tdgzeroacrdemo"

RG_Name="RG-TDG-CMS-2023-AKSDemo"

 

# Get AKS credentials
az aks get-credentials -g $RG_Name -n $AKS_Name

# Get Node Info
kubectl get node

 

 

Application 배포 및 검증

사전 작업

애플리케이션 빌드 및 구성을 위해 먼저 JAVA, Maven 설치가 필요하다.

JAVA 설치

MAVEN 설치

 

 

소스 준비 및 로컬 검증

 

새로 터미널을 띄워 wsl로 전환 후에 샘플 소스를 내려 받는다.

 

mvn clean package 명령으로 컴파일을 수행 한다. 참고로 clean 옵션은 maven build 시 생성된 모든 것들을 삭제한다.

target 디렉토리로 이동 후 java -jar 명령을 통해 로컬에서 샘플 소스의 컴파일 결과를 실행하고 브라우저를 통해 유효성을 검증한다.

 

별도의 Windows 터미널 창에서 다음 명령을 수행한다.

 

검증 완료 후 Ctrl + c를 실행하여 실행을 중지한다.

다음 작업 진행에 앞서 Bash 터미널 창에서 현재 target 디렉토리에서 상위 디렉토리로 이동한다. 

 

Containerizing 및 로컬 검증

docker build 명령을 수행하여 docker images를 생성한다.

 

 

docker run 명령을 수행하여 로컬에서 동작 유효성을 검증한다. 로컬포트는 임의로 지정 가능하다. 다음 예에서는 8888을 사용한다.

 

별도의 Windows 터미널 창에서 다음 명령을 수행한다.

 

 

Docker Tag, Push

최조 작업하던 창으로 이동한다.

$ACR_Name 변수값을 반환하여야 하며, 안되었다면 다시 변수값을 입력 한다.

자신의 ACR 서버 주소 형식에 맞게 docker tag하고 push 명령을 수행하여 생성한 ACR에 images를 Push한다.

 

 

Azure Portal에서 등록 결과를 확인한다.

 

 

YAML Manifest 구성

k8s/deploy-svc.yaml 파일을 열어 “images” 정보를 각자의 값으로 업데이트 한다.

 

 

YAML Manifest 배포 및 결과 검증

 

 

 

리소스 정리

 

모든 테스트를 수행하고 정상적으로 결과가 검증되었다면, terraform destroy 명령을 시행하여 배포한 리소스를 제거한다.