AWS Cloud School 13기 43일차

Forever 김·2026년 2월 27일

AWS Cloud School

목록 보기
39/116

TIL

배운 내용

오늘은 어제 실습에 대한 풀이와 시험을 보았다.
그래서 오늘의 Velog는 실습에 대한 풀이를 할려고한다. 시험에 대한 풀이는 다음주에 강사님과의 풀이를 하고 작성하도록 하겠다.

실습 문제 풀이

문제 : '외부'대역(211.183.3.0/24)에는 211.183.3.100의 주소를 갖는 mint 클라이언트가 존재하며 '내부'에는 아래와 같이 서로 다른대역에 서버들이 존재한다.

mint(외부)는
<주소>/tem에 접속시 간단한 무료템플릿을 볼 수 있고,
<주소>/wp 에 접속시 워드프레스 블로그,
<주소>/tom에 접근했을때는 tomcat 서버로 리버스프록시 되어 db와 잘 연동됐는지를 확인하는 페이지에 접속되길 바란다. 또한 이 페이지는 tomcat 서버에서 접속했을때는 localhost:8080/was 로 접속이 됐었다.

여태까지 배운 내용을 종합적으로 풀어보는 실습이었다.

먼저 GNS3를 이용해 토플로지 구성이다.

이대로 내부 네트워크를 구성해보겠다.

  • R1의 기본설정
R1#conf t

R1(config)#int f0/0
R1(config-if)#ip add 10.10.3.100 255.255.255.0
R1(config-if)#no sh

R1(config-if)#int f0/1
R1(config-if)#ip add 10.10.1.250 255.255.255.0
R1(config-if)#no sh
  • R2의 기본설정
R2#conf t

R2(config)#int f0/1
R2(config-if)#ip add 10.10.2.250 255.255.255.0
R2(config-if)#no sh

R2(config-if)#int f0/0
R2(config-if)#ip add 10.10.3.200 255.255.255.0
R2(config-if)#no sh

여기까지는 2개의 네트워크 밖에 없기 때문에 R1에서 10.10.2.0/24로 보내기 위한 라우팅이 필요하다.

R1(config-if)#ip route 10.10.2.0 255.255.255.0 10.10.3.200
# 10.10.2.0 /24 목적지로 가기위한 넥스트홉은 10.10.3.200

라우팅을 통해 R2에서 10.10.1.250 으로 ping을 보내면 잘 도착함을 알 수 있다.


Tomweb 설정

VMware를 통해 가상환경을 실행하고 IP : 10.10.2.80/24
GW : 10.10.2.250으로 설정한다.

Tomcat 설정

IP : 10.10.1.88 /24
GW : 10.10.1.250

Tomdb 설정

IP : 10.10.1.33 /24
GW : 10.10.1.250

이렇게 하고 각 서버에서 ping을 통해 연결을 확인한다.
확인 후 내부에 있는 서버끼리 통신이 되는 것을 확인할 수 있다.


이제 외부와의 통신을 하기 위해 라우팅을 해준다.

먼저 R2에서 Default route를 한다.

R2(config)#int f1/0
R2(config-if)#ip add 211.183.3.250 255.255.255.0
R2(config-if)#no sh

R2(config)#ip route 0.0.0.0 0.0.0.0 211.183.3.2

R1도 외부와 통신을 해야하기 떄문에

R1(config)#ip route 0.0.0.0 0.0.0.0 10.10.3.200

이렇게 외부와의 라우팅을 해준다.


NAT 설정

  1. PAT 설정
R2(config)#int f1/0
R2(config-if)#ip nat out

R2(config-if)#int f0/0
R2(config-if)#ip nat in

R2(config)#int f0/1
R2(config)#ip nat in

R2(config-if)#ip nat inside source list 1 int f1/0 over
  • Default Route: 외부로 나가는 통로를 뚫어주는 것.
  • PAT: 외부 서버가 나에게 답장을 줄 수 있게 공인 주소로 갈아입혀 주는 것.
    이후 Tomdb에서 ping을 통해 외부와의 통신이 되는지를 확인한다.

tomdb에서 mariadb 패키지를 설치해준다.

[root@tomdb ~]# yum install -y mariadb-server

