[세션 레포트] No-code로 성공적인 디지털 트랜스포메이션을 위한 서버리스 마이크로서비스 만들기 #AWSSummitOnlineKorea

2021.05.14

안녕하세요!! Classmethod 주식회사 신입 엔지니어 정현재입니다!

5월10일부터 5월12일까지 개최되었던 AWS Summit Online Korea에 참여를 하여 그 내용을 적어보려고 합니다. 아직 입사를 한지 1달밖에 안되어 이벤트에 참여를 해도 이해를 할 수 있는 세션이 있을까 많이 걱정을 하였는데, 걱정과는 달리 정말 이벤트를 즐길 수 있었던 것 같습니다. 물론 들은 세션의 내용을 전부 이해할 수 있었던 것은 아니지만 AWS에 대한 지식을 높일 수 있었고, 엔지니어로서 시야를 넓히는데 굉장히 도움이 되었던 이벤트였던 것 같아요.

이번 글에서는

No-code로 성공적인 디지털 트랜스포메이션을 위한 서버리스 마이크로서비스 만들기

라는 세션에서 들은 내용을 공유하려고 합니다.

AWS SaaS를 기반으로 서버리스 마이크로서비스와 No-code 개발 방식을 결합하여 API 개발 및 관리가 가능한 NTUPLE주식회사의 Synctree 서비스를 소개합니다.

발표자

이 세션은 NTUPLE 주식회사의 CTO이신 이호규님이 발표를 해주셨어요.

디지털 트랜스포메이션

먼저 디지털 트랜스포메이션에 대해서 설명드리겠습니다.

디지털 트랜스포메이션이란 한마디로 하면

기업이 가진 것을 모두 디지털화하여, 기업의 전략 조직 프로세스, 문화 시스템을 근본적으로 변화시키는 경영 전략!

으로 말할 수 있습니다. 지금 현재 이 디지털 트랜스포메이션을 위해 우리가 사용하는 기술 환경은 계속하여 성숙하고 진화하고 있습니다.

그 중 몇가지를 설명드리겠습니다.

클라우드 3.0 시대의 도래

클라우드가 제공하는 여러 서비스를 적극적으로 사용하여 환경을 구축하는 클라우드 3.0시대가 도래했습니다. 기존의 API 솔루션들은 클라우드의 기능을 많이 사용하지 못하고 전해 내려오는 레거시를 통해 보다 많은 작업들이 필요했으나 AWS와 같은 클라우드 3.0 기능을 사용함으로서 개발시간을 단축하고, 효율성을 높일 수 있습니다.

기술 환경의 성숙

클라우드 환경의 진화를 통해 서버 장비를 효과적으로 관리 및 사용할 수 있는 Container Orchestration의 등장으로 Infrastructure-as-a-Code 환경이 준비가 되었습니다. Infrastructure-as-a-Code란 인프라 장비도 개발처럼 코드를 통해 관리를 하는 것으로, 인프라 장비를 재사용 하거나 코드의 수정으로 빠르게 인프라 환경의 변경이 가능합니다. 이를 통해 애플리케이션과 인프라의 개발의 경계가 허물어지며 DevOps가 부상을 하게 되었습니다.

FaaS 시대의 도래

FaaS에서는 서비스가 개별 독립적인 단위의 애플리케이션이기 때문에 변경이 용이하고 그 변경에 따라 서비스에 미치는 영향이 적습니다. 또한 개별 서비스 단위의 배포가 가능하기 때문에 다른 서비스와 독립적으로 관리하는 것이 가능합니다. 이를 통해 서버리스 마이크로서비스를 구축할 수 있습니다. 개발자는 인프라에 관계없이 API 즉, 애플리케이션 개발에만 집중할 수 있어 개발 생산성이 향상되게 됩니다.

새로운 개발 방식의 필요

클라우드 3.0, 서버리스 등의 기술이 발전되면서 개발을 할 때 많은 개발 지식과 인프라 지식을 아우르는 높은 전문성이 필요합니다. 성공적인 디지털 트랜스포메이션을 위해서는 보다 빠르고 쉽게 서비스를 구축, 관리할 수 있는 No-code 또는 Low-code와 같은 인터페이스와 편의성이 필요하게 되었습니다.

Synctree란?

고객의 다양한 디지털 에셋을 API형태로 자유롭고 안전하게 배포 가능하게 하는 No-code API 솔루션

Synctree는 고객의 서버에 있는 서비스와 데이터를 안전하고 빠르게 인터그레이션 가능하도록 하는 것을 목표로 개발이 되었습니다. 누구나 사용하고 경험해볼 수 있도록 SaaS형태로 AWS 상에서 서비스하고 있고, 고객에 따라 설치형으로도 제공을 하고 있습니다. Synctree는 솔루션으로 많은 기업들의 디지털 트랜스포메이션을 돕고 있습니다.

