소프트웨어 전문지 마이크로소프트웨어 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호 발췌
게이트웨이 생성 화면. / 마이크로소프트웨어 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)’에서 확인할 수 있다.


관련기사