본문 바로가기

클라우드(Cloud)/Ncloud(네이버클라우드)

NCloud. 3Tier 구성 - 003. DB 생성 및 서버 연동

반응형

 

▼ 저번 포스팅 보러가기 ▼

[ 3Tier 구성 - 002. Web, Was 서버 연결 ] 

https://ujia.tistory.com/10

 

NCloud. 3Tier 구성 - 002. Web, Was 서버 연결

▼ 저번 포스팅 보러가기 ▼ [ 3Tier 구성 - 001. Web, Was 구성 ] https://ujia.tistory.com/6 NCloud. 3Tier 구성 - 001. Web/Was 서버 생성 [서버 생성 순서] 1 Init script 설정(선택) 리눅스 os / 아파치 웹서버, PHP 설치 2

ujia.tistory.com

 

[ DB생성 순서 ]

1 Tomcat-connector 설치(web)  톰캣 아파치 사이트에서 tar.gz 파일 다운로드 받고 버킷에 연동하기
2 Object Storage 및 버킷 설정 버킷 파일 권한 공개
3 Tomcat-connector 설치(was)   server.xml 내용 수정 후 재시작
4 mysql 설치 DB server 생성 및 ACG 연동

 


 

 

1. Tomcat-connector 설치(web) 

 

https://tomcat.apache.org/download-connectors.cgi

 

Apache Tomcat® - Tomcat Connectors (mod_jk) Downloads

You must verify the integrity of the downloaded files. We provide OpenPGP signatures for every release file. This signature should be matched against the KEYS file which contains the OpenPGP keys of Tomcat's Release Managers. We also provide SHA512 checksu

tomcat.apache.org

 

우선 위 사이트에서 tar.gz로 되어있는 링크를 클릭하면 파일을 다운로드하시면 됩니다. 

 

그리고 그 후에는 네이버 콘솔에서 오브젝트 스토리지(버킷)에 방금 다운받은 파일을 업로드 해주셔야 합니다. 

 

그러기 위해 우선 오브젝트 스토리지에 버킷을 생성해줘야합니다.

 

버킷 생성시에 설정을 전체 '공개'로 바꿔주시면 나중에 편합니다. '공개'로 안바꿔주시고 기존의 '공개안함'으로 그대로 진행해도 추후에 변경은 가능합니다. 

 

 

 

 

2. Object Storage 및 버킷 설정

 

#오브젝트 스토리지(버킷)에 파일 업로드

 

 

#파일 권한 공개하기

버킷 파일 권한 공개하는 방법 2가지
[권한관리]에서 파일 공개하기                   /           [폴더/파일 공개하기] 에서 파일 공개하기  

 

 

#객체 링크 가져오기

 

 

 

 

그 후엔 아래 코드를 mobaXterm 에 순서대로 넣어주시면 됩니다. 

yum -y install gcc gcc-c++ httpd-devel (패키지 설치) 

//tomcat-connector 설치 - 아파치 톰캣 싸이트에서 파일을 다운받아 오브젝트 스토리지에 업로드 후 서버에서 다운로드(https://tomcat.apache.org/download-connectors.cgi)

cd /etc

wget https://kr.object.ncloudstorage.com/bucket-jh1204/tomcat-connectors-1.2.49-src.tar.gz 


# 파일공개 해주기

tar xvf tomcat-connectors-1.2.49-src.tar.gz


cd /etc/tomcat-connectors-1.2.49-src/native

./configure --with-apxs=/usr/bin/apxs

make

make install

cd /etc/tomcat-connectors-1.2.49-src/native/apache-2.0/

ls                                                                     

cp mod_jk.so /usr/lib64/httpd/modules/mod_jk.so              
chmod 755 /usr/lib64/httpd/modules/mod_jk.so          

//아파치 설정파일에 해당 모듈 적용 
cd /etc/httpd/conf                                                      

vi httpd.conf

include 아래에 복붙하기

LoadModule jk_module /usr/lib64/httpd/modules/mod_jk.so   
<IfModule mod_jk.c>
    JkWorkersFile /etc/httpd/conf/workers.properties        
    JkShmFile run/mod_jk.sh
    JkLogFile logs/mod_jk.log
    JkLogLevel info
    JkLogStampFormat "[%y %m %d %H:%M:%S] "