Synctree의 특징

  • SaaS형 API 솔루션
  • Environment-Free 솔루션으로 개발 환경 및 개발 언어가 불필요
  • 모듈 기능 블록 'Drag & Drop' 결합 방식(No-code)
  • Business Logic 생성부터 마이크로서비스까지 구현 가능
  • API와 서비스를 안전하게 제공하고 배포, 관리, 추적할 수 있도록 모든 기능을 올인원으로 제공
  • 빌트인 DevOps 및 디버깅, 테스트 기능을 AWS 인프라에서 사용 가능

Synctree를 이용한 개발 방식

이러한 서비스를 만든다고 생각을 해봅시다.

고객이 챗봇 주문 서비스를 통해 지점과 메뉴를 선택하고 배달 받을 주소를 입력한 후 주문을 요청하면, 점주는 고객이 주문한 내역서를 확인한 후 고객에게 배달

서비스 플로우는 매우 간단하지만, 막상 구현을 하려고 할 때는 많은 시간과 개발 노하우가 필요합니다.

Synctree는 이러한 개발 지식이 없이도 몇 번의 클릭으로 마이크로서비스를 구현할 수 있도록 단순화 시켰습니다.

위의 예시 서비스는 다음과 같은 마이크로서비스들로 구성될 수 있습니다. 이 마이크로서비스들은 명령처리 마이크로서비스를 통해 API 통신으로 서로 연결되며 DB정보를 공유하여 서비스 전체를 구성하게 됩니다.

다음과 같이 마이크로서비스 그룹인 App을 생성하여 그 안에서 마이크로서비스들을 관리할 수 있습니다.

그리고 각 마이크로서비스는

다음과 같이 노코드 방식으로 블록을 Drag & Drop 하여 개발이 가능합니다. 개발을 하기 위해 추가로 무언가를 설치하거나 구축할 필요 없이 단순히 기능 블록을 연결 시키는 것으로 완료됩니다. 블록들은 완성한 후 Build를 클릭하는 것으로 바로 마이크로서비스를 배포하는 것이 가능합니다.

Synctree의 아키텍처

인프라 아키텍처

Synctree는 Path Routing을 통해 API 별로 독립된 마이크로서비스의 인프라 그룹을 구축할 수 있습니다. Application Load Balancer를 통해 요청이 url 별로 라우팅 되어, 해당 url에 트리거 되는 마이크로서비스 타겟 그룹을 다른 마이크로서비스 그룹과 독립적으로 구축하는 것이 가능합니다. 이를 위해서는 API가 네이티브 코드가 아닌 데이터일 필요가 있고, 이렇게 데이터로 된 API는 Synctree Runner를 통해 해석되고 실행됩니다. API가 데이터로 되어있기 때문에 손쉽게 캐싱 알고리즘을 적용할 수 있게됩니다.

시스템 아키텍처

Synctree에서는 System API Layer와 Orchestra API Layer를 Synctree 앱 구성을 통해 손쉽게 구성하는 것이 가능합니다. System API Layer를 담당하는 API는 사용자의 내부 시스템과 인터페이스하여 DB 및 파일 등 내부 리소스를 조작하고, Orchestra API Layer에서는 이러한 System API들을 조합하여 손쉽고 빠르게 서비스에 필요한 API들을 만들 수 있습니다. 모든 앱 간 통신은 API기반으로 개발이 가능하며, System API Layer와 사용자의 내부 시스템 간을 Synctree의 보안 프로토콜로 통신한다면 레거시 시스템을 변경할 필요 없이 재활용하여 안전하게 데이터를 주고 받을 수 있습니다.

AWS 시스템 아키텍처

Synctree Studio를 통해 사용자가 작성한 API는 AWS 상에 배포할 수 있습니다. 사용자가 Synctree Studio로 원하는 Business Logic를 작성한 후, 빌드 버튼은 클릭하면 그 즉시, API를 변환하여 Synctree가 해석할 수 있는 데이터로 생성합니다. 이 생성된 데이터를 통해 API의 버전 관리가 이루어지며, 무중단 배포를 위한 Standby & Active 상태 관리가 지원됩니다. 생성된 API 데이터는 AWS Aurora를 통해 안전하게 보관이 되고 Synctree 백업 정책에 따라 AWS S3상의 버킷에 복제됩니다.

마무리

지금까지 No-code로 성공적인 디지털 트랜스포메이션을 위한 서버리스 마이크로서비스 만들기 섹션에서 들은 내용을 정리하여 글을 써보았습니다. 저도 예전에 '엔트리 파이썬' 이라는 노코드 방식의 코딩 프로그램을 써보면서 개발에 대한 지식이 없는 분들도 손쉽게 개발을 할 수 있겠다고 생각했던 때가 기억이 나 매우 흥미롭게 참여를 하였던 것 같습니다.

높은 수준의 전문성을 요구하는 개발자라는 직업의 장벽 때문에 개발 자원이 모자란 지금, Synctree와 같은 서비스들이 디지털 트랜스포메이션을 위해 굉장히 도움이 될 것 같다고 생각을 합니다. 저도 언젠가 한 번 Synctree를 사용해서 마이크로서비스를 만들어보고 싶다는 생각이 듭니다!

이상으로 세션 리포트를 마무리하도록 하겠습니다. 밑에 Synctree의 url에 접속하여 보다 더 많은 정보를 얻으실 수 있습니다!!