다시 이음

(1) AWS 서버리스로 서버 없이 간단한 웹 애플리케이션 만들기 본문

참가 컨퍼런스 정리/AWS Builders Korea Program

(1) AWS 서버리스로 서버 없이 간단한 웹 애플리케이션 만들기

Taeho(Damon) 2022. 6. 21. 23:07

안녕하세요.

 

오늘은 AWS Builders Korea Program에 참여하여 실행한 실습에 대한 기록을 남기려고 합니다.

 

서버리스란?

 

서버리스(serverless)란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델입니다. 서버리스 모델에도 서버가 존재하긴 하지만, 애플리케이션 개발에서와 달리 추상화되어 있습니다.

 

특징

 

- 서버 관리 필요 없음

- 요청에 맞게 스케일링(트래픽에 따라 크기가 커지거나 작아지거나 없어지거나 생기거나)

- 높은 보안 수준

 

 

출처 : AWS 자료

실습

1. 웹페이지를 보여주는 Lambda 서비스 생성

2. 웹페이지에 API를 연결 Lambda 서비스 생성

 

Lambda는 AWS 의 대표적인 서버리스 서비스로, 서버에 대해서 고민을 하지 않고 서비스를 간단하게 만들 수 있도록 도와드립니다.

 

Lambda 서비스는 직접 작성하는 것 이외에도 blueprint 혹은 repogitory와 같은 형식을 통해서도 그 기능을 쉽게 구현할 수 있도록 만들어져 있었습니다.

 

웹페이지를 만들 수 있는 java script 코드와 웹페이지 안에서 작용할 json 형식 코드를 적용할 수 있고 테스트 또한 바로 해볼 수 있습니다.

 

3. NoSQL DynamoDB 생성

 

DynamoDB는 NoSQL로 스키마 없이 데이터를 원하는 형태로 자유롭게 저장할 수 있습니다. 또한, AWS의 완전관리형 서비스인만큼 서버 관리도 신경쓰지 않아도 됩니다.

 

DynamoDB에는 Partition key와 Sort key가 있습니다.

Partition key는 테이블에 무조건 하나만 존재해야 하는 값으로 테이블에 있는 아이템을 어디에 나눌지 정하는 Key입니다.

Sort key는 정렬할때 사용하는 Key로 필수는 아닙니다.

 

아래 그림과 같이 Partition key를 활용하여 테이블에 파티션에 각각 값이 저장됩니다.

 

 

4. API 관리 서비스 Amazon API Gateway 생성

 

API Gateway는 이런 API 를 관리해주고 API 를 통해 외부에서의 호출이 왔을때 대문 역할을 하는 AWS 서비스입니다.

 

위의 과정에서 Lambda를 통한 웹페이지를 보여주는 서비스를 생성하여도 API를 연결하지 않으면 기능하지 않습니다.

 

API Gateway를 통해서 원하는 API형식에 맞게 설정하고 접근에 관한 보안 설정, Lambda 서비스와의 연결을 할 수 있습니다.

 

그리고 전체적인 API 연결을 한눈에 시각화하여 확인이 가능하고 테스트를 통해 작동 확인도 가능합니다.

 

 

느낀 점

 

AWS 서비스를 직접적으로 활용해보는 실습은 처음이었는데 AWS에서 진행하는 여러 컨퍼런스에서 말하듯 범용성과 간단한 느낌을 가장 많이 받은 것 같습니다. 딱 한번 들었을 뿐인데 이런 식으로 하면 되는 거구나? 싶었습니다.

 

그리고 직접 데이터베이스를 만들고 웹어플리케이션을 배포해봤을 때 해야하는 여러가지 과정과 더불어 후에 필수적으로 관리를 해야하는 부분을 쉽게 대체할 수 있는 것 같아 신기했습니다.

 

요즘 데이터사이언티스트 관련 Job Description을 자주 보면서 클라우드 환경에 대한 지식이 있는지 활용경험이 있는지를 우대사항에 넣는 걸 자주 보았는데 왜 우대사항으로 지정하였는지 느꼈습니다.