본문 바로가기
CLOUD/AWS

AWS API Gateway 정리

by Rainbound-IT 2021. 9. 9.
반응형

목차

     

     

    Amazon API Gateway는 규모와 관계없이 REST 및 WebSocket API를 생성, 게시, 유지, 모니터링 및 보호하기 위한 AWS 서비스입니다. API 개발자는 AWS 또는 다른 웹 서비스를 비롯해 AWS 클라우드에 저장된 데이터에 액세스하는 API를 생성할 수 있습니다. API Gateway API 개발자는 자체 클라이언트 애플리케이션에서 사용할 API를 생성할 수 있습니다. 또는 타사 앱 개발자가 API를 사용하도록 제공할 수도 있습니다. 

     

     

    API Gateway는 다음과 같은 RESTful API를 생성합니다.

    • HTTP 기반.
    • 상태 비저장 클라이언트-서버 통신을 활성화합니다.
    • 표준 HTTP 메서드(예: GET, POST, PUT, PATCH, DELETE)를 구현합니다.

     

    API Gateway는 다음과 같은 WebSocket API를 생성합니다.

    • 클라이언트와 서버 간에 상태를 저장하는 전이중 통신을 지원하는 WebSocket 프로토콜 준수.
    • 수신 메시지를 메시지 콘텐츠에 따라 라우팅.

     

     

    API Gateway의 아키텍처

     

    이 다이어그램은 Amazon API Gateway에서 빌드한 API가 귀사 또는 개발자 고객에게 AWS 서버리스 애플리케이션 빌드를 위한 통합적이고 일관된 개발자 환경을 제공하는 방법을 보여줍니다. API Gateway는 최대 수십만 개의 동시 API 호출 허용 및 처리에 관련된 모든 작업을 다룹니다. 여기에는 트래픽 관리, 권한 부여 및 액세스 제어, 모니터링, API 버전 관리가 포함됩니다.

    API Gateway는 애플리케이션이 Amazon Elastic Compute Cloud(Amazon EC2)에서 실행 중인 워크로드, AWS Lambda에서 실행 중인 코드, 웹 애플리케이션, 실시간 통신 애플리케이션과 같은 백엔드 서비스에서 데이터, 비즈니스 로직 또는 기능에 액세스할 수 있게 해주는 “정문” 역할을 합니다.

     

     

     

     

     

    개요

    AWS Amplify 콘솔은 AWS에서 전체 스택 웹 및 모바일 애플리케이션 배포를 위한 제어 센터입니다. Amplify Console은 호스팅과 관리 UI라는 두 가지 주요 서비스를 제공합니다. Amplify Console 호스팅은 지속적인 배포를 통해 전체 스택 서버리스 웹 앱을 호스팅하기 위한 git 기반 워크플로를 제공합니다. 관리 UI는 프런트엔드 웹 및 모바일 개발자가 AWS Management 콘솔 외부에서 앱 백엔드를 생성하고 관리하기 위한 시각적 인터페이스입니다.

    풀스택 서버리스 웹 앱은 GraphQL 또는 REST API, 파일 및 데이터 스토리지와 같은 클라우드 리소스로 구축된 백엔드와 React, Angular, Vue 또는 Gatsby와 같은 단일 페이지 애플리케이션(SPA) 프레임워크로 구축된 프론트엔드로 구성됩니다. Amplify Console은 React, Angular, Vue.js, Ionic 및 Ember와 같은 일반적인 SPA 프레임워크와 Gatsby, Eleventy, Hugo, VuePress 및 Jekyll과 같은 정적 사이트 생성기를 지원합니다. Amplify는 Next.js 프레임워크를 사용하여 생성된 SSR(서버 측 렌더링)을 사용하는 애플리케이션을 지원합니다.

    기능

    • 상태 저장(WebSocket) 및 상태 비저장(HTTP 및 REST) API에 대한 지원.
    • 강력하고 유연한 인증 메커니즘(예: AWS Identity and Access Management 정책, Lambda 권한 부여자 함수, Amazon Cognito 사용자 풀 등).
    • API를 게시하기 위한 개발자 포털.
    • 변경 사항을 안전하게 롤아웃하기 위한 Canary 릴리스 배포.
    • API 사용 및 API 변경에 대한 CloudTrail 로깅 및 모니터링.
    • 경보 설정 기능을 포함한 CloudWatch 액세스 로깅 및 실행 로깅.
    • AWS CloudFormation 템플릿을 사용하여 API 생성을 활성화할 수 있는 기능.
    • 사용자 지정 도메인 이름 지원.
    • 일반적인 웹 익스플로잇으로부터 API를 보호하기 위해 AWS WAF와 통합.
    • 성능 지연 시간 파악 및 학습을 위해 AWS X-Ray와 통합

     

     

     

     

    Hosting 기능

    • 새 브랜치를 연결하여 프런트엔드 및 백엔드에 대한 프로덕션 및 스테이징 환경을 관리합니다.
    • 애플리케이션을 사용자 지정 도메인에 연결합니다.
    • framework인 Next.js를 사용하여 생성된 SSR 웹 앱을 배포하고 호스팅합니다.
    • 풀 요청 미리 보기를 설정하여 코드 검토 중에 변경 사항을 미리 봅니다.
    • 엔드 투 엔드 테스트를 통해 앱 품질을 개선하세요. 
    • 웹 앱을 암호로 보호하여 공개적으로 액세스하지 않고도 새로운 기능에 대해 작업할 수 있습니다. 
    • 재작성 및 리디렉션을 설정하여 SEO 순위를 유지하고 클라이언트 앱 요구 사항에 따라 트래픽을 라우팅합니다.
    • 즉각적인 캐시 무효화는 모든 코드 커밋에서 앱이 즉시 업데이트되도록 합니다.
    • Atomic 배포는 전체 배포가 완료된 후에만 웹 앱이 업데이트되도록 하여 유지 관리 기간을 제거합니다. 이렇게 하면 파일이 제대로 업로드되지 않는 시나리오가 제거됩니다.
    • 레이아웃 문제를 식별하기 위해 다른 모바일 장치에서 렌더링된 앱의 스크린샷을 가져옵니다.

    Admin 기능

    • 시각적 데이터 모델링을 사용하면 클라우드 인프라 대신 도메인별 개체에 집중할 수 있습니다.
    • 앱에 대한 인증을 설정합니다.
    • 강력하고 이해하기 쉬운 승인.
    • 코드로서의 인프라는 AWS CloudFormation으로 모든 백엔드 기능을 구성합니다.
    • Amplify 명령줄 인터페이스(CLI)와 함께 작동합니다. 관리 UI에서 수행하는 모든 업데이트는 CLI로 가져올 수 있습니다.
    • 이메일을 통해 사용자를 초대하여 백엔드를 구성하고 관리합니다. 이러한 사용자는 이메일로 Amplify CLI에 로그인할 수도 있습니다.
    • 마크다운을 지원하는 콘텐츠 관리.
    • 앱의 사용자 및 그룹 관리

     

    종류

    API Gateway REST API

    백엔드 HTTP 엔드포인트, Lambda 함수 또는 기타 AWS 서비스와 통합되어 있는 HTTP 리소스와 메서드의 모음입니다. 이 모음을 하나 이상의 스테이지로 배포할 수 있습니다. 일반적으로 API 리소스는 애플리케이션 로직에 따른 리소스 트리로 정리되어 있습니다. 각 API 리소스는 API Gateway에서 지원하는 전용 HTTP 동사가 있는 API 메서드를 하나 이상 표시할 수 있습니다.

     

    API Gateway HTTP API

    백엔드 HTTP 엔드포인트 또는 Lambda 함수와 통합된 라우팅 및 메서드의 모음입니다. 이 모음을 하나 이상의 스테이지로 배포할 수 있습니다. 각 라우팅은 API Gateway에서 지원되는 고유의 HTTP 동사를 가진 API 메서드를 하나 이상 노출할 수 있습니다.

     

    API Gateway WebSocket API

    백엔드 HTTP 엔드포인트, Lambda 함수 또는 기타 AWS 서비스와 통합되어 있는 WebSocket 경로와 경로 키의 모음입니다. 이 모음을 하나 이상의 스테이지로 배포할 수 있습니다. API 메서드는 프런트 엔드 WebSocket 연결을 통해 호출되며, 이 엔드포인트를 등록된 사용자 지정 도메인 이름과 연결할 수 있습니다.

    반응형

    'CLOUD > AWS' 카테고리의 다른 글

    Xshell 로 EC2 접속하기  (0) 2022.02.07
    AWS WAF  (0) 2022.01.25
    [Amplifyphoto] 배포  (0) 2021.09.08
    [Amplifyphoto] AI 추가 및 검색  (0) 2021.09.06
    AWS cloud9 보안 토큰유지 하기  (0) 2021.09.06

    댓글