잠시 몸담았던 회사에서 입사시 내주었던 과제
Spring에서 공식적으로 제공하는 예제 프로젝트인데 전통적인 3Tire 구조이기 때문에 해보면 도움되는 것이 많다.
예제를 다운받을 수 있는 곳은 아래와 같다.
https://github.com/spring-projects/spring-petclinic
아래는 구성도(GCP)를 작성해 보았다.
1. 외부 클라이언트들이 접속 : gcp.seonggi.kr
2. Cloud Load Balancing : HTTP(S) Load Balancing로 선택하여 고정IP를 주고, gcp.seonggi.kr 인증서를 설치했다.
3. WEB Instance-group (autoscaling) : 웹서버 이미지를 만들고, 템플릿화 한뒤 CPU사용량에 따라 autoscaling하도록 설정
4. Cloud Load Balancing : WEB-> WAS로 보내는 것이기 때문에 https가 아닌 TCP로 설정하였다.
5. WAS Instance-group (autoscaling) : WAS서버 이미지를 만들고, 템플릿화 한뒤 CPU사용량에 따라 autoscaling하도록 설정
6. Cloud SQL : mysql로 설정했으며, 실제 운영한다면 Replication으로 백업을 한다.
7. repository, NTP 서버 : 특별한 아이디어 있냐고 해서 두긴했는데... 내부 repository는 관리포인트와 개발자분과의 협업 관리가 너무 힘들기 때문에 좋은 선택은 아니라고 생각한다.
NTP는 내부 서버들 시간은 항상 맞추어야 하기에 필수
8. Bastion : 외부에서 관리하기 위한 서버
- 완성하고, 사이트는 날려버려서 캡쳐한게 없긴한데..
아래와 같이 동물그림이 나오고 find OWNERS 탭에서 DB조회가 가능하고, VETERINARIANS에서 DB수정, 추가가 가능하다.
https://github.com/spring-petclinic/spring-petclinic-kotlin
SW목록
WEB : nginx (proxy로 사용)
WAS : tomcat
DB : mysql
방화벽 구성
각 WEB(80), WAS(8080)서비스 포트외에는 거부하도록 했고, 로드밸런스는 80접근시 자동으로 443변경 및 SSL오프로드 사용하여, WEB서버에서는 80만 받도록 했다.
(추 후 상세 수정예정)
참고
구성도 작성 : https://app.diagrams.net/
'Cloud > GCP' 카테고리의 다른 글
GCP 키 관리(KMS, EKM, CMEK) (0) | 2023.01.17 |
---|---|
CloudShell (0) | 2023.01.17 |
VPC Network (0) | 2023.01.17 |
Network Services (0) | 2023.01.17 |
APIs_Services 기초 (0) | 2022.12.31 |
GCP - Billing (0) | 2022.12.31 |
Cloud Shell (0) | 2022.12.31 |