데이터 원본 - AWS AppSync

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

데이터 원본

이전 섹션에서는 스키마가 데이터의 형태를 정의한다는 것을 배웠습니다. 하지만 해당 데이터의 출처는 설명하지 않았습니다. 실제 프로젝트에서 스키마는 서버에 대한 모든 요청을 처리하는 게이트웨이와 같습니다. 요청이 생성되면 스키마는 클라이언트와 인터페이스하는 단일 엔드포인트 역할을 합니다. 스키마는 데이터 원본의 데이터에 액세스하며 데이터를 처리하고 다시 클라이언트로 전달합니다. 아래 인포그래픽을 참조하세요.

AWS AppSync 및 GraphQL은 BFF(Backend For Frontend) 솔루션을 훌륭하게 구현합니다. 이러한 기능은 함께 작동하여 백엔드를 추상화하여 대규모로 복잡성을 줄입니다. 서비스가 다양한 데이터 원본 또는 마이크로서비스를 사용하는 경우 각 소스(서브그래프)의 데이터 형태를 단일 스키마(수퍼그래프)로 정의하여 기본적으로 복잡성을 어느 정도 추상화할 수 있습니다. 즉, GraphQL API는 하나의 데이터 원본을 사용하도록 제한되지 않습니다. 원하는 수의 데이터 원본을 GraphQL API와 연결하고 해당 데이터 원본이 서비스와 상호 작용하는 방식을 코드에 지정할 수 있습니다.

인포그래픽에서 볼 수 있듯이 GraphQL 스키마에는 클라이언트가 데이터를 요청하는 데 필요한 모든 정보가 포함되어 있습니다. 즉, REST의 경우처럼 여러 요청을 처리하는 대신 단일 요청으로 모든 작업을 처리할 수 있습니다. 이러한 요청은 서비스의 유일한 엔드포인트인 스키마를 거칩니다. 요청이 처리되면 해석기(다음 섹션에서 설명함)가 코드를 실행하여 관련 데이터 원본의 데이터를 처리합니다. 응답이 반환되면 데이터 원본에 연결된 서브그래프가 스키마의 데이터로 채워집니다.

AWS AppSync에서는 여러 데이터 원본 유형을 지원합니다. 아래 테이블에서는 각 유형에 대해 설명하고, 각 유형의 이점을 나열하고, 추가 컨텍스트를 위한 유용한 링크를 제공합니다.

데이터 소스 Description 이점 추가 정보
Amazon DynamoDB "Amazon DynamoDB는 완전관리형 NoSQL 데이터베이스 서비스로서 원활한 확장성과 함께 빠르고 예측 가능한 성능을 제공합니다. DynamoDB는 분산 데이터베이스를 운영하고 크기 조정하는 데 따른 관리 부담을 줄여서 하드웨어 프로비저닝, 설정 및 구성, 복제, 소프트웨어 패치 또는 클러스터 크기 조정에 대해 걱정할 필요가 없게 합니다. 또한 DynamoDB는 유휴 시 암호화를 제공하여 중요한 데이터 보호와 관련된 운영 부담 및 복잡성을 제거합니다."

  • 어떤 규모에서든 성능 구현: DynamoDB는 어떤 규모에서든 일관된 성능을 제공하도록 설계되었습니다. 이는 파티션 사용을 통해 가능합니다. DynamoDB는 테이블을 여러 개의 할당으로 자동 분할하여 여러 노드에 걸쳐 다수의 SSD에 저장합니다. 이렇게 하면 일반적으로 네트워크 처리량이 증가하고 지연 시간이 줄어듭니다.

  • 대규모 용량: DynamoDB는 트래픽을 모니터링하여 네트워크에 과부하가 장기간 지속되는 경우 처리량을 자동으로 조정할 수 있도록 합니다.

  • 가용성 및 내결함성: DynamoDB는 여러 개의 물리적으로 격리된 리전에서 지원되며, 각 리전에는 물리적으로 격리된 가용 영역이 여러 개 있습니다. DynamoDB는 서비스 중단 시 자동으로 백업 영역으로 전환합니다. 또한 데이터 보장을 위해 데이터를 수동으로 백업하고 복제할 수도 있습니다.

  • 로깅 및 모니터링: DynamoDB는 테이블에 대한 여러 분석 도구를 제공합니다. 테이블 성능을 모니터링하고 경보를 생성하여 서비스의 급격한 변경 사항을 알릴 수 있습니다.

  • 보안: DynamoDB는 엄격한 프로토콜을 따라 데이터가 조직의 보안 요구 사항을 준수하도록 합니다.

  • AWS AppSync와 통합: DynamoDB는 저희 서비스와 원활하게 통합됩니다. 새 DynamoDB 테이블을 생성하고 이 테이블에서 스키마를 자동으로 생성하여 개발 프로세스를 간소화할 수 있습니다. 또한 해석기의 계정에 있는 기존 DynamoDB 테이블의 데이터를 간편하게 요청할 수 있도록 전체 작업 컬렉션을 제공합니다.

