[reinvent 2024] AWS에서 교육 스타트업 구축: 영웅적인 여정

Summary

AWS 히어로들의 AWS 교육 플랫폼을 구축 및 배포하는 과정을 배워 보세요.


리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?

Tech Blog

AWS re:Invent 2024 Tech Blog written by MegazoneCloud

Overview

  • Title: Building an educational startup on AWS: A heroic journey
  • Date: 2024년 12월 3일(화)
  • Venue: MGM | Level 1 | Grand 120
  • Speaker:
  • Kristi Perreault(Co-Founder & Architect, Teach Me AWS)
  • Matt Coulter(Co-Founder & Architect, Teach Me AWS)
  • Industry: –

들어가며

AWS는 클라우드 환경에서 필수적인 기술로 자리 잡고 있으며,다양한 서비스 간의 효율적인 활용법을 배우는 것은 매우 중요합니다. Teach Me AWS 플랫폼은 AWS 서버리스 기술을 기반으로 설계된 교육 플랫폼으로 실무에서 필요한 고급 기술과 실질적인 사용 사례를 제공한다는 점에서 큰 관심을 끌었습니다.

이 세션을 신청한 이유는 Teach Me AWS의 설계 및 구현 과정에서 어떤 도전과제에 직면했으며 이를 AWS의 다양한 서비스로 어떻게 해결했는지 배워보고 싶어서입니다.

도전 과제

스타트업인 만큼 사용자와의 믿음, 보안, 비용 등과 같은 여러가지 도전과제가 주어졌었습니다. 이를 어떻게 해결했는지 아래에서 차근차근 알아가보죠.

플랫폼 소유권과 콘텐츠 보호

Teach Me AWS는 외부 플랫폼에 의존하지 않고 자체 플랫폼에서 모든 콘텐츠를 안전하게 관리하고 보호해야 했습니다. 특히 AI 봇이나 스크래퍼가 콘텐츠를 복제하거나 훔치는 문제가 발생할 수 있기 때문에 콘텐츠 보호와 관리가 매우 중요했습니다. 또한, 트위터나 유튜브와 같은 외부 플랫폼을 사용할 경우, 해당 플랫폼의 정책 변화나 제한으로 인해 불확실성도 존재했습니다.

1. 자체 플랫폼 구축

AWS Amplify와 Astro를 사용하여 자체 플랫폼을 구축했습니다. Amplify는 간단한 배포와 스케일링을 제공하며,Astro는 정적 콘텐츠와 동적 콘텐츠를 동시에 처리할 수 있어 필요한 유연성을 제공합니다. Astro는 정적 사이트 생성 외에도 React와 같은 동적 콘텐츠를 섞을 수 있는 “Astro Islands”라는 기능을 통해 플랫폼의 요구 사항을 충족시킬 수 있었습니다.

사용자 인증 및 보안 관리

사용자 인증 및 보안 관리를 설정하는 것은 매우 복잡하며 사용자의 플랫폼 사용을  방해하지 않도록 해야 했습니다.

1. Amazon Cognito를 활용한 인증 시스템 구축

  • 사용자 인증을 위해 Amazon Cognito를 사용했습니다. Cognito는 인증, 사용자 관리, 멀티팩터 인증(MFA) 등을 자동으로 처리해줍니다. 사용자가 로그인을 할 때, 이메일이나 사용자 ID를 확인하고 OTP나 QR 코드 스캔을 통해 보안을 강화할 수 있도록 설정했습니다.

2. 보안 강화

  • 특히 사용자 데이터가 중요하기 때문에 데이터의 암호화와 관리 정책을 강화했습니다. 또한, 사용자 풀이 수정이 불가능한 점을 강조하며 실수로 인한 문제를 피할 수 있도록 했습니다. 사용자 데이터의 민감한 정보는 외부로 유출되지 않도록 엄격하게 관리하고 있습니다.

대규모 콘텐츠 저장 및 관리

Teach Me AWS는 대량의 비디오 강의, 블로그 포스트, 뉴스레터 등 다양한 유형의 콘텐츠를 저장하고 관리해야 했습니다. 콘텐츠의 종류가 다양하고, 양이 많아짐에 따라 저장소를 안전하고 효율적으로 관리할 수 있는 솔루션이 필요해 아래와 같은 서비스들을 적용하였습니다.

