SlideShare a Scribd company logo
1 of 48
Download to read offline
클라우드 환경에서 Java EE 운영환경 구축하기



                                           JBoss User Group 원종석
                                              tedd824@gmail.com

                                                 Revision: 2011. 6. 19



           2011 JCO 11th Conference | Session ${track_#}-${session_#} | Javacommunity.Org
실습 진행 순서 Overview

• 실습 지원 웹 페이지: http://tedwon.com/x/sADHAQ

• Step 1. 개발 환경 세팅

• Step 2. Server 설치

• Step 3. 샘플 Project 빌드

• Step 4. 배포

• Step 5. 테스트
실습 시스템 상세 스펙

• OpenJDK 6

• Apache Maven 3

• Apache HTTP Server 2

• Tomcat 7

• MySQL 5

• SpringSource JPestore Sample Project
상세 목차
•   Introduction
•   클라우드 서버 접속
•   JDK 6 설치
•   Maven 3 설치
•   MySQL 5 설치
•   Tomcat 7 설치
•   Apache HTTP Server 2 설치
•   Apache HTTP Server와 Tomcat 통합하기
•   JPetstore Project 빌드
•   JPetstore 배포
•   JPetstore 테스트
•   Appendix: Java Platform as a Service 사례
Introduction

• Cloud Computing Stack Layers
Introduction




   클라우드 환경에서 Java 개발자의 포지션닝은??
Introduction
클라우드 환경에서 나타날 수 있는 개발자 유형

1. IaaS 기반 가상 머신 OS에서 Java SE/EE 애플리케이션을 개발하는 개발자

2. PaaS 자체를 구현하는 개발자

3. PaaS를 기반으로 새로운 서비스를 구현하는 개발자

4. SaaS 자체를 구현하는 개발자

5. SaaS를 이용해 서비스를 구현하는 개발자

                             * 출처: 자바 플랫폼과 클라우드 환경
Introduction

• KT ucloud cs 가상 서버 상에서 Java EE 운영환경 구축 실습

• Cloud Computing 스택에서 IaaS에 해당

• Amazon EC2와 동종 서비스

• 서비스가 상대적으로 저렴

• 한국어 지원 서비스

• 자바 개발/운영 환경을 제공하는 클라우드 서비스로 확장 가능
Introduction

• Linux와 Winodws OS 가상화 이미지 서비스

• 실습은 원격의 클라우드 서버 CentOS (Linux) 상에서 진행

• 최초 클라우드 서버 생성시 root 계정 생성

• 주요 소프트웨어 yum 패키지 관리 도구 이용 자동 설치
클라우드 서버 접속

• 클라우드 콘솔에서 22 포트를 추가합니다.
  – http://cs.ucloud.com
  – 클라우드 콘솔  클라우드 서버  포트 포워딩 설정
• Port Forwarding 추가
  – 22 포트, TCP 프로토콜을 추가합니다.
클라우드 서버 접속

• 터미널 프로그램 PuTTY 다운로드
  – PuTTY 다운로드 링크
클라우드 서버 접속

• PuTTY 를 실행하고 접속 정보 입력
  –   Host Name에 IP를 입력
  –   Port에 22 입력
  –   Contection type은 SSH 선택
  –   Open 클릭


• 이제, root 계정을 입력하고 로그인

• Mac 사용자는 기본 터미널 프로그램에서 ssh 명령으로 접속

      $ ssh root@아이피

      예) $ ssh root@14.63.214.171
클라우드 서버 접속

• root 계정 로그인 성공 예시 화면
클라우드 서버 접속

• 운영체제 버전을 확인합니다.
  # cat /etc/redhat-release


• 운영체제 Architecture를 확인합니다.
  # uname -a
Maven Repository 설치

• 소스코드 빌드에 필요한 라이브러리를 설치

• /root 디렉터리에서 다운로드하고 압축을 풉니다.



 # cd

 # wget http://goo.gl/QOPHQ

 # tar zxf m2.tar.gz

 # cd .m2
샘플 프로젝트 다운로드

• 샘플 프로젝트 파일을 다운로드합니다.

• Spring에서 제공하는 jpetstore 프로젝트입니다.
• /root 디렉터리에서 다운로드하고 압축을 풉니다.
  – /root/jpetstore/etc 디렉터리에 실습용 설정 파일

  # cd

  # wget http://goo.gl/sBK0Y

  # tar zxf jpetstore.tar.gz

  # cd jpetstore
JDK 6 설치

• Java SE Development Kit(JDK) 6를 설치합니다.

• yum을 이용해서 손쉽게 설치 가능합니다.
  – 설치 가능한 openjdk를 조회합니다.
  – OpenJDK 6를 설치합니다.


   # yum list | grep openjdk

   # yum -y install java-1.6.0-openjdk java-1.6.0-openjdk-devel

   # ln -s /usr/lib/jvm/java-1.6.0-openjdk.x86_64 /usr/local/jdk
JDK 6 설치

• 설치 결과를 확인합니다.
  – java 명령을 내려봅니다.


 # java

 # java -version

 # which java

 # whereis java
Maven 3 설치

• Apache Maven 3를 설치합니다.
    – http://maven.apache.org


• 설치 방법은 다음의 순서로 진행합니다.


