API 플랫폼 서비스팩 설치 가이드

1. 문서 개요

1.1. 목적

본 문서(API 플랫폼 서비스팩 설치 가이드)는 전자정부표준프레임워크 기반의 PaaS-TA에서 제공되는 서비스팩인 API 플랫폼 서비스팩을 Bosh를 이용하여 설치 하는 방법과 PaaS-TA의 SaaS 형태로 제공하는 Application 에서 API 플랫폼 서비스를 사용하는 방법을 기술하였다. PaaS-TA 3.5 버전부터는 Bosh2.0 기반으로 deploy를 진행하며 기존 Bosh1.0 기반으로 설치를 원할경우에는 PaaS-TA 3.1 이하 버전의 문서를 참고한다.

1.2. 범위

설치 범위는 API 플랫폼 서비스팩을 검증하기 위한 기본 설치를 기준으로 작성하였다.

1.3. 시스템 구성도

본 문서의 설치된 시스템 구성도입니다. API 플랫폼(api manager), API 플랫폼 서비스 브로커, Business Activity Monitor(bam), Maria DB로 최소사항을 구성하였다.
  • 설치할때 cloud config에서 사용하는 VM_Tpye명과 스펙
VM_Type
스펙
minimal
1vCPU / 1GB RAM / 8GB Disk
service_medium
2vCPU / 4GB RAM / 8GB Disk
  • 각 Instance의 Resource Pool과 스펙
구분
Resource Pool
스펙
apiplatform-broker
minimal
1vCPU / 1GB RAM / 8GB Disk
apimanager
service_medium
2vCPU / 4GB RAM / 8GB Disk
bam
service_medium
2vCPU / 4GB RAM / 8GB Disk
mariadb
minimal
1vCPU / 1GB RAM / 8GB Disk

1.4. 참고자료

2. API 플랫폼 서비스팩 설치

2.1. 설치전 준비사항

본 설치 가이드는 Linux 환경에서 설치하는 것을 기준으로 하였다. 서비스팩 설치를 위해서는 먼저 BOSH CLI v2 가 설치 되어 있어야 하고 BOSH 에 로그인이 되어 있어야 한다. BOSH CLI v2 가 설치 되어 있지 않을 경우 먼저 BOSH2.0 설치 가이드 문서를 참고 하여 BOSH CLI v2를 설치를 하고 사용법을 숙지 해야 한다.
  • PaaS-TA에서 제공하는 압축된 릴리즈 파일들을 다운받는다. (PaaSTA-Deployment.zip, PaaSTA-Sample-Apps.zip, PaaSTA-Services.zip)
  • 다운로드 위치

2.2. API 플랫폼 서비스 릴리즈 업로드

  • 업로드 되어 있는 릴리즈 목록을 확인한다.
  • 사용 예시
    1
    $ bosh -e micro-bosh releases
    2
    Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
    3
    4
    Name Version Commit Hash
    5
    binary-buildpack 1.0.21* d714741
    6
    bpm 0.9.0* c9b7136
    7
    caas-release 1.0* empty+
    8
    capi 1.62.0* 22a608c
    9
    cf-networking 2.8.0* 479f4a66
    10
    cf-smoke-tests 40.0.5* d6aaf1f
    11
    cf-syslog-drain 7.0* 71b995a
    12
    cflinuxfs2 1.227.0* 60128e1
    13
    consul 195* 67cdbcd
    14
    diego 2.13.0* b5644d9
    15
    dotnet-core-buildpack 2.1.3* 46a41cd
    16
    garden-runc 1.15.1* 75107e7+
    17
    go-buildpack 1.8.25* 40c60a0
    18
    haproxy 8.8.0* 9292573
    19
    java-buildpack 4.13* c2749d3
    20
    loggregator 103.0* 05da4e3d
    21
    loggregator-agent 2.0* 2382c90
    22
    nats 24* 30e7a82
    23
    nodejs-buildpack 1.6.28* 4cfdb7b
    24
    paas-ta-portal-release 2.0* non-git
    25
    paasta-delivery-pipeline-release 1.0* b3ee8f48+
    26
    paasta-pinpoint 2.0* 2dbb8bf3+
    27
    php-buildpack 4.3.57* efc48f3
    28
    postgres 29* 5de4d63d+
    29
    python-buildpack 1.6.18* bcc4f26
    30
    routing 0.179.0* 18155a5
    31
    ruby-buildpack 1.7.21* 9d69600
    32
    silk 2.9.0* eebed55
    33
    staticfile-buildpack 1.4.29* 8a82e63
    34
    statsd-injector 1.3.0* 39e5179
    35
    uaa 60.2* ebb5895
    36
    37
    (*) Currently deployed
    38
    (+) Uncommitted changes
    39
    40
    31 releases
    41
    42
    Succeeded
    Copied!
  • API 플랫폼 서비스 릴리즈가 업로드 되어 있지 않은 것을 확인
  • API 플랫폼 서비스 릴리즈 파일을 업로드한다.
  • 사용 예시
    1
    $ bosh -e micro-bosh upload-release paasta-apiplatform-2.0.tgz
    2
    Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
    3
    4
    ######################################################## 100.00% 165.27 MiB/s 5s
    5
    Task 7608
    6
    7
    Task 7608 | 07:51:51 | Extracting release: Extracting release (00:00:14)
    8
    Task 7608 | 07:52:05 | Verifying manifest: Verifying manifest (00:00:00)
    9
    Task 7608 | 07:52:05 | Resolving package dependencies: Resolving package dependencies (00:00:00)
    10
    Task 7608 | 07:52:06 | Creating new packages: apiplatform-broker/b9356e568d495e53294ba465c28b2cac8b923e1f (00:00:03)
    11
    Task 7608 | 07:52:09 | Creating new packages: bam/c72a2d571666da622c7a61b638289dc5477d4d25 (00:00:05)
    12
    Task 7608 | 07:52:14 | Creating new packages: java7/5e1e7d676990295c095b632bddc5c42c0da1fccd (00:00:04)
    13
    Task 7608 | 07:52:18 | Creating new packages: mariadb/76d00089f1c7ee1122f6b584d26d21a14254e1f0 (00:00:05)
    14
    Task 7608 | 07:52:23 | Creating new packages: jre7/856cd96de84744fa28c222e7a0d8e4a357203e74 (00:00:01)
    15
    Task 7608 | 07:52:24 | Creating new packages: mysql_connector_java/b900fe25d061ec118fbd0cead39366de046d9a68 (00:00:01)
    16
    Task 7608 | 07:52:25 | Creating new packages: apimanager/f6fdd14e4f28d302661aae793f82c6949515036d (00:00:09)
    17
    Task 7608 | 07:52:34 | Creating new packages: cf-cli/99238e9bbf54ff4ebc80aef311127c2568e5497d (00:00:00)
    18
    Task 7608 | 07:52:34 | Creating new jobs: apiplatform-broker/ea5d45d4d3a32c1aa4749b06ccf2810db5d4623c (00:00:01)
    19
    Task 7608 | 07:52:35 | Creating new jobs: bam/ff28a9aaf2d72880c7f5416722c17fa3cc98d384 (00:00:00)
    20
    Task 7608 | 07:52:35 | Creating new jobs: mariadb/2daf54b9238968ef5084148a4917ca9188ab4945 (00:00:00)
    21
    Task 7608 | 07:52:35 | Creating new jobs: broker-deregistrar/40ceeab0a3394ba8327d7c29dcef90f3bc8b8928 (00:00:00)
    22
    Task 7608 | 07:52:35 | Creating new jobs: apimanager/0a6694f5b75baf21b7554109ab9dc2d2d6a0caea (00:00:00)
    23
    Task 7608 | 07:52:35 | Creating new jobs: broker-registrar/e12e1c97975cce90a9b7199f414587fd6715d170 (00:00:00)
    24
    Task 7608 | 07:52:35 | Release has been created: paasta-apiplatform/2.0 (00:00:00)
    25
    26
    Task 7608 Started Wed Sep 12 07:51:51 UTC 2018
    27
    Task 7608 Finished Wed Sep 12 07:52:35 UTC 2018
    28
    Task 7608 Duration 00:00:44
    29
    Task 7608 done
    30
    31
    Succeeded
    Copied!
  • 업로드 된 MySQL 릴리즈를 확인한다.
  • 사용 예시
    1
    $ bosh -e micro-bosh releases
    2
    Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
    3
    4
    Name Version Commit Hash
    5
    binary-buildpack 1.0.21* d714741
    6
    bpm 0.9.0* c9b7136
    7
    caas-release 1.0* empty+
    8
    capi 1.62.0* 22a608c
    9
    cf-networking 2.8.0* 479f4a66
    10
    cf-smoke-tests 40.0.5* d6aaf1f
    11
    cf-syslog-drain 7.0* 71b995a
    12
    cflinuxfs2 1.227.0* 60128e1
    13
    consul 195* 67cdbcd
    14
    diego 2.13.0* b5644d9
    15
    dotnet-core-buildpack 2.1.3* 46a41cd
    16
    garden-runc 1.15.1* 75107e7+
    17
    go-buildpack 1.8.25* 40c60a0
    18
    haproxy 8.8.0* 9292573
    19
    java-buildpack 4.13* c2749d3
    20
    loggregator 103.0* 05da4e3d
    21
    loggregator-agent 2.0* 2382c90
    22
    nats 24* 30e7a82
    23
    nodejs-buildpack 1.6.28* 4cfdb7b
    24
    paas-ta-portal-release 2.0* non-git
    25
    paasta-delivery-pipeline-release 1.0* b3ee8f48+
    26
    paasta-apiplatform 2.0 85e3f01e+
    27
    paasta-pinpoint 2.0* 2dbb8bf3+
    28
    php-buildpack 4.3.57* efc48f3
    29
    postgres 29* 5de4d63d+
    30
    python-buildpack 1.6.18* bcc4f26
    31
    routing 0.179.0* 18155a5
    32
    ruby-buildpack 1.7.21* 9d69600
    33
    silk 2.9.0* eebed55
    34
    staticfile-buildpack 1.4.29* 8a82e63
    35
    statsd-injector 1.3.0* 39e5179
    36
    uaa 60.2* ebb5895
    37
    38
    (*) Currently deployed
    39
    (+) Uncommitted changes
    40
    41
    32 releases
    42
    43
    Succeeded
    Copied!
  • API 플랫폼 서비스 릴리즈가 업로드 되어 있는 것을 확인
  • Deploy시 사용할 Stemcell을 확인한다.
  • 사용 예시
    1
    $ bosh -e micro-bosh stemcells
    2
    Name Version OS CPI CID
    3
    bosh-vsphere-esxi-ubuntu-trusty-go_agent 3586.26* ubuntu-trusty - sc-109fbdb0-f663-49e8-9c30-8dbdd2e5b9b9
    4
    ~ 3445.2* ubuntu-trusty - sc-025c70b5-7d6e-4ba3-a12b-7e71c33dad24
    5
    ~ 3309* ubuntu-trusty - sc-22429dba-e5cc-4469-ab3a-882091573277
    6
    7
    (*) Currently deployed
    8
    9
    3 stemcells
    10
    11
    Succeeded
    Copied!