1. Amazon S3를 사용한 콘텐츠 저장

  • 다양한 미디어 파일을 저장하기 위해 Amazon S3를 사용했습니다. S3는 매우 효율적이고 비용 효율적인 저장소로, 텍스트 파일, HTML, 이미지, 비디오 등을 모두 처리할 수 있습니다. S3에 저장된 콘텐츠는 AWS의 글로벌 인프라를 통해 언제든지 빠르게 제공됩니다.

2. DynamoDB를 통한 사용자 데이터 관리

  • 사용자의 인증 정보와 같은 간단한 데이터를 DynamoDB에 저장하고  AWS Lambda와 API Gateway를 통해 관리합니다. DynamoDB는 서버리스 서비스로 확장성이 뛰어나며 초기 사용자가 적을 때도 비용 효율적입니다.

3. 캐싱을 통한 성능 최적화

  • 클라이언트 측에서 데이터를 캐시하여 서버에 대한 부하를 줄이고 콘텐츠를 빠르게 로딩할 수 있도록 했습니다. 이를 통해 사용자 경험을 개선하고 서버 비용을 절감할 수 있었습니다.

무료 및 유료 콘텐츠 관리

Teach Me AWS는 무료 콘텐츠와 유료 콘텐츠를 함께 제공하며, 두 가지 사용자 그룹에 대해 원활한 경험을 제공해야 했습니다. 콘텐츠의 접근 권한을 효율적으로 관리하고, 사용자가 자신에게 적합한 콘텐츠를 쉽게 찾을 수 있어야 했습니다.

1. API Gateway와 Lambda를 활용한 콘텐츠 접근 관리

  • API Gateway와 Lambda를 사용하여 유료 콘텐츠에 대한 접근을 관리했습니다. 무료 콘텐츠는 모든 사용자에게 제공되며 유료 콘텐츠는 로그인한 사용자만 접근할 수 있도록 제어합니다. Lambda를 통해 인증된 사용자에게만 유료 콘텐츠를 제공하고 각 사용자의 구독 상태를 확인할 수 있습니다.

2. GitHub Actions를 통한 콘텐츠 자동화

  • GitHub Actions를 사용하여  블로그 포스트와 같은 콘텐츠를 자동으로 S3에 업로드하고 HTML로 변환하여 서비스합니다.

제한된 예산

Teach Me AWS는 스타트업으로서 제한된 예산 내에서 확장 가능한 플랫폼을 구축해야 했습니다. 예산이 한정되어 있으므로 시스템 설계에서 비용을 절감하면서도 안정적인 성능을 유지해야 했습니다.

1. 서버리스 아키텍처 도입

  • 서버리스 아키텍처를 선택하여 인프라 비용을 최소화하고 필요할 때만 리소스를 확장할 수 있도록 했습니다. AWS Lambda, DynamoDB, API Gateway 등의 서비스를 활용하여 서버 관리 부담을 줄이고 자동으로 확장되는 구조를 구축했습니다.

2. AWS 크레딧 활용

  • AWS Hero 프로그램을 통해 받은 크레딧을 사용하여  초기 비용을 절감했습니다. 이 덕분에 서버리스 기술을 통해 낮은 비용으로 서비스를 운영할 수 있었습니다.

3. 비용 절감과 예측 가능성

  • 서버리스 서비스는 사용한 만큼만 비용을 지불하는 구조로 예측할 수 없는 트래픽 변동을 효과적으로 관리할 수 있습니다. 따라서 예상치 못한 트래픽 증가에도 유연하게 대응할 수 있습니다.

결론

Teach Me AWS는 AWS의 다양한 서버리스 서비스를 활용하여 효율적이고 확장 가능한 교육 플랫폼을 구축하였습니다. 이 과정에서 플랫폼 소유권, 사용자 인증, 콘텐츠 저장, 유료 콘텐츠 관리 그리고 예산 제한 등의 여러 도전 과제를 해결하며 AWS 기술을 실무에 어떻게 적용할 수 있는지에 대한 중요한 교훈을 얻을 수 있었습니다. 특히 서버리스 아키텍처의 유연성과 확장성 덕분에 예산을 효율적으로 관리하면서도 높은 성능을 유지할 수 있었던 점이 매우 인상적었습니다.

글 │메가존클라우드, Enterprise Managed Service Center (EMS), Kubernetes Engineering Team, 유태균, 매니저
게시물 주소가 복사되었습니다.