본문 바로가기
반응형

aws42

CloudWatch를 이용한 RDS (PostgreSQL) 스케줄링 시작/종료 운영되는 환경 (live, production, real 등) 외에, 테스트 용도로 사용되는 환경(dev, qa)은 꼭 24시간 무중단으로 서비스를 할 필요가 없습니다. 그래서 실제 업무시간을 제외하고는 해당 서비스를 종료하여 비용을 절감할 필요가 있습니다. (굳이 사용하지 않는 시간대에 비용을 낭비할 필요는 없겠죠?) 그래서 이번 시간의 목표는 다음과 같습니다. CloudWatch Event를 이용하여 매주 월~금 오전 09:00 에 RDS가 재시작 되도록 스케줄링 한다 매주 월~금 오후 08:00 에 RDS가 정지 되도록 스케줄링 한다. 금요일 오후 8시에 종료되고 월요일 오전 9시에 시작이기 때문에 주말 동안은 계속 종료 상태를 유지합니다. 전체 구조는 다음과 같습니다. 자 그럼 바로 시작해보겠습니.. 2021. 5. 11.
PostgreSQL RDS Slow 쿼리 Slack으로 알람 보내기 서비스를 운영하다보면 여러가지 이유로 서버 장애가 발생합니다. 그 중 가장 빈도수가 높은 원인은 DB의 슬로우쿼리일텐데요. 어떤 쿼리가 언제, 얼마나 긴시간동안 수행되었는지에 대해 알람을 받거나 모니터링이 되어야 서비스에 이슈가 될만한 쿼리들을 지속적으로 탐지하고 개선이 가능하기 때문입니다. 이번 시간에는 AWS RDS PostgreSQL에서 슬로우 쿼리에 대한 로그를 남기고 이에 대해 슬랙 알람을 보내도록 설정하는 방법을 진행하겠습니다. 이번 시간에는 PostgreSQL로 진행하지만 MySQL도 DB 파라미터 설정등에 차이가 있지만, 전체 Flow는 거의 흡사하니 참고해서 진행 가능하실것 같습니다. 전체적인 구조는 다음과 같습니다. 한번 이렇게 구성하고 나면 이후에 CloudWatch에 적재된 슬로우 .. 2021. 5. 8.
2. Github Action & AWS Beanstalk 배포하기 - profile=local로 배포하기 지난 시간에 만들어둔 Github Action을 통해 profile=local로 Beanstalk에 배포를 진행해보겠습니다. profile=local, 즉, 운영 DB와 구글&네이버 OAuth 를 사용하지 않는 간단한 테스트 용도로만 배포할 예정입니다. 실제 운영 배포는 다음 시간에 진행할 예정입니다. Github Action과 Beanstalk 연동된 환경 (즉, 이번 시간에 설정된 환경)를 구성하고 이를 기반으로 개선하는 과정으로 진행할 예정입니다. 지난 시간과 마찬가지로 모든 애플리케이션 코드 (Java & Gradle)는 저의 저서 스프링 부트와 AWS로 혼자 구현하는 웹 서비스를 기반으로 합니다. 2020.12월 기준이기 때문에 시간이 지나면 AWS의 UX 변경이 있을 수 있습니다. 최대한 키워.. 2021. 1. 16.
1. Github Action & AWS Beanstalk 배포하기 - Github Action으로 빌드하기 기존에 사이드 프로젝트를 만들면 다음과 같은 환경에서 진행을 해왔습니다. TravisCI & AWS Code Deploy TravisCI & AWS Beanstalk 상황에 따라 골라 쓰긴 했지만, 큰 불편함이 없었는데요. 최근 대세가 TravisCI에서 Github Action으로 넘어갔음이 느껴져 Github Action과 Beanstalk 조합에 대한 글을 쓰게 되었습니다. Github Action & AWS Code Deploy 조합은 wbluke님의 시리즈를 참고해주시면 됩니다. AWS Beanstalk의 경우 최근 버전업을 하면서 몇몇 변경된 설정들이 있어서 해당 부분 역시 다시 정리할 수 있었습니다. 혹시나 제 저서를 보고 AWS Code Deploy를 사용해오셨다면, 좀 더 편하게 서버를 .. 2020. 12. 25.
AWS Beanstalk Linux2 에서 Nginx 설정이 안될때 기존에 AWS Beanstalk을 사용할 경우 아래와 같이 nginx.config 파일을 교체하라고 가이드를 받는데요. (AWS 공식 문서)그래서 실제로 프로젝트 구조를 다음과 같이 잡고 배포를 진행합니다.배포할때 사용하는 스크립트 (travis.yml 혹은 githubAction.yml) 역시 이 구조를 그대로 가져가기 위해 다음과 같이 설정합니다. - name: Generate deployment package run: | mkdir -p deploy cp build/libs/*.jar deploy/application.jar cp Procfile deploy/Procfile cp -r .ebextensions deploy/.ebextensions cd deploy && zip -r deploy.zi.. 2020. 12. 22.
AWS에서 수동으로 ssh 접속을 위한 Pem key 생성하기 자주 있는 일은 아니지만 EC2를 통해 pem키를 생성해본 적 없이, 곧바로 AWS의 Beanstalk을 사용하는 경우를 봅니다. 일반적으로는 EC2를 생성할때 pem키 생성을 함께 진행합니다. 이럴 경우 한번도 pem키를 만들지 않은 상태라서 ssh 접속을 위해서 별도로 pem 키 생성을 진행해야하는데요. 1. Pem Key 생성 먼저 AWS의 서비스로 EC2로 들어갑니다. EC2 대시보드의 좌측 사이드바를 보시면 "네트워크 및 보안 -> 키 페어 -> 키 페어 생성"을 차례로 클릭합니다. 파일형식을 pem을 선택하고, 본인이 원하는 이름으로 Key를 생성합니다. 생성 버튼을 클릭하면 바로 다운로드 화면으로 전환이 되는데요. pem키(수동 생성시에는 .cer 확장자) 를 다운 받을 디렉토리를 지정합니다.. 2020. 12. 20.

728x90
반응형