AWS Lambda "AWS Lambda은 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다.

Lambda는 고가용성 컴퓨팅 인프라에서 코드를 실행하고 서버와 운영 체제 유지 관리, 용량 프로비저닝 및 자동 조정, 코드 및 보안 패치 배포, 로깅 등 모든 컴퓨팅 리소스 관리를 수행합니다. Lambda를 사용하면 Lambda가 지원하는 언어 런타임 중 하나로 코드를 제공하기만 하면 됩니다."

  • 종량제 모델: Lambda는 리소스를 사용하는 경우에만 요금을 부과합니다. 또한 애플리케이션 요구 사항에 따라 사용되는 리소스의 양을 조정할 수 있습니다.

  • 자동 조정: 때로는 애플리케이션에 특정 프로세스를 위해 추가 컴퓨팅 성능이 필요할 수 있습니다. Lambda를 사용하면 애플리케이션 요구 사항에 맞게 컴퓨팅 리소스를 자동으로 조정할 수 있습니다.

  • 배포 시간 단축: 배포 패키지를 통해 개발 프로세스를 간소화할 수 있습니다. 패키지를 사용하여 Lambda 서비스에 함수 코드를 업로드하세요. 그런 다음 런타임 환경을 사용하여 함수를 테스트하고 실행할 수 있습니다.

  • 다양성: Lambda는 다양한 사용 사례에서 사용할 수 있습니다. Lambda를 타사 서비스 및 AWS 서비스와 원활하게 통합할 수 있습니다. 일부 예로는 CI/CD 파이프라인대량 메일링 서비스가 있습니다.

  • AWS AppSync와 통합: 해석기에서 Lambda 함수를 간편하게 호출하여 요청을 처리할 수 있습니다. 저희 서비스는 Lambda 호출을 수행하기 위한 간소화된 요청 작업을 제공합니다. 단일 호출과 일괄 호출이 모두 허용됩니다.

OpenSearch "Amazon OpenSearch Service는 AWS 클라우드에서 OpenSearch 클러스터를 손쉽게 배포, 운영 및 확장할 수 있도록 해주는 관리형 서비스입니다. Amazon OpenSearch Service는 OpenSearch 및 레거시 Elasticsearch OSS(소프트웨어의 최종 오픈 소스 버전인 7.10까지)를 지원합니다. 클러스터를 생성할 때 어떤 검색 엔진을 사용할지 선택할 수 있습니다.

OpenSearch는 로그 분석, 실시간 애플리케이션 모니터링, 클릭 스트림 분석 같은 사용 사례를 위한 완전한 오픈 소스 검색 및 분석 엔진입니다. 자세한 내용은 OpenSearch 설명서를 참조하세요.

Amazon OpenSearch Service는 OpenSearch 클러스터에 대한 모든 리소스를 프로비저닝하고 시작합니다. 또한 실패한 OpenSearch Service 노드를 자동으로 감지한 다음 교체해 자체 관리형 인프라와 관련된 오버헤드를 줄입니다. API를 한 번만 호출하거나 콘솔에서 몇 번만 클릭하여 클러스터를 조정할 수 있습니다."

  • 확장: OpenSearch Serverless를 통해 서비스 요구 사항에 맞게 서비스를 쉽게 확장할 수 있습니다.

  • 데이터 모으기: OpenSearch Ingestion을 사용하여 데이터를 가져오고 처리하고 분석할 수 있습니다. 데이터 모으기를 위한 여러 애플리케이션이 있으며, 여기에서 찾을 수 있습니다.

  • 보안: OpenSearch는 IAM, CloudTrail, VPC, 인증 등을 포함한 AWS 보안 구성을 관리할 수 있습니다.

  • 가용성: OpenSearch는 서비스 내에서 다양한 리전 및 가용 영역도 지원합니다.

  • AWS AppSync와 통합: AWS AppSync에서는 GraphQL API를 사용하여 계정에서 기존 OpenSearch Service 도메인의 데이터를 저장하고 검색할 수 있습니다.

