2024.07.03 Azure SA 업무환경 설정 및 Terraform 기초 가이드 최신 버전

작년 자료기준으로 현재 버전에 실행이 불가하거나 오류가 발생하는 부분들이 있어 해당 부분들을 수정 및 최신화 하여 업데이트 하였습니다

 

Azure VM 생성 - Windows 11

*Test 및 연습을 위해서 Azure에서 진행하며 연습이 끝난 후에 개인 PC에 세팅한다

 

Create를 누르고 Azure Virtual Machine을 눌러 VM 생성으로 진입

(Vnet과 Subnet은 설정하지 않는다면 VM 생성시 임의 자동 생성)

 

image-20240609-234606.png
구독의 경우 “개인이 할당 받은 구독”으로 설정하고 진행 해야 함!!!

개인 구독 설정 후 Resource group을 설정 해준다 → Resource Group을 통해 쉽고 간편하게 VM들을 컨트롤 할 수 있다. 추가설명

 

image-20240609-235308.png
Zone 설정 시 필요없음으로 설정하고 이미지는 Windows 11 Pro로 설정한다

 

 

 

 

 

 

설치 및 세팅

사전 작업

Windows Features에서 Hyper-V와 Virtual Machine Platform을 선택하여 설치한다.

 

WSL 설치

 

Terminal 또는 Windows PowerShell을 관리자 권한으로 실행 하고 아래 명령어를 입력한다

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

 

설치가 완료되고 난 이후 시스템을 재부팅 한다.

재부팅 후 자동으로 터미널이 팝업되며 Username과 Password 입력하면 설치 및 설정이 완료 된다

 

Docker Desktop for Windows 설치

Docker Desktop for Windows를 다운로드 및 기본으로 설치 후 Close and restart을 클릭하여 재부팅 실행

 

재부팅이 완료되고 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 설치

  • Git Bash로 이동하여 최신 버전을 기본값으로 설치한다. 2024-06-10일 현재 최신 버전은 2.45.2이다.

(별다른 옵션 수정 없이, 쭉 설치를 진행한다.)

Linux(WSL)과의 연동을 위해 최신버전으로 업데이트를 진행 해준다 → *이미 설치가 되어 있지만 구 버전으로 업데이트를 진행하여 버전을 맞춰 주어야 한다

#최신버전 설치를 위해서 레포지토리를 추가해주어야 한다 sudo add-apt-repository ppa:git-core/ppa #업데이트 및 설치를 진행한다 sudo apt-get update && sudo apt-get -y install git

Git 구성 파일 설정

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

 

Terraform 설치

 

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

 

 

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

환경변수 → Path → C:\Terraform 생성 후 확인을 선택한다

새로운 Windows Terminal 창을 띄우고 Terraform 버전을 확인한다

 

For Linux(WSL)

Linux 환경에서 설치를 진행하고 결과를 검증한다

 

AZ CLI설치

64bit CLI를 다운받고 기본으로 설치를 진행 한다

 

For Linux(WSL)

리눅스 환경에서도 설치를 진행 후 버전을 확인 한다

 

 

Azure Az PowerShell 모듈 설치

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

(해당 실습은 PowerShell 갤러리를 기준으로 진행 한다)

 

해당 방법으로 진행하면 연동이 안됨 *Config값 오류로 인한 문제로 추정 됨

참고 Solution 여기

 

정상 작동이 된다면 Azure Portal 로그인 화면이 나오게 되고 로그인 해서 연동하면 된다

 

로그인 이후 구독을 설정하라는 란에 선택하여 입력하면 된다

 

Kuberctl 설치

  • Kuberctl 최신버전을 다운로드 받고 C:\에 “kuberctl” 디렉토리를 생성 후 설치 파일을 위치시킨 다음 설치를 진행한다.

 

이후 Terraform과 동일한 방식으로 환경변수 Path에 등록한다.

 

For Linx(WSL)

Terminal에서 설치를 진행하고 결과를 검증한다

 

VS Code 설치

설정 과정에서 추가 작업 선택 화면에서 해당 옵션들을 체크하고 진행한다.

 

 

