앱 러너 아키텍처 및 개념 - AWS App Runner

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

앱 러너 아키텍처 및 개념

AWS App Runner 저장소에서 소스 코드나 소스 이미지를 가져와서 에서 실행 중인 웹 서비스를 만들고 유지 관리합니다 AWS 클라우드. 일반적으로 서비스를 만들려면 App Runner 작업 CreateService, 을 하나만 호출하면 됩니다.

소스 이미지 리포지토리를 사용하면 App Runner가 웹 서비스를 실행하기 위해 배포할 수 있는 ready-to-use 컨테이너 이미지를 제공합니다. 소스 코드 리포지토리를 사용하여 웹 서비스를 빌드하고 실행하기 위한 코드와 지침을 제공하고 특정 런타임 환경을 대상으로 합니다. App Runner는 여러 프로그래밍 플랫폼을 지원하며, 각 플랫폼에는 플랫폼 메이저 버전에 대한 하나 이상의 관리형 런타임이 있습니다.

현재 App Runner는 Bitbucket 또는 GitHub리포지토리에서 소스 코드를 검색하거나, 사용자의 Amazon Elastic Container Registry (Amazon ECR) 에서 소스 이미지를 검색할 수 있습니다. AWS 계정

다음 다이어그램은 App Runner 서비스 아키텍처의 개요를 보여줍니다. 다이어그램에는 두 가지 예제 서비스가 있습니다. 하나는 Amazon ECR에서 GitHub 소스 코드를 배포하고 다른 하나는 Amazon ECR에서 소스 이미지를 배포합니다. Bitbucket 리포지토리에도 동일한 흐름이 적용됩니다.

앱 러너 아키텍처

앱 러너 개념

다음은 App Runner에서 실행되는 웹 서비스와 관련된 주요 개념입니다.

  • App Runner 서비스 — App Runner가 소스 코드 리포지토리 또는 컨테이너 이미지를 기반으로 애플리케이션을 배포하고 관리하는 데 사용하는 AWS 리소스입니다. App Runner 서비스는 애플리케이션의 실행 버전입니다. 서비스 생성에 대한 자세한 내용은 을 참조하십시오앱 러너 서비스 만들기.

  • 소스 유형 - App Runner 서비스를 배포하기 위해 제공하는 소스 리포지토리의 유형 (소스 코드 또는 소스 이미지).

  • 리포지토리 제공자 — 애플리케이션 소스 (예: Bitbucket 또는 Amazon ECR) 를 포함하는 리포지토리 서비스입니다. GitHub

  • 앱 러너 연결 — App Runner가 리포지토리 공급자 계정 (예: 계정 또는 조직) 에 액세스할 수 있게 해주는 AWS 리소스입니다. GitHub 연결에 대한 자세한 내용은 앱 러너 연결 관리 단원을 참조하십시오.

  • 런타임 - 소스 코드 리포지토리를 배포하기 위한 기본 이미지입니다. App Runner는 다양한 프로그래밍 플랫폼 및 버전에 맞는 다양한 관리형 런타임을 제공합니다. 자세한 정보는 소스 코드 기반 앱 러너 서비스을 참조하세요.

  • 배포 — 소스 리포지토리의 버전 (코드 또는 이미지) 을 App Runner 서비스에 적용하는 작업입니다. 서비스에 대한 첫 번째 배포는 서비스 생성의 일부로 이루어집니다. 다음 두 가지 방법 중 하나로 나중에 배포할 수 있습니다.

    • 자동 배포 — CI/CD 기능. 리포지토리에 나타나는 대로 애플리케이션의 각 버전을 자동으로 빌드 (소스 코드용) 하여 배포하도록 App Runner 서비스를 구성할 수 있습니다. 소스 코드 리포지토리의 새 커밋이나 소스 이미지 리포지토리의 새 이미지 버전일 수 있습니다.

    • 수동 배포 — 사용자가 명시적으로 시작하는 App Runner 서비스에 대한 배포입니다.

  • 커스텀 도메인 — App Runner 서비스에 연결하는 도메인입니다. 웹 애플리케이션 사용자는 기본 App Runner 하위 도메인 대신 이 도메인을 사용하여 웹 서비스에 액세스할 수 있습니다. 자세한 정보는 App Runner 서비스의 사용자 지정 도메인 이름 관리을 참조하세요.

    참고

    앱 러너 애플리케이션의 보안을 강화하기 위해*.awsapprunner.com 도메인은 공개 접미사 목록 (PSL) 에 등록되어 있습니다. 보안 강화를 위해 App Runner 애플리케이션의 기본 도메인 이름에 민감한 쿠키를 설정해야 하는 경우 __Host- 접두사가 있는 쿠키를 사용하는 것이 좋습니다. 이렇게 쿠키를 설정하면 교차 사이트 요청 위조 시도(CSRF)로부터 도메인을 보호하는 데 도움이 됩니다. 자세한 내용은 Mozilla 개발자 네트워크의 Set-Cookie 페이지를 참조하십시오.

  • 유지 관리 — App Runner가 App Runner 서비스를 실행하는 인프라에서 가끔 수행하는 활동입니다. 유지 관리가 진행 중이면 몇 분 동안 서비스 상태가 일시적으로 OPERATION_IN_PROGRESS (콘솔에서 작업 진행 중) 으로 변경됩니다. 이 기간 동안에는 서비스에 대한 작업 (예: 배포, 구성 업데이트, 일시 중지/재개 또는 삭제) 이 차단됩니다. 몇 분 후 서비스 상태가 로 돌아오면 작업을 다시 시도하세요. RUNNING

    참고

    작업이 실패한다고 해서 App Runner 서비스가 다운된 것은 아닙니다. 애플리케이션이 활성 상태이고 요청을 계속 처리합니다. 서비스에 다운타임이 발생할 가능성은 거의 없습니다.

    특히 App Runner는 서비스를 호스팅하는 기본 하드웨어에서 문제가 발견되면 서비스를 마이그레이션합니다. 서비스 다운타임을 방지하기 위해 App Runner는 서비스를 새로운 인스턴스 세트에 배포하고 트래픽을 인스턴스 세트로 이동합니다 (청록색 배포). 때때로 요금이 일시적으로 약간 인상될 수 있습니다.

