공부일지/클라우드 SA 교육

[세미프로젝트 2차] 프로젝트 끝

박수빈98 2025. 6. 23. 23:42

SA 교육 2차 세미가 저번주 금요일에 종료되었다.

먼저 하려던 기능은 대부분 완성할 수 있었다.

이번 프로젝트는 세미 1차에서 진행했던 것을 하이브리드 클라우드 환경으로 옮기고 더욱 고도화 시키는 것이다.

1차 발표자료이다.
https://sulgasaeng.my.canva.site/miniflix 

홈화면

프로젝트 구조

내가 맡은 역할은 1차와 크게 달라지진 않았다.

1차에서의 내 역할은

  • 간단한 프론트/백엔드 구축
  • 스트리밍 서버
  • 영상 변환 서버
  • 파일 서버

이었다.

 

2차에서는 백엔드 부분을 팀원분이 해주고,

  • 프론트(httpd) -> S3 웹호스팅+ CloudFront
  • 스트리밍 서버(nginx) -> S3 + CloudFront
  • 영상 변환 서버, 파일 서버 -> Openstack 위 VM으로

 

 

포인트를 잡고 했던 부분이

1. 오픈스택을 사용해 하이브리드 클라우드 경험을 쌓아보자

오픈스택에 있는 파일 서버와 영상 변환 서버를 맡아서 구축해봤고, S3와 연동해 파일서버에 올라온 영상들 중에 S3에 업로드 안되었던 것들을 S3에 올리는 기능을 개발했고, 잘 동작했다.

2. S3에 웹호스팅의 장점을 느껴보자

1차에서는 별도의 서버를 통해 웹 서버를 띄웠지만, 2차에서는 S3에 웹호스팅 기능을 활용해보기로 했다.

이를 통해 장점과 단점을 크게 느낄 수 있었다.

장점으로는 S3는 AWS가 관리해 가용성과 안정성이 매우 뛰어나기 때문에 개발자가 신경 쓸 부분이 매우 적어지는 부분과

Vue.js로 개발하면서 빌드 시 자동으로 S3에 업로드해 배포까지 쉽게 연동할 수 있는 부분이었다.

그리고 클라우드 프론트와의 연계가 쉬웠다.

 

단점으로는 S3 단독으로는 https를 사용할 수 없고, 클라우드 프론트를 사용해야한다는 점과,

vue.js로 개발하다보니 SPA 환경이었다.

하지만 S3에서는 url을 통해 해당 리소스를 찾아가려하는 것 때문에 403, 404를 200으로 바꾸고 index.html로 보내줘야했었다.

이 경우 진짜 404나 403인 경우도 index.html로 보내려고 한다는 점이었다.

이 부분은 조금 더 알아보고 보완할 방법을 찾아야 할 것 같다.

3. Nginx를 대체할 경로기반 라우팅 찾아서 넣어보자

Nginx 대체할 서비스

서비스명 경로 기반 라우팅 설명
ALB (Application Load Balancer) O 가장 일반적, L7
CloudFront (Behavior) O CDN + 경로 기반 설정
API Gateway O REST/HTTP API 경로 기반 설정 가능
Lambda@Edge
O CloudFront에서 경로 조건별 함수 실행 가능

 

우리는 ALB와 CloudFront에서 고민하다가 결국 S3 웹호스팅과 함께 CloudFront를 사용하는 것으로 하고 개발했다.

Begavior를 통해 백엔드요청과 프론트 요청을 분기했다. + Lambda@Edge를 통해 경로기반 라우팅을 추가할 수 도 있다.

하지만 써보니까 ALB 라우팅 기능이 더욱 다양하고 자세해서 다음에는 ALB로 해볼 거 같다.

 

마무리

하고 싶었던 부분인 하이브리드 클라우드로 프로젝트를 할 수 있어서 재밌게 프로젝트를 할 수 있었다.

SAA 공부를 하거나 수업 때 간단하게 실습하던 것과는 다르게 다양한 설정들을 스스로 해보려니까

쉽게만 생각했던 것들에서 시간을 많이 썼던 것 같다.

 

역시 배우는건 프로젝트에서 배우는 것 같다.

이제 다음은 프로젝트는 최종 프로젝트만 남았다.

이 동일한 서비스를 이번엔 MSA로 나누고, k8s 환경으로 올리는 프로젝트를 할지

다른 주제로 할지는 조금 의논을 해봐야 할 것 같다.

 

결과물

https://www.youtube.com/watch?v=lUGickcD_W4&t=4s