Stemcell 목록이 존재 하지 않을 경우 BOSH 설치 가이드 문서를 참고 하여 Stemcell을 업로드를 해야 한다. (API 플랫폼 서비스는 stemcell 3309 버전을 사용)

2.3. API 플랫폼 서비스 릴리즈 Deployment 파일 수정 및 배포

BOSH Deployment manifest 는 components 요소 및 배포의 속성을 정의한 YAML 파일이다. Deployment manifest 에는 sotfware를 설치 하기 위해서 어떤 Stemcell (OS, BOSH agent) 을 사용할것이며 Release (Software packages, Config templates, Scripts) 이름과 버전, VMs 용량, Jobs params 등을 정의가 되어 있다.
deployment 파일에서 사용하는 network, vm_type 등은 cloud config 를 활용하고 해당 가이드는 Bosh2.0 가이드를 참고한다.
  • cloud config 내용 조회
  • 사용 예시
    1
    bosh -e micro-bosh cloud-config
    2
    Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
    3
    4
    azs:
    5
    - cloud_properties:
    6
    datacenters:
    7
    - clusters:
    8
    - BD-HA:
    9
    resource_pool: CF_BOSH2_Pool
    10
    name: BD-HA
    11
    name: z1
    12
    - cloud_properties:
    13
    datacenters:
    14
    - clusters:
    15
    - BD-HA:
    16
    resource_pool: CF_BOSH2_Pool
    17
    name: BD-HA
    18
    name: z2
    19
    - cloud_properties:
    20
    datacenters:
    21
    - clusters:
    22
    - BD-HA:
    23
    resource_pool: CF_BOSH2_Pool
    24
    name: BD-HA
    25
    name: z3
    26
    - cloud_properties:
    27
    datacenters:
    28
    - clusters:
    29
    - BD-HA:
    30
    resource_pool: CF_BOSH2_Pool
    31
    name: BD-HA
    32
    name: z4
    33
    - cloud_properties:
    34
    datacenters:
    35
    - clusters:
    36
    - BD-HA:
    37
    resource_pool: CF_BOSH2_Pool
    38
    name: BD-HA
    39
    name: z5
    40
    - cloud_properties:
    41
    datacenters:
    42
    - clusters:
    43
    - BD-HA:
    44
    resource_pool: CF_BOSH2_Pool
    45
    name: BD-HA
    46
    name: z6
    47
    compilation:
    48
    az: z1
    49
    network: default
    50
    reuse_compilation_vms: true
    51
    vm_type: large
    52
    workers: 5
    53
    disk_types:
    54
    - disk_size: 1024
    55
    name: default
    56
    - disk_size: 1024
    57
    name: 1GB
    58
    - disk_size: 2048
    59
    name: 2GB
    60
    - disk_size: 4096
    61
    name: 4GB
    62
    - disk_size: 5120
    63
    name: 5GB
    64
    - disk_size: 8192
    65
    name: 8GB
    66
    - disk_size: 10240
    67
    name: 10GB
    68
    - disk_size: 20480
    69
    name: 20GB
    70
    - disk_size: 30720
    71
    name: 30GB
    72
    - disk_size: 51200
    73
    name: 50GB
    74
    - disk_size: 102400
    75
    name: 100GB
    76
    - disk_size: 1048576
    77
    name: 1TB
    78
    networks:
    79
    - name: default
    80
    subnets:
    81
    - azs:
    82
    - z1
    83
    - z2
    84
    - z3
    85
    - z4
    86
    - z5
    87
    - z6
    88
    cloud_properties:
    89
    name: Internal
    90
    dns:
    91
    - 8.8.8.8
    92
    gateway: 10.30.20.23
    93
    range: 10.30.0.0/16
    94
    reserved:
    95
    - 10.30.0.0 - 10.30.111.40
    96
    - name: public
    97
    subnets:
    98
    - azs:
    99
    - z1
    100
    - z2
    101
    - z3
    102
    - z4
    103
    - z5
    104
    - z6
    105
    cloud_properties:
    106
    name: External
    107
    dns:
    108
    - 8.8.8.8
    109
    gateway: 115.68.46.177
    110
    range: 115.68.46.176/28
    111
    reserved:
    112
    - 115.68.46.176 - 115.68.46.188
    113
    static:
    114
    - 115.68.46.189 - 115.68.46.190
    115
    type: manual
    116
    - name: service_private
    117
    subnets:
    118
    - azs:
    119
    - z1
    120
    - z2
    121
    - z3
    122
    - z4
    123
    - z5
    124
    - z6
    125
    cloud_properties:
    126
    name: Internal
    127
    dns:
    128
    - 8.8.8.8
    129
    gateway: 10.30.20.23
    130
    range: 10.30.0.0/16
    131
    reserved:
    132
    - 10.30.0.0 - 10.30.106.255
    133
    static:
    134
    - 10.30.107.1 - 10.30.107.255
    135
    - name: service_public
    136
    subnets:
    137
    - azs:
    138
    - z1
    139
    - z2
    140
    - z3
    141
    - z4
    142
    - z5
    143
    - z6
    144
    cloud_properties:
    145
    name: External
    146
    dns:
    147
    - 8.8.8.8
    148
    gateway: 115.68.47.161
    149
    range: 115.68.47.160/24
    150
    reserved:
    151
    - 115.68.47.161 - 115.68.47.174
    152
    static:
    153
    - 115.68.47.175 - 115.68.47.185
    154
    type: manual
    155
    - name: portal_service_public
    156
    subnets:
    157
    - azs:
    158
    - z1
    159
    - z2
    160
    - z3
    161
    - z4
    162
    - z5
    163
    - z6
    164
    cloud_properties:
    165
    name: External
    166
    dns:
    167
    - 8.8.8.8
    168
    gateway: 115.68.46.209
    169
    range: 115.68.46.208/28
    170
    reserved:
    171
    - 115.68.46.216 - 115.68.46.222
    172
    static:
    173
    - 115.68.46.214
    174
    type: manual
    175
    vm_extensions:
    176
    - cloud_properties:
    177
    ports:
    178
    - host: 3306
    179
    name: mysql-proxy-lb
    180
    - name: cf-router-network-properties
    181
    - name: cf-tcp-router-network-properties
    182
    - name: diego-ssh-proxy-network-properties
    183
    - name: cf-haproxy-network-properties
    184
    - cloud_properties:
    185
    disk: 51200
    186
    name: small-50GB
    187
    - cloud_properties:
    188
    disk: 102400
    189
    name: small-highmem-100GB
    190
    vm_types:
    191
    - cloud_properties:
    192
    cpu: 1
    193
    disk: 8192
    194
    ram: 1024
    195
    name: minimal
    196
    - cloud_properties:
    197
    cpu: 1
    198
    disk: 10240
    199
    ram: 2048
    200
    name: default
    201
    - cloud_properties:
    202
    cpu: 1
    203
    disk: 30720
    204
    ram: 4096
    205
    name: small
    206
    - cloud_properties:
    207
    cpu: 2
    208
    disk: 20480
    209
    ram: 4096
    210
    name: medium
    211
    - cloud_properties:
    212
    cpu: 2
    213
    disk: 20480
    214
    ram: 8192
    215
    name: medium-memory-8GB
    216
    - cloud_properties:
    217
    cpu: 4
    218
    disk: 20480
    219
    ram: 8192
    220
    name: large
    221
    - cloud_properties:
    222
    cpu: 8
    223
    disk: 20480
    224
    ram: 16384
    225
    name: xlarge
    226
    - cloud_properties:
    227
    cpu: 2
    228
    disk: 51200
    229
    ram: 4096
    230
    name: small-50GB
    231
    - cloud_properties:
    232
    cpu: 2
    233
    disk: 51200
    234
    ram: 4096
    235
    name: small-50GB-ephemeral-disk
    236
    - cloud_properties:
    237
    cpu: 4
    238
    disk: 102400
    239
    ram: 8192
    240
    name: small-100GB-ephemeral-disk
    241
    - cloud_properties:
    242
    cpu: 4
    243
    disk: 102400
    244
    ram: 8192
    245
    name: small-highmem-100GB-ephemeral-disk
    246
    - cloud_properties:
    247
    cpu: 8
    248
    disk: 20480
    249
    ram: 16384
    250
    name: small-highmem-16GB
    251
    - cloud_properties:
    252
    cpu: 1
    253
    disk: 4096
    254
    ram: 2048
    255
    name: caas_small
    256
    - cloud_properties:
    257
    cpu: 1
    258
    disk: 4096
    259
    ram: 1024
    260
    name: caas_small_api
    261
    - cloud_properties:
    262
    cpu: 1
    263
    disk: 4096
    264
    ram: 4096
    265
    name: caas_medium
    266
    - cloud_properties:
    267
    cpu: 2
    268
    disk: 8192
    269
    ram: 4096
    270
    name: service_medium
    271
    - cloud_properties:
    272
    cpu: 2
    273
    disk: 10240
    274
    ram: 2048
    275
    name: service_medium_2G
    276
    277
    Succeeded
    Copied!
  • Deployment 파일을 서버 환경에 맞게 수정한다.