</IfModule>

<VirtualHost *:80>                                                      
    JkMount /* tomcat
    ServerName localhost
</VirtualHost>

esc 누르고
:wq!

vi /etc/httpd/conf/workers.properties                            

worker.list=tomcat
worker.tomcat.port=8009
worker.tomcat.host=localhost // was서버 아이피(내부ip)
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1

:wq!

# 톰캣 커넥터 다운로드

# etc 디렉터리로 이동
# 각자의 오브젝트스토리지 경로(파일권한 공개)
# 파일공개 해주기

# 톰캣 커텍터 파일 압축풀기
# native 디렉토리로 이동
# ./configure --with-apxs=/usr/bin/apxs
# 만들어라?
# make 다운로드
# mod_jk.so 모듈생성확인
# list 확인
# 아파치 모듈들이 있는 디렉토리에 카피함
# 복사한 묘듈에 실행권한을 줌

# conf 디렉토리 접속하기
# vi httpd.conf 파일 수정??

include 아래에 복붙하기
// jk모듈 불러오기
// (경로중요-새로생성예정)
// 
// 
// 

#  // 80포트로 접속 tomcat이 실행
#
#
#


 // worker파일 생성

#

 

#모바엑스텀 vi 환경( vi httpd.conf )

vi httpd.conf로 들어와서 include 밑 빈칸에 아래 내용 붙여넣고 저장하시면 됩니다. 

 

 

#모바엑스텀 vi 환경( vi /etc/httpd/conf/workers.properties  )

 

 

빈칸이었던 부분에 해당 코드 추가해주시면 됩니다. localhost 부분은 지우시고 실제 was서버 아이피(내부ip)를 적어주시면 됩니다.

 

 

 

 

3. Tomcat-connector 설치(was)  

cd /etc/apache-tomcat-10.0.6/conf 

vi server.xml
  
  // 주석 처리 제거 후  <!--   -->  :이 표시가 주석처리
<Connector protocol="AJP/1.3"
   address="0.0.0.0"                                         //ipv4로 변경
   secretRequired="false"                                  // 추가항목 : ssl사용안한다는 선언
   port="8009"
   redirectPort="8443"/>               로 수정

 // 아래 쪽으로 이동 후 
<Engine name="Catalina" defaultHost="localhost">   // 이 항목에 추가 jvmRoute="tomcat"
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat">  // 최종 수정 값

:wq!


cd /etc/apache-tomcat-10.0.6/bin

'./shutdown.sh'를 입력한 후 './startup.sh'를 입력 (톰캣 재시작) 

netstat -anlp | grep :8008                    // 8008 열렸는지 확인
netstat -anlp | grep :8009                    // 8009 열렸는지 확인(이거 열렸으면 됨)


#톰캣 연결 완료


---------------web 서버 이동-------------------------------------------

 // Tomcat 재시작 후 아파치 재시작 해줌
systemctl restart httpd


 웹서버 공인 IP 넣어서 확인            // 아파치 페이지가 아니라 톰켓 페이지가 떠야 함



### 톰캣 완료
 

 

Tomcat-connector는 위 코드를 작성해서 설치 및 연동하시면 됩니다. 아래는 server.xml 파일을 열었을 때 어느 부분을 수정하면 되는지 확인해 보실 수 있습니다.

 

위와 같은 작업을 모두 완료하셨다면, 이제 웹페이지에 웹서버 공인 ip로 접속을 시도해보시면 톰캣 설치 완료 여부를 확인하실 수 있습니다. 아래와 같은 페이지가 뜬다면 톰캣이 제대로 설치된 것입니다.

톰캣 설치 완료 페이지

 

 

 

4. mysql 설치

------------------------------------was - db 연동 ------------------------------------

------------------------------------was 서버 ----------------------------------------


cd /etc

wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-j_8.0.32-1debian10_all.deb

sudo yum -y install epel-release 

sudo yum repolist

sudo yum install dpkg-devel dpkg-dev -y

dpkg -x mysql-connector-j_8.0.32-1debian10_all.deb mysql_jdbc

mv /etc/mysql_jdbc/usr/share/java/mysql-connector-j-8.0.32.jar /etc/apache-tomcat-10.0.6/lib/

cd /etc/apache-tomcat-10.0.6/bin

./shutdown.sh

./startup.sh
 

 

위 코드까지 작성해주시고 나서 네이버클라우드 콘솔에 가셔서 DB Server 를 생성해주시면 됩니다.

 

 

# DB Server 생성

 

DB Server 생성시 Subnet 은 Private으로 진행해주시면 됩니다. 

 

다음 페이지로 넘어가시면 USER_ID, HOST(IP), USER 암호, 기본 DB명 등은 기억해두시면 좋습니다. 뒤에 mobaXterm에서 코드 작성 시에 이부분을 기입해주셔야하기 때문입니다.

 

DB sever 생성 완료시 뜨는 페이지

 

 

 

# cloud-mysql-cpxka  ACG 연동

 

다음은, 가장 중요한 부분 중 하나입니다. DB Server를 생성하면 자동으로 생성되는 ACG인 'cloud-mysql-cpxka ACG'에 inbound 규칙을 수정해주시면 됩니다. Was를 통해 DB로 접근하기 때문에, 'cloud-mysql-cpxka ACG'에 Was-acg 와 연결해주시면 됩니다.

 

 

------------------------ mysql.jsp파일 수정  ---------------------------

cd /etc/apache-tomcat-10.0.6/webapps/ROOT
vi mysql.jsp

<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=utf-8" %>
<%
         String DB_URL = "jdbc:mysql://<mysql_server_ip>/<db_name>";   ---------------- mysql_server_ip -> db 프라이빗 도메인 , db_name -> 처음 만들었던 db_name
         String DB_USER = "<username>";                          --------- db user name
         String DB_PASSWORD= "<password>";                   --------- db password
         Connection conn;
         Statement stmt;

         try {
              Class.forName("cohttp://m.mysql.jdbc.Driver");
              conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
              stmt = conn.createStatement();
              conn.close();
              out.println("MySQL Connection Success!");
         }
         catch(Exception e){
              out.println(e);
         }
%>

:wq! ---------------------마지막 저장



#ACG




본인 서버 IP 넣고 : 000.00.00.00/mysql.jsp

mySQL Connection Success! 뜨면 성공
 

 

이제 위 코드를 적고 실행해주시면 mysql과 연결 성공입니다. 단, 위 코드에서 <> 안에 있는 db_name, username 같은 것들은 아래 콘솔화면을 참고하셔서 바꿔주시면 됩니다.

 

 

 

이제 모든 과정을 마치셨다면, 본인 서버 IP 넣고 : 000.00.00.00/mysql.jsp 라고 주소를 쳐주시면 됩니다.

(ex. http://223.130.133.141/mysql.jsp)

DB 에러

 

만약 위와 같은 오류가 뜬다면 mysql이 생성될때까지 충분히 기다리시면 됩니다. 위 에러는 mysql이 아직 생성중에 있는데 IP주소를 먼저 검색하면 나올 수 있는 화면입니다.

 

완! 성!

 

완! 성!  mysql 생성이 완료되면 위와 같은 화면이 나타날 것입니다. 아래 화면에 1탄 서버 생성부터 오늘 마지막인 3탄 DB설정까지의 모든 코드들을 전부 정리해놓은 메모장 파일을 첨부하니 참고하시기 바랍니다. 

 

아파치 톰캣 mysql 연동.txt
0.01MB

 


 

 

자, 이렇게 네이버클라우드플랫폼의 3Tier를 마무리해보았습니다. 이해가 가지 않는 부분이 있거나 매끄럽게 진행되지 않는 부분이 있다면 매끄럽게 진행되고 이해가 완전히 될 때까지 반복, 또 반복해보시기 바랍니다. 반복된 연습만이 숙련의 길로 이어지는 것 같습니다. 모두 화이팅입니다!  

반응형