Deployment/Cloud Computing

Azure 사용 방법

curious week 2025. 10. 14. 09:30

 

모든 과정, 학습 경로 및 모듈 찾아보기 - Training

단계별 지침을 사용하여 새로운 기술을 알아보고 Microsoft 제품의 기능을 알아봅니다. 학습 경로 및 모듈을 탐색하여 오늘 여정을 시작하세요.

learn.microsoft.com


일정 크레딧 이상 사용할 시 알림 설정

비용관리 + 청구 → (비용 관리 > 예산)  → 추가

예산 만들기  → 이름을 설정하고 임계금액(숫자만 작성, 달러이므로 너무 큰 금액을 적지 않도록 해야함.)과 기간 설정  → 앞서 설정한 예산에 대한 비율을 설정하고 그 값이 실제로 도달했을 때 또는 예측됐을 때 알림을 받을 것인지 설정  → 본인의 이메일과 언어를 설정 후 생성


최소 비용으로 웹 기본 리소스 생성하기

가상머신 → 만들기( → 가상머신)

가상 머신 만들기의 기본 사항이다.

먼저 구독정보를 확인하고 학생 계정이라면 Azure for Students가 맞는 지 확인한다. 다음으로 리소스그룹 → 새로 만들기로 새로운 리소스 그룹을 생성한다. 그리고 자신의 가상 머신 이름을 지정해주면 된다. 지역은 자신과 가장 가까운 지역을 선택한다.

가용성 옵션에서 백업 등 옵션을 선택할 수 있지만 최소 비용으로 만들기 위해서 '인프라 중복이 필요하지 않습니다.' 선택 

보안 유형 역시 '표준'으로 설정한다.

이미지는 웹서비스이므로 리눅스를 선택한다. 우분투 24.04 LTS도 상관없지만, 우분투 22.04 LTS 버전을 선택했다.

크기는 비용의 핵심이다. 최소 비용이 발생하는 Standard_B1s을 선택한다.

SSH 공개 키를 선택하고, 새 키 쌍을 생성한다. 원하면 사용자, 키 쌍 이름을 변경한다.

경우에 따라 HTTPS를 사용해도 되지만 테스트에는 필요하지 않으므로, SSH는 끄고 HTTP만 설정한다. (여기서 SSH를 추가하면 모든 IP 주소가 가상머신에 접속할 수 있게 되므로 추하에 SSH를 추가해야한다.)

디스크는 현재는 중요하지 않으므로 '표준 HDD(로컬 중복 스토리지)'를 선택하고 VM삭제를 체크해서 가상머신 삭제 시 삭제되도록 한다.

나중에 디스크를 추가할 떄 이용할 수 있는 옵션이다. 

네트워크 보안 그룹을 따로 설정하려면 고급을 선택하고 아니면 기본을 선택한다.

네트워크 역시 가상머신 삭제 시 삭제되도록 설정한다.

태그는 가상머신의 분류를 위해 사용할 수 있지만 현재는 필요하지 않다. (테스트용으로 적어본다.)

검토 + 만들기 탭으로 이동하면 자동으로 유효성 검사를 시작한다. '유효성 검사 통과'가 나오면 된다.

만들기를 클릭하면 위와 같은 창이 나오는데 좀 전에 SSH 키를 선택했으므로, 잊지말고 '프라이빗 키 다운로드 및 리소스 만들기'를 클릭한다.

리소스로 이동하면 만든 가상머신을 확인할 수 있다.


네트워크 인바운드 규칙 생성

처음 설정할 때 HTTP만 설정했으므로 SSH 포트를 열어줘야한다. 네트워킹 → 네트워크 실행 → 포트 규칙 만들기 → 인바운드 포트 규칙을 선택한다

외부에서 들어오지 못하도록 소스는 My IP address를 선택한다.

서비스는 SSH를 선택하고 완료하면 된다. (이름은 임의로 작성해도 됨.)


접속

Tabby terminal을 설치한다.

 

Tabby - a terminal for a more modern age

Tabby is a free and open source SSH, local and Telnet terminal with everything you'll ever need.

tabby.sh

brew install --cask tabby

설치가 완료되면 설정을 클릭한다. (우측 상단에도 있음.)

프로필 및 연결에 보면 ssh가 있다. 우측 그림과 같이 클릭 후 복제를 클릭한다.

이름을 지정하고 호스트에 기본 NIC 공용 IP를 넣는다. 사용자 이름은 Azure에서 설정한 사용자 이름을 넣는다. 인증방법은 키를 선택하고 좀 전에 다운 받은 키의 주소를 선택해 준다.