1
# paasta-apiplatform-service 설정 파일 내용
2
---
3
name: paasta-apiplatform-service # 서비스 배포이름(필수)
4
5
release:
6
name: paasta-apiplatform #서비스 릴리즈 이름(필수)
7
version: "2.0" #서비스 릴리즈 버전(필수):latest 시 업로드된 서비스 릴리즈 최신버전
8
9
stemcells:
10
- alias: default
11
os: ((stemcell_os))
12
version: "((stemcell_version))"
13
14
update:
15
canaries: 1 # canary 인스턴스 수(필수)
16
canary_watch_time: 30000-600000 # canary 인스턴스가 수행하기 위한 대기 시간(필수)
17
max_in_flight: 1 # non-canary 인스턴스가 병렬로 update 하는 최대 개수(필수)
18
update_watch_time: 30000-600000 # 컴파일 시 필요한 가상머신의 속성(필수)
19
20
instance_groups:
21
- name: mariadb # 작업 이름(필수): DB 서버
22
azs:
23
- z5
24
instances: 1 # job 인스턴스 수(필수)
25
vm_type: ((vm_type_small)) # cloud config 에 정의한 vm_type
26
stemcell: default
27
networks:
28
- name: ((default_network_name)) # cloud config 에 정의한 network 이름
29
static_ips: # 사용할 IP addresses
30
- 10.30.107.210
31
properties: # job에 대한 속성을 지정(필수)
32
admin_username: root # DB 어드민 유저이름
33
admin_password: openpaas # DB 어드민 패스워드
34
apiplatform_username: wso2 # API Platform(API Manager)의 DB 접속 유저이름
35
apiplatform_password: openpaas # API Platform(API Manager)의 DB 접속 패스워드
36
apiplatform_broker_username: apiplatform # API Platform Service Broker의 DB 접속 유저이름
37
apiplatform_broker_password: openpaas # API Platform Service Broker의 DB 접속 패스워드
38
templates:
39
- name: mariadb # job template 이름(필수)
40
release: paasta-apiplatform
41
42
- name: bam # 작업 이름(필수): BAM
43
azs:
44
- z5
45
instances: 1 # job 인스턴스 수(필수)
46
vm_type: ((vm_type_medium)) # cloud config 에 정의한 vm_type
47
stemcell: default
48
networks:
49
- name: ((default_network_name)) # cloud config 에 정의한 network 이름
50
static_ips: # 사용할 IP addresses
51
- 10.30.107.203
52
templates:
53
- name: bam # job template 이름(필수)
54
release: paasta-apiplatform
55
56
- name: apimanager # 작업 이름(필수): API Platform(API Manager)
57
azs:
58
- z5
59
instances: 1 # job 인스턴스 수(필수)
60
vm_type: ((vm_type_medium)) # cloud config 에 정의한 vm_type
61
stemcell: default
62
networks:
63
- name: ((default_network_name)) # cloud config 에 정의한 network 이름
64
static_ips: # 사용할 IP addresses
65
- 10.30.107.201
66
templates:
67
- name: apimanager # job template 이름(필수)
68
release: paasta-apiplatform
69
70
- name: apiplatform-broker # 작업 이름(필수): API Platform Service Broker
71
azs:
72
- z5
73
instances: 1 # job 인스턴스 수(필수)
74
vm_type: ((vm_type_small)) # cloud config 에 정의한 vm_type
75
stemcell: default
76
networks:
77
- name: ((default_network_name)) # cloud config 에 정의한 network 이름
78
static_ips: # 사용할 IP addresses
79
- 10.30.107.200
80
properties: # job에 대한 속성을 지정(필수)
81
catalog_login_id: admin # 카탈로그 API를 사용하기 위한 API플랫폼 유저 아이디
82
catalog_login_password: admin # 카탈로그 API를 사용하기 위한 API플랫폼 유저 패스워드
83
apimanager_url: http://10.30.107.201 # API Platform(API Manager) URL
84
database_ip: 10.30.107.210 # DB 접속 URL
85
apiplatform_broker_username: apiplatform # API Platform Service Broker의 DB 접속 유저이름
86
apiplatform_broker_password: openpaas # API Platform Service Broker의 DB 접속 패스워드
87
templates:
88
- name: apiplatform-broker # job template 이름(필수)
89
release: paasta-apiplatform
90
91
- name: broker-registrar # 작업 이름(필수): 서비스 브로커 등록
92
azs:
93
- z5
94
instances: 1 # job 인스턴스 수(필수)
95
lifecycle: errand # bosh deploy시 vm에 생성되어 설치 되지 않고 bosh errand 로 실행할 때 설정, 주로 테스트 용도에 쓰임
96
vm_type: ((vm_type_small)) # cloud config 에 정의한 vm_type
97
stemcell: default
98
networks:
99
- name: ((default_network_name)) # cloud config 에 정의한 network 이름
100
properties: # job에 대한 속성을 지정(필수)
101
cf: # PaaS-TA 접속 정보
102
api_url: http://api.115.68.46.189.xip.io # PaaS-TA 접속 URL
103
admin_username: "admin" # PaaS-TA 접속 유저이름
104
admin_password: "admin_test" # PaaS-TA 접속 패스워드
105
skip_ssl_validation: "true" # PaaS-TA 접속 옵션의 일부
106
broker: # API Platform Service Broker 설정정보
107
protocol: http # API Platform Service Broker 접속 프로토콜
108
host: 10.30.107.200 # API Platform Service Broker 접속 URL
109
port: 8080 # API Platform Service Broker 접속 포트
110
name: apiplatform-serivce-broker # API Platform Service Broker 생성명
111
username: "admin" # API Platform Service Broker auth 유저이름
112
password: "cloudfoundry" # API Platform Service Broker auth 패스워드
113
templates:
114
- name: broker-registrar # job template 이름(필수)
115
release: paasta-apiplatform
116
117
- name: broker-deregistrar # 작업 이름(필수): 서비스 브로커 등록
118
azs:
119
- z5
120
instances: 1 # job 인스턴스 수(필수)
121
lifecycle: errand # bosh deploy시 vm에 생성되어 설치 되지 않고 bosh errand 로 실행할 때 설정, 주로 테스트 용도에 쓰임
122
vm_type: ((vm_type_small)) # cloud config 에 정의한 vm_type
123
stemcell: default
124
networks:
125
- name: ((default_network_name)) # cloud config 에 정의한 network 이름
126
properties: # job에 대한 속성을 지정(필수)
127
cf: # PaaS-TA 접속 정보
128
api_url: http://api.115.68.46.189.xip.io # PaaS-TA 접속 URL
129
admin_username: "admin" # PaaS-TA 접속 유저이름
130
admin_password: "admin_test" # PaaS-TA 접속 패스워드
131
skip_ssl_validation: "true" # PaaS-TA 접속 옵션의 일부
132
broker: # API Platform Service Broker 설정정보
133
name: apiplatform-service-broker # API Platform Service Broker 생성명
134
templates:
135
- name: broker-deregistrar # job template 이름(필수)
136
release: paasta-apiplatform
Copied!
  • deploy-apiplatform-bosh2.0.sh 파일을 서버 환경에 맞게 수정한다.
