AWS

AWS App Runner 개요

TedDev 2024. 6. 23. 23:27
728x90

AWS App Runner란?

AWS App Runner컨테이너화된 애플리케이션을 쉽게 배포하고 운영할 수 있도록 지원하는 Fully Managed 서비스입니다. 사용자는 인프라를 직접 설정하거나 관리할 필요 없이 코드 또는 컨테이너 이미지를 제공하면 AWS가 자동으로 애플리케이션을 빌드, 배포 및 스케일링해 줍니다.

 

AWS App Runner의 주요 특징

1. 서버리스(Serverless) 컨테이너 서비스

  • AWS App Runner는 완전 관리형(Serverless) 서비스로 EC2 인스턴스나 컨테이너 오케스트레이션을 직접 관리할 필요 없음
  • AWS에서 자동으로 컨테이너를 실행하고, 네트워크 설정 및 보안, 로드 밸런싱을 처리

2. 간단한 배포 (Code → Deploy)

  • GitHub 또는 AWS CodeCommit 저장소에서 코드를 직접 가져와 배포할 수 있음
  • AWS Elastic Container Registry(ECR) 또는 Docker Hub에서 컨테이너 이미지를 사용 가능

3. 자동 확장(Auto Scaling)

  • 트래픽 증가 시 애플리케이션을 자동으로 확장하고, 트래픽 감소 시 리소스를 줄여 비용 최적화
  • 동시 요청 수(Concurrent Requests)에 따라 스케일 업/다운 조절

4. 보안 및 네트워크 통합

  • AWS IAM, AWS VPC, AWS Secrets Manager 등과 통합되어 보안 관리 가능
  • TLS 암호화 및 AWS Certificate Manager를 통해 자동 HTTPS 지원

5. 비용 효율적

  • 사용한 만큼만 비용을 지불(Pay-as-you-go)
  • 애플리케이션이 트래픽이 없을 때 자동으로 중지되어 비용 절감 가능

 

AWS App Runner 아키텍처

AWS App Runner는 크게 소스 코드 기반 배포컨테이너 이미지 기반 배포 두 가지 방법을 지원합니다.

1. 소스 코드 기반 배포

  • GitHub 또는 AWS CodeCommit에 저장된 애플리케이션 코드를 빌드 및 배포
  • AWS App Runner가 자동으로 빌드 및 실행 환경을 설정

2. 컨테이너 이미지 기반 배포

  • AWS Elastic Container Registry(ECR) 또는 Docker Hub에서 컨테이너 이미지를 가져와 실행
  • 사용자가 직접 Dockerfile을 정의하여 컨테이너 이미지를 생성 후 배포

 

AWS App Runner 사용 방법

컨테이너 이미지 배포

1. Docker 컨테이너 이미지 생성

docker build -t my-app .
 

2. AWS ECR에 이미지 푸시

aws ecr create-repository --repository-name my-app
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin <your-account-id>.dkr.ecr.us-east-1.amazonaws.com
docker tag my-app <your-account-id>.dkr.ecr.us-east-1.amazonaws.com/my-app
docker push <your-account-id>.dkr.ecr.us-east-1.amazonaws.com/my-app

 

3. AWS App Runner에서 ECR 이미지 기반으로 서비스 생성

 

GitHub 소스 코드 배포

1. AWS App Runner 콘솔에서 GitHub 저장소 연동

2. 자동으로 빌드 및 배포 수행

3. 배포 후 HTTPS 엔드포인트(URL) 제공

 

AWS App Runner vs AWS Fargate vs AWS Lambda

기능 AWS App Runner AWS Fargate AWS Lambda
관리 수준 Fully Managed Managed Fully Managed
컨테이너 지원 ✅ (Yes) ✅ (Yes) ❌ (No)
자동 확장 ✅ (Yes) ✅ (Yes) ✅ (Yes)
사용 사례 웹 애플리케이션, API 서버 컨테이너 기반 애플리케이션 이벤트 기반 서버리스 함수
비용 구조 요청 기반 청구 실행 시간 기준 실행 시간 기준

 

AWS App Runner를 사용할 때 적합한 경우

  • 웹 애플리케이션을 컨테이너화하여 빠르게 배포하고 싶을 때
  • 인프라 관리 없이 자동으로 스케일링되는 환경이 필요할 때
  • GitHub 또는 AWS CodeCommit에서 직접 배포하고 싶을 때
  • AWS Lambda보다 긴 실행 시간을 필요로 하는 애플리케이션이 있을 때

 

AWS App Runner 요금 (비용)

  • 컴퓨팅 및 메모리 사용량 기준 과금
  • 트래픽이 없을 때 자동으로 종료되어 비용 절약 가능
  • 무료 티어 제공 여부는 지역에 따라 다를 수 있음 (AWS 공식 웹사이트에서 확인 필요)

 

결론

AWS App Runner는 컨테이너 기반 애플리케이션을 빠르게 배포하고, 자동 확장 및 서버리스 환경을 제공하는 완전 관리형 서비스입니다.
AWS Fargate, Lambda와 비교했을 때 웹 애플리케이션, API 서버에 적합하며, 초기 설정이 간단하고 운영 부담이 적은 것이 강점입니다. 

반응형

'AWS' 카테고리의 다른 글

AWS EFS (Elastic File System) 소개  (0) 2024.06.27
AWS Batch란 무엇인가?  (0) 2024.06.24
AWS Elastic Beanstalk란  (0) 2024.06.20
AWS Lightsail 개념  (0) 2024.06.19
AWS EBS 기능에 대한 완벽 가이드  (0) 2024.06.18