Purpose
안녕하세요 🙂
AWS는 자체적으로 운영하는 공식 Github Organization이 있으며, 그 이름은 바로 awslabs입니다.
이 repository에서는 AWS에서 개발한 오픈 소스 프로젝트 및 샘플 코드를 공개합니다.
AWS는 이를 통해 클라우드 환경에서 사용 가능한 다양한 기술과 도구를 제공하여, 개발자들이 AWS 서비스를 좀 더 쉽게 사용 할 수 있도록 지원합니다.
AWS SaaS 관련 리서치를 진행하며 awslabs가 제공하는 “aws-saas-boost” repository를 우연히 발견하였습니다. 설명서를 읽어보고 어떤 연관이 있는 지 궁금하여 이를 설치하고 분석해보려 합니다.
Repository에서 확인 할 수 있는 매뉴얼에 따르면 SaaS application을 위한 다양한 기능을 제공한다고 합니다.
주요 기능을 요약하면 다음과 같습니다.
- 멀티 테넌시 지원
- 사용자 인증
- 빌링 및 결제
- 이메일 서비스
- 이벤트 기반 architecture
- Frontend 개발 지원
License
해당 소스를 사용하기 위하여 Apache-2.0 license를 따른다고 명시되어 있습니다.
상업적 용도로 사용은 가능하지만 수정 및 배포 시 주의사항을 확인해야 할 필요가 있습니다.
Environment
AWS에서는 설치용 컨테이너를 제공하지만, 형상 확인을 위하여 로컬 Hyper-V 환경에서 설치해보는 것을 목표로 하였습니다.
기존 설치 및 사용 패키지가 있어 정확하지는 않으나, 디스크가 10GB일 경우 용량 문제가 발생 할 수 있으니 주의하여야 합니다.
실제로 테스트 환경 구성 중 10GB 하드디스크로 디스크 용량 부족 문제가 발생하였으며, 해결 방법을 알고 있어서 쉽게 해결하였습니다.
로컬 설치 환경은 다음과 같습니다.
- OS: Ubuntu-22.04.1 Server / Windows Hyper-V
- AWS: 사내 팀 AWS 계정 (DevOps 1)
- AWS-CLI: aws-cli/1.22.34 Python/3.10.6 Linux/5.15.0-67-generic botocore/1.29.86
- Java: openjdk 11.0.18 2023-01-17
- maven: OS name: “linux”, version: “5.15.0-67-generic”, arch: “amd64”, family: “unix”
- NodeJS: v18.14.0
- Git: git version 2.34.1
- yarn: 0.32+git
위 설치 환경 구성이 힘들다면 AWS에서 제공하는 설치 환경 구성 컨테이너를 활용해도 무방합니다.
Install Procedures
오픈 소스 기반으로 설치 과정이 까다로워 보입니다.
자바 기반 오픈 소스로 관련 업종 사람이 아니라면 진입 장벽이 높아 보입니다.
https://github.com/awslabs/aws-saas-boost/blob/main/docs/getting-started.md
자세한 내용은 아래와 같이 작성되어 있습니다.
* 나중에 찾은 내용으로 아래 문서를 보면 좀 더 쉽게 접근 가능하니 참고 부탁드립니다.
https://catalog.us-east-1.prod.workshops.aws/saasboost/ko-KR/lab2
설치 전 필요한 개발 환경도 많고, 기본적인 지식이 없다면 시작하기에 곤란해 보이지만, 시도해 볼 가치가 있어 보입니다.
Installation Practice
먼저, Clone한 Repository의 ./install.sh 스크립트를 실행한다.
maven dependency를 포함한 인스톨에 필요한 항목을 빌드 후 인스톨러가 실행됩니다.
여기서는 새로 설치하는 항목인 “1. New AWS SaaS Boost install” 을 실행합니다.
새로 설치하기 위한 기본 설정 값을 입력하는 항목이 나옵니다.
설정 항목을 읽고 원하는 값을 입력하면 됩니다.
y를 선택하면 설치를 진행합니다.
설치 환경은 aws-cli에서 설정한 credential / config를 따릅니다.
상세 설치 로그는 아래에서 확인 가능합니다. 로컬 로그 파일이나 S3 파일에서도 확인 가능하니 참고하기 바랍니다.
설치를 마친 후 AWS 콘솔에서 확인한 S3, Lambda, CloudFormation 화면에서 추가된 리소스를 확인 할 수 있습니다.
AWS SaaS Boost Console
설치 시 입력한 이메일로 임시 비밀번호를 수령 할 수 있어, 이를 통해 로그인 할 수 있습니다.
위 링크를 통해 접속하면 다음과 같은 로그인 화면을 거쳐 AWS SaaS Boost 서비스를 사용 할 수 있습니다.
로그인에 성공하면 다음과 같이 Dashboard 화면을 확인 할 수 있습니다.
TODO
이번 시간엔 단순한 어플리케이션 설치만 진행하려고 합니다.
다음 시간에는 실제 어플리케이션을 온보딩하여 테넌트 구성까지 진행해보려고 합니다.
테넌트 구성까지 마친다면, 그 경험을 토대로 AWS가 이야기하는 SaaSfication을 직관적으로 알 수 있을 것 같은 느낌이 듭니다.
git에서는 샘플 서비스 코드까지 제공하므로, 이를 활용하여 테스트가 가능 할 것 같습니다.
맛보기로 아래에 그 내용을 첨부합니다.
그리고, 시간이 된다면 소스 코드 자체를 분석해보고 싶은 욕심은 있으나… 장담은 하지 못하겠습니다…
실제 파일입니다.
Conclusion
콘솔 화면으로 미루어 볼 때, AWS SaaS Boost가 제공하는 기능은 AWS SaaS Architecture Fundamental White paper에서 설명하는 Control Plane의 Administration application을 구현한 것으로 보입니다.
결론적으로는 문서 처음에 이야기하였던 SaaS에서 필요로 하는 개념적인 기능이 이미 구현되어 있다는 부분이 놀랍다고 생각했습니다.
설치를 진행하는 과정에서는 매크로처럼 매뉴얼대로 움직였으나, 설치 결과물인 콘솔을 보며 많은 것을 느낄 수 있었습니다.
현재 SaaS를 접한 지 얼마 되지 않는 상황에서 개념으로만 접하던 내용을 눈을 통해 확인 할 수 있는 행위 하나만으로 learning-curve를 단축하는 것을 체감하였습니다.
테넌트 구성까지의 여정이 남았지만 걱정보다는 앞으로 남은 경험치까지의 기대가 더 큰 상황입니다.
개인적으로 부족한 점을 기록하자면 AWS 매뉴얼보다 오픈 소스 코드를 먼저 찾은 케이스입니다. Git의 설명서를 보고 무작정 설치 해 본 상황에서 동일한 한글 워크샵 매뉴얼을 찾게 되었습니다.
간단하게 이야기하면, 검색 시간을 투자하지 않고 무작정 진행하여 학습 효율이 많이 떨어지지 않았나 하는 부분이 아쉬웠다. 한 번만 더 검색하였으면 좀 더 쉬운 방법을 찾을 수 있지 않았나 하는 부분이 아쉽게 느껴집니다.
결과적으로 여기에 기록한 내용은 AWS 워크샵 문서에서도 마찬가지로 확인할 수 있습니다.
References
AWS SaaS Boost Git Repository
AWS SaaS Boost Getting-Start
Workshop Document
SaaS Architecture Fundamentals – AWS Whitepaper
Services used by AWS SaaS Boost
감사합니다 🙂
문의: info@bespinglobal.com | 대표번호: 02-1688-1280