일단 구성하기에 앞서서 생성된 VM을 보면
네트워크 하나에 3대 Linux, Windows 1대 있다.
Windows 는 브라우저로 Web Application 접속이 잘되는지 확인할 수 있도록
Network IP | IP | hostname | Windows IP |
---|---|---|---|
192.168.203.1 | 192.168.203.201 | demo7 | 192.168.203.205 |
192.168.203.202 | demo8 | ||
192.168.203.203 | demo9 |
그리고 해당 VM에 원격으로 어디서든
Linux에 SSH 접속할 수 있도록, Windows 용 원격데스크톱 RDP 포트도 열려있다.
SSH IP | RDP PORT(Windows) |
---|---|
192.168.1.115:37007 | 192.168.1.115:37107 |
192.168.1.115:37008 | |
192.168.1.115:37009 |
3 Tier
WEB 에는 NginX나 Apache 서버를 구성해보고
WAS 에는 Tomcat
DB 에는 MariaDB를 구성해야한다.
서비스는 아무거나 오픈소스로 되어있는거 올려서 작동되도록 하고
각각 데이터 날아가는거 체크하면서 구성하겠다.
서버하나에 서비스 하나씩 올려서
서로서로 연결한 다음 동작하는 방식으로 3 Tier 구성하려한다.
지금까지 알던 지식은 6개월 동안 학원에서 배운거랑 전공자로 개발 지식이 대부분이라 뭐 되면 좋고 아님말고(?)가 아니라 해야한다.
했던건 WAS를 사용하지 않고 정적으로만 배포하는 방식으로 Apache 사용해서 구성하던 방식이기에 여기저기 많이 찾아봐야할거 같다.
이건 그냥 내 생각인데 버전이 자주 바뀌지 않는 서비스를 먼저 올리고 차례차례 호환되는 버전을 찾고 그거에 맞춰서 서비스를 올리려고한다.
어떤 의도로 과제를 내신 건지는 모르겠지만 선택지가 여러개가 있다.
서버 3는 3대있다.
물어보니 필요하면 더 주신다고 하셨다.
아마 신입사원이 어떤 판단을 해가면서 구성을 할 지 보시려고하는거 같다.
3 Tier의 정의 자체가 물리적으로 분리시킨다고 생각했지만
그렇지 않고 두대만으로도 구성할 수 있다고 하시니까
1번 서버하나에 서비스 3개 넣고, 한 대 더해서 이중화 구성하기
2번 서버 한대마다 서비스 넣고, 물리적으로 3tier 완성, 이후 추가로 vm 더 받아서 이중화 구성하기
3번 서버 한대에 컨테이너 구성해서 3 tier 만들고 이중화
4번 서버 두대 클러스터링 해서 한대로 만든다음 기타 등등..
서버 하나에 서비스3개 넣고 이중화 구성하는것은 물리적으로는 1 Tier 구성이지만 논리적으로는 3 Tier 구성 이라고도 볼수있다?
결국에는 다시 알려주셨는데 1번으로 하기로했다.
웹에서 다운로드 방법 찾기
10.12가 RC 버전이라서
10.11로 선택했다.
https://mariadb.org/download/?t=repo-config&d=CentOS+7&v=10.11&r_m=xtom_jp
MariaDB 다운로드하기에 그나마 가장 가까운리전이 JP가 그나마 가까워서 선택했다.
Maria DB 버전은 RC 버전보다는 조금 더 안정적일거 같아서
MariaDB 10.11 버전을 선택했다.
설명 대로 /etc/yum.repos.d 에 MariaDB.repo 파일을 생성해서
cd /etc/yum.repos.d
vi MariaDB.repo
vi 들어가서
:set paste
붙혀넣기 활성화 시키고 우클릭으로 붙혀넣었다.
vi 편집기 붙혀넣기 활성화 안시키면 간격 크기 달라서 코드가 난리날 수 있다.
sudo yum install MariaDB-server MariaDB-client
설치는 된거같은데
실행이 안된다.
서비스가 없다는데
로그를 잘보니 pv 가 없다고 한다.
pv가 뭐길래
https://www.lesstif.com/system-admin/pv-linux-cp-61899145.html
검색해보니 여기서는 대용량 파일 복사할때 cp 대신 pv가 그 역할을 해준다고한다.
금요일 발표후에 다시 찾아보니
pv(Pipeline Viewer)로 pipeline을 통해서
sudo yum install pv
그래서 다운로드 하려했는데 안된다.. 카카오 미러에 없는 패키지라고
이거를 다운받으려면 RHEL를 다운받아야한다고한다.
https://www.lesstif.com/system-admin/rhel-centos-5-6-7-epel-remi-repository-6979743.html
패키지 설치를 위한 Repository라는데 참고하자.
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
패키지를 깔기위해서 패키지 저장소를 설치하는 것이다..
아마 다른 서버도 패키지 저장소 설치안하면 설치하는데 문제가 생기지 않을까한다.
pv도 설치하니 잘 설치되는 것이 확인됐다.
역순으로 다시 설치하시면 될거다.
systemctl enable mariadb
systemctl start mariadb
systemctl status mariadb
활성화 하고, 실행하고, 상태확인 해보았다.
running 은 확인됐고
접속하기에 앞서서
mariadb 계정을 만들어주어야한다.
mysqladmin password mypass
root계정 비밀번호를 mypass 로 생성하였다..
적어놔야지..
hostname | mariauser | password |
---|---|---|
demo07 | root | mypass |
demo07의 MariaDB 비밀번호는 mypass 기억안나면 다시보도록
mysql -u root -p
저렇게 치면 password를 묻는다 그래서 위에 적어놓은 password를 치면
이렇게 mariaDB 실행되는것을 볼 수 있다.
호환성을 직접확인하고 싶어서 검색을 해봤는데
Tomcat Java 버전과의 호환성이 대부분이라 내 검색능력이 딸리는건지
갑자기 급 기운 빠져서 그냥 Bing AI한테 물어봤다.
MariaDB 10.11 을 설치했는데 다른 서버에 Tomcat을 연결해서 연동하고 싶어 호환성이 맞는 버전이 어떤게 있을까?
라고 물어보았다.
AI 많이 발전한거 같다
저 정도로만 질문했는데도 알아서 알아듣고
Maria랑 MySQL 사이 관계랑
Tomcat과 Maria 사이에 패치사항이 따로 없다는것 까지 릴리즈 노트까지 찾아봐주고 ㄷㄷ..
발표끝나고 리뷰한결과
Tomcat 과 Mariadb를 보는 것이 아니라.
Tomcat 과 DB사이에는 Connector 버전 확인하면 된다고 하셨다.
MariaDB Connector/J로
MariaDB-client 3.1.3 사용했다.
그래서 10.0.11 로 해야겠다.
너만 믿는다... Bing..
하지만 지금은 10.0.11을 다운로드할 링크를 찾을 수 없다고한다.
그래서 10.1.7 버전으로 선택했다.
AI가 아직 정확한 정보를 전달해주지 않기 때문에 간단하게 묻는것만
믿고 직접 Document를 보는게 정확하다고 하신다.
이제 Tomcat에 맞는 Java 버전을 확인해야 하는데
https://tomcat.apache.org/whichversion.html
이런게 있더라
그래서 읽어보니 Java는 11 and Later 버전에 대해서는 다 Support 한다니
Java 11 JDK 로 설치하면 되겠다고 생각했다.
JDK는 참고로 Java Development Kit의 약자로
Java 기반으로 프로그래밍된 어플리케이션을 실행할수 있도록 역할을 한다.
그럼 또 다시 돌아와서
Linux Centos7 에 어떻게 JDK와 Tomcat을 깔면되는지 찾아야한다.
참고하면 좋을거같다 여러 JDK중에 어떤것이 더 좋은지 참고할 수 있다.
내용을 보니 Oracle이 전에는 Java를 무료로 공급 및 업데이트 해왔지만
이후 회사에 인수되면서 Java JDK에 라이센스 비용을 추가하여 제공하고 있다고한다.
그래서 무료로 유지보수도 되고 제공도 해주는 JDK가 있고 유료로 유지보수제공해주는 JDK가 있다.
OpenJDK 20으로 결정했다.
OpenJDK 20 설치링크 : https://jdk.java.net/20/
근데 wget도 없다.
yum list wget
yum -y install wget
wget 하고 tar 로 /usr/local
경로에 압축풀려고 하는데 문제가 있다.
경로를 찾을 수 없다는 뜻인거같은데, 권한이나 방화벽, selinux 문제이지 않을까?
에러를 만났는데 tar 아카이브를 찾을수 없다는게 명령어 문법을 잘못 친거라고 하셨다.
/usr/bin
에서 확인한 결과 tar는
권한상 문제는 없어 보인다.
그러면 역시 방화벽문제 일수도 있겠다.
시간이 너무 지체되는 관계로
이미 tar로 압축 푼것을 mv 통해서
/usr/local
로 옮겼다
환경 변수를 잡아줘야한다.
vi /etc/profile
추가했다.
export JAVA_HOME=/usr/local/jdk-20 # /usr/local jdk 설치 위치를 JAVA_HOME으로 지정
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/jre/lib/lib/ext:$JAVA_HOME/lib.tools.jar
톰캣도 비슷하게 깔았다
/usr/share
에
프로그램마다 설치하는 경로가 다른데 참고하면 좋을거 같다.
jdk 설치 참고 : https://so-easy-coding.tistory.com/3
Tomcat 설치 : https://jiurinie.tistory.com/41
/usr 디렉토리에 대한 설명 출처 : https://jadehan.tistory.com/3
이후에는 시간이 너무 오래걸려서 yum설치로 진행하였다.
yum list nginx
yum -y install nginx
로 설치하였다.
1.20.1 버전이다.
설정파일 경로
/etc/nginx/nginx.conf , /etc/nginx/conf.d/*.conf
vi /etc/nginx/conf.d/default.conf
server 블록을 만들었다.
들어오는 인바운드를 80 포트로 listen하고
root 베이스 html 주소는 /ncp/data/www/
index는 index.html index.htm으로 정하였다.