# cd /usr/local

# wget http://mirror.khlug.org/apache//maven/binaries/apache-maven-3.0.3-bin.tar.gz

# tar zxf apache-maven-3.0.3-bin.tar.gz

# ln -s apache-maven-3.0.3 /usr/local/maven
Maven 3 설치

• ~/.bashrc 환경 설정 파일에 Maven 설치 경로를 추가합니다.

• nano 에디터로 .bashrc 파일을 열고 다음과 같이 편집합니다.


# cd

# nano ~/.bashrc

// .bashrc 파일 마지막에 다음을 추가합니다.

export JAVA_HOME=/usr/local/jdk
export M2_HOME=/usr/local/maven
export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH
Maven 3 설치

• 변경된 내용을 반영합니다.
    #. .bashrc


• 설치 결과를 확인합니다.
    # mvn 명령을 내려봅니다.

# . .bashrc

# mvn -version

# mvn
Maven 3 설치

• Maven을 통해 표준적인 개발 구조와 프로세스 관리 장점
  –   Open Source Project Management Tool
  –   프로젝트 관리를 위한 도구
  –   소스코드 구조 표준화
  –   라이브러리 관리 방법 제공


• Maven을 통해 소스 빌드와 패키징
  – 빌드 절차 간소화
  – 통합된 빌드 시스템 제공


• Spring JPetstore 샘플 프로젝트는 Maven 기반으로 구성
MySQL 5 설치

• 샘플 프로젝트에서 사용 할 MySQL 5 DBMS 서버를 설치합니다.

• yum을 이용해서 손쉽게 설치 합니다.


  # yum list | grep mysql

  # yum -y install mysql mysql-server
MySQL 5 설치

• 설치가 완료된 후 mysql daemon을 실행합니다.
  # /etc/init.d/mysqld start


• mysql daemon 프로세스 실행 여부를 확인합니다.
  # ps –ef | grep mysqld


• root 사용자에 패스워드를 root로 지정합니다.
  # mysqladmin -u root password root

    # /etc/init.d/mysqld start

    # ps -ef | grep mysqld

    # mysqladmin -u root password root
MySQL 5 설치

• 설치 버전을 확인합니다.

# mysql -u root -p
Enter password:
mysql> STATUS;
mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (x86_64) using readline 5.1




• 서비스로 등록합니다.

# chkconfig --add mysqld
# chkconfig --level 2345 mysqld on
# chmod 755 /etc/rc.d/init.d/mysqld
# service mysqld restart
Tomcat 7 설치

• 애플리케이션 서버 Tomcat 7 을 설치

• wget으로 다운로드 후 압축을 풀고 tomcat으로 알리아스 생성
   – 주의! Tomcat 다운로드 링크는 버전이 올라가면 바뀔 수 있습니다.
   – 최신 버전 다운로드 링크를 이용하세요

 # cd /usr/local

 # wget http://mirror.khlug.org/apache/tomcat/tomcat-7/v7.0.16/bin/apache-
 tomcat-7.0.16.tar.gz

 # tar zxf apache-tomcat-7.0.16.tar.gz

 # ln -s apache-tomcat-7.0.16 /usr/local/tomcat
Tomcat 7 설치

• Tomcat 서버를 실행합니다.

 # cd /usr/local/tomcat/bin

 # ls –al *.sh

 # sh startup.sh

 # ps –ef | grep java

 # tail -f /usr/local/tomcat/logs/catalina.out
Tomcat 7 설치

• 이제 웹 브라우저로 접속합니다.
  – http://아이피:8080
HTTP Server 2 설치

• Apache HTTP Server를 설치합니다.

• yum을 이용해서 손쉽게 설치 합니다.

 # yum list httpd

 # yum -y install httpd



• 서비스로 등록합니다.

 # chkconfig --level 2345 httpd on

 # service httpd restart

 # ps –ef | grep httpd
Apache와 Tomcat 통합하기

• 전형적인 시스템 구성 아키텍쳐

• 로드 밸런싱을 위해 필요한 작업
Apache와 Tomcat 통합하기

• Apache HTTP Server와 Tomcat 통합 작업 수행

• mod_jk 설치
  – Apache HTTP Server에 mod_jk를 설치합니다.
  – OS 플랫폼에 맞는 mod_jk 바이너리 버전을 다운로드합니다.

 # cd /usr/lib64/httpd/modules

 # wget http://mirror.apache-kr.org/tomcat/tomcat-connectors/jk/binaries/linux/jk-
 1.2.31/x86_64/mod_jk-1.2.31-httpd-2.2.x.so

 # mv mod_jk-1.2.31-httpd-2.2.x.so mod_jk.so
Apache와 Tomcat 통합하기

• mod-jk.conf 파일 작성하기
    /etc/httpd/conf.d 디렉토리에 mod-jk.conf 파일 작성


# cd /etc/httpd/conf.d
# nano mod-jk.conf

LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMountFile conf/uriworkermap.properties
JkShmFile run/jk.shm
Apache와 Tomcat 통합하기

• mod-jk.conf 파일 작성하기
  –   mod_jk 모듈 파일 위치
  –   로그 파일 위치
  –   worker 정보
  –   애플리케이션 마운트 정보
  –   uri worker mapping 정보 명시

  – 가장 중요한 것은 JkWorkersFile, JkMountFile 설정값
  – 두 설정 파일에 는 어떤 URI를 어떤 Tomcat이 처리해야 하는지 기술