Visual Studio 설치 (옵션)

 

Azure Container 및 쿠버 실습 해보기

Azure PowerShell을 이용하여 리소스 그룹 만드는 방법

새로운 솔루션을 시작할 때 수행할 첫 번째 작업

  1. Azure cmdlet을 가져온다

  2. Azure 구독에 연결한다

  3. 리소스 그룹을 만든다

  4. 생성이 완료되었는지 확인한다

 

단계의 개요

 

연결하기

Terminal 창을 새로 띄우고 Connect-AzAccount를 실행하여 연동을 먼저 한다

 

만들기

어떤 구독을 가지고 있는지 목록 확인을 위해서 list를 가져온다

구독 정보를 확인 후 대상 구독을 선택한다

 

모든 리소스 그룹 목록 가져오기

활성 구독에서 모든 리소스 그룹 목록을 검색하여 확인한다

 

리소스 그룹 만들기

이름 및 위치를 지정하여 리소스 그룹을 만들 수 있다

리소스 확인

리소스그룹이 정상적으로 생성 되었는지 확인한다

리소스 삭제

리소스 그룹을 삭제하는 명령어 이다

 

Azure CLI 사용

CLI를 사용하면 모든 Azure 리소스의 모든 측면을 제어 할 수 있으며, Resource Group, Storage, VM, Microsoft Entra ID, Container, Machine Learning 등 사용할 수 있다

 

Storage Blob

문서

클라우드를 위한 개체 스토리지 솔루션이다. 대량의 비정형 데이터를 저장하는데 최적화 되어 있다.

예를 들면 스토리지 Blob을 관리하는 데 도움이 되는 명령을 찾으려면 find 명령을 사용한다.

 

Azure CLI를 사용하여 리소스 그룹을 만드는 방법

 

새로운 Azure 리소스를 만드는 3단계는 일반적으로 Azure 구독에 연결, 리소스 생성, 리소스 결과 확인이다.

 

연결하기

Azure CLI login 명령을 사용하여 Azure 명령을 실행하기 전 인증을 해야 한다

 

gio로 시작되는 url을 Ctrl키를 누른 상태로 클릭하여 접속하면 Login창이 나오고 로그인을 하면 된다

 

 

특정 구독 선택하기

az account show 명령을 사용하여 현재 선택된 구독을 확인한다

 

이후 변경하고 싶은 구독으로 선택하여 변경한다

 

모든 리소스 그룹 목록 가져오기

활성 구독에서 모든 리소스 그룹 목록을 검색할 수 있습니다

 

리소스 그룹 만들기

az group create 명령을 사용해서 리소스 그룹을 만들 수 있다. 이때 이름 및 위치를 지정해야 하며 구독 내에 고유해야 한다

 

 Container 실습

 

실습을 위해 개발자의 환경 조성

Install OpenJDK

설치가 된 이후에 환경변수 세팅을 한다

최종적으로 설치가 마무리 되었다면 Maven과 Java 버전을 모두 확인하여 정상 설치가 되었는지 확인한다

 

설치가 마무리 되었다면 실습에 필요한 코드를 복제한다

이후 별도의 Bash 창에서 mvn clean package 명령으로 컴파일을 수행한다.

생성 확인이 완료되면 해당 디렉토리로 이동하여 gs-spring-boot-docker-0.1.0.jar 파일 생성을 확인한다.

이후 java -jar 명령을 통해서 Local에서 샘플 소스의 유효성을 검증한다

 

별도의 Windows 터미널 탭을 띄어서 다음 명령을 실행다

 

결과 확인 후 Ctrl+C를 눌러 실행된 자바 프로세스 종료 후 gs-spring-boot-aks 디렉토리로 이동한다

 

컨테이너 노출 포트 변경 : 8080 → 80

VS Code 및 VI를 이용하여 src - main - resources 이하에 application.yml 파일을 열어 port를 80으로 변경하고 저장한다.

 

변경 이후 Ctrl+s로 저장한다
저장 이후 App 빌드를 다시 수행해본다

 

Docker Build