HTTP 엔드포인트 HTTP 엔드포인트를 데이터 원본으로 사용할 수 있습니다. AWS AppSync는 파라미터 및 페이로드와 같은 관련 정보와 함께 엔드포인트에 요청을 보낼 수 있습니다. HTTP 응답은 해석기에 노출되며, 해석기는 작업이 완료된 후 최종 응답을 반환합니다.
  • Lambda와 같은 서비스와 통합되지 않는 간단한 애플리케이션에 유용합니다.

Amazon EventBridge "EventBridge는 이벤트를 사용하여 애플리케이션 구성 요소를 서로 연결하는 서버리스 서비스로, 확장 가능한 이벤트 기반 애플리케이션을 더 쉽게 구축할 수 있습니다. EventBridge를 사용하여 자체 개발 애플리케이션, AWS 서비스 및 타사 소프트웨어와 같은 소스의 이벤트를 조직 전체의 소비자 애플리케이션으로 라우팅할 수 있습니다. EventBridge는 이벤트를 수집, 필터링, 변환 및 전달하는 간단하고 일관된 방법을 제공하므로 새로운 애플리케이션을 빠르게 빌드할 수 있습니다."

  • 이벤트 기반 아키텍처: 이벤트 기반 아키텍처를 활용할 수 있습니다.

  • 일정: EventBridge Scheduler를 사용하면 이벤트 패턴 대신 cron 표현식을 사용하여 작업과 규칙을 자동화하거나 시간 간격을 설정할 수 있습니다.

  • 파이프: EventBridge 파이프를 사용하면 이벤트를 대상에 전송하기 전에 이벤트 버스를 추가 필터링 이벤트 패턴 및 데이터 변환을 통한 보강을 포함하는 파이프로 대체할 수 있습니다.

  • AWS AppSync와 통합: AWS AppSync에서는 해석기를 사용하여 이벤트 버스로 이벤트를 보낼 수 있습니다.

관계형 데이터베이스 "Amazon Relational Database Service(RDS)는 AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스입니다. 이 서비스는 산업 표준 관계형 데이터베이스를 위한 경제적이고 크기 조절이 가능한 용량을 제공하고 공통 데이터베이스 관리 작업을 관리합니다."

  • 간편한 관리: RDS는 정기적으로 리소스에 대한 유지 관리를 수행합니다. 이러한 유지 관리에는 DB 인스턴스의 기본 하드웨어, 기본 운영 체제(OS) 또는 데이터베이스 엔진 버전에 대한 업데이트가 수반되는 경우가 많습니다. 일반적인 상황에서는 업데이트 수행 시기를 결정할 수 있습니다(예외로는 보안 패치가 있음).

  • 권장 사항: RDS의 권장 사항 기능은 인스턴스의 잠재적 문제를 해결하기 위한 자동화된 제안을 제공합니다.

  • 가용성: RDS는 전 세계의 여러 물리적 리전에서 사용할 수 있습니다. 데이터베이스 요구 사항을 여러 노드에 간편하게 분산하여 고객에게 더 나은 서비스를 제공할 수 있습니다.

  • 사용자 지정: RDS는 대기업의 요구 사항을 충족하도록 맞춤화되었습니다. RDS는 컴퓨팅, 빠른 배포, 확장성 및 스토리지를 위한 다양한 옵션을 제공합니다.

  • 보안: RDS는 여러 도구 및 서비스와 통합되어 사용자, 데이터베이스, 네트워크 수준에서 데이터베이스 보안을 유지합니다.

  • AWS AppSync와 통합: 안정적인 백엔드 솔루션을 찾고 있다면 AWS AppSync를 통해 인스턴스를 데이터 원본으로 사용하여 데이터를 전송, 처리, 저장 및 반환할 수 있습니다.

데이터 원본 사용 안 함 데이터 원본 서비스를 사용할 계획이 없다면 none으로 설정할 수 있습니다. 명시적으로는 여전히 데이터 원본으로 분류되지만 none 데이터 원본은 저장 매체가 아닙니다. 그럼에도 불구하고 특정 상황에서는 데이터 조작 및 패스스루에 여전히 유용합니다.
  • 데이터 변환과 같은 작업에 잠재적으로 유용함

  • 로컬에서 문제를 해결할 때 유용함

작은 정보

데이터 원본이 AWS AppSync와 상호 작용하는 방식에 대한 자세한 내용은 데이터 원본 연결을 참조하세요.