Post

VM, 리눅스 및 Docker 기반 웹시스템 아키텍처 구축 실습

VM, 리눅스 및 Docker 기반 웹시스템 아키텍처 구축 실습

서론

VM, 리눅스, Docker 기반의 웹 시스템 아키텍처( WS, WAS, DB)를 구축 하면서 연동이 어떻게 되는지, 도커는 어떻게 사용하는지 그리고 문서작성 스킬업 등을 초점에 맞추어서 실습한다.

Virtual Box를 이용한 리눅스 설치

  1. Linux ISO (CentOS7) 다운 및 설치
  2. Virtual Box 다운 및 설치

시스템 환경설정

  • OS: CentOS7(64bit), Ubuntu(64bit)
  • Memory: 2G~3G(3072Mb)
  • HDD: 10G~20G

시스템 구축 조건

  • Docker기반
  • WS(Web Server) : Nginx
  • WAS(Web Application Server): Tomcat
  • DB: Maria(MySQL)

Untitled


본론

Gibash 유틸리티 활용

  • 호스트 ip 찾기 (ip addr을 통해 2번의 enp0s3의 192.168.219.105/ 확인)

Untitled

  • git bash에서 ssh root@192.168.219.105로 접속 성공

Untitled

  • 컨테이너 기반의 시스템 구축을 위한 docker 설치 및 실행
  • WS 구축 (nginx 설치 및 실행)
  • nginx 웹서버 작동 확인 - http://192.168.219.105/
  • WAS 구축 (Tomcat 설치 및 실행)
  • Tomcat 실행 확인 - http://192.168.219.105/:8080
  • DB(MariaDB-MYSQL 설치 및 접속
  • WS ↔ WAS 연동
    • nginx.conf 파일을 수정

    Untitled

  • WS와 WAS 연동 확인 - (http://192.168.219.105)로 접속시 WAS의 페이지로 연동됨

WAS - DB 연동

  • Maria DB JDBC 다운로드

Untitled

  • Connector 파일을 tomcat 라이브러리로 이동

Untitled

  • mariaDB에 testDB 생성 및 접속 권한 부여

Untitled

  • tomcat에 dbconnection.jsp 생성

Untitled

  • 자바 설치

Untitled

  • path 경로 설정

Untitled

Untitled

  • tomcat - mariadb 연동 확인(192.168.219.105/dbconnection.jsp)

Untitled

WAS-DB 연결

  1. tomcat과 mariadb를 연동할 수 있는 connector를 다운 받아서 tomcat 라이브러리에 넣어준다.
  2. 접속할 testdb를 mariadb에 만들고 접속 권한을 설정한다.
  3. mariadb의 testdb에 접속하는 jsp파일을 만든다.
  4. jsp파일에서 jdbc 드라이버의 정보를 가져오고 접속할 mariadb의 정보를 드라이버에게 알려주어서 connection을 얻는다.
  5. 브라우저에서 해당 서버 ip 및 파일로 접속하면 연동이 되면서 접속 성공 메세지가 보여진다.

결론

  • 위의 과정을 수행함으로써, VM, 리눅스, Docker 기반의 웹 시스템 아키텍처를 구축할 수 있다.

  • 웹 시스템 아키텍처는 웹 서버(Web Server), 웹 어플리케이션 서버(Web Application Server), 데이터베이스(Database)로 이루어져 있다.

  • 웹 서버는 클라이언트의 요청을 받아들이고, 그 요청에 대한 정적인 컨텐츠를 제공하거나 동적인 컨텐츠를 생성하기 위해 웹 어플리케이션 서버와 통신한다.

  • 웹 어플리케이션 서버는 웹 서버와 데이터베이스 사이의 인터페이스 역할을 하며, 클라이언트의 요청을 처리하기 위해 웹 어플리케이션을 실행한다.

  • 데이터베이스는 웹 어플리케이션에서 필요로 하는 데이터를 저장하고, 관리한다. 웹 어플리케이션 서버는 데이터베이스와의 통신을 통해 데이터를 조회, 저장, 수정, 삭제할 수 있다.

  • 연동 설정은 각 요소 간의 인터페이스를 정확하게 설정하는 것이 중요하다. 각각의 요소에 따라 연동을 설정하는 방법이 다르기 때문에 확실하게 시스템 아키텍처를 이해하고 적절한 방법을 사용해서 연동해야 한다.

  • 이 프로젝트에서 어려웠던 부분들이 있었습니다.
  • 처음에는 카페에서 작업하다가 다른 곳에서 작업하게 되면서 호스트 IP가 변경되어 이를 찾는 데 많은 시간을 쏟았습니다.
  • 또한 설정이 변경될 때마다 해당 컨테이너의 이미지를 재실행해야 한다는 것을 알게 되었습니다.
  • 마지막으로 DB와 WAS를 연동할 때 어떤 커넥터를 다운로드해야 하는지 헷갈려서 시간을 많이 소요하였고, DB 권한 설정과 JSP 파일을 컴파일할 자바를 다운로드하지 않아서 더욱 시간이 많이 걸렸습니다.
This post is licensed under CC BY 4.0 by the author.