[마소 394호] 아마존 API 게이트웨이와 AWS 람다로 구성하는 다운로드 서버

입력 2018.10.30 10:00

소프트웨어 전문지 마이크로소프트웨어 394호는 클라우드(Cloud)와 백엔드(Back-End)를 주제로 담았습니다. 아마존 API 게이트웨이, 데브옵스, PaaS, 마이크로서비스 아키텍처 등 마소 394호의 주요 기사들을 IT조선 독자에게도 소개합니다. [편집자주]

럭스로보(LUXROBO)는 모디 스튜디오(MODI Studio)라는 IDE를 개발한다. 모디 스튜디오는 홈페이지에서 다운로드할 수 있는데, 지금까지는 퍼머링크(Permalink) 형태였다. 퍼머링크는 URL 끝부분에 ‘MODIStudioSetup-{version}.{ext}’ 처럼 파일 이름이 직접 들어가기 때문에 새로운 버전이 릴리즈될 때마다 링크를 바꿔줘야 하는 불편함이 있었다.

이를 해결하기 위해 최신 버전 설치 파일 경로로 리다이렉트 해주는 다운로드 서버를 구성했다. 다운로드 서버를 구성하는 방법은 여러 가지가 있다. ▲엔진엑스(Nginx) 스크립트로 리다이렉트 ▲마이크로 API 서버(Node.js, Django, RoR 등) ▲아마존 API 게이트웨이(Gateway), 람다(Lambda) 등이다.

첫 번째 방법은 가장 간단하지만 확장성이 없다. 말 그대로 엔진엑스 스크립트로 들어온 요청을 최신 버전 파일의 경로로 리다이렉트 하는 것뿐이다. 물론 젓가락으로 건물을 지을 수 있듯이 다른 기능들을 붙일 순 있겠지만 엔진엑스 스크립트는 그런 용도가 아니다. 또한 배포도 힘들고 유지보수도 어렵다.

두 번째 방법이 가장 일반적이다. 규모가 큰 회사는 별도의 다운로드 서버를 만들어 회사에서 개발한 여러 소프트웨어를 사용자가 다운로드할 수 있도록 운영한다.

세 번째 방법이 우리 회사에 가장 잘 맞는 방법이었다. 사내 서버는 가용성이 떨어지지만 AWS EC2나 ECR은 다운로드 요청 규모보다 비용이 많이 들기 때문에 고가용성을 유지할 수 있다. 또한 요청이 있을 때만 비용이 부과되는 아마존 API 게이트웨이, AWS 람다 조합이 우리에게 가장 적합했다.

게이트웨이 생성 화면. / 마이크로소프트웨어 394호 발췌
게이트웨이는 서비스 이름에서도 알 수 있듯이 HTTP 요청의 관문 역할을 한다. 경로 요청, 쿼리 파라미터, 헤더를 간편하게 설정할 수 있고, 응답도 원하는 형태로 쉽게 매핑할 수 있다. API 게이트웨이의 구성은 크게 리소스와 메서드로 나눠지는데 리소스는 URL, 메서드는 HTTP GET, POST, DELETE, PUT 등의 요청이다.

API 게이트웨이에서 API 생성은 굉장히 쉽다. 서비스 페이지에 접속해 리전을 선택하고, API 이름만 입력하면 바로 생성할 수 있다.

생성 후 API를 관리할 수 있는 페이지가 나온다. 상단 ‘작업’ 드롭다운을 눌러 리소스를 생성한 다음, 리소스에 해당하는 메서드를 정의하면 된다. 예를 들어, ‘hello’ 리소스에 GET 메서드를 정의하면 ‘your.api.gateway/hello’에서 GET 요청을 받을 수 있다.

내가 다뤘던 웹앱 프레임워크 RoR(Ruby on Rails)에서는 ‘routes.rb’에서 라우팅할 경로를 정의할 수 있다. 이때 ‘/articles/:id’처럼 정의하면 ‘id’를 파라미터로 받을 수 있다. URL을 훨씬 더 의미 있게 만들어준다.

허진수 필자의 ‘아마존 API 게이트웨이와 AWS 람다로 구성하는 다운로드 서버’에 대한 자세한 내용은 ‘마이크로소프트웨어 394호(https://www.imaso.co.kr/archives/3939)’에서 확인할 수 있다.


키워드

관련기사를 더 보시려면,

[마소 394호] RxJava로 생각하기 오세용 기자
[마소 394호] 플라스크 효과적으로 사용하기 오세용 기자
[마소 394호] 스토리체인이 사이드체인을 선택하기까지 오세용 기자
[마소 394호] 모바일 앱 테스트 자동화용 디바이스팜 구축 오세용 기자
[마소 394호] 되돌아 보는 1만 개의 클라이언트 문제 오세용 기자
[마소 394호] 클릭만으로 도커 개발 환경을 완성시켜주는 애저 PaaS 오세용 기자
[마소 394호] DDD와 MSA로 쇼핑몰 구축하기 오세용 기자
[마소 394호] 이스티오 서비스 메시를 이용한 MSA 구축 오세용 기자
[마소 394호] 제대로 구성하는 마이크로서비스 아키텍처 오세용 기자
[마소 394호] AWS EC2와 트래비스CI를 활용한 무중단 배포 서비스 오세용 기자
[마소 394호] 스타트업의 좌충우돌 CI/CD 구성 오세용 기자
[마소 394호] AWS 이메일 서비스 써보니 오세용 기자
[마소 394호] 클라우드의 성능 품질 이야기 오세용 기자
[마소 394호] 클라우드 시대 토종 호스팅 업체의 변신 오세용 기자
[마소 394호] 데이터베이스의 게임 체인저, 오라클 클라우드 오세용 기자
[마소 394호] 알아두면 쓸데없는 신비한 TLS 1.3 오세용 기자
[마소 394호] 다시 보는 PaaS, 어디서 와서 어디로 가는가 오세용 기자
[마소 394호] 코드로 관리하는 인프라스트럭처, 테라폼 오세용 기자
[마소 394호] 더 웨더 컴퍼니의 데브옵스 오세용 기자
[마소 394호] 사설 클라우드의 끝판왕 오픈스택 오세용 기자
[마소 394호] 개발운영 퀀텀 점프를 위한 도커 오세용 기자
[마소 394호] IT 서비스와 모니터링 역사 오세용 기자
[마소 394호] 오픈스택 커뮤니티 동고동락 오세용 기자
[마소 394호] 데브옵스를 꿈꾸는 개발자를 위한 안내서 오세용 기자