Post

[NCP] CLI를 통한 서버 생성과 웹 서비스 구현

NCP CLI를 활용 해 보자

[NCP] CLI를 통한 서버 생성과 웹 서비스 구현

저번 포스트에서 Ncloud CLI 를 이용하여 리소스 확인법에 대해 알아보았습니다.

[NCLOUD] CLI를 통한 리소스 확인 법

이번 주제에서는 Ncloud CLI 를 이용하여 VPC, Subnet, Server 를 생성하는 포스트를 작성 해 보겠습니다.


CLI를 통해 구성 할 Infra 아키텍처 입니다.


개요

1. CLI를 통한 VPC 생성

2. CLI를 통한 Subnet 생성

3. CLI를 통한 Server 생성

대상 서버 및** Ncloud CLI** 설치 법은 이전 포스트를 참고 부탁드립니다 !


1. CLI를 통한 VPC 생성

  • 요청 파라미터

  • 예시
1
2
3
4
./ncloud vpc createVpc --regionCode KR --vpcName test-*** --ipv4CidrBlock ***.***.0.0/16


./ncloud vpc createVpc - regionCode KR - vpcName cli-test-vpc - ipv4CidrBlock 10.1.0.0/16
  • 생성 할 VPC name , CIDR 를 명시 합니다.
  • CLI 실행
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@cli-server:~/cli_linux# ./ncloud vpc createVpc --regionCode KR --vpcName cli-test-vpc --ipv4CidrBlock 10.1.0.0/16  