앱 러너 지원 구성

App Runner 서비스를 구성할 때 서비스에 할당할 가상 CPU 및 메모리 구성을 지정합니다. 선택한 컴퓨팅 구성을 기준으로 비용을 지불합니다. 요금에 대한 자세한 내용은 AWS Resource Groups 요금을 참조하십시오.

다음 표에는 App Runner가 지원하는 vCPU 및 메모리 구성에 대한 정보가 나와 있습니다.

CPU 메모리

0.25 vCPU

0.5GB

0.25 vCPU

1GB

0.5 vCPU

1GB

1 vCPU

2GB

1 vCPU

3GB

1 vCPU

4GB

2 vCPU

4GB

2 vCPU

6 기가바이트

4 vCPU

8GB

4 vCPU

10GB

4 vCPU

12기가바이트

앱 러너 리소스

App Runner를 사용하면 앱 러너에서 몇 가지 유형의 리소스를 만들고 관리할 수 있습니다. AWS 계정이러한 리소스는 코드에 액세스하고 서비스를 관리하는 데 사용됩니다.

다음 표에는 이러한 리소스의 개요가 나와 있습니다.

리소스 이름 설명

Service

실행 중인 애플리케이션 버전을 나타냅니다. 이 가이드의 나머지 부분에서는 대부분 서비스 유형, 관리, 구성 및 모니터링에 대해 설명합니다.

ARN: arn:aws:apprunner:region:account-id:service/service-name[/service-id]

Connection

App Runner 서비스에 타사 제공업체에 저장된 비공개 리포지토리에 대한 액세스를 제공합니다. 여러 서비스에서 공유하기 위한 별도의 리소스로 존재합니다. 연결에 대한 자세한 내용은 앱 러너 연결 관리 단원을 참조하십시오.

ARN: arn:aws:apprunner:region:account-id:connection/connection-name[/connection-id]

AutoScalingConfiguration

App Runner 서비스에 애플리케이션의 자동 크기 조정을 제어하는 설정을 제공합니다. 여러 서비스에서 공유하기 위한 별도의 리소스로 존재합니다. 자동 스케일링에 대한 자세한 내용은 App Runner 자동 스케일링 관리 섹션을 참조하세요.

