서버리스 앱을 만드는 방법을 배우는 것이 왜 가치가 있는지를 설명하는 것은 중요합니다. 특히 서버 없는 앱이 기존의 서버 호스팅 앱 보다 선호되는 몇 가지 이유가 있습니다.

  1. 적은 유지 보수
  2. 저렴한 비용
  3. 쉬운 확장성

지금까지 서버리스 앱의 가장 큰 이점은 코드에 대해서만 걱정하면 된다는 것이었습니다. 유지 관리가 적은 이유는 관리할 서버가 없기 때문입니다. 서버가 잘 실행되고 있는지, 또는 보안 업데이트가 바르게 적용되어 있는지를 일일이 확인할 필요가 없습니다. 여러분은 그냥 여러분이 만든 응용 프로그램의 코드만을 다루면 됩니다.

서버 없는 응용 프로그램을 실행하는 것이 비용이 적게 드는 주된 이유는 요청 당 비용을 지불하기 때문입니다. 따라서 여러분의 응용 프로그램이 사용되지 않을 때에는 요금이 부과되지 않습니다. 이 곳에서 예제로 만들게되는 메모 작성 애플리케이션을 실행하는 데 드는 비용에 대해 간단히 설명하겠습니다. 우리는 일일 1,000명의 활성 사용자가 API를 하루에 20회 요청을 하고 S3에 약 10MB의 파일을 저장한다고 가정하겠습니다. 다음은 비용을 대략적으로 계산한 내용입니다.

서비스 기준비용 Cost
Cognito 무료[1] $0.00
API Gateway $3.5/M 요청 + $0.09/GB 전송 $2.20
Lambda 무료[2] $0.00
DynamoDB $0.0065/시간 10 쓰기 유닛, $0.0065/시간 50 읽기 유닛[3] $2.80
S3 $0.023/GB 스토리지, $0.005/K PUT, $0.004/10K GET, $0.0025/M objects[4] $0.24
CloudFront $0.085/GB 전송 + $0.01/10K 요청 $0.86
Route53 $0.50 호스트존 당 + $0.40/M 쿼리 $0.50
Certificate Manager 무료 $0.00
합계   $6.10

[1] Cognito는 < 50K MAUs 사용시 무료입니다. 이후 초과시 $0.00550/MAU
[2] Lambda는 < 1M 와 400000GB-초의 컴퓨팅 시간에 사용시 무료입니다.
[3] DynamoDB는 25GB 의 무료 스토리지를 제공합니다.
[4] S3는 1GB 의 무료 전송을 제공합니다.

위 내용에 따르면 한 달에 6.10 달러가 청구됩니다. 또한 .com 도메인은 연간 12달러의 비용이 들기 때문에 가장 큰 비용을 지불하게 됩니다. 그러나 이 것들은 대략적인 견적임을 명심하십시오. 실제 사용 패턴은 매우 다를 수 있습니다. 그러나 이러한 비율은 서버리스 응용 프로그램을 실행하는 비용을 계산하는 방법을 알려줍니다.

마지막으로 확장성의 용이함은 모두 DynamoDB 와 Lambda 덕분입니다. DynamoDB 덕분에 우리는 거의 무한히 확장할 수 있고 Lambda 또한 이러한 요구사항을 충족하는 확정성을 보여줍니다. 물론 front-end는 Cloud Front 덕분에 항상 즉시 응답할 수 있는 정적 단일 페이지 앱을 위한 서비스를 제공합니다.

좋습니다! 이제 서버리스 앱을 제작해야하는 이유에 대한 확신을 가지게 되었습니다. 자 이제 시작해보겠습니다.