DevOps

· DevOps
들어가며 프로젝트를 릴리즈 하기 전 모니터링 기능을 추가하고 싶었습니다. 결론적으로, CloudWatch로 Metrics를 수집하고 Grafana로 Dashboard를 구성하기로 결정하였습니다. 또한 CloudWatch에서 Metrics에 대한 Alarms를 보내는 환경을 구축하기로 하였습니다. Metric 수집? CloudWatch vs Prometheus CloudWatch는 AWS 환경에 적합하며, Prometheus는 클라우드 종속성이 적어서 다양한 환경에 적용 가능합니다. 하지만 Prometheus는 AWS 서비스와의 통합이 CloudWatch에 비해 직접적이지 않아, AWS 리소스에 대한 메토릭을 모니터링하기 위해서는 추가구성이 필요합니다. → AWS 서비스(EC2, RDS 등)만 사용하기 때..
· DevOps
서버 에러 시 슬랙에 알림 보내기 우리 프로젝트에선 prod server와 dev server 두 가지를 사용하고 있는데 오류가 발생할 때마다 서버가 직접 ec2에 접속해서 에러 로그를 확인하는 방식이 매우 불편했다. 또한 클라이언트에서 오류가 발생했다고 서버에게 말을 해주기 전에 서버에서 발생하는 오류를 파악하고 싶었다 따라서 배포용 서버와 개발용 서버에서 발생하는 에러들을 아래처럼 두개의 채널에 전송하기로 하였다 또한 4XX, 5XX을 각각 클라이언트에러와 서버에러로 구분하여 알림을 보내기로 하였다 배포용 서버에서 발생하는 에러 -> # iluvit-prod-error 채널 개발용 서버에서 발생하는 에러 -> # iluvit-dev-error 채널 (1) 슬랙 웹 훅 설정 새 채널 생성에서 iluvi..
· DevOps
CI 구축 1. 환경 변수 설정 Settings -> Security ->Secretes and variables -> Actions 탭에 들어가 New repository secret 클릭 Application.yml(Properties) 등 gitignore 한 파일들을 작성해 줍니다. 우리 프로그램은 env.properties 에 환경변수 정보를 적은 후 gitignore 해주었기 때문에 ENV라는 이름으로 env.properties 내용을 복붙 해주었습니다. Name은 컨벤션에 맞게 대문자, 숫자와 언더스코어만 쓰자 2. workflow 구축 Github에 올라와있는 자바 프로젝트를 jar파일로 빌드하는 작업을 자동화할 것입니다. 프로젝트에서 /. github/workflows 폴더 안에 Depl..
· DevOps
Github actions, CodeDeploy, Nginx로 CICD 및 무중단 배포하기 (1) [DevOps] Github actions, CodeDeploy, Nginx로 CICD 및 무중단 배포하기 (1) Java + Spring 을 사용하였습니다 CICD 란? CI ( Continuous Integration ) 여러 개발자가 하나의 프로젝트를 같이 개발할 때 생기는 불 일치를 최소화 해주는 개념 애플리케이션 변경 사항 반영 시 자동으로 seowoolog.tistory.com Github actions, CodeDeploy, Nginx로 CICD 및 무중단 배포하기 (2) [DevOps] Github actions, CodeDeploy, Nginx로 CICD 및 무중단 배포하기 (2) [DevO..
· DevOps
[DevOps] Github actions, CodeDeploy, Nginx로 CICD 및 무중단 배포하기 (1) Java + Spring 을 사용하였습니다 CICD 란? CI ( Continuous Integration ) 여러 개발자가 하나의 프로젝트를 같이 개발할 때 생기는 불 일치를 최소화 해주는 개념 애플리케이션 변경 사항 반영 시 자동으로 seowoolog.tistory.com 위 글에서 이어지는 내용입니다! Github Actions Workflow 작성 /. github/workflows/라는 경로는 반드시 지켜줘야 한다 # /.github/workflows/dev_deploy.yml name: Dev Deploy # release 브랜치로 push 되거나 pr이 날아가는 경우 workfl..
· DevOps
Java + Spring 을 사용하였습니다 CICD 란? CI ( Continuous Integration ) 여러 개발자가 하나의 프로젝트를 같이 개발할 때 생기는 불 일치를 최소화 해주는 개념 애플리케이션 변경 사항 반영 시 자동으로 빌드 및 테스트 되어 잘못된 코드가 공유되는 것을 방지한다 → 코드의 신뢰성을 높이는 개념 CD ( Continuous Deployment ) 프로젝트의 변경 사항을 가상 환경에서 자동으로 배포하는 것을 의미 변경 사항을 배포할 때 사용하는 파이프라인을 공유하여 번거로움을 없앨 수 있다 배포 플로우를 자동화하여 누구나 동일한 플로우로 배포할 수 있게 만들어주는 개념 Github Actions와 CodeDeploy를 사용한 CICD Github Actions란 ? gith..
· DevOps
EC2 ( Elastic Compute Cloud) 란 ❓ 아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스 클라우드 컴퓨팅은 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공 → AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것 후불제 PC방과 같이 사용한 만큼 비용을 지불하기 때문에 탄력적인 이라는 의미의 Elastic이라는 단어가 붙어있다. Elastic은 비용적인 부분 뿐만이 아니라 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다는 의미도 가지고 있다. 📌 정리 : EC2서비스는 AWS에서 비용, 성능, 용량면에서 탄력적인 클라우드 컴퓨터를 제공하는 서비스라고 할 수 있다 EC2를 사용해야 하는 이유 효율성 : EC2는 클릭 몇 번으로 서..
dltjdn
'DevOps' 카테고리의 글 목록