본문 바로가기
2024/TIL

[AWS TechCamp] AWS 서버리스로 서버 고민 없이 웹 애플리케이션 구축하기

by ye-jji 2024. 9. 4.

Intro

개인 프로젝트를 하면서 AWS를 사용해보고 싶다는 생각에 공부해보려고 알아보던 중 테크캠프를 한다는 소식을 접하게 되었다. 서버리스로 웹 서비스 구현하는 2개의 과정이 있었고 전부 신청해서 들어보기로 마음먹었다. 첫날 들었던 건 4가지의 aws 서비스를 연계해서 서버리스로 웹서비스를 구현하는 것이었다. 알아야 하는 것은 s3, API Gateway, Lambda함수, DynamoDB 서비스이고 각각 웹, api, 서버 동작 기능, DB와 관련된 서비스들이었다.

 

 

1. DB 만들기

구현하는 순서가 평소의 프론트엔드 구현 과정과 사뭇 달라서 흥미로웠다. 먼저 DB를 생성하고 테이블을 만들어 둔 뒤에 기능에서 호출해서 사용하려고 한다는 설명을 들었다. 여기에서 주의사항은 앞으로 설정하는 서비스들과 지역을 같게 설정해야 문제가 없기 때문에 꼭 서울로 설정하라고 하셨다. 아마 다른 지역이어도 같은 지역이면 문제는 되지 않지만 이해가 빠르도록 서울로 강제하신 것 같다. DynamoDB의 설정은 정말 어렵지 않다. 하지만 실습에서 사용하는 데이터 구조가 워낙 간단해서 그런 걸수도 있겠다는 생각은 들었다.

2. 동작 기능 함수 만들기

Lambda함수 설정은 DB와 다르게 조금 복잡했는데 일단 여기에 코드를 직접 입력해야 하다보니 더 복잡해 진 것 같다는 생각이 살짝 들었다. 실습에서는 파이썬으로 작성된 코드가 예시였는데 생각보다 다양한 언어를 지원하는 것 같았으나 내가 사용할 수 있는 언어는 많지 않고 어지간하면 js로 구현해서 웹에서 굴려버릴 생각이라 그런지 몰라도 잘 사용하지 않을 수 있겠다 싶었다. 그래도 배포와 테스트를 해볼 수 있게 이미 기능이 잘 되어 있어서 좋다는 생각은 들었다.

3. API 설정하기

점점 더 설정할 부분이 많아지는 걸 보니 일부로 이 순서로 구성한 거구나 하는 깨달음이 왔다. API는 REST API로 만들었는데 아마 나도 내 프로젝트를 하면 이 API를 주로 사용하지 않을까 싶었다. 그 와중에 CORS 허용 설정은 따로 해주는 기능을 보고 참 지독하다 싶었다. 물론 보안이니까 있어야 하는건 맞는데 개발하고 테스트 할 때 저 CORS 때문에 고생을 너무 많이 했어서 그냥 보는 것만으로도 약간의 짜증이 났다. 그래도 버튼만 클릭하면 알아서 해결해주니까 얼마나 좋은지.. 전에 저거 때문에 프록시 설정 바꾸고 온갖 쌩쇼를 한 걸 생각해보면 aws는 천사인것,, 암튼 그렇게 API 설정을 끝내고 나니 이제 마지막 한 단계만 남았다. 

4. 웹 페이지 연결하기 

Create bucekt을 클릭해서 bucekt을 만드는 과정이 조금 낯설긴 했지만 폴더라고 생각하면 이상할 것도 없다 싶었다. 실습에는 html 파일 하나가 있었고 이걸 업로드 해서 링크만 연결하면 끝이긴 했다. 하지만 내가 제일 관심있는 부분이라서 열심히 들었다. 질문했을 때 파일 분리가 가능하다 했으니 아마도 배포할 때 자동으로 생성해주는 html, css, js를 업로드 하면 되는 건가 싶었다.

질문

Q : 람다함수 비용 예측할 수 있는 방법이 있나요?

A : 오픈소스 파워튜닝 람다함수 돌려보기 ->  비용 예상 가능

Q : s3 버켓 html 파일 업로드할 때 분리해서 업로드 가능한지?(css, js)

A : 분리해서 저장한 후 참조 설정하면 됨, 일반적인 프론트엔드 구성과 유사

Q : 람다함수로 작성한 기능이 html 스크립트에서도 구현 가능한 것 같은데 람다 함수로 분리한 이유는?

A : 추후 메일로 답변 주겠다(시간 이슈)

 

Outro

강의를 들으면서 이해할 수 있어서 좋았다. 내가 웹이 동작하는 것에 대한 이해가 쌓여있지 않았다면 강의가 무슨 말인지 알아듣지 못했을 것 같다는 생각이 들었다. 튜토리얼이 있으니 비용에 대한 걱정은 좀 해야 겠지만 예제 수준의 서버리스 웹 서비스는 구현할 수 있을 것 같다. 과한 자신감인가 싶지만 워낙 자료도 구체적으로 잘 나와 있고 따라만 하면 되는 거긴 해서 aws가 상당히 뉴비의 학습에 진심이구나 하는 생각이 들었다.

자료 링크

https://catalog.us-east-1.prod.workshops.aws/workshops/600420b7-5c4c-498f-9b80-bc7798963ba3/ko-KR/serverless

 

AWS TechCamp Online - 100 HoL

AWS TechCamp Online - 100 HoL (EC2, Serverless)

catalog.us-east-1.prod.workshops.aws