MS Azure를 이용한 3-tier Architecture 구축 가이드

2020. 1. 3. 09:48Cloud/MS Azure

반응형

web server, was server, db server를 Azure Public Cloud를 이용해 빠르고 쉽게 구축과 부하분산을 하려고 한다.

 

 

1          Web(Apache) 서버 구축

    1.1          Apache 설치

                 $ yum install -y httpd

    1.2          방화벽 설정 및 시작

                 $ firewall-cmd --permanent --add-service=http

                 $ firewall-cmd --reload

                 $ systemctl enable httpd

                 $ systemctl start httpd

                 포트번호는 nsg에도 동일하게 적용

    1.3          HTML

                 /var/www/html 에 문서를 작성

                 ex) locathost/test.html

    1.4          Reference

                 https://wikidocs.net/16275

2          Was(Tomcat) 서버 구축

    2.1          Tomcat 설치

                 $ yum install -y tomcat*

    2.2          Java 설치

                 http://www.oracle.com/technetwork/java/javase/downloads/index.html

                 PC로 오라클 웹사이트 접속 후 jdk rpm 다운로드 링크 주소 복사

                 was 서버에 jdk 다운로드

                 $ wget -c 다운로드링크주소

 

                 .rpm으로 끝나게 파일명 수정

                 $ mv jdk-8u131-linux-x64.rpm\?AuthParam\=1495957368_916432334b6dc573 jdk-8u131-linux-x64.rpm

                 rpm 명령어로 설치 진행

                 i : 설치, v : 정보뷰, h : hash 표기

                 $ rpm -ivh jdk-8u131-linux-x64.rpm

 

                 자바 선택

                 $ alternatives --config java

    2.3          방화벽 설정 및 시작

                 ajp 프로토콜의 포트번호 : 8009

                 $ firewall-cmd --permanent --add-port=8009/tcp

                 $ firewall-cmd  --reload

                 $ systemctl enable tomcat

                 $ systemctl start tomcat

                 포트번호는 nsg에도 동일하게 적용

    2.4          Reference

                 https://wikidocs.net/16276

 

3          DB(MariaDB) 서버 구축

    3.1          MariaDB 설치

                 $ curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash

                 $ yum install -y MariaDB-server

                 방화벽 설정 및 시작

                 $ firewall-cmd --permanent --add-port=3306/tcp

                 $ firewall-cmd  --reload

                 $ systemctl enable mariadb

                 $ systemctl start mariadb

                 $ mysql_secure_installation

                 포트번호는 nsg에도 동일하게 적용

    3.2          계정 생성

                 $ mysqladmin -u root password '1234'

                 $ mysql -u root -p

                 grant select, insert, update, delete, create on test.* to 'testuser'@'localhost' identified by '1234';

                 grant select, insert, update, delete, create on test.* to 'testuser'@'%' identified by '1234';

                 flush privileges;

                 quit;

                 $ mysql -u testuser -p

                 connect test;

                 create table test(name varchar(30));

                 insert into test values('MariaDB Database');

                 insert into test values('sunguru');

                 commit;

                 quit;

 

4          mod_jkApacheTomcat 연동

    4.1          mod_jk 설치

                 $ yum install gcc gcc-c++ httpd-devel

 

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

                 PC로 접속 후 JK 1.2.46 Source Release tar.gz 다운로드 링크 주소 복사

                 apache 서버에 jk 다운로드

                 $ wget -c 다운로드링크주소

 

                 $ tar zxvf tomcat-connector*

                 $ cd tomcat-connector*/native

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

                 $ make

                 $ make install

                 $ chcon -u system_u -r object_r -t httpd_modules_t /etc/httpd/modules/mod_jk.so

 

    4.2          Apache 설정

                 $ vi /etc/httpd/conf/httpd.conf

 

                 LoadModule jk_module modules/mod_jk.so

                 JkWorkersFile conf/workers.properties

                 JkShmFile run/mod_jk.shm

                 JkLogFile logs/mod_jk.log

                 JkLogLevel info

                 JkLogStampFormat "[%y %m %d %H:%M:%S] "

                 JkMount /* ajp13

 

                 $ vi /etc/httpd/conf/workers.properties

                 worker.list=ajp13

                 worker.ajp13.port=8009

                 worker.ajp13.host={hostIP}

                 worker.ajp13.type=ajp13

 

    4.3          Reference

                 https://wikidocs.net/16277

 

5          ConnectorTomcatMariaDB 연동

                 $ yum install -y mysql-connector-java

                 $ cp /usr/share/java/mysql-connector-java.jar  /usr/share/tomcat/lib

                 $ systemctl restart tomcat

    5.1          JSP를 통한 DB 연동 테스트

                 $ cd /usr/share/tomcat/webapps/ROOT/

                 $ vi test.jsp

 

 

<html>

 <body>

<%@ page contentType="text/html" language="java" %>

<%@ page import="java.sql.*" %>

<%

 Connection con = null;

 PreparedStatement PS = null;

 ResultSet RS = null;

 try {

  String MARIADB_SERVER = "10.1.2.4:3306";

  String MARIADB_SERVER_USERNAME = "testuser";

  String MARIADB_SERVER_PASSWORD = "1234";

  String MARIADB_DATABASE = "test";

  String URL = "jdbc:mysql://" + MARIADB_SERVER + "/" + MARIADB_DATABASE;

  Class.forName("com.mysql.jdbc.Driver");

  con = DriverManager.getConnection(URL, MARIADB_SERVER_USERNAME, MARIADB_SERVER_PASSWORD);

  %>

  <%

  String query = "select * from test";

  PS = con.prepareStatement(query);

  RS = PS.executeQuery();

 

  int count=0;

  while(RS.next()) {

  String name = RS.getString("name");

  %>

  <p>Name : <%=name%></p>

  <%

  count++;

}

 } catch(Exception ErrMsg) {

  ErrMsg.printStackTrace();

  out.println("Unfortunately, Database connection failed");

 }

%>

 </body>

</html>

    5.2          was 서버의 selinuxpermissive로 변경

                 vi /etc/sysconfig/selinux

    5.3          Reference

                 https://wikidocs.net/16274

                 http://blog.naver.com/PostView.nhn?blogId=sunguru&logNo=220935388261

반응형

'Cloud > MS Azure' 카테고리의 다른 글

Azure Media Service를 이용한 실시간 스트리밍 구현  (0) 2019.12.12