[AWS를 이용한 시스템 설계 및 구축과 배포] 16. 다중 서버 React.js + Spring boot + MySQL 환경 설정 (영상 설명 한 번 읽어주세요)
- 다중 서버 아키텍처 구성: React.js 웹 서버, Spring Boot WAS, MySQL 데이터베이스 서버로 구성된 3계층 아키텍처를 AWS EC2 인스턴스에 배포합니다. 🏗️
- 역할별 EC2 인스턴스 최적화: 웹 서버와 DB 서버는 T2 Micro를, Java 빌드 성능을 고려하여 WAS는 T2 Medium 인스턴스 유형을 사용하여 각 역할에 맞는 리소스를 할당합니다. 💡
- 보안 그룹(Security Group) 세분화: SSH(22번), 웹(3000번), WAS(8080번) 포트에 대한 전용 보안 그룹을 생성하고, 데이터베이스는 외부 노출 없이 WAS와만 통신하도록 디폴트 보안 그룹을 활용합니다. 🔒
- 네트워크 분리 및 보안 강화: 웹 및 WAS는 퍼블릭 서브넷에 배치하여 외부 접근을 허용하고, 데이터베이스 서버는 프라이빗 서브넷에 배치하여 직접적인 외부 접근을 차단, 보안을 강화합니다. 🌐
- 키 페어 생성 및 SSH 연결 설정: EC2 인스턴스 접속을 위한 키 페어를 생성하고,
~/.ssh/config 파일을 통해 웹, WAS, 데이터베이스 서버에 대한 SSH 연결 설정을 구성하며, 데이터베이스는 WAS를 경유하는 프록시 명령을 사용합니다. 🔑
- WAS 서버 환경 설정: OpenJDK 21을 설치하여 Spring Boot 애플리케이션 실행 환경을 준비합니다. ☕
- 데이터베이스 서버 환경 설정: MySQL 8을 설치하고, WAS 서버의 프라이빗 IP를 통해 접근 가능한 사용자(
prd_user)를 생성하며, bind-address 설정을 0.0.0.0으로 변경하여 외부 접속을 허용합니다. 🗄️
- 웹 서버 환경 설정: NVM을 사용하여 Node.js 22.17.0 버전을 설치하고, npm을 최신 버전으로 업데이트하여 React.js 애플리케이션 실행 환경을 구축합니다. 🚀
- 다중 서버 아키텍처의 장점: 각 서버의 특성에 맞춰 인스턴스 유형을 선택하고, 필요한 부분만 수직/수평 확장할 수 있어 효율적인 리소스 관리 및 유연한 확장이 가능합니다. ✨
데브허브 | DEVHUB | [AWS를 이용한 시스템 설계 및 구축과 배포] 16. 다중 서버 React.js + Spring boot + MySQL 환경 설정 (영상 설명 한 번 읽어주세요)