gs-spring-boot-aks 디렉토리로 이동하여 샘플 소스 내 준비된 Dockerfile을 열고 EXPOSE 포트 정보를 80으로 변경하고 저장한다.

 

이후 Docker Desktop을 실행 하고 새로운 Terminal를 열어 결과를 검증한다

 

이후 별도의 Windows 터미널 탭을 띄어서 확인해본다

 

이미지 ACR로 푸시하기

 

로컬 환경에서 컨테이너에 대한 검증을 완료하였음으로 이를 Azure Container Registry에 올리는 실습

 

포털에서도 정상적으로 생성 된 것을 확인해볼 수 있다

 

Docker Tag

docker tag, push 명령을 수행하여 생성한 ACR에 images를 Push한다

 

혹시 인증/인가 에러가 발생하면. az acr login 명령을 수행하여 인증을 득하고 다시 명령을 수행한다.

 

사전 작업

ACR로 이동하여 Settings > Access keys로 이동하여 Admin user 체크 박스를 선택하여 Admin user 사용을 활성화 한다.

서비스 배포하기

Container Instances

Container instances를 검색하여 생성 시작

  • image source에서 Azure Container Registry로 설정하고 이전에 태그 및 푸시했던 이미지의 정보(Registry, Image 및 tag)를 선택한다.

  • Networking 탭에서 DNS name label에 필요한 값을 입력 후 Review + create를 선택한다.

  • 생성이 완료된 후 Overview로 이동하여 FQDN 정보를 복사한다

  • 컨테이너라이징한 앱을 아주 간단한 조작으로 배포하여 사용할 수 있음을 확인할 수 있다.

  • 소유한 도메인으로 커스텀, 보다 유연한 배포 기능 등을 활용하고자 할 경우에는 적합하지 않다. 

Web App for Containers

App Services 검색하여 Web App으로 Create한다

  • 해당 옵션으로 설정을 해준다

  • Quickstart로 설정이 되어 있으면 Azure Container Registry로 변경 후 옵션 값을 설정 해준다

  • 생성 완료 이후에 Overview로 이동하여 Default domain 정보를 복사하여 웹 브라우저에 결과를 검증한다

Custom Domain 적용 예시

Web App의 경우 Domain 변경이 가능하다.

*본인이 도메인을 가지고 있다면 실습이 가능하다

  • DNS 도메인에서 설정이 마무리되면 Validate를 선택하여 유효성을 검증한다

  • 초록색 체크표시가 뜨면 Add를 눌려 추가해준다

Add 하여 IP기반 TLS/SSL를 구성한다

Container Apps

container apps를 검색하여 생성한다

  • 구독, 리소스 그룹, 이름, 지역을 설정 해준다

  • Container로 이동하여 Use Quickstart image 옵션을 해제하고 Azure Container Registry를 선택하고 옵션값들을 맞춰 줍니다

  • Ingress탭으로 이동하여 Ingress를 활성화 시켜주고 아래 옵션 값으로 변경 해준다

  • 이후 Create로 생성한다

  • 생성이 완료된 후 URL을 통해서 접속이 가능한지 확인 해본다

Azure Kubernetes Service

Kubernetes Service를 검색하여 생성을 시작한다

  • Kubernetes Cluster를 선택하여 생성한다

Subscription과 Resource Group을 설정 해주고 Cluster name 설정을 한다

  • Integration으로 이동하여 Container registry에 Containdemo2024를 선택해준다

  • 설정이 완료되면 Create로 생성하면 되는데 Product Standard로 진행하면 Node Pools에서 문제로 진행이 불가하다. 따라서 Cluster Details를 Dev/Test로 변경하여 진행한다

  • 리소스 생성이 끝난 후 Kubernetes resources에서 Configuration에 Create → Apply a YAML를 선택한다

  • 본인이 지정한 Container 이름과 이미지 정보, 포트번호 80 수정 해준 뒤 Add를 진행한다

  • 이후 Services and ingresses에 접속하여 zero-aks-app에 External IP를 이용하여 정상 작동 하는지 확인 해본다