1
#!/bin/bash
2
# stemcell 버전은 3309 버전으로 사용하시고 https://github.com/PaaS-TA/Guide-2.0-Linguine-/blob/master/Download_Page.md 에서 다운받아 쓰십시요.
3
4
bosh -e micro-bosh -d paasta-apiplatform-service deploy paasta_apiplatform_bosh2.0.yml \
5
-v default_network_name=service_private \
6
-v stemcell_os=ubuntu-trusty \
7
-v stemcell_version=3309 \
8
-v vm_type_medium=service_medium \
9
-v vm_type_small=minimal
Copied!
  • API 플랫폼 서비스팩을 배포한다.
  • 사용 예시
    1
    $ ./deploy-apiplatform-bosh2.0.sh
    2
    Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
    3
    4
    Using deployment 'paasta-apiplatform-service'
    5
    6
    + azs:
    7
    + - cloud_properties:
    8
    + datacenters:
    9
    + - clusters:
    10
    + - BD-HA:
    11
    + resource_pool: CF_BOSH2_Pool
    12
    + name: BD-HA
    13
    + name: z1
    14
    + - cloud_properties:
    15
    + datacenters:
    16
    + - clusters:
    17
    + - BD-HA:
    18
    + resource_pool: CF_BOSH2_Pool
    19
    + name: BD-HA
    20
    + name: z2
    21
    + - cloud_properties:
    22
    + datacenters:
    23
    + - clusters:
    24
    + - BD-HA:
    25
    + resource_pool: CF_BOSH2_Pool
    26
    + name: BD-HA
    27
    + name: z3
    28
    + - cloud_properties:
    29
    + datacenters:
    30
    + - clusters:
    31
    + - BD-HA:
    32
    + resource_pool: CF_BOSH2_Pool
    33
    + name: BD-HA
    34
    + name: z4
    35
    + - cloud_properties:
    36
    + datacenters:
    37
    + - clusters:
    38
    + - BD-HA:
    39
    + resource_pool: CF_BOSH2_Pool
    40
    + name: BD-HA
    41
    + name: z5
    42
    + - cloud_properties:
    43
    + datacenters:
    44
    + - clusters:
    45
    + - BD-HA:
    46
    + resource_pool: CF_BOSH2_Pool
    47
    + name: BD-HA
    48
    + name: z6
    49
    50
    + vm_types:
    51
    + - cloud_properties:
    52
    + cpu: 1
    53
    + disk: 8192
    54
    + ram: 1024
    55
    + name: minimal
    56
    + - cloud_properties:
    57
    + cpu: 1
    58
    + disk: 10240
    59
    + ram: 2048
    60
    + name: default
    61
    + - cloud_properties:
    62
    + cpu: 1
    63
    + disk: 30720
    64
    + ram: 4096
    65
    + name: small
    66
    + - cloud_properties:
    67
    + cpu: 2
    68
    + disk: 20480
    69
    + ram: 4096
    70
    + name: medium
    71
    + - cloud_properties:
    72
    + cpu: 2
    73
    + disk: 20480
    74
    + ram: 8192
    75
    + name: medium-memory-8GB
    76
    + - cloud_properties:
    77
    + cpu: 4
    78
    + disk: 20480
    79
    + ram: 8192
    80
    + name: large
    81
    + - cloud_properties:
    82
    + cpu: 8
    83
    + disk: 20480
    84
    + ram: 16384
    85
    + name: xlarge
    86
    + - cloud_properties:
    87
    + cpu: 2
    88
    + disk: 51200
    89
    + ram: 4096
    90
    + name: small-50GB
    91
    + - cloud_properties:
    92
    + cpu: 2
    93
    + disk: 51200
    94
    + ram: 4096
    95
    + name: small-50GB-ephemeral-disk
    96
    + - cloud_properties:
    97
    + cpu: 4
    98
    + disk: 102400
    99
    + ram: 8192
    100
    + name: small-100GB-ephemeral-disk
    101
    + - cloud_properties:
    102
    + cpu: 4
    103
    + disk: 102400
    104
    + ram: 8192
    105
    + name: small-highmem-100GB-ephemeral-disk
    106
    + - cloud_properties:
    107
    + cpu: 8
    108
    + disk: 20480
    109
    + ram: 16384
    110
    + name: small-highmem-16GB
    111
    + - cloud_properties:
    112
    + cpu: 1
    113
    + disk: 4096
    114
    + ram: 2048
    115
    + name: caas_small
    116
    + - cloud_properties:
    117
    + cpu: 1
    118
    + disk: 4096
    119
    + ram: 1024
    120
    + name: caas_small_api
    121
    + - cloud_properties:
    122
    + cpu: 1
    123
    + disk: 4096
    124
    + ram: 4096
    125
    + name: caas_medium
    126
    + - cloud_properties:
    127
    + cpu: 2
    128
    + disk: 8192
    129
    + ram: 4096
    130
    + name: service_medium
    131
    + - cloud_properties:
    132
    + cpu: 2
    133
    + disk: 10240
    134
    + ram: 2048
    135
    + name: service_medium_2G
    136
    + - cloud_properties:
    137
    + cpu: 1
    138
    + disk: 4096
    139
    + ram: 512
    140
    + name: portal_small
    141
    + - cloud_properties:
    142
    + cpu: 1
    143
    + disk: 4096
    144
    + ram: 1024
    145
    + name: portal_medium
    146
    + - cloud_properties:
    147
    + cpu: 1
    148
    + disk: 4096
    149
    + ram: 2048
    150
    + name: portal_large
    151
    152
    + vm_extensions:
    153
    + - cloud_properties:
    154
    + ports:
    155
    + - host: 3306
    156
    + name: mysql-proxy-lb
    157
    + - name: cf-router-network-properties
    158
    + - name: cf-tcp-router-network-properties
    159
    + - name: diego-ssh-proxy-network-properties
    160
    + - name: cf-haproxy-network-properties
    161
    + - cloud_properties:
    162
    + disk: 51200
    163
    + name: small-50GB
    164
    + - cloud_properties:
    165
    + disk: 102400
    166
    + name: small-highmem-100GB
    167
    168
    + compilation:
    169
    + az: z1
    170
    + network: default
    171
    + reuse_compilation_vms: true
    172
    + vm_type: large
    173
    + workers: 5
    174
    175
    + networks:
    176
    + - name: default
    177
    + subnets:
    178
    + - azs:
    179
    + - z1
    180
    + - z2
    181
    + - z3
    182
    + - z4
    183
    + - z5
    184
    + - z6
    185
    + cloud_properties:
    186
    + name: Internal
    187
    + dns:
    188
    + - 8.8.8.8
    189
    + gateway: 10.30.20.23
    190
    + range: 10.30.0.0/16
    191
    + reserved:
    192
    + - 10.30.0.0 - 10.30.111.40
    193
    + - name: public
    194
    + subnets:
    195
    + - azs:
    196
    + - z1
    197
    + - z2
    198
    + - z3
    199
    + - z4
    200
    + - z5
    201
    + - z6
    202
    + cloud_properties:
    203
    + name: External
    204
    + dns:
    205
    + - 8.8.8.8
    206
    + gateway: 115.68.46.177
    207
    + range: 115.68.46.176/28
    208
    + reserved:
    209
    + - 115.68.46.176 - 115.68.46.188
    210
    + static:
    211
    + - 115.68.46.189 - 115.68.46.190
    212
    + type: manual
    213
    + - name: service_private
    214
    + subnets:
    215
    + - azs:
    216
    + - z1
    217
    + - z2
    218
    + - z3
    219
    + - z4
    220
    + - z5
    221
    + - z6
    222
    + cloud_properties:
    223
    + name: Internal
    224
    + dns:
    225
    + - 8.8.8.8
    226
    + gateway: 10.30.20.23
    227
    + range: 10.30.0.0/16
    228
    + reserved:
    229
    + - 10.30.0.0 - 10.30.106.255
    230
    + static:
    231
    + - 10.30.107.1 - 10.30.107.255
    232
    + - name: service_public
    233
    + subnets:
    234
    + - azs:
    235
    + - z1
    236
    + - z2
    237
    + - z3
    238
    + - z4
    239
    + - z5
    240
    + - z6
    241
    + cloud_properties:
    242
    + name: External
    243
    + dns:
    244
    + - 8.8.8.8
    245
    + gateway: 115.68.47.161
    246
    + range: 115.68.47.160/24
    247
    + reserved:
    248
    + - 115.68.47.161 - 115.68.47.174
    249
    + static:
    250
    + - 115.68.47.175 - 115.68.47.185
    251
    + type: manual
    252
    + - name: portal_service_public
    253
    + subnets:
    254
    + - azs:
    255
    + - z1
    256
    + - z2
    257
    + - z3
    258
    + - z4
    259
    + - z5
    260
    + - z6
    261
    + cloud_properties:
    262
    + name: External
    263
    + dns:
    264
    + - 8.8.8.8
    265
    + gateway: 115.68.46.209
    266
    + range: 115.68.46.208/28
    267
    + reserved:
    268
    + - 115.68.46.216 - 115.68.46.222
    269
    + static:
    270
    + - 115.68.46.214
    271
    + type: manual
    272
    273
    + disk_types:
    274
    + - disk_size: 1024
    275
    + name: default
    276
    + - disk_size: 1024
    277
    + name: 1GB
    278
    + - disk_size: 2048
    279
    + name: 2GB
    280
    + - disk_size: 4096
    281
    + name: 4GB
    282
    + - disk_size: 5120
    283
    + name: 5GB
    284
    + - disk_size: 8192
    285
    + name: 8GB
    286
    + - disk_size: 10240
    287
    + name: 10GB
    288
    + - disk_size: 20480
    289
    + name: 20GB
    290
    + - disk_size: 30720
    291
    + name: 30GB
    292
    + - disk_size: 51200
    293
    + name: 50GB
    294
    + - disk_size: 102400
    295
    + name: 100GB
    296
    + - disk_size: 1048576
    297
    + name: 1TB
    298
    299
    + stemcells:
    300
    + - alias: default
    301
    + os: ubuntu-trusty
    302
    + version: '3309'
    303
    304
    + update:
    305
    + canaries: 1
    306
    + canary_watch_time: 30000-600000
    307
    + max_in_flight: 1
    308
    + update_watch_time: 30000-600000
    309
    310
    + release:
    311
    + name: paasta-apiplatform
    312
    + version: '2.0'
    313
    314
    + instance_groups:
    315
    + - azs:
    316
    + - z5
    317
    + instances: 1
    318
    + name: mariadb
    319
    + networks:
    320
    + - name: service_private
    321
    + static_ips:
    322
    + - 10.30.107.210
    323
    + properties:
    324
    + admin_password: "<redacted>"
    325
    + admin_username: "<redacted>"
    326
    + apiplatform_broker_password: "<redacted>"
    327
    + apiplatform_broker_username: "<redacted>"
    328
    + apiplatform_password: "<redacted>"
    329
    + apiplatform_username: "<redacted>"
    330
    + stemcell: default
    331
    + templates:
    332
    + - name: mariadb
    333
    + release: paasta-apiplatform
    334
    + vm_type: minimal
    335
    + - azs:
    336
    + - z5
    337
    + instances: 1
    338
    + name: bam
    339
    + networks:
    340
    + - name: service_private
    341
    + static_ips:
    342
    + - 10.30.107.203
    343
    + stemcell: default
    344
    + templates:
    345
    + - name: bam
    346
    + release: paasta-apiplatform
    347
    + vm_type: service_medium
    348
    + - azs:
    349
    + - z5
    350
    + instances: 1
    351
    + name: apimanager
    352
    + networks:
    353
    + - name: service_private
    354
    + static_ips:
    355
    + - 10.30.107.201
    356
    + stemcell: default
    357
    + templates:
    358
    + - name: apimanager
    359
    + release: paasta-apiplatform
    360
    + vm_type: service_medium
    361
    + - azs:
    362
    + - z5
    363
    + instances: 1
    364
    + name: apiplatform-broker
    365
    + networks:
    366
    + - name: service_private
    367
    + static_ips:
    368
    + - 10.30.107.200
    369
    + properties:
    370
    + apimanager_url: "<redacted>"
    371
    + apiplatform_broker_password: "<redacted>"
    372
    + apiplatform_broker_username: "<redacted>"
    373
    + catalog_login_id: "<redacted>"
    374
    + catalog_login_password: "<redacted>"
    375
    + database_ip: "<redacted>"
    376
    + stemcell: default
    377
    + templates:
    378
    + - name: apiplatform-broker
    379
    + release: paasta-apiplatform
    380
    + vm_type: minimal
    381
    + - azs:
    382
    + - z5
    383
    + instances: 1
    384
    + lifecycle: errand
    385
    + name: broker-registrar
    386
    + networks:
    387
    + - name: service_private
    388
    + properties:
    389
    + broker:
    390
    + host: "<redacted>"
    391
    + name: "<redacted>"
    392
    + password: "<redacted>"
    393
    + port: "<redacted>"
    394
    + protocol: "<redacted>"
    395
    + username: "<redacted>"
    396
    + cf:
    397
    + admin_password: "<redacted>"
    398
    + admin_username: "<redacted>"
    399
    + api_url: "<redacted>"
    400
    + skip_ssl_validation: "<redacted>"
    401
    + stemcell: default
    402
    + templates:
    403
    + - name: broker-registrar
    404
    + release: paasta-apiplatform
    405
    + vm_type: minimal
    406
    + - azs:
    407
    + - z5
    408
    + instances: 1
    409
    + lifecycle: errand
    410
    + name: broker-deregistrar
    411
    + networks:
    412
    + - name: service_private
    413
    + properties:
    414
    + broker:
    415
    + name: "<redacted>"
    416
    + cf:
    417
    + admin_password: "<redacted>"
    418
    + admin_username: "<redacted>"
    419
    + api_url: "<redacted>"
    420
    + skip_ssl_validation: "<redacted>"
    421
    + stemcell: default
    422
    + templates:
    423
    + - name: broker-deregistrar
    424
    + release: paasta-apiplatform
    425
    + vm_type: minimal
    426
    427
    + name: paasta-apiplatform-service
    428
    429
    Continue? [yN]: y
    430
    431
    Task 7609
    432
    433
    Task 7609 | 07:55:31 | Preparing deployment: Preparing deployment (00:00:02)
    434
    Task 7609 | 07:55:35 | Preparing package compilation: Finding packages to compile (00:00:00)
    435
    Task 7609 | 07:55:35 | Compiling packages: cf-cli/99238e9bbf54ff4ebc80aef311127c2568e5497d
    436
    Task 7609 | 07:55:35 | Compiling packages: jre7/856cd96de84744fa28c222e7a0d8e4a357203e74
    437
    Task 7609 | 07:55:35 | Compiling packages: bam/c72a2d571666da622c7a61b638289dc5477d4d25
    438
    Task 7609 | 07:55:35 | Compiling packages: mysql_connector_java/b900fe25d061ec118fbd0cead39366de046d9a68
    439
    Task 7609 | 07:55:35 | Compiling packages: java7/5e1e7d676990295c095b632bddc5c42c0da1fccd
    440
    Task 7609 | 07:58:07 | Compiling packages: mysql_connector_java/b900fe25d061ec118fbd0cead39366de046d9a68 (00:02:32)
    441
    Task 7609 | 07:58:07 | Compiling packages: mariadb/76d00089f1c7ee1122f6b584d26d21a14254e1f0
    442
    Task 7609 | 07:58:08 | Compiling packages: cf-cli/99238e9bbf54ff4ebc80aef311127c2568e5497d (00:02:33)
    443
    Task 7609 | 07:58:08 | Compiling packages: apimanager/f6fdd14e4f28d302661aae793f82c6949515036d
    444
    Task 7609 | 07:58:47 | Compiling packages: jre7/856cd96de84744fa28c222e7a0d8e4a357203e74 (00:03:12)
    445
    Task 7609 | 07:58:47 | Compiling packages: apiplatform-broker/b9356e568d495e53294ba465c28b2cac8b923e1f
    446
    Task 7609 | 07:59:15 | Compiling packages: java7/5e1e7d676990295c095b632bddc5c42c0da1fccd (00:03:40)
    447
    Task 7609 | 07:59:16 | Compiling packages: apiplatform-broker/b9356e568d495e53294ba465c28b2cac8b923e1f (00:00:29)
    448
    Task 7609 | 07:59:22 | Compiling packages: bam/c72a2d571666da622c7a61b638289dc5477d4d25 (00:03:47)
    449
    Task 7609 | 07:59:55 | Compiling packages: apimanager/f6fdd14e4f28d302661aae793f82c6949515036d (00:01:47)
    450
    Task 7609 | 08:40:27 | Compiling packages: mariadb/76d00089f1c7ee1122f6b584d26d21a14254e1f0 (00:42:20)
    451
    Task 7609 | 08:41:27 | Creating missing vms: mariadb/95ea8fa0-81ff-4900-b331-9c8ba0b19e30 (0)
    452
    Task 7609 | 08:41:27 | Creating missing vms: bam/9fcf3305-3536-48d1-a212-64da93694fcc (0)
    453
    Task 7609 | 08:41:27 | Creating missing vms: apimanager/fad601f4-01fe-4626-b3d0-07340b35cd24 (0)
    454
    Task 7609 | 08:41:27 | Creating missing vms: apiplatform-broker/d00e29cb-c5dd-4d7d-bb4d-179a5901fcc6 (0) (00:01:41)
    455
    Task 7609 | 08:43:08 | Creating missing vms: bam/9fcf3305-3536-48d1-a212-64da93694fcc (0) (00:01:41)
    456
    Task 7609 | 08:43:08 | Creating missing vms: mariadb/95ea8fa0-81ff-4900-b331-9c8ba0b19e30 (0) (00:01:41)
    457
    Task 7609 | 08:43:09 | Creating missing vms: apimanager/fad601f4-01fe-4626-b3d0-07340b35cd24 (0) (00:01:42)
    458
    Task 7609 | 08:43:11 | Updating instance mariadb: mariadb/95ea8fa0-81ff-4900-b331-9c8ba0b19e30 (0) (canary) (00:01:11)
    459
    Task 7609 | 08:44:23 | Updating instance bam: bam/9fcf3305-3536-48d1-a212-64da93694fcc (0) (canary) (00:01:25)
    460
    Task 7609 | 08:45:48 | Updating instance apimanager: apimanager/fad601f4-01fe-4626-b3d0-07340b35cd24 (0) (canary) (00:01:32)
    461
    Task 7609 | 08:47:20 | Updating instance apiplatform-broker: apiplatform-broker/d00e29cb-c5dd-4d7d-bb4d-179a5901fcc6 (0) (canary) (00:00:59)
    462
    463
    Task 7609 Started Wed Sep 12 07:55:31 UTC 2018
    464
    Task 7609 Finished Wed Sep 12 08:48:19 UTC 2018
    465
    Task 7609 Duration 00:52:48
    466
    Task 7609 done
    467
    468
    Succeeded
    Copied!
  • 배포된 API 플랫폼 서비스팩을 확인한다.
  • 사용 예시
    1
    $bosh -e micro-bosh -d paasta-apiplatform-service vms
    2
    Using environment '10.30.40.111' as user 'admin' (openid, bosh.admin)
    3
    4
    Task 7696. Done
    5
    6
    Deployment 'paasta-apiplatform-service'
    7
    8
    Instance Process State AZ IPs VM CID VM Type Active
    9
    apimanager/fad601f4-01fe-4626-b3d0-07340b35cd24 running z5 10.30.107.201 vm-b698177a-0448-48b8-a90e-ebf56ae2bc9a service_medium true
    10
    apiplatform-broker/d00e29cb-c5dd-4d7d-bb4d-179a5901fcc6 running z5 10.30.107.200 vm-9677ce51-3807-43ce-bf0d-814362fc48f2 minimal true
    11
    bam/9fcf3305-3536-48d1-a212-64da93694fcc running z5 10.30.107.203 vm-233fa349-a3cc-44dc-8dfb-f86d2555a158 service_medium true
    12
    mariadb/95ea8fa0-81ff-4900-b331-9c8ba0b19e30 running z5 10.30.107.210 vm-14687d6d-edc9-4c15-8410-a09efce70c71 minimal true
    13
    14
    4 vms
    15
    16
    Succeeded
    Copied!

