Azure - VM생성하기 (CLI)

sun02·2021년 9월 8일
0

Azure

목록 보기
3/4

Homebrew로 Azure CLI Mac에 설치하기
https://docs.microsoft.com/ko-kr/cli/azure/install-azure-cli-macos

설치한 후 터미널에

az account show

라고 작성하면

다음과 같이 계정 정보를 확인할 수 있습니다.

1. 리소스 그룹 생성하기


az group create -n TestRG -l eastus
  • 이름이 TestRG이고 지역이 eastus 인 그룹을 생성한다.
    • -n == --name (둘 다 사용 가능!)

작성한 후 Azure Portal에 확인해보면

TestRG라는 이름의 리소스 그룹이 생성되었습니다.

2. Virtual network 생성하기


az network vnet create -g testrg -n vnet01 --address-prefix 10.0.0.0/16 --subnet-name subnet01 --subnet-prefix 10.0.0.0/24 
  • TestRG 그룹 안에 이름이 vnet01인 virtual network와 이름이 subnet01인 서브넷을 생성한다. 이 때 vnet의 prefix는 10.0.0./16 이고 subnet의 prefix는 10.0.0.0/24 이다.

    • 10.0.0.0/16 : 앞의 두 자리 (10, 0)는 수정할 수 없다는 의미이다.
      • 각 자리에 수는 0~255까지 들어갈 수 있다. 256 = 2^8 = 8bit. 따라서 16 = 앞의 두 자리 (8bit*2)는 수정할 수 없다.
    • 10.0.0.0/24 : 앞의 세 자리 (10,0,0)은 고정이다.

    작성 후 이렇게 뜬다면 생성된 것입니다.

    포탈에서도 다음과 같이 생성된 vnet01을 확인할 수 있습니다.

    vnet01에 들어가면 생성된 subnet01도 확인할 수 있습니다.
    subnet01은 총 256개 중 5개를 제외한 251개를 사용할 수 있습니다.

2-1. subnet 추가하기


az network vnet subnet create -g testrg --vnet-name vnet01 -n subnet02 --address-prefix 10.0.1.0/24 
  • TestRG 그룹의 vnet01 안에 subnet02라는 이름의 서브넷을 생성한다. 이 때 서브넷-prefix는 10.0.1.0/24이다.

다음과 같이 생성된다면

포탈로 들어가 새로고침을 하면 다음과 같이 새로 생성한 subnet02도 확인할 수 있습니다.

3. Network Security Group 생성하기

az network nsg create -g testrg -n nsg01 
  • TestRG 그룹 안에 nsg01 이라는 이름의 네트워크 시큐리티 그룹을 생성한다.

터미널에 다음과 같이 뜬다면

포탈로 가서 리소스 그룹을 확인하면 생성한 nsg01을 확인할 수 있습니다.

nsg01 의 규칙을 살펴보면, 인바운드 룰이 세 개, 아웃바운드 룰이 세개 있습니다.
숫자가 클 수록 우선순위에서 밀려납니다.

  • 65500 :
    DenyAllInBound = 모든 들어오는 트래픽 차단
    DenyAllOutBound = 모든 나가는 트래픽 차단
  • 65001:
    AllowAzureLoadBalancer = 로드밸런서로 들어오는 트래픽은 허용
    AllowInternetOutBound = 인터넷으로 나가는 트래픽은 허용
  • 65000:
    AllowVnetInBound = vnetwork의 인바운드는 허용
    AllowVnetOutBound = vnetwork의 나가는 트래픽은 허용
  • 로드 밸런서란?
    서버에 가해지는 부하(로드)를 분산(밸런싱)해주는 장치 또는 기술이다.
    사용자가 접속했을 때 트래픽을 여러 VM중 어느 VM의 서버에 연결할 지 결정한다.

4. NSG Rule 생성하기

VM에 접속하기 위해 22 port, 웹서비스를 이용하기 위해 80번 port를 열어주어야한다.


az network nsg rule create -g testrg --nsg-name nsg01 -n ruleSSH --protocol tcp --priority 1000 --destination-port-range 22 --access allow 
  • TestRG 그룹의 nsg01 nsg에 ruleSSH라는 이름의 nsg rule 생성한다. 이때 ruleSSH의 우선수위는 1000이고 목적지 포트는 22번이고 접근 허용한다.

다음과 같이 생성한 후

포탈에서 nsg01 을 보면 인바운드 보안 규칙에 ruleSSH가 생성된 것을 확인할 수 있다.


az network nsg rule create -g testrg --nsg-name nsg01 -n ruleHTTP --protocol tcp --priority 1100 --destination-port-range 80 --access allow
  • TestRG 그룹의 nsg01이름을 가지는 nsg에 ruleHTTP라는 이름으로 nsg rule을 생성한다. 이 때 ruleHTTP의 우선순위는 1100이고 목적지 포트는 80번으로 접근 허용한다.

다음과 같이 생성되었다면

