Summary: WebSphere Liberty Profile(WLP)์ Collective ๋ฐ Cluster ๊ธฐ๋ฅ์ ํ์ฉํ ์ธํ๋ผ ๊ตฌ์ถ ๊ฐ์ด๋์
๋๋ค. Controller ๊ตฌ์ฑ๋ถํฐ Member ์กฐ์ธ, ํด๋ฌ์คํฐ๋ง ์ค์ ๋ฐ ํธ๋ฌ๋ธ์ํ
๊น์ง์ ์ ์ฒด ๊ณผ์ ์ ๋ค๋ฃน๋๋ค.
WebSphere Application Server Liberty Profile(WLP)์ ๊ฒฝ๋ํ๋ ๊ตฌ์กฐ์ ํ์ฅ์ฑ ๋๋ถ์ ์ฑํ๋ฅ ์ด ๋์์ง๊ณ ์์ต๋๋ค. ๋ณธ ํฌ์คํธ๋ WLP Collective์ Clustering ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ํ์ฅ ๊ฐ๋ฅํ ํ ํด๋ก์ง๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์ ๋ฆฌํ ์์ง๋์ด๋ง ๋
ธํธ์
๋๋ค.
์ด ์๋ฆฌ์ฆ๋ ๋ค์ ์์๋ก ์งํ๋ฉ๋๋ค.
- How to Create and Configure WebSphere Liberty Cluster End-to-End (Current)
- How to Deploy Application in WebSphere Liberty Cluster
- How to Setup Front-End Web Server for WebSphere Liberty Cluster
1. Topology Architecture
์ด ๊ฐ์ด๋์์๋ Collective Controller 1๋์ Collective/Cluster Member 2๋๋ก ๊ตฌ์ฑ๋ ํ ํด๋ก์ง๋ฅผ ๊ตฌํํฉ๋๋ค. ํ๋ก ํธ์๋์๋ IBM HTTP Server(IHS)๊ฐ ๋ฐฐ์น๋๋ฉฐ ๋ณ๋์ ๋ฐฐํฌ ์๋ฒ๊ฐ ์กด์ฌํ๋ ๊ตฌ์กฐ์
๋๋ค.
2. Prerequisites & WLP Installation
๋ณธ ๊ฐ์ด๋๋ WLP 17.0.2 ๋ฐ CentOS Linux 7.3 ํ๊ฒฝ์ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์์ต๋๋ค. ์ค์น ์ ์ง์๋๋ Java ๋ฒ์ ์ด ์ค์น๋์ด ์๋์ง ํ์ธ์ด ํ์ํฉ๋๋ค.
Check System Environment
$> cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
$> ./java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build pxa6480sr4fp5-20170421_01(SR4 FP5))
IBM J9 VM (build 2.8, JRE 1.8.0 Linux amd64-64 Compressed References 20170419_344392)
Base Installation (Machine: 02)
๋จผ์ Controller๊ฐ ๋ ๋จธ์ (Machine: 02)์ WLP๋ฅผ ์ค์นํ๊ณ ํ์ํ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋ค, ์ด๋ฅผ ํจํค์งํ์ฌ Member ์๋ฒ๋ค(Machine: 03, 04)๋ก ๋ฐฐํฌํ๋ ์ ๋ต์ ์ฌ์ฉํฉ๋๋ค.
# Create directory
$> sudo mkdir -p /opt/ibm
# Change ownership
$> sudo chown -R wasadmin:wasgrp /opt/ibm
# Install WLP
$> java -jar wlp-17.0.0.2-all.jar --acceptLicense /opt/ibm
# Verify version
$> cd /opt/ibm/wlp/bin
$> ./productInfo version
Product name: WebSphere Application Server
Product version: 17.0.0.2
Install Required Features
Collective, Cluster, SSL, JMX Connector ๋ฑ์ ํ์ ๊ธฐ๋ฅ์ ์ค์นํฉ๋๋ค.
$> ./installUtility install collectiveController-1.0 collectiveMember-1.0 clusterMember-1.0 websocket-1.1 restConnector-2.0 ssl-1.0 localConnector-1.0 adminCenter-1.0
Package and Distribute
์ค์น๋ ํ๊ฒฝ์ wlp_install.jar๋ก ํจํค์งํ์ฌ ๋ค๋ฅธ ๋
ธ๋์ ๋ณต์ ํฉ๋๋ค.
# Create defaultServer for packaging context
$> ./server create
# Package server including all binaries
$> ./server package defaultServer --archive=/tmp/wlp_install.jar --include=all
Server defaultServer package complete in /tmp/wlp_install.jar.
์์ฑ๋ wlp_install.jar๋ฅผ Machine 03, 04๋ก ์ ์กํ ํ ๋์ผํ๊ฒ ์ค์น๋ฅผ ์งํํฉ๋๋ค.
# On Machine 03 & 04
$> sudo mkdir -p /opt/ibm
$> chown -R wasadmin:wasgrp /opt/ibm
$> java -jar wlp_install.jar --acceptLicense /opt/ibm
3. Setup Collective Controller (Machine: 02)
Controller ์๋ฒ(wlpCntlr)๋ฅผ ์์ฑํ๊ณ ๊ตฌ์ฑ์ ์ด๊ธฐํํฉ๋๋ค.
# Create server
$> ./server create wlpCntlr
# Initialize Collective Controller
$> ./collective create wlpCntlr --keystorePassword=<password> --createConfigFile=/opt/ibm/wlp/usr/servers/wlpCntlr/wlpcntlr_include.xml
์ ๋ช
๋ น์ด๋ฅผ ์ํํ๋ฉด ์ธ์ฆ์ ์์ฑ ๋ฐ wlpcntlr_include.xml ์ค์ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค. ์ดํ server.xml๊ณผ include ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ด ์์ ํฉ๋๋ค.
Configuration: server.xml (Controller)
<server description="CollectiveController">
<featureManager>
<feature>adminCenter-1.0</feature>
<feature>websocket-1.1</feature>
<feature>restConnector-1.0</feature>
<feature>localConnector-1.0</feature>
</featureManager>
<!-- Include generated config -->
<include location="${server.config.dir}/wlpcntlr_include.xml" />
<httpEndpoint id="defaultHttpEndpoint" httpPort="9080" httpsPort="9443" host="*" />
</server>
Configuration: wlpcntlr_include.xml
์๋ ์์ฑ๋ ํ์ผ์์ quickStartSecurity ๋ถ๋ถ์ ๋ณธ์ธ์ ๊ณ์ ์ ๋ณด๋ก ์์ ํฉ๋๋ค.
<quickStartSecurity userName="wasadmin" userPassword="{xor}EncryptedPassword..." />
Firewall Configuration
CentOS ๋ฐฉํ๋ฒฝ์์ 9080, 9443 ํฌํธ๋ฅผ ํ์ฉํด์ผ ํฉ๋๋ค.
$> sudo firewall-cmd --zone=public --permanent --add-port=9443/tcp
$> sudo firewall-cmd --zone=public --permanent --add-port=9080/tcp
$> sudo firewall-cmd --reload
Start Controller
$> ./server start wlpCntlr
๋ก๊ทธ(messages.log)์์ CWWKX6011I: The collective controller is ready ๋ฉ์์ง๋ฅผ ํ์ธํฉ๋๋ค. Admin Center(https://hostname:9443/adminCenter/) ์ ์๋ ๊ฐ๋ฅํด์ผ ํฉ๋๋ค.
4. Setup Collective & Cluster Members
Machine 03๊ณผ 04์์ ๋ฉค๋ฒ ์๋ฒ๋ฅผ ์์ฑํ๊ณ Controller์ Join ์ํต๋๋ค.
Create & Join Member (Machine: 03)
# Create Server
$> ./server create wlpSrv01
# Join Collective
$> ./collective join wlpSrv01 \
--host=waslibctlr01 \
--port=9443 \
--user=wasadmin \
--password=<password> \
--keystorePassword=<password> \
--createConfigFile=/opt/ibm/wlp/usr/servers/wlpSrv01/wlpsrv01_include.xml
SSL Handshake ๊ณผ์ ์์ ์ธ์ฆ์๋ฅผ ์ ๋ขฐํ๊ฒ ๋๋ ํ๋กฌํํธ์ y๋ฅผ ์
๋ ฅํฉ๋๋ค.
Configuration: server.xml (Member)
Member ์๋ฒ์ server.xml์ Cluster ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ , Controller๊ฐ ๋ฐฐํฌ ๊ด๋ฆฌ๋ฅผ ํ ์ ์๋๋ก remoteFileAccess๋ฅผ ์ค์ ํฉ๋๋ค.
<server description="Cluster Member">
<featureManager>
<feature>webProfile-7.0</feature>
<feature>restConnector-1.0</feature>
<feature>localConnector-1.0</feature>
<!-- Added for Clustering -->
<feature>clusterMember-1.0</feature>
</featureManager>
<include location="${server.config.dir}/wlpsrv01_include.xml" />
<!-- Define Cluster Name -->
<clusterMember name="wlpCluster"/>
<httpEndpoint id="defaultHttpEndpoint" httpPort="9081" httpsPort="9444" host="*" />
<!-- Write Access for Controller -->
<remoteFileAccess>
<writeDir>${server.config.dir}</writeDir>
</remoteFileAccess>
</server>
Machine: 04 (wlpSrv02)์ ๋ํด์๋ ์ ๊ณผ์ ์ ๋์ผํ๊ฒ ๋ฐ๋ณตํฉ๋๋ค.
Security Considerations (LTPA)
ํด๋ฌ์คํฐ ํ๊ฒฝ์์ ์ธ์
๊ณต์ ๋ฐ ๋ณด์์ ์ํด ๋ชจ๋ ๋ฉค๋ฒ๋ ๋์ผํ LTPA ํค๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ํ ์๋ฒ์์ ์์ฑ๋ ltpa.keys ํ์ผ์ ๋ค๋ฅธ ๋ฉค๋ฒ ์๋ฒ๋ค์ ๋์ผํ ๊ฒฝ๋ก(${server.ouput.dir}/resources/security/)๋ก ๋ณต์ฌํฉ๋๋ค.
5. Start Members & Verification
๊ฐ ๋
ธ๋์์ ๋ฉค๋ฒ ์๋ฒ๋ฅผ ์์ํฉ๋๋ค.
$> ./server start wlpSrv01 # On Machine 03
$> ./server start wlpSrv02 # On Machine 04
๋ก๊ทธ ํ์ผ์์ ๋ค์ ๋ฉ์์ง๋ค์ ํ์ธํ์ฌ ์ ์ ๊ตฌ๋์ ๊ฒ์ฆํฉ๋๋ค.
CWWKX8112I: Collective Repository์ ํธ์คํธ ์ ๋ณด ๊ฒ์ ์ฑ๊ณต.
CWWKX7400I: ClusterMember MBean ํ์ฑํ (ํด๋ฌ์คํฐ ์กฐ์ธ ์ฑ๊ณต).
6. Troubleshooting Notes
์ค์ ๊ณผ์ ์์ ์์ฃผ ๋ฐ์ํ๋ ์ค๋ฅ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์
๋๋ค.
-
CWWKX0229E (401 Unauthorized / 403 Forbidden)
collective join ์ ์ธ์ฆ ์คํจ. quickStartSecurity์ ๊ณ์ ์ ๋ณด๊ฐ ์ผ์นํ๋์ง ํ์ธํ์ญ์์ค. 403 ์๋ฌ์ ๊ฒฝ์ฐ ํด๋น ์ฌ์ฉ์๊ฐ administrator-role์ ๊ฐ์ง๊ณ ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
-
CWWKS9582E (SSL unresolved)
IIOP ๋ณด์ ์ค์ ์ SSL ์ฐธ์กฐ ์ค๋ฅ. server.xml์ SSL ๊ตฌ์ฑ ๋ฐ KeyStore ์ ์๊ฐ ๋ช
ํํ์ง ํ์ธํ์ญ์์ค.
-
CWWKO0221E / CWWKS9580E (Port in use)
ํ ํธ์คํธ์ ์ฌ๋ฌ ์ธ์คํด์ค๋ฅผ ๋์ธ ๊ฒฝ์ฐ JMS ํฌํธ(7276)๋ IIOP ํฌํธ(2809) ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ต๋๋ค. wasJmsEndpoint ๋ฐ iiopEndpoint ์ค์ ์ ํตํด ํฌํธ๋ฅผ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค.
Next Step: ํด๋ฌ์คํฐ ๊ตฌ์ฑ์ด ์๋ฃ๋์์ต๋๋ค. ๋ค์ ํฌ์คํธ์์๋ ์ด ํด๋ฌ์คํฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฃน๋๋ค.