Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- SQL
- CoffiesVol.02
- JMeter
- Java
- 연습문제
- Join
- 디자인 패턴
- Redis
- CI/CD
- Lv.0
- 코테
- 일정관리 프로젝트
- 알고리즘
- nginx
- JPA
- spring boot
- LV03
- 포트폴리오
- LV0
- LV01
- LV.02
- docker
- mysql
- AWS
- 데이터 베이스
- 프로그래머스
- 일정관리프로젝트
- Kafka
- 이것이 자바다
- LV02
Archives
- Today
- Total
코드 저장소.
AWS EC2 기반 Spring Boot 분산 인프라 구축기 2 본문
목차
1.공통 환경 구축: Docker & Docker Compose
2.인프라 서버: Nginx & SSL 인증서(Certbot) 적용
3.Docker Compose를 통한 서비스 배치
4.후기
1.공통 환경 구축: Docker & Docker Compose
4대의 EC2 서버에 동일한 런타임 환경을 구축하고, 외부 트래픽을 안전하게 수용하기 위한 SSL 인증서 발급 과정을 정리했습니다.
# 패키지 업데이트 및 Docker/Compose 설치
sudo apt-get update
sudo apt-get install -y docker.io docker-compose
# 사용자 권한 부여 (sudo 없이 Docker 명령 실행 가능)
sudo usermod -aG docker ubuntu
# 서비스 활성화
sudo systemctl start docker
sudo systemctl enable docker

2.인프라 서버: Nginx & SSL 인증서(Certbot) 적용
외부 사용자가 도메인을 통해 접속할 때 보안 연결(HTTPS)을 제공하기 위해 Certbot을 이용해 Let's Encrypt 인증서를 발급받았습니다.
- 발급 대상: api.schedulemanagement.site (및 서비스 관련 도메인)
- 적용 방식: Certbot의 standalone 혹은 nginx 플러그인을 사용하여 SSL 인증서를 획득하고, Nginx 설정 파일에 경로를 지정했습니다.

3.Docker Compose를 통한 서비스 배치
각 서버의 역할에 맞춰 docker-compose.yml 파일을 작성하고 배포했습니다.
- 인프라 서버: Nginx를 전면에 띄워 로드밸런싱을 수행하고, Kafka와 ZooKeeper 브로커를 관리합니다.
- 서비스 서버: Spring Boot 애플리케이션 컨테이너를 기동합니다.
- 모니터링 서버: Prometheus와 Grafana 스택을 띄워 인프라 가시성을 확보합니다.
트러블 슈팅
구축 과정 중 인프라 서버에서 Kafka와 ZooKeeper 간의 통신이 원활하지 않은 문제가 발생했습니다. 보안 그룹(2181 포트) 설정과 내부 컨테이너 네트워크 간의 충돌로 인해 연결 오류 로그가 계속해서 출력되었습니다.


이 문제를 해결하며 고민이 깊어졌습니다. "과연 분산 시스템을 구축하면서 ZooKeeper라는 별도의 관리 포인트가 꼭 필요할까?"
4.후기
반복되는 패키지 설치와 SSL 설정 과정을 거치며 인프라의 기초를 다졌습니다. 하지만 ZooKeeper 관련 이슈를 겪으며 더 효율적인 Kafka 운영 방식을 고민하게 되었습니다.
그래서 다음 포스팅에서는 ZooKeeper 의존성을 완전히 제거한 Kafka KRaft(Kafka Raft) 모드로 전환하여 시스템을 한 단계 더 고도화하는 과정을 다뤄보겠습니다.
'포폴 > 일정관리 프로젝트' 카테고리의 다른 글
| 일정추천 기능 고도화 - 일정추천 챗봇으로 고도화 (0) | 2026.04.27 |
|---|---|
| Kafka KRaft 기반 3-Broker 클러스터 전환 과정 (0) | 2026.04.19 |
| AWS EC2 기반 Spring Boot 분산 인프라 구축기 1 (0) | 2026.04.17 |
| Docker + Nginx 로드밸런싱 구성과 SPOF 검증 (0) | 2026.04.13 |
| 일정알림기능6-Kafka Exactly-Once, 실제로 버티나? 50VU 실패부터 에러율 0% 달성까지 (0) | 2026.04.09 |