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 |