{  
  "createVpcResponse": {  
    "totalRows": 1,  
    "vpcList": [  
      {  
        "vpcNo": "76248",  
        "vpcName": "cli-test-vpc",  
        "ipv4CidrBlock": "10.1.0.0/16",  
        "vpcStatus": {  
          "code": "INIT",  
          "codeName": "준비중"  
        },  
        "regionCode": "KR",  
        "createDate": "2024-09-24T17:35:25+0900"  
      }  
    ],  
    "requestId": "89e3185b-b43e-4280-874c-e7b2a2f0496e",  
    "returnCode": "0",  
    "returnMessage": "success"  
  }  
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
root@cli-server:~/cli_linux# ./ncloud vpc getVpcList --regionCode KR --vpcStatusCode RUN  
{  
  "getVpcListResponse": {  
    "totalRows": 3,  
    "vpcList": [  
      {  
        "vpcNo": "76248", #VPC No 확인  
        "vpcName": "cli-test-vpc",  
        "ipv4CidrBlock": "10.1.0.0/16",  
        "vpcStatus": {  
          "code": "RUN",  
          "codeName": "운영중"  
        },  
        "regionCode": "KR",  
        "createDate": "2024-09-24T17:35:25+0900"  
      }  
    ],  
    "requestId": "d2dd5d86-4e42-47d2-b335-138a38499934",  
    "returnCode": "0",  
    "returnMessage": "success"  
  }  
}
  • 콘솔 및 VPC 조회 CLI로 VPC가 생성 된 것을 확인 할 수 있습니다.

2. CLI를 통한 Subnet 생성

  • 요청 파라미터

  • 예시
    1
    
    ./ncloud vpc createSubnet --regionCode KR --zoneCode KR-1 --vpcNo ***04 --subnetName test-*** --subnet ***.***.1.0/24 --networkAclNo ***31 --subnetTypeCode PUBLIC --usageTypeCode GEN
    
  • 일반 Public Subnet 을 생성
  • VPC & NACL & Region 정보 명시

파라미터에** NACL** 정보가 필요하기 때문에** NACL** 정보 조회를 먼저 합니다. (콘솔에서도 확인 가능)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
root@cli-server:~/cli_linux# ./ncloud vpc getNetworkAclList --regionCode KR  
{  
  "getNetworkAclListResponse": {  
    "totalRows": 3,  
    "networkAclList": [  
      {  
        "networkAclNo": "111301", #No 확인  
        "networkAclName": "cli-test-vpc-default-network-acl",  
        "vpcNo": "76248",  
        "networkAclStatus": {  
          "code": "RUN",  
          "codeName": "운영중"  
        },  
        "networkAclDescription": "VPC [cli-test-vpc] default Network ACL",  
        "createDate": "2024-09-24T17:35:25+0900",  
        "isDefault": true  
      },  
    "requestId": "2460fcaf-daac-41aa-96a5-8d0178e34bff",  
    "returnCode": "0",  
    "returnMessage": "success"  
  }  
}
  • CLI 실행
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
./ncloud vpc createSubnet --regionCode KR --zoneCode KR-1 --vpcNo 76248 --subnetName cli-test-pub-web-subnet-kr1 --subnet 10.1.16.0/24 --networkAclNo 111301 --subnetTypeCode PUBLIC --usageTypeCode GEN


root@cli-server:~/cli_linux# ./ncloud vpc createSubnet --regionCode KR --zoneCode KR-1 --vpcNo 76248 --subnetName cli-test-pub-web-subnet-kr1 --subnet 10.1.16.0/24 --networkAclNo 111301 --subnetTypeCode PUBLIC --usageTypeCode GEN  
{  
  "createSubnetResponse": {  
    "totalRows": 1,  
    "subnetList": [  
      {  
        "subnetNo": "174257",  
        "vpcNo": "76248",  
        "zoneCode": "KR-1",  
        "subnetName": "cli-test-pub-web-subnet-kr1",  
        "subnet": "10.1.16.0/24",  
        "subnetStatus": {  
          "code": "CREATING",  
          "codeName": "생성중"  
        },  
        "createDate": "2024-09-24T17:44:22+0900",  
        "subnetType": {  
          "code": "PUBLIC",  
          "codeName": "Public"  
        },  
        "usageType": {  
          "code": "GEN",  
          "codeName": "General"  
        },  
        "networkAclNo": "111301"  
      }  
    ],  
    "requestId": "9443c84d-3185-4ed8-acf8-3ebabadaf551",  
    "returnCode": "0",  
    "returnMessage": "success"  
  }  
}

  • 콘솔에서 Subnet이 생성 된 것을 확인 할 수 있습니다.

3. CLI를 통한 Server 생성

  • 요청 파라미터 (아래 가이드 확인)

https://cli.ncloud-docs.com/docs/cli-vserver-server-createserverinstances

  • 예시
1
ncloud vserver createServerInstances --regionCode KR --serverImageProductCode SW.VSVR.OS.LNX64.CNTOS.0703.B050 --vpcNo ***04 --subnetNo ***43 --serverProductCode SVR.VSVR.STAND.C002.M004.NET.SSD.B050.G001 --feeSystemTypeCode MTRAT --serverCreateCount 1 --serverName test-*** --networkInterfaceList "networkInterfaceOrder='0', accessControlGroupNoList=['***63', '***64']" "networkInterfaceOrder='1', subnetNo='***43', accessControlGroupNoList=['***63', '***64']" --placementGroupNo ***61 --isProtectServerTermination false --initScriptNo ***44 --loginKeyName test-*** --associateWithPublicIp true

** 서버 정보**

OS : CentOS 7.8

Spec : vCPU 2EA, Memory 4GB, [SSD]Disk 50GB

저는 미리 생성 해 둔 I** nit Script** 를 통해 서버 생성 시 바로 웹 서비스(Apache )를 동작하게 만들어 보겠습니다.

  • VPC & NACL & ACG & Init Script 정보 명시
  • 사전에 등록/보유중인 키페어 명시

ACG & Init Script 정보 조회 CLI (콘솔에서도 확인 가능)

1
2
3
4
5
# Get Init Script List(info)  
./ncloud vserver getInitScriptList   
  
# Get ACG List(Info)  
./ncloud vserver getAccessControlGroupList --regionCode KR --vpcNo  --accessControlGroupStatusCode RUN
  • CLI 실행
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
root@cli-server:~/cli_linux# ./ncloud vserver createServerInstances --regionCode KR --serverImageProductCode SW.VSVR.OS.LNX64.CNTOS.0708.B050 --vpcNo 76248 --subnetNo 174257 --serverProductCode SVR.VSVR.HICPU.C002.M004.NET.SSD.B050.G002 --feeSystemTypeCode MTRAT --serverCreateCount 1 --serverName cli-test-web-kr1 --networkInterfaceList "networkInterfaceOrder='0', accessControlGroupNoList=['204589']" --isProtectServerTermination false --initScriptNo 63194 --loginKeyName  clova-test --associateWithPublicIp true  

{  
  "createServerInstancesResponse": {  
    "totalRows": 1,  
    "serverInstanceList": [  
      {  
        "serverInstanceNo": "26695183",  
        "serverName": "cli-test-web-kr1",  
        "serverDescription": "",  
        "cpuCount": 2,  
        "memorySize": 4294967296,  
        "platformType": {  
          "code": "LNX64",  
          "codeName": "Linux 64 Bit"  
        },  
        "loginKeyName": "clova-test",  
        "publicIpInstanceNo": "",  
        "publicIp": "",  
        "serverInstanceStatus": {  
          "code": "INIT",  
          "codeName": "서버 INIT 상태"  
        },  
        "serverInstanceOperation": {  
          "code": "NULL",  
          "codeName": "서버 NULL OP"  
        },  
        "serverInstanceStatusName": "init",  
        "createDate": "2024-09-24T18:16:19+0900",  
        "uptime": "2024-09-24T18:16:19+0900",  
        "serverImageProductCode": "SW.VSVR.OS.LNX64.CNTOS.0708.B050",  
        "serverProductCode": "SVR.VSVR.HICPU.C002.M004.NET.SSD.B050.G002",  
        "isProtectServerTermination": false,  
        "zoneCode": "KR-1",  
        "regionCode": "KR",  
        "vpcNo": "",  
        "subnetNo": "",  
        "networkInterfaceNoList": [],  
        "initScriptNo": "63194",  
        "serverInstanceType": {  
          "code": "HICPU",  
          "codeName": "High CPU"  
        },  
        "baseBlockStorageDiskType": {  
          "code": "NET",  
          "codeName": "네트웍 스토리지"  
        },  
        "baseBlockStorageDiskDetailType": {  
          "code": "SSD",  
          "codeName": "SSD"  
        },  
        "placementGroupNo": "",  
        "placementGroupName": "",  
        "memberServerImageInstanceNo": "",  
        "hypervisorType": {  
          "code": "XEN",  
          "codeName": "XEN"  
        },  
        "serverImageNo": "16187001",  
        "serverSpecCode": "c2-g2-s50"  
      }  
    ],  
    "requestId": "6e49efcb-f58e-4a9b-a1a5-082092e9674b",  
    "returnCode": "0",  
    "returnMessage": "success"  
  }  
}
  • CLI 실행 후 시간이 조금 지났다면 콘솔을 접속 하여 생성 된 서버를 확인 할 수 있습니다.

  • ACG Inbound Rule 수정

서버에** Apache** 를 설치 했기에 Inbound Rule 에 80 port를 추가 합니다.

  • 공인 IP:80 접속 테스트

브라우저에서 웹 서비스가 정상적으로 동작하는지 확인 합니다.


마치며..

이번 주제에서 Ncloud CLI를 통해 리소스 생성법에 대해 알아보았습니다.

해당 포스트에서 소개 하지 않은 리소스들 (EX: Loadbalancer , ETC )도 많기 때문에 더 많은 CLI 사용법에 대해 알고 싶으신 분들은 아래 가이드 링크에서 확인 부탁드립니다 !

CLI 개요
Classic/VPC 환경에서 이용 가능합니다. 네이버 클라우드 플랫폼에서 제공하는 서비스와 솔루션을 효과적으로 관리할 수 있도록 CLI(Command Line Interface, 명령줄 인터페이스)를 제공하고… cli.ncloud-docs.com

감사합니다.

This post is licensed under CC BY 4.0 by the author.