ARN: arn:aws:apprunner:region:account-id:autoscalingconfiguration/config-name[/config-revision[/config-id]]

ObservabilityConfiguration

App Runner 서비스를 위한 추가 애플리케이션 옵저버빌리티 기능을 구성합니다. 여러 서비스에서 공유하기 위한 별도의 리소스로 존재합니다. 옵저버빌리티 구성에 대한 자세한 내용은 을 참조하십시오서비스의 옵저버빌리티 구성.

ARN: arn:aws:apprunner:region:account-id:observabilityconfiguration/config-name[/config-revision[/config-id]]

VpcConnector

앱 러너 서비스의 VPC 설정을 구성합니다. 여러 서비스에서 공유하기 위한 별도의 리소스로 존재합니다. VPC 기능에 대한 자세한 내용은 을 참조하십시오. 발신 트래픽에 대한 VPC 액세스 활성화

ARN: arn:aws:apprunner:region:account-id:vpcconnector/connector-name[/connector-revision[/connector-id]]

VpcIngressConnection

수신 트래픽을 구성하는 데 사용되는 AWS App Runner 리소스입니다. VPC 인터페이스 엔드포인트와 앱 러너 서비스를 연결하여 Amazon VPC 내에서만 앱 러너 서비스에 액세스할 수 있도록 합니다. VPC의 기능에 대한 자세한 내용은 IngressConnection 을 참조하십시오. 들어오는 트래픽에 대한 프라이빗 엔드포인트 활성화

ARN: arn:aws:apprunner:region:account-id:vpcingressconnection/vpc-ingress-connection-name[/connector-id]]

앱 러너 리소스 할당량

AWS 각 계정의 리소스 사용량에 대해 계정에 일부 할당량 (한도라고도 함) 을 부과합니다. AWS AWS 리전다음 표에는 App Runner 리소스와 관련된 할당량이 나열되어 있습니다. 할당량은 AWS App Runner 엔드포인트와 의 할당량에도 나열되어 있습니다. AWS 일반 참조

리소스 쿼터 설명 기본값 조정 가능한가요?

Services

계정에서 각 서비스에 대해 생성할 수 있는 최대 서비스 수입니다 AWS 리전.

30

Connections

계정에서 각 연결에 대해 만들 수 있는 최대 연결 수입니다 AWS 리전. 여러 서비스에서 단일 연결을 사용할 수 있습니다.

10

Auto scaling configurations

이름

계정에서 생성한 Auto Scaling 구성에서 각각에 대해 가질 수 있는 최대 고유 이름 수입니다 AWS 리전. 여러 서비스에서 하나의 Auto scaling 구성을 사용할 수 있습니다.

10

이름별 수정 횟수

계정에서 각 AWS 리전 고유 이름에 대해 생성할 수 있는 최대 Auto Scaling 구성 수정 개수입니다. 여러 서비스에서 단일 Auto Scaling 구성 버전을 사용할 수 있습니다.

5

아니요

Observability configurations

이름

계정에서 각 AWS 리전항목에 대해 생성한 옵저버빌리티 구성에서 가질 수 있는 최대 고유 이름 수입니다. 여러 서비스에서 하나의 관찰성 구성을 사용할 수 있습니다.

10

이름별 수정 횟수

계정에서 각 AWS 리전 고유 이름에 대해 생성할 수 있는 옵저버빌리티 구성 수정 개정의 최대 수입니다. 여러 서비스에서 단일 통합 가시성 구성 수정 버전을 사용할 수 있습니다.

10

아니요

VPC connectors

계정에서 각 VPC 커넥터를 만들 수 있는 최대 VPC 커넥터 수입니다. AWS 리전여러 서비스에서 하나의 VPC 커넥터를 사용할 수 있습니다.

10

VPC Ingress Connection

계정에서 생성할 수 있는 각 VPC 인그레스 연결의 최대 수입니다. AWS 리전단일 VPC 인그레스 연결을 사용하여 여러 App Runner 서비스에 액세스할 수 있습니다.

1

아니요

대부분의 할당량은 조정 가능하며 할당량 증가를 요청할 수 있습니다. 자세한 내용은 Service Quotas 사용 설명서에서 할당량 증가 요청을 참조하세요.