2.4. API 매니저에서 API 생성 및 배포

API 플랫폼 서비스 팩에는 API 매니저(API 플랫폼) 서비스 브로커가 포함되어 있다. API 매니저에 등록된 API 서비스를 PaaS-TA에서 사용하기 위해서는 PaaS-TA에서 이 서비스 브로커를 등록하여야 한다. 이때, API 매니저에 API 서비스가 존재하지 않으면, PaaS-TA에서 API 매니저 서비스 브로커를 등록할 수 없기 때문에 서비스 브로커를 등록하기 전에 API 매니저에서 API 서비스를 등록한다. ※ 본 문서에서 등록하는 API 서비스는 WSO2 API Manager의 공식 문서에서 가이드 하는 샘플 API이다.

2.4.1. 터널링 설정

API 플랫폼 서비스팩으로 배포한 API 매니저에는 Public IP가 할당되지 않기 때문에 사용자가 웹 브라우저를 통해 API 매니저에 접속할 수 있도록 터널링 설정이 필요하다. 터널링은 다양한 방법을 사용할 수 있지만, 본 문서에서는 SSH 클라이언트인 Putty와 웹 브라우저 Firefox를 이용한 터널링 방법에 대해서 안내한다.
※ 설치는 별도로 안내하지 않는다.
1. Putty 설정
(1)다운로드한 Putty를 실행하고 Connection 메뉴를 열어 SSH 메뉴에서 Tunnels를 메뉴를 연다.
(2) 터널링 정보를 입력한다. ① Source port에 사용하지 않는 임의의 포트를 입력하고 ②번 Dynamic을 선택한 후, ③ Add 버튼을 눌러 추가한다. ④번 위치에서 D{입력한 포트}의 형태로 추가된 것을 확인한다.
(3) Putty 접속 정보를 입력한다. ① Session 메뉴를 클릭하여 접속정보 설정 화면으로 이동한다. ② 배포한 API 매니저와 내부망으로 연결되어 있는 머신(설치 환경에 따라 상이함)의 Public IP를 입력한다.
(4) Putty 접속 및 로그인 Open 버튼을 클릭하여 해당 머신에 연결한다
로그인 화면에서 로그인을 완료한 채로 접속을 유지해둔다.
2. Firefox 설정
(1) Mozila Firefox 브라우저를 실행하여 첫 화면 하단의 옵션 버튼을 클릭한다.
(2) 설정 창을 연다. ① 고급 탭- ② 네트워크 탭- ③ 설정 버튼을 차례로 클릭하여 설정 창을 연다.
(3) 연결 설정 정보를 입력하고 저장한다. ① 프록시 수동설정에 체크하고 ② 화면과 같이 설정을 입력한다. 포트는 Putty 터널링 설정에서 입력한 Source Port와 동일한 포트를 입력한다. ③ 설정을 완료하였으면 확인 버튼을 눌러 저장한다.
3. 터널링 설정 확인
터널링 설정이 되어있는 Putty 접속을 유지한 채로, Mozila Firefox 브라우저를 이용하여 API 매니저 관리자 화면에 접속해본다. 하단의 화면이 확인된다면 API 매니저 배포 및 터널링 설정이 정상적으로 이루어진 것이다.