[root@tomdb ~]# systemctl enable --now mariadb

[root@tomdb ~]# mysql_secure_installation
# 암호 1234, ynyy

[root@tomdb ~]# mysql -u root -p1234

MariaDB [(none)]> create database tomdb;

MariaDB [(none)]> grant all privileges on tomdb.* to tomuser@'%' identified by '1234';

[root@tomdb ~]# mysql -u tomuser -p1234
# 생성한 유저가 유효한지 확인.

Tomcat 설정

[root@tomcat ~]# yum install java-11-openjdk wget unzip

[root@tomcat ~]# wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.52/bin/apache-tomcat-10.1.52.zip

[root@tomcat ~]# unzip apache*

[root@tomcat ~]# mv apache-tomcat-10.1.52 tomcat

[root@tomcat ~]# chmod 777 -R tomcat

[root@tomcat ~]# cd tomcat

[root@tomcat tomcat]# ./bin/startup.sh
# tomcat/bin 경로의 실행파일 실행.

[root@tomcat tomcat]# cd webapps/ROOT/
[root@tomcat tomcat]# mkdir was
[root@tomcat tomcat]# cd was

cat <<EOF > dbtest.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<h1>DB</h2>
<%
        Connection conn=null;
        try{
                String Url="jdbc:mysql://<DB주소>/<DB이름>";
                String Id="<DB유저>";
                String Pass="<유저암호>";

                Class.forName("com.mysql.jdbc.Driver");
                conn=DriverManager.getConnection(Url,Id,Pass);
                out.println("was-db Connection Success!");
        }catch(Exception e) {
                e.printStackTrace(); 
}
%>

EOF
# 내부에 이 내용을 넣어준다. <>의 내용을 db생성에 맞게 수정해준다.

웹서버설정

[root@tomweb ~]# yum install -y httpd

[root@tomweb ~]# vi /etc/httpd/conf/httpd.conf
의 내용에서 :set nu를통해 56번째줄 뒤에

LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<VirtualHost *:80> # 80번 포트로 들어오는 모든 ip에 대한 설정
    ProxyRequests Off
    ProxyPreserveHost On
    <Proxy *> 
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass /tom http://<was주소>:8080/<경로>/
    ProxyPassReverse /tom http://<was주소>:8080/<경로>/
</VirtualHost>

<>를 내용에 맞게 수정해준다.

[root@tomweb ~]# systemctl restart httpd
[root@tomweb ~]# systemctl enable httpd

mint에서 웹서버에 접근하게 하려면 R2에서 DNAT 설정을 해줘야한다.

R2(config)#ip nat inside source static tcp 10.10.2.80 80 211.183.3.250 80

템플릿 배포

[root@tomweb ~]# yum install -y wget unzip

[root@tomweb ~]# mv templatemo_611_maison_doree templatemo_611_maison_doree.zip
[root@tomweb ~]# unzip templatemo_611_maison_doree.zip

[root@tomweb ~]# mv templatemo_611_maison_doree /var/www/html

[root@tomweb ~]# cd /var/www/html
[root@tomweb html]# mv templatemo_611_maison_doree tem
# 디렉토리 이름을 tem으로 변경

Wordpress 배포

[root@tomdb ~]# mysql -u root -p1234

MariaDB [(none)]> create database wpdb;

MariaDB [(none)]> grant all privileges on wpdb.* to wpuser@'%' identified by '1234';

#tomdb 서버에서 데이터베이스 생성

[root@tomweb html]# yum install -y wget unzip epel-release

[root@tomweb html]# yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
# 레포 목록 설치

[root@tomweb html]# yum install -y yum-utils

[root@tomweb html]# yum-config-manager --enable remi-php73

[root@tomweb html]# yum install -y php php-mysql

오늘은 실습 풀이를 한번 작성해보았다. 오늘은 거의 실습을 위주로 하였다. 아직 네트워크가 익숙하지는 않지만 그래도 길은 알것같다 어떻게 설계해야 할지 어떻게 해야 외부로 넘어갈지 단지 그 생각을 실제로 적용이 어렵다. 아마 내가 많이 실습을 안해서 그렇다고 생각은 된다.

profile
나를 한줄로

0개의 댓글