호스트 키 확인이라는 메시지가 나오면 '허용 후 키 저장'을 선택한다.

이렇게 접속이 완료됐다.


리소스 삭제하기

Azure 메인에서 리소스 그룹 → 리소스 그룹 삭제 → 그룹 이름 입력 후 삭제


PostgresSQL 유연한 서버 사용하기

검색  → Azure Database for PostgreSQL 유연한 서버 

원하는 리소스 그룹으로 만들고 서버 이름 입력, 지역은 가장 가까운 지역 선택

워크로드 유형을 개발로 변경하고, 컴퓨팅 + 스토리지 탭에서 서버 구성 클릭.

Compute tier를 위와 같이 버스트 가능으로 설정하고, 컴퓨팅 크기도 Standard_B1ms로 설정 후 저장.

가용성은 그대로 두고(워크로드 개발에서는 지원안됨.), PostgreSQL 인증 선택 후 아이디, 비밀번호 생성.

보안을 위해서는 프라이빗 엑세스가 좋지만, 테스트이므로 공용 엑세스 사용.

+ 현재 클라이언트 IP 주소 추가를 클릭한다. 방화벽 규칙의 'Azure 내의 모든 Azure 서비스의 이 서버에 대한 퍼블릭 엑세스 허용'은 일단 허용하지 않는다.

다른 서비스를 함께 이용한다면 아래와 같이 수정할 수 있다. (설정 > 네트워킹) 'Azure 내의 모든 Azure 서비스의 이 서버에 대한 퍼블릭 엑세스 허용' 체크 후 저장

서비스 관리형 키를 선택한다.(서비스 관리형 키는 Azure에서 제공하는 키, 고객 관리형 키는 직접 생성하는 키)

태그를 추가하려면 추가하고 '검토 + 만들기'로 넘어간다.

예상 비용을 한 번 더 확인한다. 그리고 방화벽 규칙은 추후에 추가할 것이므로 '방화벽 규칙 없이 서버 만들기'를 클릭한다.

배포가 완료되면 리소스로 이동해서 사이드 탭에서 설정 → 데이터 베이스를 확인해 볼 수 있다.


데이터 베이스 추가

이제 원하는 데이터베이스 매니지먼트 툴 또는 터미널을 통해 접속하면 된다.

개요에서 엔드포인트를 복사해서 Host에 입력하고 database에는 방금 만든 db이름을 입력한다. username과 password도 이전에 설정한 것을 넣어주면 된다.


자동화

도움말 → 직렬 콘솔에서 설치 및 진행 상황을 확인할 수 있다.

#cloud-config
package_upgrade: true
packages:
  - git
  - python3
  - python3-pip
  - libpq-dev
  - build-essential
write_files:
  - path: "/opt/shop2.yml"
    append: true
    content: |
      DB_HOST: <db_host>
      DB_USER: <db_user>
      DB_PASSWD: <db_user_password>
      DB_NAME: <db_name>
runcmd:
  - python3 -m pip install https://github.com/jaehwachung/cloud_computing/releases/download/latest/knou_cloud_computing_shop2-latest-py3-none-any.whl
  - create-db
  - shop_manage user-create
  - shop_manage goods-insert
  - waitress-serve --port 80 knou_shop2.shop_main:app

 


키 자격 증명 모음 설정

키 자격 증명 모음 검색 → 만들기

리소스 그룹, 자격 증명 모음 이름, 지역만 입력. 가격 책정 계층은 더 높은 보안 수준이 필요할 때 선택. 하단에 복구 옵션은 원하면 설정

권한 모델은 'Azure 역할 기반 엑세스 제어' 선택 후 네트워킹으로 이동.

선택된 네트워크를 선택하고 '기존 가상 네트워크 추가', 이전에 만든 가상 네트워크에서 선택한다.

배포가 완료되면 리소스로 이동한다. 사이트 탭 엑세스 제어(IAM) → 역할 할당 추가를 클릭한다.

작업에 막힘이 없도록 'key'를 검색해서 'Key Vault 관리자'를 선택한다.

구성원 옆 + 구성원 선택으로 자신을 추가하고 검토 + 할당을 클릭한다.

사이드 탭 설정 → 방화벽 → 클라이언트 IP 주소 추가 → IP주소 또는 CIDR에 본인의 IP를 입력하고 적용한다.

(IP 확인 방법: 터미널)

curl -s https://ifconfig.me
# 또는
curl -s https://ipinfo.io/ip

사이드 탭에서 개체→ 비밀 → 생성/가져오기를 클릭하고, 이름을 지정하고 데이터 베이스 비밀번호를 추가한 후 적용한다.