2019/01/16 - [Cloud/Oracle Cloud Infrastructure] - 18. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - 로드밸런서
4단계. 로드밸런서 구성
아파치 웹서버 구성
웹서버#1,2는 현재 컴퓨트 인스턴스와 Bastion 서버 연결, 웹서버 동기화를 위한 네트웍 구성만되어 있는 상태이다. 이번 단계에서는 웹서버#1,2의 서비스 제공을 위해서 아파치(Apache) 웹서버를 설치할 것이다.
이제 웹서버#1,2 인스턴스에 아파치 웹서버를 설치하고, 네트웍 통신에 사용될 포트를 개방하는 작업을 수행한다. VCN 시큐리티 리스트에서도 80 포트를 열어야 하는데, 아파치 웹서버 설치 후, 다음 단계에서 로드밸런서 사용 포트와 함께 설정한다.
웹서버에 Bastion 서버를 통해 SSH 접속을 해서 아파치 웹서버를 설치하고 OS에서 80포트에 대해 방화벽을 오픈/리로드를 하고, 웹서버를 기동한다.
아래는 웹서버#1에서 작업한 내용이다. 웹서버#2에 대해서도 동일한 작업을 수행한다. 아파치 서버 기동 시 “systemctl” 명령으로 수행했다. “apachectl” 명령으로 수행해도 동일하다.
youjung@YOUJUNG-KR MINGW64 ~ $ ssh -t -o ProxyCommand='ssh -i C:\\Users\\youjung\\.ssh\\id_rsa opc@129.213.62.228 -W %h:%p %r' -i C:\\Users\\youjung\\.ssh\\id_rsa opc@10.0.3.2 Last login: Mon Jan 7 05:21:11 2019 from bastion.subnetbs.dbappvcn.oraclevcn.com [opc@web1 ~]$ hostname web1 [opc@web1 ~]$ sudo yum install httpd -y Loaded plugins: langpacks, ulninfo ksplice-uptrack | 951 B 00:00:00 ol7_UEKR5 | 1.2 kB 00:00:00 : : : Complete! [opc@web1 ~]$ sudo firewall-cmd --permanent --add-port=80/tcp success [opc@web1 ~]$ sudo firewall-cmd --reload success [opc@web1 ~]$ sudo systemctl start httpd [opc@web1 ~]$ sudo systemctl status httpd.service ● httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2019-01-07 04:12:22 GMT; 2h 10min ago Docs: man:httpd(8) man:apachectl(8) Main PID: 4484 (httpd) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" CGroup: /system.slice/httpd.service ├─4484 /usr/sbin/httpd -DFOREGROUND ├─4489 /usr/sbin/httpd -DFOREGROUND ├─4490 /usr/sbin/httpd -DFOREGROUND ├─4491 /usr/sbin/httpd -DFOREGROUND ├─4492 /usr/sbin/httpd -DFOREGROUND └─4493 /usr/sbin/httpd -DFOREGROUND
Jan 07 04:12:22 web1 systemd[1]: Starting The Apache HTTP Server... Jan 07 04:12:22 web1 systemd[1]: Started The Apache HTTP Server. |
웹서버를 재기동할 때도 아파치 웹서버 데몬이 자동으로 시작되도록 설정한다.
[opc@web1 ~]$ sudo systemctl enable httpd Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service. |
웹서버를 설치한 다음, 로드밸런서로 부하 분산을 테스트할 테스트 페이지를 웹서버#1과 웹서버#2에 각각 다음과 같이 만든다.
<WEB#1>
[opc@web1 ~]$ sudo su [root@web1 opc]# echo 'This is the 1st Web Server' >> /var/www/html/index.html [root@web1 opc]# exit |
<WEB#2>
[opc@web2 ~]$ sudo su [root@web2 opc]# echo 'This is the 2nd Web Server' >> /var/www/html/index.html [root@web2 opc]# exit |
시큐리티 리스트 설정
로드밸런서를 생성하고 구성하기 전에 시큐리티 리스트를 설정한다.
로드밸런서를 구성할 때 수정이 필요한 시큐리티 리스트 다음과 같다. 참고로 로드밸런서가 사용하는 라우트 테이블 “routeTabLB”에는 인터넷 게이트웨이로 트래픽이 라우팅되도록 VCN 구성할 때 앞서 설정한 바 있다.
• 로드밸런서 시큐리티 리스트에 로드밸런서가 인터넷과 연결을 하기 위한 80 포트에 대해 Stateful Ingress로 개방
• 로드밸런서 시큐리티 리스트에 로드밸런서 트래픽이 웹서버 두대로 나가기 위해 80 포트에 대해 Stateful Egress로 개방
• 웹서버 시큐리티 리스트에 웹서버가 로드밸런서에서 오는 트래픽을 받기 위해 80 포트에 대해 Stateful Ingress로 개방
그런데 위 세가지 시큐리티 리스트 수정 필요 항목에 대해 첫번째에 대해서만 이번 단계에서는 설정하면 된다. 나머지 두가지 요건에 대해서는 다시 설명이 나오겠지만 로드밸런서 설정 과정에서 자동으로 시큐리티 리스트가 업데이트된다.
로드밸런서의 인터넷 통신을 위해 로드밸런서가 소속된 서브넷(“subnetLBA”, “subnetLBS”)의 시큐리티 리스트(“secListLB“)에서 아래와 같이 80 포트를 Statefule Ingress 규칙으로 열어준다.
Ingress/ Egress |
Source CIDR |
IP 프로토콜 |
Source 포트 범위 |
Destination 포트 범위 |
Ingress |
0.0.0.0/16 |
TCP |
ALL |
80 |
로드밸런서가 사용하는 시큐리티 리스트에 80 포트 접근을 허용을 추가하면 아래와 같은 시큐리티 리스트 규칙 목록을 볼 수 있다.
작성자: 정영균
OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 시리즈
1. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Intro
2. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN
3. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN
4. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (인터넷게이트웨이)
5. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (라우트테이블)
6. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (시큐리티리스트)
7. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – VCN (서브넷)
8. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버
9. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (시큐리티 리스트)
10. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (인스턴스)
11. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (웹서버 연결)
12. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – Bastion 서버 (NAT 설정)
13. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버
14. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (rsync)
15. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (NFS 설정)
16. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (NFS 설정, 파일시스템)
17. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 웹서버 (NFS 설정, 파일시스템마운트)
18. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서
19. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (아파치웹서버)
20. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (로드밸런서생성)
21. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (백엔드서버)
22. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 로드밸런서 (리스너)
23. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스
24. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (DB 시스템)
25. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (데이터베이스구성)
26. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (DB 시스템연결)
27. OCI를이용해서데이터베이스어플리케이션아키텍쳐구성하기 – 데이터베이스 (DB 시스템연결)
'Cloud > Oracle Cloud Infrastructure' 카테고리의 다른 글
21. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - 로드밸런서 (백엔드서버) (0) | 2019.01.16 |
---|---|
20. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - 로드밸런서 (로드밸런서생성) (0) | 2019.01.16 |
18. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - 로드밸런서 (0) | 2019.01.16 |
17. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - 웹서버 (NFS 설정, 파일시스템마운트) (0) | 2019.01.16 |
16. OCI를 이용해서 데이터베이스 어플리케이션 아키텍쳐 구성하기 - 웹서버 (NFS 설정, 파일시스템) (0) | 2019.01.16 |