본문 바로가기

전체 글360

[무중단 배포] 24시간 365일 중단 없는 서비스 만들기 (feat. Nginx) 이 글은 이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 읽으며 정리한 글입니다. 무중단 배포란? EC2에 엔진엑스 설치 및 스프링 부트 연동 무중단 배포 스크립트 만들기 배포 자동화 환경을 구축해 놓고 보니 배포를 하는 동안에는 애플리케이션이 종료된다는 문제가 있었다. 긴 시간은 아니지만 새로운 Jar가 실행되기 전까진 기존 Jar를 종료시켜 놓기 때문에 서비스가 중단된다. 🐬 무중단 배포 AWS에서 블루 그린(Blue-Green) 무중단 배포 도커를 이용한 웹 서비스 무중단 배포 위의 방법 외에도 L4 스위치를 이용한 무중단 배포 방법도 있지만 고가의 장비이다 보니 대형 인터넷 기업 외에는 쓸 일이 거의 없다. Nginx 웹 서버, 리버스 프록시, 캐싱, 로드 밸런싱, 미디어 스트리.. 2023. 3. 2.
[AWS] 배포 자동화 중 발생한 문제 해결 🤔 CodeDeploy에서 배포가 실패될 때 Github Actions와 S3, CodeDeploy를 연동하고 배포하는 과정에서 발생한 문제다. Github Actions에서 빌드가 정상적으로 잘 수행되었고, S3에 파일이 잘 담기는 것을 확인했는데 CodeDeploy를 확인해 보면 아래와 같이 실패라고 확인됐다. 😧 상새 내용을 보니 아래와 같이 배포가 실패되었다는 안내가 떴다. The overall deployment failed because too many individual instances failed deployment, too few healthy instances are available for deployment, or some instances in your deployment gro.. 2023. 3. 2.
[배포 자동화] Github Actions & S3 & CodeDeploy 이 글은 이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 읽으며 정리한 글입니다. Github Actions 설정 Github Actions - AWS S3 연동 Github Actions - AWS S3 - CodeDeploy 연동 배포 자동화 구성 CI(Continuous Integration - 지속적 통합): 코드 버전 관리를 하는 VCS 시스템(Git, SVN 등)에 PUSH가 되면 자동으로 테스트와 빌드가 수행되어 안정적인 배포 파일을 만드는 과정 CD(Continuous Deployment - 지속적 배포): 빌드된 결과를 자동으로 운영 서버에 무중단 배포까지 진행되는 과정 여러 개발자가 협업해서 만든 코드를 병합하는 과정을 거치는 이전 방식은 번거롭고 효율이 좋지 않았다... 2023. 2. 26.
[AWS] EC2 서버에서 프로젝트 배포하기 이 글은 이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 읽으며 정리한 글입니다. 1. EC2에 프로젝트 clone 2. 배포 스크립트 만들기 3. RDS 접근하기 ssh aws_apupu_ec2 # EC2 터미널 접속하기 1. EC2에 프로젝트 clone 받기 sudo yum install git git --version # 프로젝트를 저장할 디렉토리 생성 mkdir ~/app && mkdir ~/app/step1 cd ~/app/step1 git clone 깃허브 주소 2. 프로젝트 테스트 # 테스트 ./gradlew test 테스트를 돌리니 아래와 같이 오류가 발생했다. application-oauth.properties 파일은 보안상의 문제로 깃허브에 올리지 않았었는데, 이 파일.. 2023. 2. 25.
[AWS] 데이터베이스 환경 구성하기 - RDS 이 글은 이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 읽으며 정리한 글입니다. 1. RDS 인스턴스 만들기 2. 내 PC에서 RDS 접속하기 3. EC2에서 RDS 접속하기 RDS는 AWS에서 지원하는 클라우드 기반 관계형 데이터베이스이다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 개발자가 개발에 집중할 수 있게 지원하는 서비스이다. 1. 인스턴스 만들기 아래와 같은 이유로 MariaDB를 선택했다. 가격 Amazon Aurora 교체 용이성 RDS의 가격은 라이센스 비용 영향을 받는다. 상용 데이터베이스인 오라클, MSSQL이 오픈소스인 MySQL, MariaDB, PostagreSQL보다는 동일한 사양 대비 더 가격이 높다. 또한.. 2023. 2. 24.
[AWS] 서버 환경 구성하기 - EC2 이 글은 이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 책을 읽으며 정리한 글입니다. 1. EC2 인스턴스 생성 2. 탄력적 IP 만들기 3. EC2 인스턴스 접속하기 더보기 🍌 24시간 구동하는 서버 구성하기 개인 PC를 24시간 구동시킨다. 호스팅 서비스(Cafe 24, 코리아호스팅 등)을 이용한다. 클라우드 서비스(AWS, AZURE, GCP 등)을 이용한다. 1번과 2번 방법이 비용이 저렴하지만 특정 시간대에 트래픽이 몰리는 시스템의 경우 유동적으로 사양을 늘릴 수 있는 클라우드가 유리하다. 클라우드 서비스는 인터넷(클라우드)를 통해 서버, 스토리지, 데이터베이스, 네트워크, 소프트웨어, 모니터링 등의 컴퓨팅 서비스를 제공하는 것이다. EC2(Elastic Compute Cloud).. 2023. 2. 22.