포탈에서 생성한 ruleHTTP를 확인할 수 있습니다.

  • nsg는 일종의 방화벽 같은 것으로 외부의 공격을 쉽게 막기 위해 정해줌.

5. Public IP 생성하기


az network public-ip create -g testrg -n pIP01 --sku standard
  • TestRG 그룹에 pIP01이라는 이름의 public-ip를 생성한다.
    • basic : VM이 생성되지 않으면 public-ip도 생성되지 않음 (아무것도 작성하지 않으면 basic으로 됨)
    • standard : VM 생성 전에 public-ip가 바로 생성된다.

다음과 같이 나타난 후

포탈에서 TestRG 리소스 그룹을 확인해 보면 pIP01을 확인할 수 있습니다.

pIP01에 들어가보면 IP주소가 이미 부여되어 있는 것을 확인할 수 있습니다.

6. Network Interface card 생성하기

여태까지 생성한 nsg, public-ip, vnet, subnet 정보를 모두 포함하고 있는 LAN 카드이다.

az network nic create -g testrg -n nic01  --vnet-name vnet01 --subnet subnet01 --network-security-group nsg01 --public-ip-address pIP01 
  • TestRG그룹에 nic01이라는 이름의 nic를 생성한다. 이때 vnet이름은 vnet01, subnet이름은subnet01, nsg는 nsg01, public-ip는 pIP01이다.

다음과 같이 생성한 후

포탈에서 testRG에서 nic01을 확인할 수 있습니다.

7. SSH key 생성하기

리눅스 접속할 때 필요하기 때문에 생성해야한다.


ssh-keygen -t rsa -b 2048 
  • 타입은 rsa, 바이트는 2048인 SSH key를 생성한다.

여기서 본인 화면의 /Users/jsy/.ssh/ 부분을 똑같이 작성합니다.

.ssh/ 앞까지는 똑같이 작성하고 뒤에 키 이름을 저는 날짜로 작성해주었습니다.

작성한 후 비밀번호를 입력하라고 하는데 비밀번호를 설정하지 않을 경우 엔터 두 번 누르시면 됩니다.

7-1. 생성한 key 확인하기


ls ~/.ssh/
  • ls : 파일 목록 보기
  • ~/ : 홈 폴더

  • 생성한 private key(0908_rsa), public key(0908_rsa.pub) 를 확인할 수 있습니다.

    • public key : VM 생성할 때 사용
    • private key : VM 접속할 때 사용

8. VM 생성하기


az vm create -n vm01 --nics nic01 --ssh-key-value ~/.ssh/0908_rsa.pub -g testrg --admin-user seonyoung --image UbuntuLTS --size Standard_DS1_V2
  • nic01을 가지는 이름이 vm01인 vm을 생성한다. 이때 ssh-key값은 0908_rsa.pub 이고 그룹은 testrg, admin user는 본인이름(seonyoung)이고 이미지는 Ubuntu, 크기는 Standard_DS1_V2이다.

다음과 같이 virtual machine이 생성되었습니다.

testRG 리소스 그룹에서 다음과 같이 생성된 vm01을 확인할 수 있습니다.

9. VM 접속하기

vm01에 들어가 public ip 주소를 복사합니다.

ssh -i ~/.ssh/0908_rsa seonyoung@13.90.134.170
  • vm에 접속할 것이기 때문에 private key 0908_rsa를 작성하고, 앞에 설정하였던 admin user(seonyoung)@public-ip 를 작성해줍니다.

여기서 yes 를 작성하면

다음과 같이 vm01에 접속이 되었습니다!👍🏻

10. VM upgrade

sudo apt update
  • 설치가능한 패키지 리스트를 최신화한다. (프로그램이 실제로 업데이트 되지 않고 리스트만 최신화)
    • sudo : admin 권한
    • apt : Advance Packaging Tools
sudo apt upgrade -y
  • 프로그램을 실제로 업데이트한다.

다음과 같은 화면이 뜨면 여기서 엔터 눌러줍니다.

이렇게 뜨면 완료된 것입니다.

11. nginX로 웹서버 만들기

sudo apt install nginx -y
  • nginx 설치하기

설치가 다 되었다면

vm01의 공용IP주소를 주소창에 입력합니다.

다음과 같은 창이 뜹니다.

cd /var/www/html/
  • var/www/html/ 디렉토리에 들어감

해당 디렉토리의 파일 목록을 보면
index.nginx-debian.html 이라는 파일이 있습니다.


sudo nano index.nginx-debian.html
  • 관리자 권한을 가지고 nano 편집기로 index.nginx-debian.html 파일 편집하기

다음과 같은 창이 뜹니다.

'Welcome to nginx!'
부분을
'Welcome to Seonyoung!'
으로 수정해보았습니다...

  • Control + O : 저장
  • Control + X : nano 편집기 빠져나오기

이전의 웹페이지를 새로고침하면 다음과 같이 수정된 모습을 확인할 수 있습니다.

0개의 댓글