[클라우드] 아키텍쳐 설계
클라우드 아키텍처 설계
우선 밑에 사진은 첫 번째로 만들어본 아키텍처 설계이다. ( 본 게시엔 2가지 버전이 존재한다 )
웹서버에 AutoScaling을 적용하고, 2개의 backend서버를 가진 네트워크 구성도이며,
파일 시스템에 SSL 인증서와 Nginx rpm파일을 넣은 구성이다.
우선 DMZ(Public) 존에 2가지 서브넷을 구성하였다.
첫 번째 서브넷은 로드밸런서 전용 서브넷이고,
두 번째 서브넷은 웹서버와 파일 시스템 전용 서브넷이다.
Private 존에는 1가지의 서브넷으로 구성하였다.
이는 Was 전용 서브넷으로 데이터베이스 이중화까지 고려한 구성이다.
Public Security List
Private Security List
LB Security List
하지만 완성을 하고 보니 이러한 구성은 파일 시스템이 DMZ존에 노출되어있어 보안상으로 문제가 생기며,
로드밸런서 하나만 DMZ존에 있으면 된다는 생각이 들어 구성을 다시 한번 바꾸도록 하였다.
우선 DMZ(Public)존에 2가지 서브넷을 구성되어 있던 것을 로드밸런서 전용 서브넷 하나만 노출되게 해 놓았다.
이후 Public존에 존재하던 웹서버, 파일 시스템 서브넷을 Private 존으로 옮겼다.
기존에는 Bastion Server를 두지 않고 웹서버에서 백엔드로 들어가는 방법을 택했지만,
새로운 구성도로 설계하기 위해서는 Bastion Server 가 꼭 필요해 보여 추가하였다.
( LoadBalancer로 접속하는 건 아니기에 )
이후 보안 취약점 체크와 같은 것들을 이후에 추가해준다면 아주 좋은 프로그램이 될 것이다.
우선 이러한 설계를 하기 위한 네트워크 구성 순서는 다음과 같다.
네트워크 설정 및 생성
- ( InternetGateway, RouteTable 생략 )
- LB용 SL 생성
- Subnet 생성 ( public private LB )
- SSH 인증키 생성
- LB 생성
- File Storage 생성
- Instance 생성 ( Cloud-init : sh이용 )
AutoScling 설정
- Instance Configuration 생성
- Instance Pool 생성 ( LB 연결 )
- LB 테스트 ( WebServer 삭제 )
- AutoScaling Configuration 생성
- Scale-out 테스트
- Scale-in 테스트
※ OCI로 아키텍처 제작시 참고
- FileSystem은 마운트기능을 수행해야 하는데, 이는 같은 서브넷에 둘 것
( 같은 서브넷에 두지 않는다면 보안설정을 추가로 해주어야 함. ) - 인스턴스 생성할 때 고급버튼을 눌러 Cloud_init에 쉘스크립트를 추가해 줄 것
- 로드밸런서는 L7으로 만들어 줄 것
( L4로 만들시 인스턴트 풀 제작할 때 보이지 않음 ) - HTTPS 웹을 만들더라도 80으로 헬스체크를 한다면 굉장히 편했음.
( 보안적으로는 아닐지라도 ) - Cloud_init을 만들지 않을 시 AutoScaling을 설정하더라도 기본 인스턴스만 생성이 됨 ( 무용지물 )