프레젠테이션 티어 - Amazon API Gateway와 AWS Lambda를 사용한 AWS 서버리스 멀티 티어 아키텍처

프레젠테이션 티어

프레젠테이션 티어는 인터넷을 통해 노출되는 API Gateway REST 엔드포인트를 통해 로직 티어와 상호 작용합니다. 모든 HTTPS 지원 클라이언트 또는 디바이스는 이러한 엔드포인트와 통신할 수 있으므로 프레젠테이션 티어에 다양한 형태(데스크톱 애플리케이션, 모바일 앱, 웹 페이지, IoT 디바이스 등)를 사용할 수 있는 유연성을 제공합니다. 요구 사항에 따라 프레젠테이션 티어에서 다음 AWS 서버리스 제품을 사용할 수 있습니다. 모든 HTTPS 지원 클라이언트 또는 디바이스는 이러한 엔드포인트와 통신할 수 있으므로 프레젠테이션 티어에 다양한 형태(데스크톱 애플리케이션, 모바일 앱, 웹 페이지, IoT 디바이스 등)를 사용할 수 있는 유연성을 제공합니다. 요구 사항에 따라 프레젠테이션 티어는 다음 AWS 서버리스 제품을 사용할 수 있습니다.

  • Amazon Cognito - 웹 및 모바일 앱에 사용자 가입, 로그인 및 액세스 제어를 빠르고 효율적으로 추가할 수 있는 서버리스 사용자 자격 증명 및 데이터 동기화 서비스입니다. Amazon Cognito는 수백만 명의 사용자로 확장되며 Facebook, Google, Amazon과 같은 소셜 자격 증명 공급자와 SAML 2.0을 통한 엔터프라이즈 자격 증명 공급자를 통한 로그인을 지원합니다.

  • CloudFront가 포함된 Amazon S3 - 웹 서버를 프로비저닝할 필요 없이 S3 버킷에서 단일 페이지 애플리케이션과 같은 정적 웹 사이트를 직접 제공할 수 있습니다. CloudFront를 관리형 콘텐츠 전송 네트워크(CDN)로 사용하여 성능을 개선하고 관리형 또는 사용자 지정 인증서를 사용하여 SSL/TL을 활성화할 수 있습니다.

AWS Amplify는 모바일 및 프런트 엔드 웹 개발자가 AWS에서 제공하는 확장 가능한 풀 스택 애플리케이션을 구축하도록 지원하는 함께 혹은 단독으로 사용 가능한 도구 및 서비스 집합입니다. Amplify는 전세계 수백 개의 상호 접속 위치(POP)가 포함된 Amazon의 안정적인 CDN과 애플리케이션 릴리스 주기를 가속화하는 기본 제공 CI/CD 워크플로를 통해 정적 웹 애플리케이션의 글로벌 배포 및 호스팅을 지원하는 완전관리형 서비스입니다. Amplify는 JavaScript, React, Angular, Vue, Next.js 등의 널리 사용되는 웹 프레임워크와 Android, iOS, React Native, Ionic, Flutter 등의 모바일 플랫폼을 지원합니다. 네트워킹 구성 및 애플리케이션 요구 사항에 따라 API Gateway API가 CORS(Cross-Origin Resource Sharing)를 준수하도록 활성화해야 할 수 있습니다. CORS 규정 준수를 통해 웹 브라우저는 정적 웹 페이지 내에서 API를 직접 호출할 수 있습니다.

CloudFront를 사용하여 웹 사이트를 배포하면 애플리케이션에 연결할 수 있는 CloudFront 도메인 이름이 제공됩니다(예: d2d47p2vcczkh2.cloudfront.net). Amazon Route 53을 사용하여 도메인 이름을 등록하고 CloudFront 배포로 보내거나 이미 소유한 도메인 이름을 CloudFront 배포로 보낼 수 있습니다. 이를 통해 사용자는 친숙한 도메인 이름을 사용하여 사이트에 액세스할 수 있습니다. Route 53을 사용하여 사용자 지정 도메인 이름을 API Gateway 배포에 할당할 수도 있습니다. 이렇게 하면 사용자가 친숙한 도메인 이름을 사용하여 API를 호출할 수 있습니다.