Closed sjgaru-dev closed 2 weeks ago
이 PR은 프론트엔드 애플리케이션을 위한 AWS Docker 배포를 구현합니다. EC2에 대한 자동 배포를 위한 GitHub Actions 워크플로우를 설정하고, Docker 이미지 빌드 및 Docker Hub로의 푸시를 구성하며, 프론트엔드 애플리케이션을 제공하기 위한 Nginx 구성을 포함합니다.
변경 사항이 간단해 보이며 시각적 표현이 필요하지 않으므로 다이어그램이 생성되지 않았습니다.
변경 사항 | 세부 사항 | 파일 |
---|---|---|
AWS EC2 배포를 위한 GitHub Actions 워크플로우 구현 |
|
.github/workflows/awsdeploy.yml .github/workflows/maindocker.yml |
Nginx 서버 구성 추가 |
|
nginx.conf |
이슈 | 목표 | 해결됨 | 설명 |
---|---|---|---|
#32 | AWS 계정 구성 및 공유 설정 | ✅ | |
#32 | 배포를 위한 AWS 서비스 설정 구성 | ✅ |
프로덕션 배포는 ec2보다는 s3 + cloundfront(cdn)으로 배포하는 것이 나을 것 같습니다. CDN을 사용할 경우 글로벌 엣지서버에 캐싱이 되서 글로벌 사용자에 대한 지연 시간이 감소한다는 큰 이점이 있고, 캐싱 전략으로 서버 부하가 감소한다는 장점이 있습니다. 개인적으로는 s3가 더 배포가 편해서 쓰긴합니다.
근데 사실 큰 문제는 없으니 이대로 사용해도 될 것 같긴합니다. 지금slack 알림도 디게 편하고, 나중에 aws가 아닌 다른 서비스로 배포하게 된다면 도커 설정들을 통해서 ci/cd 라인을 쉽게 만들 수 있을 것 같네요.
cloundfront는 지금 ALB 앞에 놓을 수 있어 현재 구조가 상위호환입니다.
프로젝트 지원이 가능한 기간동안에는 AWS 최대한 활용하려고 합니다. 현재 모니터링+목, 백엔드, 프론트엔드 총 3개의 서버가 돌아가고 있어 지원이 끊기면 말씀하신 방법이나 더 간단하게 모두 프리티어 범위 안으로 축소해서 내년 10월까지 무료로 서버유지 될 수 있도록 변경할 예정입니다.
프로덕션 배포는 ec2보다는 s3 + cloundfront(cdn)으로 배포하는 것이 나을 것 같습니다. CDN을 사용할 경우 글로벌 엣지서버에 캐싱이 되서 글로벌 사용자에 대한 지연 시간이 감소한다는 큰 이점이 있고, 캐싱 전략으로 서버 부하가 감소한다는 장점이 있습니다. 개인적으로는 s3가 더 배포가 편해서 쓰긴합니다. 근데 사실 큰 문제는 없으니 이대로 사용해도 될 것 같긴합니다. 지금slack 알림도 디게 편하고, 나중에 aws가 아닌 다른 서비스로 배포하게 된다면 도커 설정들을 통해서 ci/cd 라인을 쉽게 만들 수 있을 것 같네요.
cloundfront는 지금 ALB 앞에 놓을 수 있어 현재 구조가 상위호환입니다.
프로젝트 지원이 가능한 기간동안에는 AWS 최대한 활용하려고 합니다. 현재 모니터링+목, 백엔드, 프론트엔드 총 3개의 서버가 돌아가고 있어 지원이 끊기면 말씀하신 방법이나 더 간단하게 모두 프리티어 범위 안으로 축소해서 내년 10월까지 무료로 서버유지 될 수 있도록 변경할 예정입니다.
오 cloudfront를 설정이 가능하면 지금 방식이 훨씬 나은 것 같습니다. 제가 잘못 말 한 것 같습니다. 죄송합니다
큰일도 아닌데 죄송까지 안 하셔도 될 것 같습니다! ㅋㅋㅋ 😸
close #32
백엔드 맞춰서 프론트엔드도 메인 브랜치 배포과정 수정했습니다.
Summary by Sourcery
Docker를 사용하여 프론트엔드 애플리케이션을 AWS EC2에 배포하기 위한 CI/CD 파이프라인을 설정합니다. 여기에는 Docker 이미지를 빌드하고, 레지스트리에 푸시하고, EC2 인스턴스에 배포하는 작업이 포함됩니다. 배포 성공 또는 실패에 대한 Slack 알림을 추가합니다.
CI:
Deployment:
Original summary in English
## Summary by Sourcery Set up a CI/CD pipeline for deploying the frontend application to AWS EC2 using Docker, including building Docker images, pushing them to a registry, and deploying them to an EC2 instance. Add Slack notifications for deployment success or failure. CI: - Add a CI workflow to build and push Docker images to a Docker registry, and deploy them to an EC2 instance. Deployment: - Introduce a new GitHub Actions workflow for deploying the frontend application to AWS EC2 using Docker.