React, Spring Boot, MySQL을 단일 EC2 인스턴스에 배포하는 아키텍처의 장점(단순성, 비용 효율성, 내부 통신 지연 최소화)과 단점(단일 장애 지점, 확장성 제약, 성능 리스크)을 명확히 설명합니다. 🏗️
AWS VPC, 인터넷 게이트웨이, 서브넷, 라우팅 테이블, 보안 그룹, EC2 인스턴스 등 핵심 인프라를 구축하는 과정을 상세히 안내하며, 실무적인 이름 태그 규칙, CIDR 블록, 보안 그룹 인바운드 규칙(SSH, React 3000, Spring Boot 8080) 설정을 포함합니다. ☁️
EC2 인스턴스에 SSH로 접속하여 Git 클론, Java 21 (OpenJDK), MySQL 8, Node.js 22 (NVM 활용) 등 애플리케이션 구동에 필요한 필수 소프트웨어를 설치하고 환경 변수를 설정하는 방법을 다룹니다. 🛠️
MySQL 서버 설치 후 루트 비밀번호 변경, 애플리케이션 전용 데이터베이스 및 사용자 생성, 그리고 해당 사용자에게 필요한 권한을 부여하는 보안 및 운영 관점의 중요 단계를 제시합니다. 🔐
Spring Boot 백엔드 프로젝트의 application.properties 파일 설정(DB 연결 정보, JWT 시크릿 등), Gradle을 이용한 빌드, 그리고 systemd를 활용하여 백그라운드 서비스로 등록하고 자동 시작되도록 설정하는 과정을 상세히 설명합니다. 🚀
React 클라이언트에서 Spring Boot API 호출 시 localhost 대신 실제 서버의 도메인 또는 IP 주소를 사용해야 하는 중요한 통신 원칙을 강조하여 배포 시 발생할 수 있는 흔한 오류를 방지하도록 안내합니다. 🌐
단일 서버 배포 시 t2.micro 인스턴스 유형이 부적합하며 최소 t2.medium 이상을 권장하는 등 실제 운영 환경에서의 자원 효율성을 고려한 조언을 제공합니다. 💡
AWS 리소스 생성 시 환경, 프로젝트, 소유자 등 세부적인 태그를 지정하여 결제 내역에서 비용을 쉽게 구분하고 관리할 수 있도록 하는 실용적인 팁을 공유합니다. 💰