DevOps 7

Docker를 이용하여 EC2에 Node 서버 배포하기 (2)

이전 글에서는 아래 과정을 직접 수동으로 진행했다.Docker 이미지 빌드 -> ECR Push -> EC2 Pull -> docker run하지만 매번 직접 명령어를 입력하는 것은 번거로운 일이다. 이번 글에서는 GitHub Actions를 사용해서 Node 서버를 자동 배포하는 과정을 정리한다. 지난 글https://geonbbang.tistory.com/74 Docker를 이용하여 EC2에 Node 서버 배포하기 (1)Node 서버를 운영하다 보면 다음과 같은 문제들이 생길 수 있다.배포를 했더니 개발 환경과 운영 환경이 같지 않아서 문제가 발생한다.다른 개발자와의 개발 환경이 달라 충돌이 발생한다.가끔geonbbang.tistory.com 전체 흐름은 아래와 같다.GitHub Actions 실..

DevOps 2026.05.11

Docker를 이용하여 EC2에 Node 서버 배포하기 (1)

Node 서버를 운영하다 보면 다음과 같은 문제들이 생길 수 있다.배포를 했더니 개발 환경과 운영 환경이 같지 않아서 문제가 발생한다.다른 개발자와의 개발 환경이 달라 충돌이 발생한다.가끔 패키지 관련 문제로 인해 서버 실행이 안 된다.이 글에서는 이런 문제를 해결하기 위해Docker → ECR → EC2 흐름으로Node 서버를 배포하는 과정을 진행한다. 전체 흐름은 아래와 같다.Docker 이미지 빌드AWS ECR에 이미지 PushEC2에서 이미지 PullDocker로 컨테이너 실행Docker 이미지 빌드Docker 이미지를 빌드하기 위해서는 Dockerfile이란 이름을 가진 파일이 필요하다. 아래와 같은 Dockerfile을 작성한다. DockerfileFROM node:24-alpineWORK..

DevOps 2026.04.28

CloudWatch Logs와 Slack 통합: 에러 메시지 실시간 전송 설정

알람이 자주 울리면 처음에는 신경을 쓰다가도 점점 무뎌지기 마련이다. 중요하지 않은 알람이나 즉시 처리할 필요가 없는 알람이 계속 오면, 어느 순간 '또 알람이네' 하고 무심코 넘겨버리게 된다. 문제는 이 과정에서 정말 중요한 알람까지 놓칠 수 있다는 점이다. 이런 거짓 알람을 원천적으로 차단하는 것이 가장 좋은 해결책이지만, 현실적으로 모든 알람을 완벽하게 정리하기는 어렵다. 따라서, 알람이 왔을 때 내용을 바로 파악할 수 있도록 구성하는 것이 도움이 될 수 있다. 이를 위해 CloudWatch 구독 필터를 설정하고 Lambda를 활용해 Slack으로 오류 메시지를 전송하는 방식을 적용할 수 있다. 이를 통해 오류를 신속하게 파악하고, 즉각 대응이 필요한 크리티컬한 문제인지 빠르게 판단할 수 있다.  ..

DevOps 2024.12.25

Nest 프로젝트에 Pinpoint 적용

목록Java 설치HBase 설치Pinpoint Collector 설치Pinpoint Web 설치Pinpoint Node Agent 설치실행 및 Pinpoint Web 확인준비. EC2 설치1.Java 설치Java 8 설치sudo yum install java-1.8.0-openjdk -yJava 버전 확인java -versionJAVA_HOME 경로 설정echo 'export JAVA_HOME={Java 경로 입력}' >> ~/.bashrcecho 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc source ~/.bashrc자바 경로는 sudo update-alternatives --config java 를 통해 확인할 수 있다. bin/java를 제외한 나머지가 경..

DevOps 2024.12.05

CloudWatch를 이용해 알람 받기

CloudWatch Logs 적용CloudWatch Logs를 사용하여 애플리케이션 및 사용자 지정 로그 파일을 모니터링, 저장 및 액세스할 수 있다.이전 게시글에서 요청 ID를 남기고 분산 서비스로 전파를 했기 때문에 하나의 요청을 추적할 수 있다.  CloudWatch의 Logs Insights 화면이다.검색하고 싶은 애플리케이션의 로그 그룹들을 선택하고 로그 데이터 쿼리를 수행한다.요청 아이디로 검색을 해서 여러 서비스에 걸친 요청의 흐름을 추적할 수 있다.CloudWatch 경보 생성운영중인 서비스에서 치명적인 오류가 발생하는 경우, 빠른 대응이 중요하다. 이를 위해서 에러가 발생하는 경우 알람을 받을 수 있도록 설정한다. CloudWatch의 로그에서 에러 로그가 찍히는 경우 미리 설정해둔 이메..

DevOps 2024.01.28

로그 남기기

실제 운영중인 서비스에서 에러가 발생하는 것은 치명적이다. 그래서 평소 테스트를 통해 사전에 에러를 발견하고 코드를 검증하여 문제가 발생하지 않도록 하는 것이 중요하다.그러나 현실에서는 언제나 예상치 못한 문제가 발생할 수 있다. 이에 대비하여 문제가 발생했을 때 빠르게 원인을 발견하고 해결하는 것도 매우 중요하다.이러한 상황에서 도움이 되는 것이 로그이다. 따라서 로그를 효과적으로 남겨 문제를 발견하고 해결할 수 있도록 하는 것이 필요하다. 이번 글에서는 기존 로그의 문제점과 개선 과정에 대해 남긴다.  기존 로그의 문제점- 로그 레벨 구분 Xerror, warn, info, debug 등의 로그 레벨을 이용해서 구분하지 않고 console.log만 사용해서 로그를 남기고 있었다. 간혹 console...

DevOps 2024.01.21

Github Action 배포 자동화

Github Action을 이용하여 새로운 코드 반영 시 ec2에 서버가 자동으로 배포되도록 하였다.AWS CodeDeploy를 이용한다. 목차workflow 작성AppSpec 작성AWS 서비스 설정(CodeDeploy, S3) 1. workflow 작성workflow 파일을 먼저 생성해준다.workflow에는 코드를 푸시하는 시점부터 서버를 배포하는 시점까지의 과정을 설정한다. 위와 같이 새로운 workflow를 생성할 수 있다. 나는 Java with Gradle을 선택하였고 파일 이름은 deploy-dev로 설정하였다.생성을 완료하면 /.github/workflows/deploy-dev.yml과 같은 파일이 생성된다.name: Deploy to Devon: push: branches: [ "..

DevOps 2024.01.07