Apache와 Tomcat 통합하기

• workers.properties 파일 작성하기
  – Worker는 Tomcat Instance를 의미합니다.
  – Apache HTTP Server의 부하를 worker로 부하 분산

  /etc/httpd/conf 디렉토리에 workers.properties 파일 작성


 # cd /etc/httpd/conf

 # nano workers.properties
Apache와 Tomcat 통합하기

• /etc/httpd/conf/workers.properties 파일 작성하기

 worker.list=loadbalancer

 # jvm1 Tomcat Server

 worker.jvm1.host=localhost
 worker.jvm1.port=8009
 worker.jvm1.type=ajp13
 worker.jvm1.lbfactor=1

 # Load Balancer Worker

 worker.loadbalancer.type=lb
 worker.loadbalancer.balance_workers=jvm1
Apache와 Tomcat 통합하기

• uriworkermap.properties 파일 작성하기
  – Tomcat이 처리할 URI 패턴 정보 정의



  /etc/httpd/conf 디렉토리에 uriworkermap.properties 파일 작성


 # cd /etc/httpd/conf

 # nano uriworkermap.properties
Apache와 Tomcat 통합하기

• /etc/httpd/conf/uriworkermap.properties 파일 작성하기

  - /etc/httpd/conf 디렉토리에 uriworkermap.properties 파일 작성

  - 모든 URI를 Tomcat에서 처리하도록 정의합니다.


 /=loadbalancer
 /*=loadbalancer
Apache와 Tomcat 통합하기

• jvmRoute 추가하기
  – Tomcat Server 설정 파일에 jvmRoute를 추가

  – /usr/local/tomcat/conf/server.xml 파일에서

  – <Engine> 태그 속성에 jvmRoute="jvm1"을 추가합니다.


 # nano /usr/local/tomcat/conf/server.xml

 ...
 <Engine name=“Catalina" defaultHost="localhost" jvmRoute="jvm1">
 ...
Apache와 Tomcat 통합하기

• 모든 통합 작업이 완료 되었으므로 변경 사항을 반영합니다.

• 서버를 재시작합니다.
  – Apache Server 재시작
  – Tomcat Server 재시작

 # service httpd restart

 # cd /usr/local/tomcat/bin

 # sh shutdown.sh

 # sh startup.sh
Apache와 Tomcat 통합하기

• 이제 웹 브라우저로 접속합니다.
  – http://아이피
JPetstore Project 빌드

• DB 스키마 생성하기

  – MySQL에 데이터베이스 스키마와 샘플 데이터를 생성합니다.


  – jpetstore 데이터베이스를 생성합니다.


 # mysql -u root -p
 Enter password:

 mysql> show databases;
 mysql> create schema jpetstore;
 mysql> show databases;
JPetstore Project 빌드

• DB 스키마 생성하기

  – MySQL에 데이터베이스 스키마와 샘플 데이터를 생성합니다.

  – jpetstore 프로젝트 db/mysql 디렉터리의 스크립트로 생성합니다.


 # cd

 # cd jpetstore/db/mysql

 # mysql -u root -p < /root/jpetstore/db/mysql/jpetstore-mysql-schema.sql

 # mysql -u root -p < /root/jpetstore/db/mysql/jpetstore-mysql-dataload.sql
JPetstore Project 빌드

• jpetstore 소스 빌드하기

  – Maven 명령으로 빌드와 패키징을 실시합니다.

  – 빌드가 완료되면 target 디렉터리에 jpetstore.war 파일이 생성


  # cd

  # cd jpetstore

  # mvn clean package

  # ls -al target/jpetstore.war
JPetstore 배포

• WAR 배포하기

  – target 디렉터리에 jpetstore.war 파일을 Tomcat Server에 배포



 # cd

 # cd jpetstore

 # rm -rf /usr/local/tomcat/webapps/jpetstore*

 # cp target/jpetstore.war /usr/local/tomcat/webapps/jpetstore.war
JPetstore 테스트

• 이제 웹 브라우저로 접속합니다.
  – http://아이피/jpetstore
Appendix

• Java Platform as a Service 사례
  – 자바 개발/운영 환경을 클라우드 서비스로 제공하는 사례

  – CloudBees http://www.cloudbees.com

  – Java 개발자와 애플리케이션을 위한 Cloud 서비스

  – Google App Engine과 유사 - 경쟁 관계

  – PaaS에 해당

  – Hudson기반의 CI(통합 빌드 환경) 서비스 제공

  – Java Web Applicaiton 제작을 위한 CloudBees SDK 제공

  – WAR를 Cloud에 배포 및 운영 할 수 있는 서비스 제공
Appendix
이 저작물은 크리에이티브 커먼스 코리아 저작자표시-비영리-
     동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
This work is Licensed under Creative Commons Korea Attribution 2.0 License.

More Related Content

What's hot

[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211Ji-Woong Choi
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)Ji-Woong Choi
 
Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용지원 이
 
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXpressEngine
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee dockerDK Lee
 
Rancher Simple User Guide
Rancher Simple User GuideRancher Simple User Guide
Rancher Simple User GuideSANG WON PARK
 
Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리Keon Ahn
 
Docker.소개.30 m
Docker.소개.30 mDocker.소개.30 m
Docker.소개.30 mWonchang Song
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1Ji-Woong Choi
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration GuideJi-Woong Choi
 
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick GuideJi-Woong Choi
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXpressEngine
 
Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기raccoony
 
Nginx basic configurations
Nginx basic configurationsNginx basic configurations
Nginx basic configurationsJohn Kim
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편Sam Kim
 
Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2XpressEngine
 
자동화된 인프라구축 - 2009년 자료
자동화된 인프라구축 - 2009년 자료자동화된 인프라구축 - 2009년 자료
자동화된 인프라구축 - 2009년 자료태준 문
 
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1Ji-Woong Choi
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS충섭 김
 

What's hot (20)

[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
 
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
[오픈소스컨설팅]Docker on Cloud(Digital Ocean)
 
Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용
 
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHubXECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
XECon2015 :: [1-3] 김덕홍 - Git Workflow with GitHub
 
20141229 dklee docker
20141229 dklee docker20141229 dklee docker
20141229 dklee docker
 
Rancher Simple User Guide
Rancher Simple User GuideRancher Simple User Guide
Rancher Simple User Guide
 
Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리Puppet과 자동화된 시스템 관리
Puppet과 자동화된 시스템 관리
 
Docker.소개.30 m
Docker.소개.30 mDocker.소개.30 m
Docker.소개.30 m
 
[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1[오픈소스컨설팅]Docker on Kubernetes v1
[오픈소스컨설팅]Docker on Kubernetes v1
 
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide[오픈소스컨설팅]Zabbix Installation and Configuration Guide
[오픈소스컨설팅]Zabbix Installation and Configuration Guide
 
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
[오픈소스컨설팅] Red Hat ReaR (relax and-recover) Quick Guide
 
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 DockerXECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
XECon2015 :: [1-5] 김훈민 - 서버 운영자가 꼭 알아야 할 Docker
 
Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기Docker (Compose) 활용 - 개발 환경 구성하기
Docker (Compose) 활용 - 개발 환경 구성하기
 
Nginx basic configurations
Nginx basic configurationsNginx basic configurations
Nginx basic configurations
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편도커 없이 컨테이너 만들기 2편
도커 없이 컨테이너 만들기 2편
 
Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2Docker 기반 개발환경 구축 - XE Open seminar #2
Docker 기반 개발환경 구축 - XE Open seminar #2
 
자동화된 인프라구축 - 2009년 자료
자동화된 인프라구축 - 2009년 자료자동화된 인프라구축 - 2009년 자료
자동화된 인프라구축 - 2009년 자료
 
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1[오픈소스컨설팅]Nginx jboss 연동가이드__v1
[오픈소스컨설팅]Nginx jboss 연동가이드__v1
 
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOSConfd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
Confd, systemd, fleet을 이용한 어플리케이션 배포 in CoreOS
 

Viewers also liked

RHQ 공감 Seminar 6th
RHQ 공감 Seminar 6thRHQ 공감 Seminar 6th
RHQ 공감 Seminar 6thTed Won
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformTed Won
 
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Ted Won
 
Nara - Personalized Web Recommendation Service Quick Review
Nara - Personalized Web Recommendation Service Quick ReviewNara - Personalized Web Recommendation Service Quick Review
Nara - Personalized Web Recommendation Service Quick ReviewTed Won
 
Phonegap 환경설정
Phonegap 환경설정Phonegap 환경설정
Phonegap 환경설정정호 이
 
Hadoop for the Data Scientist: Spark in Cloudera 5.5
Hadoop for the Data Scientist: Spark in Cloudera 5.5Hadoop for the Data Scientist: Spark in Cloudera 5.5
Hadoop for the Data Scientist: Spark in Cloudera 5.5Cloudera, Inc.
 
Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataTed Won
 
2014 모바일 문서보안 및 통제시스템_시온
2014 모바일 문서보안 및 통제시스템_시온2014 모바일 문서보안 및 통제시스템_시온
2014 모바일 문서보안 및 통제시스템_시온시온시큐리티
 
JDG 7 & Spark Integration
JDG 7 & Spark IntegrationJDG 7 & Spark Integration
JDG 7 & Spark IntegrationTed Won
 
Sns workshop 02
Sns workshop 02Sns workshop 02
Sns workshop 02창열 이
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with EsperTed Won
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기Ted Won
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with EsperTed Won
 
Microservices chat
Microservices chatMicroservices chat
Microservices chatYongHyuk Lee
 

Viewers also liked (15)

Ecuador´s Economy in Korean
Ecuador´s Economy in KoreanEcuador´s Economy in Korean
Ecuador´s Economy in Korean
 
RHQ 공감 Seminar 6th
RHQ 공감 Seminar 6thRHQ 공감 Seminar 6th
RHQ 공감 Seminar 6th
 
JBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring PlatformJBoss Community's Application Monitoring Platform
JBoss Community's Application Monitoring Platform
 
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
Red Hat Forum 2012 - JBoss RHQ - Java Application Monitoring & Management Pla...
 
Nara - Personalized Web Recommendation Service Quick Review
Nara - Personalized Web Recommendation Service Quick ReviewNara - Personalized Web Recommendation Service Quick Review
Nara - Personalized Web Recommendation Service Quick Review
 
Phonegap 환경설정
Phonegap 환경설정Phonegap 환경설정
Phonegap 환경설정
 
Hadoop for the Data Scientist: Spark in Cloudera 5.5
Hadoop for the Data Scientist: Spark in Cloudera 5.5Hadoop for the Data Scientist: Spark in Cloudera 5.5
Hadoop for the Data Scientist: Spark in Cloudera 5.5
 
Real-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured DataReal-time Big Data Analytics Practice with Unstructured Data
Real-time Big Data Analytics Practice with Unstructured Data
 
2014 모바일 문서보안 및 통제시스템_시온
2014 모바일 문서보안 및 통제시스템_시온2014 모바일 문서보안 및 통제시스템_시온
2014 모바일 문서보안 및 통제시스템_시온
 
JDG 7 & Spark Integration
JDG 7 & Spark IntegrationJDG 7 & Spark Integration
JDG 7 & Spark Integration
 
Sns workshop 02
Sns workshop 02Sns workshop 02
Sns workshop 02
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with Esper
 
지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기지금 핫한 Real-time In-memory Stream Processing 이야기
지금 핫한 Real-time In-memory Stream Processing 이야기
 
Complex Event Processing with Esper
Complex Event Processing with EsperComplex Event Processing with Esper
Complex Event Processing with Esper
 
Microservices chat
Microservices chatMicroservices chat
Microservices chat
 

Similar to JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기

리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호ETRIBE_STG
 
How to build a web server on Linux.
How to build a web server on Linux.How to build a web server on Linux.
How to build a web server on Linux.은석 김은석
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: YeomanJae Sung Park
 
Internship backend
Internship backendInternship backend
Internship backendYein Sim
 
Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Steve Shim
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea CloudJude Kim
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)Ildoo Kim
 
[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How ToJi-Woong Choi
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Park JoongSoo
 
Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)TaekSoon Jang
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.xTerry Cho
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래NAVER D2
 

Similar to JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기 (20)

리눅스서버세팅-김태호
리눅스서버세팅-김태호리눅스서버세팅-김태호
리눅스서버세팅-김태호
 
How to build a web server on Linux.
How to build a web server on Linux.How to build a web server on Linux.
How to build a web server on Linux.
 
도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman도구를 활용한 더 나은 웹 개발: Yeoman
도구를 활용한 더 나은 웹 개발: Yeoman
 
Docker osc 0508
Docker osc 0508Docker osc 0508
Docker osc 0508
 
Kafka slideshare
Kafka   slideshareKafka   slideshare
Kafka slideshare
 
Internship backend
Internship backendInternship backend
Internship backend
 
Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1Docker 사용가이드 public v0.1
Docker 사용가이드 public v0.1
 
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Clouddocker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
docker on GCE ( JIRA & Confluence ) - GDG Korea Cloud
 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
 
[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To
 
java thrift
java thriftjava thrift
java thrift
 
kt-cloud
kt-cloudkt-cloud
kt-cloud
 
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
 
okspring3x
okspring3xokspring3x
okspring3x
 
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
 
Springmvc
SpringmvcSpringmvc
Springmvc
 
Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)Db프로그래밍 환경 설정(131062 장택순)
Db프로그래밍 환경 설정(131062 장택순)
 
빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x빠르게훓어보는 Node.js와 Vert.x
빠르게훓어보는 Node.js와 Vert.x
 
[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래[1A6]Docker로 보는 서버 운영의 미래
[1A6]Docker로 보는 서버 운영의 미래
 
Maven의 이해
Maven의 이해Maven의 이해
Maven의 이해
 

More from Ted Won

Undertow RequestBufferingHandler 소개
Undertow RequestBufferingHandler 소개Undertow RequestBufferingHandler 소개
Undertow RequestBufferingHandler 소개Ted Won
 
JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개Ted Won
 
JBoss Modules Internal
JBoss Modules InternalJBoss Modules Internal
JBoss Modules InternalTed Won
 
오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드Ted Won
 
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...Ted Won
 
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesJenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesTed Won
 
Hawkular overview
Hawkular overviewHawkular overview
Hawkular overviewTed Won
 
Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects Ted Won
 
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링Ted Won
 

More from Ted Won (9)

Undertow RequestBufferingHandler 소개
Undertow RequestBufferingHandler 소개Undertow RequestBufferingHandler 소개
Undertow RequestBufferingHandler 소개
 
JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개JBoss EAP 7 & JDG 7 최신 기술 소개
JBoss EAP 7 & JDG 7 최신 기술 소개
 
JBoss Modules Internal
JBoss Modules InternalJBoss Modules Internal
JBoss Modules Internal
 
오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드오픈 소스 컨트리뷰션 가이드
오픈 소스 컨트리뷰션 가이드
 
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
Jenkins X Hands-on - automated CI/CD solution for cloud native applications o...
 
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on KubernetesJenkins X - automated CI/CD solution for cloud native applications on Kubernetes
Jenkins X - automated CI/CD solution for cloud native applications on Kubernetes
 
Hawkular overview
Hawkular overviewHawkular overview
Hawkular overview
 
Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects Building Real-time CEP Application with Open Source Projects
Building Real-time CEP Application with Open Source Projects
 
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링
 

JCO 11th 클라우드 환경에서 Java EE 운영 환경 구축하기

  • 1. 클라우드 환경에서 Java EE 운영환경 구축하기 JBoss User Group 원종석 tedd824@gmail.com Revision: 2011. 6. 19 2011 JCO 11th Conference | Session ${track_#}-${session_#} | Javacommunity.Org
  • 2. 실습 진행 순서 Overview • 실습 지원 웹 페이지: http://tedwon.com/x/sADHAQ • Step 1. 개발 환경 세팅 • Step 2. Server 설치 • Step 3. 샘플 Project 빌드 • Step 4. 배포 • Step 5. 테스트
  • 3. 실습 시스템 상세 스펙 • OpenJDK 6 • Apache Maven 3 • Apache HTTP Server 2 • Tomcat 7 • MySQL 5 • SpringSource JPestore Sample Project
  • 4. 상세 목차 • Introduction • 클라우드 서버 접속 • JDK 6 설치 • Maven 3 설치 • MySQL 5 설치 • Tomcat 7 설치 • Apache HTTP Server 2 설치 • Apache HTTP Server와 Tomcat 통합하기 • JPetstore Project 빌드 • JPetstore 배포 • JPetstore 테스트 • Appendix: Java Platform as a Service 사례
  • 6. Introduction 클라우드 환경에서 Java 개발자의 포지션닝은??
  • 7. Introduction 클라우드 환경에서 나타날 수 있는 개발자 유형 1. IaaS 기반 가상 머신 OS에서 Java SE/EE 애플리케이션을 개발하는 개발자 2. PaaS 자체를 구현하는 개발자 3. PaaS를 기반으로 새로운 서비스를 구현하는 개발자 4. SaaS 자체를 구현하는 개발자 5. SaaS를 이용해 서비스를 구현하는 개발자 * 출처: 자바 플랫폼과 클라우드 환경
  • 8. Introduction • KT ucloud cs 가상 서버 상에서 Java EE 운영환경 구축 실습 • Cloud Computing 스택에서 IaaS에 해당 • Amazon EC2와 동종 서비스 • 서비스가 상대적으로 저렴 • 한국어 지원 서비스 • 자바 개발/운영 환경을 제공하는 클라우드 서비스로 확장 가능
  • 9. Introduction • Linux와 Winodws OS 가상화 이미지 서비스 • 실습은 원격의 클라우드 서버 CentOS (Linux) 상에서 진행 • 최초 클라우드 서버 생성시 root 계정 생성 • 주요 소프트웨어 yum 패키지 관리 도구 이용 자동 설치
  • 10. 클라우드 서버 접속 • 클라우드 콘솔에서 22 포트를 추가합니다. – http://cs.ucloud.com – 클라우드 콘솔  클라우드 서버  포트 포워딩 설정 • Port Forwarding 추가 – 22 포트, TCP 프로토콜을 추가합니다.
  • 11. 클라우드 서버 접속 • 터미널 프로그램 PuTTY 다운로드 – PuTTY 다운로드 링크
  • 12. 클라우드 서버 접속 • PuTTY 를 실행하고 접속 정보 입력 – Host Name에 IP를 입력 – Port에 22 입력 – Contection type은 SSH 선택 – Open 클릭 • 이제, root 계정을 입력하고 로그인 • Mac 사용자는 기본 터미널 프로그램에서 ssh 명령으로 접속 $ ssh root@아이피 예) $ ssh root@14.63.214.171
  • 13. 클라우드 서버 접속 • root 계정 로그인 성공 예시 화면
  • 14. 클라우드 서버 접속 • 운영체제 버전을 확인합니다. # cat /etc/redhat-release • 운영체제 Architecture를 확인합니다. # uname -a
  • 15. Maven Repository 설치 • 소스코드 빌드에 필요한 라이브러리를 설치 • /root 디렉터리에서 다운로드하고 압축을 풉니다. # cd # wget http://goo.gl/QOPHQ # tar zxf m2.tar.gz # cd .m2
  • 16. 샘플 프로젝트 다운로드 • 샘플 프로젝트 파일을 다운로드합니다. • Spring에서 제공하는 jpetstore 프로젝트입니다. • /root 디렉터리에서 다운로드하고 압축을 풉니다. – /root/jpetstore/etc 디렉터리에 실습용 설정 파일 # cd # wget http://goo.gl/sBK0Y # tar zxf jpetstore.tar.gz # cd jpetstore
  • 17. JDK 6 설치 • Java SE Development Kit(JDK) 6를 설치합니다. • yum을 이용해서 손쉽게 설치 가능합니다. – 설치 가능한 openjdk를 조회합니다. – OpenJDK 6를 설치합니다. # yum list | grep openjdk # yum -y install java-1.6.0-openjdk java-1.6.0-openjdk-devel # ln -s /usr/lib/jvm/java-1.6.0-openjdk.x86_64 /usr/local/jdk
  • 18. JDK 6 설치 • 설치 결과를 확인합니다. – java 명령을 내려봅니다. # java # java -version # which java # whereis java
  • 19. Maven 3 설치 • Apache Maven 3를 설치합니다. – http://maven.apache.org • 설치 방법은 다음의 순서로 진행합니다. # cd /usr/local # wget http://mirror.khlug.org/apache//maven/binaries/apache-maven-3.0.3-bin.tar.gz # tar zxf apache-maven-3.0.3-bin.tar.gz # ln -s apache-maven-3.0.3 /usr/local/maven
  • 20. Maven 3 설치 • ~/.bashrc 환경 설정 파일에 Maven 설치 경로를 추가합니다. • nano 에디터로 .bashrc 파일을 열고 다음과 같이 편집합니다. # cd # nano ~/.bashrc // .bashrc 파일 마지막에 다음을 추가합니다. export JAVA_HOME=/usr/local/jdk export M2_HOME=/usr/local/maven export PATH=$JAVA_HOME/bin:$M2_HOME/bin:$PATH
  • 21. Maven 3 설치 • 변경된 내용을 반영합니다. #. .bashrc • 설치 결과를 확인합니다. # mvn 명령을 내려봅니다. # . .bashrc # mvn -version # mvn
  • 22. Maven 3 설치 • Maven을 통해 표준적인 개발 구조와 프로세스 관리 장점 – Open Source Project Management Tool – 프로젝트 관리를 위한 도구 – 소스코드 구조 표준화 – 라이브러리 관리 방법 제공 • Maven을 통해 소스 빌드와 패키징 – 빌드 절차 간소화 – 통합된 빌드 시스템 제공 • Spring JPetstore 샘플 프로젝트는 Maven 기반으로 구성
  • 23. MySQL 5 설치 • 샘플 프로젝트에서 사용 할 MySQL 5 DBMS 서버를 설치합니다. • yum을 이용해서 손쉽게 설치 합니다. # yum list | grep mysql # yum -y install mysql mysql-server
  • 24. MySQL 5 설치 • 설치가 완료된 후 mysql daemon을 실행합니다. # /etc/init.d/mysqld start • mysql daemon 프로세스 실행 여부를 확인합니다. # ps –ef | grep mysqld • root 사용자에 패스워드를 root로 지정합니다. # mysqladmin -u root password root # /etc/init.d/mysqld start # ps -ef | grep mysqld # mysqladmin -u root password root
  • 25. MySQL 5 설치 • 설치 버전을 확인합니다. # mysql -u root -p Enter password: mysql> STATUS; mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (x86_64) using readline 5.1 • 서비스로 등록합니다. # chkconfig --add mysqld # chkconfig --level 2345 mysqld on # chmod 755 /etc/rc.d/init.d/mysqld # service mysqld restart
  • 26. Tomcat 7 설치 • 애플리케이션 서버 Tomcat 7 을 설치 • wget으로 다운로드 후 압축을 풀고 tomcat으로 알리아스 생성 – 주의! Tomcat 다운로드 링크는 버전이 올라가면 바뀔 수 있습니다. – 최신 버전 다운로드 링크를 이용하세요 # cd /usr/local # wget http://mirror.khlug.org/apache/tomcat/tomcat-7/v7.0.16/bin/apache- tomcat-7.0.16.tar.gz # tar zxf apache-tomcat-7.0.16.tar.gz # ln -s apache-tomcat-7.0.16 /usr/local/tomcat
  • 27. Tomcat 7 설치 • Tomcat 서버를 실행합니다. # cd /usr/local/tomcat/bin # ls –al *.sh # sh startup.sh # ps –ef | grep java # tail -f /usr/local/tomcat/logs/catalina.out
  • 28. Tomcat 7 설치 • 이제 웹 브라우저로 접속합니다. – http://아이피:8080
  • 29. HTTP Server 2 설치 • Apache HTTP Server를 설치합니다. • yum을 이용해서 손쉽게 설치 합니다. # yum list httpd # yum -y install httpd • 서비스로 등록합니다. # chkconfig --level 2345 httpd on # service httpd restart # ps –ef | grep httpd
  • 30. Apache와 Tomcat 통합하기 • 전형적인 시스템 구성 아키텍쳐 • 로드 밸런싱을 위해 필요한 작업
  • 31. Apache와 Tomcat 통합하기 • Apache HTTP Server와 Tomcat 통합 작업 수행 • mod_jk 설치 – Apache HTTP Server에 mod_jk를 설치합니다. – OS 플랫폼에 맞는 mod_jk 바이너리 버전을 다운로드합니다. # cd /usr/lib64/httpd/modules # wget http://mirror.apache-kr.org/tomcat/tomcat-connectors/jk/binaries/linux/jk- 1.2.31/x86_64/mod_jk-1.2.31-httpd-2.2.x.so # mv mod_jk-1.2.31-httpd-2.2.x.so mod_jk.so
  • 32. Apache와 Tomcat 통합하기 • mod-jk.conf 파일 작성하기 /etc/httpd/conf.d 디렉토리에 mod-jk.conf 파일 작성 # cd /etc/httpd/conf.d # nano mod-jk.conf LoadModule jk_module modules/mod_jk.so JkWorkersFile conf/workers.properties JkLogFile logs/mod_jk.log JkLogLevel debug JkLogStampFormat "[%a %b %d %H:%M:%S %Y]" JkOptions +ForwardKeySize +ForwardURICompatUnparsed -ForwardDirectories JkRequestLogFormat "%w %V %T" JkMountFile conf/uriworkermap.properties JkShmFile run/jk.shm
  • 33. Apache와 Tomcat 통합하기 • mod-jk.conf 파일 작성하기 – mod_jk 모듈 파일 위치 – 로그 파일 위치 – worker 정보 – 애플리케이션 마운트 정보 – uri worker mapping 정보 명시 – 가장 중요한 것은 JkWorkersFile, JkMountFile 설정값 – 두 설정 파일에 는 어떤 URI를 어떤 Tomcat이 처리해야 하는지 기술
  • 34. Apache와 Tomcat 통합하기 • workers.properties 파일 작성하기 – Worker는 Tomcat Instance를 의미합니다. – Apache HTTP Server의 부하를 worker로 부하 분산 /etc/httpd/conf 디렉토리에 workers.properties 파일 작성 # cd /etc/httpd/conf # nano workers.properties
  • 35. Apache와 Tomcat 통합하기 • /etc/httpd/conf/workers.properties 파일 작성하기 worker.list=loadbalancer # jvm1 Tomcat Server worker.jvm1.host=localhost worker.jvm1.port=8009 worker.jvm1.type=ajp13 worker.jvm1.lbfactor=1 # Load Balancer Worker worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=jvm1
  • 36. Apache와 Tomcat 통합하기 • uriworkermap.properties 파일 작성하기 – Tomcat이 처리할 URI 패턴 정보 정의 /etc/httpd/conf 디렉토리에 uriworkermap.properties 파일 작성 # cd /etc/httpd/conf # nano uriworkermap.properties
  • 37. Apache와 Tomcat 통합하기 • /etc/httpd/conf/uriworkermap.properties 파일 작성하기 - /etc/httpd/conf 디렉토리에 uriworkermap.properties 파일 작성 - 모든 URI를 Tomcat에서 처리하도록 정의합니다. /=loadbalancer /*=loadbalancer
  • 38. Apache와 Tomcat 통합하기 • jvmRoute 추가하기 – Tomcat Server 설정 파일에 jvmRoute를 추가 – /usr/local/tomcat/conf/server.xml 파일에서 – <Engine> 태그 속성에 jvmRoute="jvm1"을 추가합니다. # nano /usr/local/tomcat/conf/server.xml ... <Engine name=“Catalina" defaultHost="localhost" jvmRoute="jvm1"> ...
  • 39. Apache와 Tomcat 통합하기 • 모든 통합 작업이 완료 되었으므로 변경 사항을 반영합니다. • 서버를 재시작합니다. – Apache Server 재시작 – Tomcat Server 재시작 # service httpd restart # cd /usr/local/tomcat/bin # sh shutdown.sh # sh startup.sh
  • 40. Apache와 Tomcat 통합하기 • 이제 웹 브라우저로 접속합니다. – http://아이피
  • 41. JPetstore Project 빌드 • DB 스키마 생성하기 – MySQL에 데이터베이스 스키마와 샘플 데이터를 생성합니다. – jpetstore 데이터베이스를 생성합니다. # mysql -u root -p Enter password: mysql> show databases; mysql> create schema jpetstore; mysql> show databases;
  • 42. JPetstore Project 빌드 • DB 스키마 생성하기 – MySQL에 데이터베이스 스키마와 샘플 데이터를 생성합니다. – jpetstore 프로젝트 db/mysql 디렉터리의 스크립트로 생성합니다. # cd # cd jpetstore/db/mysql # mysql -u root -p < /root/jpetstore/db/mysql/jpetstore-mysql-schema.sql # mysql -u root -p < /root/jpetstore/db/mysql/jpetstore-mysql-dataload.sql
  • 43. JPetstore Project 빌드 • jpetstore 소스 빌드하기 – Maven 명령으로 빌드와 패키징을 실시합니다. – 빌드가 완료되면 target 디렉터리에 jpetstore.war 파일이 생성 # cd # cd jpetstore # mvn clean package # ls -al target/jpetstore.war
  • 44. JPetstore 배포 • WAR 배포하기 – target 디렉터리에 jpetstore.war 파일을 Tomcat Server에 배포 # cd # cd jpetstore # rm -rf /usr/local/tomcat/webapps/jpetstore* # cp target/jpetstore.war /usr/local/tomcat/webapps/jpetstore.war
  • 45. JPetstore 테스트 • 이제 웹 브라우저로 접속합니다. – http://아이피/jpetstore
  • 46. Appendix • Java Platform as a Service 사례 – 자바 개발/운영 환경을 클라우드 서비스로 제공하는 사례 – CloudBees http://www.cloudbees.com – Java 개발자와 애플리케이션을 위한 Cloud 서비스 – Google App Engine과 유사 - 경쟁 관계 – PaaS에 해당 – Hudson기반의 CI(통합 빌드 환경) 서비스 제공 – Java Web Applicaiton 제작을 위한 CloudBees SDK 제공 – WAR를 Cloud에 배포 및 운영 할 수 있는 서비스 제공
  • 48. 이 저작물은 크리에이티브 커먼스 코리아 저작자표시-비영리- 동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다. This work is Licensed under Creative Commons Korea Attribution 2.0 License.