2.4.2. API 생성 및 배포

터널링 설정이 완료 되었다면, API 플랫폼 서비스팩을 통해 배포된 API 매니저에 접속하여 API를 생성하고 배포(Publish)한다.
1
{API매니저 URL}:9443/carbon
2
예) https://10.0.0.201:9443/carbon
Copied!
1. API 매니저 접속 및 로그인
① API 플랫폼 서비스팩을 통해 배포된 API 매니저의 publisher 대시보드에 접속한다.
1
{API매니저 URL}:{API매니저 포트}/publisher
2
예) https://10.30.60.201:9443/publisher
Copied!
※ http가 아닌 https임에 주의한다.
② 관리자 계정으로 로그인한다. 관리자 계정의 Username과 Password는 admin/admin이다. ※ API 매니저 관리자 대시보드({API매니저 URL}:{API매니저 포트}/carbon)에서 계정을 추가하고 권한을 설정하여 사용할 수도 있지만, 그에 대한 설명은 본 문서에서는 기술하지 않는다.
2. API 생성
① 로그인이 완료되면 다음과 같은 화면을 확인할 수 있다. 최초 배포가 완료되면 API가 생성되지 않은 상태이므로 ②번의 New API 버튼이 화면에 보여진다. New API 버튼을 클릭하여 API 생성화면으로 이동한다.
3. General Details 정의
① API 생성 화면으로 이동하였다. ② API 생성의 첫 단계인 Design 단계이다. ③ General Details에 하단의 화면과 동일하게 다음과 같이 값을 입력한다.
1
Name: Phoneverification
2
Context: /phoneverify
3
Version: 1.0.0
Copied!
※ ④번 Edit Swagger Definition 버튼을 클릭하여 다음의 [4. Resources 정의] 과정을 생략 할 수 있다. 이에 대한 설명은 [4. Resources 정의] 하단에 [Swagger 정의]로 첨부한다.
4. Resources 정의
① General Details 하단에 Resources 입력란이 있다. URL Pattern에 대소문자 구분에 유의하여 CheckPhoneNumber 값을 입력하고 GET, POST, OPTIONS 메소드를 선택한다. Resource Name의 값은 URL Pattern을 입력하면 같은 값이 자동으로 입력되는데 사용자 필요에 따라 변경할 수 있다. ② 입력이 완료되었다면, Add New Resource 버튼을 클릭하여 Resource를 추가한다.
리소스를 추가하면 하단의 그림처럼 추가된 Resource가 화면에 나타난다. 그 중 GET 메소드의 리소스를 클릭하여 파라미터 세부사항을 정의한다.
리소스를 클릭하면 파라미터 세부사항 입력란이 노출된다. ① 추가하고자 하는 파라미터 명을 입력한다. ② Add Parameter 버튼을 클릭하여 파라미터를 추가 한다. Prameter Name 항목에서 입력한 파라미터명을 확인할 수 있다. ③ 파라미터의 세부사항을 정의하기 위해서 각각의 파라미터의 값(값이 정의 되어있지 않다면 [+Empty]로 표시됨)을 클릭하여 다음과 같이 파라미터를 정의한다.
Parameter Name
Description
Parameter Type
Data Type
Required
PhoneNumber
Give the phone number to be validated
query
string
True
LicenseKey
Give the license key. If you don't have any, enter 0
query
string
True
④ 하단의 버튼 중, 좌측의 Save버튼을 클릭하여 저장하고 가운데 Implement 버튼을 클릭하여 다음단계인 Implement 단계로 진행한다.
※ Swagger 정의 상단의 [3. General Details 정의]에서 푸른색 ④번 박스로 표시된 Edit Swagger Definition 버튼을 클릭하면 Swagger 수정이 가능하다. 다음과 같이 수정하고 Save버튼을 클릭하여 Resources를 정의한다. 이 방법을 통해 상단에 기술된 [4. Resources 정의] 절차를 생략할 수 있다.
1
apiVersion: 1.0.0
2
swaggerVersion: "1.2"
3
apis:
4
- path: /checkphonenumber
5
description: ""
6
file:
7
apiVersion: 1.0.0
8
swaggerVersion: "1.2"
9
basePath: "http://localhost:8280/phoneverify/1.0.0"
10
resourcePath: /checkphonenumber
11
apis:
12
- path: /CheckPhoneNumber
13
operations:
14
- method: GET
15
parameters:
16
- description: Give the phone number to be validated
17
name: PhoneNumber
18
type: string
19
required: "True"
20
paramType: query
21
- description: "Give the license key. If you don't have any, enter 0"
22
name: LicenseKey
23
type: string
24
required: "True"
25
paramType: query
26
nickname: get_CheckPhoneNumber
27
- method: POST
28
parameters:
29
- name: body
30
description: Request Body
31
allowMultiple: false
32
required: true
33
paramType: body
34
type: string
35
nickname: post_CheckPhoneNumber
36
- method: OPTIONS
37
parameters:
38
- name: body
39
description: Request Body
40
allowMultiple: false
41
required: true
42
paramType: body
43
type: string
44
nickname: options_CheckPhoneNumber
45
info:
46
title: PhoneVerification
47
description: ""
48
termsOfServiceUrl: ""
49
contact: ""
50
license: ""
51
licenseUrl: ""
52
authorizations:
53
oauth2:
54
type: oauth2
55
scopes: []
Copied!
5. Endpoint 입력
① Endpoint를 입력하고 Endpoint 설정과 보안 설정 등을 입력하는 Implement 화면이다. ② Production Endpoint 입력란과 Sandbox Endpoint 입력란에 다음과 같이 Endpoint를 입력한다.
③ 추가된 사항을 저장한다. ④ 다음 단계인 Manage 화면으로 이동한다.
6. Tier 선택
① API의 Tier 및 추가적인 설정을 입력하는 Manage화면이다. ② Tier Availability는 해당 API 서비스의 호출 횟수를 제한하는 설정으로 PaaS-TA에서는 플랜으로 표시된다. API 매니저에 설정된 4가지 기본 Tier 중, 사용자 필요에 맞게 선택할 수 있고 API 매니저 관리자 대시보드({API매니저 URL}:{API매니저 포트}/carbon)에서 Tier명과 호출 횟수 제한을 변경할 수 있다. 다만, 현재는 API 서비스 브로커 설계상 API Tier는 Unlimited Tier를 선택하여야 한다. 따라서 Unlimited Tier만을 선택한다. Unlimited Tier만 선택하여 API 서비스를 배포하더라도 PaaS-TA에서는 Unlimited와 Bronze의 두 가지 플랜을 선택할 수 있다. ③ Save & Publish 버튼을 클릭하여 저장하고 API를 배포한다.
7. 배포 확인
① API 매니저의 Store 대시보드에 접속한다.
1
{API매니저 URL}:{API매니저 포트}/store
2
예) https://10.30.60.201:9443/store
Copied!
※ http가 아닌 https임에 주의한다.
② 생성한 API가 배포되어 있음을 확인한다. 배포되지 않은 API는 Store 대시보드에 노출되지 않는다.

2.5. 플랫폼 서비스 브로커 등록

API 매니저(API 플랫폼)에 API 서비스가 정상적으로 등록 및 배포가 완료되었다면, 등록된 API 서비스를 PaaS-TA의 서비스 형태로 제공하기 위해 API 플랫폼 서비스 브로커를 등록해 주어야 한다. 서비스 브로커 등록 시, PaaS-TA에서 서비스 브로커를 등록할 수 있는 사용자로 로그인이 되어 있어야 한다.