AWS EC2 모니터링 가이드 (1) – CloudWatch로 서버 상태 확인하기

EC2를 띄웠는데, 서버가 죽으면 어떻게 알지? 이전 글에서 t3.micro에 Ubuntu를 올리고 Docker Compose로 WordPress와 MySQL을 띄웠습니다. 블로그가 잘 돌아가고 있는 것 같긴 한데, 문득 이런 생각이 듭니다. “CPU가 100%를 찍으면? 디스크가 꽉 차면? 내가 모르는 사이에 서버가 멈춰버리면?” 온프레미스 서버라면 모니터링 도구를 직접 설치해야 하지만, AWS는 다릅니다. EC2를 생성하는 순간부터 기본적인 모니터링이 자동으로 시작됩니다. 이 … 더 읽기

Apple Silicon Mac에서 Netty DNS 해석 실패 해결하기(feat. Gradle 의존성 Configuration 이해하기)

서론 Apple silicon을 사용하는 Mac에서, 사내 VPN과 Spring Cloud Gateway 앱을 실행했을 때 Netty DNS 관련 오류를 겪었던 내용입니다. 더 나아가서 Spring WebFlux를 사용할 때 Netty가 시스템 DNS를 무시하는 이유와 해결법을 알아봅니다. VPN은 연결됐는데, Spring Cloud Gateway 앱에서만 DNS 오류가 난다? 사내 VPN에 연결한 상태에서 터미널로 ping이나 traceroute를 실행하면 시스템 DNS를 사용하여 내부 도메인이 잘 … 더 읽기

Spring Boot one-indexed-parameters 옵션의 함정: @PageableDefault는 왜 0으로 설정해야 할까?

서론 spring.data.web.pageable.one-indexed-parameters=true 옵션을 설정하면 페이지 번호가 1부터 시작합니다. 그렇다면 @PageableDefault의 page 값도 1로 설정해야 할까요? 결론부터 말씀드리면 아닙니다. 이 글에서는 Spring 소스 코드를 직접 분석하며 왜 그런지 정확히 알아보겠습니다. one-indexed-parameters 옵션이란? Spring Data의 Pageable은 기본적으로 0-based 인덱스를 사용합니다. 첫 번째 페이지는 page=0입니다. 하지만 프론트엔드나 API 클라이언트 입장에서는 page=1이 첫 페이지인 것이 더 직관적일 수 있습니다. … 더 읽기

AWS EC2 용량 부족? 5분 만에 EBS 볼륨 늘리기

서론 AWS EC2에서 WordPress를 운영 중에 갑자기 사이트가 멈췄습니다. SSH로 접속해보니 MySQL이 죽어있었고, 원인은 단순했습니다. 디스크 100%. t3.micro Ubuntu AMI 기본값인 8GB로는 Docker 이미지 몇 개만 올려도 금방 차버리더라고요. 이 글에서는 제가 직접 겪은 디스크 풀 상황에서 EBS 볼륨을 확장하고, 재부팅 없이 바로 적용한 과정을 공유합니다. 문제 진단: 디스크 상태 확인하기 먼저 현재 디스크 상태를 … 더 읽기

AWS에 WordPress 블로그 구축하기(feat. docker, cloudflare)

AWS EC2와 Docker Compose로 WordPress 블로그 구축하기 개인 블로그를 시작하려고 할 때 가장 먼저 고민되는 것이 호스팅입니다. 티스토리나 네이버 블로그 같은 플랫폼을 사용할 수도 있지만, 저는 AWS 사용법도 익힐 겸 직접 서버를 구축해봤습니다. 이 글에서는 AWS EC2 인스턴스에 Docker Compose를 활용하여 WordPress를 설치하는 방법을 다룹니다. 사전 준비 SSH 설정하기 EC2 인스턴스에 접속하려면 PEM 키 파일이 … 더 읽기