기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
App Runner 시작하기
AWS App Runner 는 기존 컨테이너 이미지 또는 소스 코드를에서 실행 중인 웹 AWS 서비스로 직접 전환하는 빠르고 간단하며 비용 효율적인 방법을 제공하는 서비스입니다 AWS 클라우드.
이 자습서에서는 AWS App Runner 를 사용하여 애플리케이션을 App Runner 서비스에 배포하는 방법을 다룹니다. 소스 코드 및 배포, 서비스 빌드 및 서비스 런타임 구성을 안내합니다. 또한 코드 버전을 배포하고, 구성을 변경하고, 로그를 보는 방법도 보여줍니다. 마지막으로, 자습서에서는 자습서의 절차에 따라 생성한 리소스를 정리하는 방법을 보여줍니다.
사전 조건
자습서를 시작하기 전에 다음 작업을 수행해야 합니다.
-
의 설정 단계를 완료합니다App Runner 설정.
-
GitHub 리포지토리 또는 Bitbucket 리포지토리로 작업할지 여부를 결정합니다.
-
Bitbucket으로 작업하려면 먼저 Bitbucket 계정이 아직 없는 경우 Bitbucket
계정을 생성합니다. Bitbucket을 처음 사용하는 경우 Bitbucket 클라우드 설명서의 Bitbucket 시작하기 를 참조하세요. -
GitHub로 작업하려면 아직 없는 경우 GitHub
계정을 생성합니다. GitHub를 처음 사용하는 경우 GitHub 문서의 GitHub 시작하기를 참조하세요. 참고
계정에서 여러 리포지토리 공급자에 대한 연결을 생성할 수 있습니다. 따라서 GitHub와 Bitbucket 리포지토리 모두에서 배포하는 방법을 자세히 알아보려면이 절차를 반복할 수 있습니다. 다음에를 통해 새 App Runner 서비스를 생성하고 다른 리포지토리 공급자에 대한 새 계정 연결을 생성합니다.
-
-
리포지토리 공급자 계정에 리포지토리를 생성합니다. 이 자습서에서는 리포지토리 이름을 사용합니다
python-hello
. 다음 예제에 지정된 이름과 콘텐츠를 사용하여 리포지토리의 루트 디렉터리에 파일을 생성합니다.
예 requirements.txt
pyramid==2.0
예 server.py
from wsgiref.simple_server import make_server
from pyramid.config import Configurator
from pyramid.response import Response
import os
def hello_world(request):
name = os.environ.get('NAME')
if name == None or len(name) == 0:
name = "world"
message = "Hello, " + name + "!\n"
return Response(message)
if __name__ == '__main__':
port = int(os.environ.get("PORT"))
with Configurator() as config:
config.add_route('hello', '/')
config.add_view(hello_world, route_name='hello')
app = config.make_wsgi_app()
server = make_server('0.0.0.0', port, app)
server.serve_forever()
1단계: App Runner 서비스 생성
이 단계에서는의 일부로 GitHub 또는 Bitbucket에서 생성한 예제 소스 코드 리포지토리를 기반으로 App Runner 서비스를 생성합니다사전 조건. 이 예제에는 간단한 Python 웹 사이트가 포함되어 있습니다. 다음은 서비스를 생성하기 위해 수행하는 주요 단계입니다.
-
소스 코드를 구성합니다.
-
소스 배포를 구성합니다.
-
애플리케이션 빌드를 구성합니다.
-
서비스를 구성합니다.
-
검토하고 확인합니다.
다음 다이어그램은 App Runner 서비스를 생성하는 단계를 간략하게 설명합니다.

소스 코드 리포지토리를 기반으로 App Runner 서비스를 생성하려면
-
소스 코드를 구성합니다.
-
App Runner 콘솔
을 열고 리전 목록에서를 선택합니다 AWS 리전. -
에 아직 App Runner 서비스가 AWS 계정 없는 경우 콘솔 홈 페이지가 표시됩니다. App Runner 서비스 생성을 선택합니다.
에 기존 서비스가 AWS 계정 있는 경우 서비스 목록이 포함된 서비스 페이지가 표시됩니다. 서비스 생성을 선택합니다.
-
소스 및 배포 페이지의 소스 섹션의 리포지토리 유형에서 소스 코드 리포지토리를 선택합니다.
-
공급자 유형을 선택합니다. GitHub 또는 Bitbucket을 선택합니다.
-
그런 다음 새로 추가를 선택합니다. 메시지가 표시되면 GitHub 또는 Bitbucket 자격 증명을 제공합니다.
-
이전에 선택한 공급자 유형에 따라 다음 단계 세트를 선택합니다.
참고
GitHub GitHub 계정에 설치하는 다음 단계는 일회성 단계입니다. 이 계정의 리포지토리를 기반으로 여러 App Runner 서비스를 생성하는 데 연결을 재사용할 수 있습니다. 기존 연결이 있는 경우 연결을 선택하고 리포지토리 선택으로 건너뜁니다.
Bitbucket 계정의 AWS 커넥터에도 동일하게 적용됩니다. GitHub와 Bitbucket을 App Runner 서비스의 소스 코드 리포지토리로 사용하는 경우 각 공급자에 대해 하나의 AWS 커넥터를 설치해야 합니다. 그런 다음 각 커넥터를 재사용하여 더 많은 App Runner 서비스를 생성할 수 있습니다.
-
GitHub의 경우 다음 단계를 따릅니다.
-
다음 화면에서 연결 이름을 입력합니다.
-
App Runner와 함께 GitHub를 처음 사용하는 경우 다른 설치를 선택합니다.
-
AWS GitHub용 커넥터 대화 상자에서 메시지가 표시되면 GitHub 계정 이름을 선택합니다.
-
GitHub용 AWS 커넥터를 승인하라는 메시지가 표시되면 AWS 연결 승인을 선택합니다.
-
GitHub용 AWS 커넥터 설치 대화 상자에서 설치를 선택합니다.
계정 이름은 선택한 GitHub 계정/조직으로 표시됩니다. 이제 계정에서 리포지토리를 선택할 수 있습니다.
-
리포지토리에서 생성한 예제 리포지토리인를 선택합니다
python-hello
. 브랜치에서 리포지토리의 기본 브랜치 이름(예: 기본)을 선택합니다. -
소스 디렉터리를 기본값으로 둡니다. 디렉터리의 기본값은 리포지토리 루트입니다. 이전 사전 조건 단계의 리포지토리 루트 디렉터리에 소스 코드를 저장했습니다.
-
-
Bitbucket의 경우 다음 단계를 따릅니다.
-
다음 화면에서 연결 이름을 입력합니다.
-
App Runner와 함께 Bitbucket을 처음 사용하는 경우 다른 설치를 선택합니다.
-
AWS CodeStar 액세스 요청 대화 상자에서 워크스페이스를 선택하고 Bitbucket 통합을 AWS CodeStar 위해에 액세스 권한을 부여할 수 있습니다. 워크스페이스를 선택한 다음 액세스 권한 부여를 선택합니다.
-
다음으로 AWS 콘솔로 리디렉션됩니다. Bitbucket 애플리케이션이 올바른 Bitbucket 워크스페이스로 설정되어 있는지 확인하고 다음을 선택합니다.
-
리포지토리에서 생성한 예제 리포지토리인를 선택합니다
python-hello
. 브랜치에서 리포지토리의 기본 브랜치 이름(예: 기본)을 선택합니다. -
소스 디렉터리를 기본값으로 둡니다. 디렉터리의 기본값은 리포지토리 루트입니다. 이전 사전 조건 단계의 리포지토리 루트 디렉터리에 소스 코드를 저장했습니다.
-
-
-
-
배포 구성: 배포 설정 섹션에서 자동을 선택한 다음 다음을 선택합니다.
참고
자동 배포를 사용하면 리포지토리 소스 디렉터리에 대한 각 새 커밋이 새 버전의 서비스를 자동으로 배포합니다.
-
애플리케이션 빌드를 구성합니다.
-
빌드 구성 페이지의 구성 파일에서 여기에서 모든 설정 구성을 선택합니다.
-
다음 빌드 설정을 제공합니다.
-
런타임 - Python 3을 선택합니다.
-
빌드 명령 -를 입력합니다
pip install -r requirements.txt
. -
시작 명령 -를 입력합니다
python server.py
. -
포트 -를 입력합니다
8080
.
-
-
Next(다음)를 선택합니다.
참고
Python 3 런타임은 기본 Python 3 이미지와 예제 Python 코드를 사용하여 Docker 이미지를 빌드합니다. 그런 다음이 이미지의 컨테이너 인스턴스를 실행하는 서비스를 시작합니다.
-
-
서비스를 구성합니다.
-
서비스 구성 페이지의 서비스 설정 섹션에서 서비스 이름을 입력합니다.
-
환경 변수에서 환경 변수 추가를 선택합니다. 환경 변수에 다음 값을 입력합니다.
-
소스 - 일반 텍스트 선택
-
환경 변수 이름 -
NAME
-
환경 변수 값 - 모든 이름(예: 이름).
참고
예제 애플리케이션은이 환경 변수에서 설정한 이름을 읽고 웹 페이지에 이름을 표시합니다.
-
-
Next(다음)를 선택합니다.
-
-
검토 및 생성 페이지에서 입력한 모든 세부 정보를 확인한 다음 생성 및 배포를 선택합니다.
서비스가 성공적으로 생성되면 콘솔에 새 서비스의 서비스 개요와 함께 서비스 대시보드가 표시됩니다.
-
서비스가 실행 중인지 확인합니다.
-
서비스 대시보드 페이지에서 서비스 상태가 실행 중일 때까지 기다립니다.
-
기본 도메인 값을 선택합니다. 이는 서비스 웹 사이트의 URL입니다.
참고
App Runner 애플리케이션의 보안을 강화하기 위해 *.awsapprunner.com 도메인은 퍼블릭 접미사 목록(PSL)
에 등록됩니다. 보안을 강화하려면 App Runner 애플리케이션의 기본 도메인 이름에 민감한 쿠키를 설정해야 하는 경우 __Host-
접두사가 있는 쿠키를 사용하는 것이 좋습니다. 이렇게 쿠키를 설정하면 교차 사이트 요청 위조 시도(CSRF)로부터 도메인을 보호하는 데 도움이 됩니다. 자세한 내용은 Mozilla 개발자 네트워크의 Set-Cookie페이지를 참조하십시오. 웹 페이지에 Hello,
your name
!이 표시됩니다.
-
2단계: 서비스 코드 변경
이 단계에서는 리포지토리 소스 디렉터리에서 코드를 변경합니다. App Runner CI/CD 기능은 변경 사항을 자동으로 빌드하고 서비스에 배포합니다.
서비스 코드를 변경하려면
-
예제 리포지토리로 이동합니다.
-
라는 파일을 편집합니다
server.py
. -
변수에 할당된 표현식에서 텍스트를
Hello
로message
변경합니다Good morning
. -
변경 사항을 저장하고 리포지토리에 커밋합니다.
-
다음 단계에서는 GitHub 리포지토리에서 서비스 코드를 변경하는 방법을 보여줍니다.
-
예제 GitHub 리포지토리로 이동합니다.
-
파일 이름을 선택하여 해당 파일로
server.py
이동합니다. -
이 파일 편집(연필 아이콘)을 선택합니다.
-
변수에 할당된 표현식에서 텍스트를
Hello
로message
변경합니다Good morning
. -
변경 사항 커밋을 선택합니다.
-
-
새 커밋이 App Runner 서비스에 배포되기 시작합니다. 서비스 대시보드 페이지에서 서비스 상태가 진행 중인 작업으로 변경됩니다.
배포가 종료될 때까지 기다립니다. 서비스 대시보드 페이지에서 서비스 상태가 다시 실행 중으로 변경되어야 합니다.
-
배포가 성공했는지 확인합니다. 서비스의 웹 페이지가 표시되는 브라우저 탭을 새로 고칩니다.
이제 페이지에 수정된 메시지, 즉 안녕하세요,
사용자 이름이
표시됩니다!
3단계: 구성 변경
이 단계에서는 서비스 구성 변경을 보여주기 위해 NAME
환경 변수 값을 변경합니다.
환경 변수 값을 변경하려면
-
App Runner 콘솔
을 열고 리전 목록에서를 선택합니다 AWS 리전. -
탐색 창에서 서비스를 선택한 다음 App Runner 서비스를 선택합니다.
콘솔에 서비스 개요와 함께 서비스 대시보드가 표시됩니다.
-
서비스 대시보드 페이지에서 구성 탭을 선택합니다.
콘솔에는 여러 섹션에 서비스 구성 설정이 표시됩니다.
-
서비스 구성 섹션에서 편집을 선택합니다.
-
키가 인 환경 변수의 경우 값을 다른 이름으로
NAME
변경합니다. -
[Apply changes]를 선택합니다.
App Runner가 업데이트 프로세스를 시작합니다. 서비스 대시보드 페이지에서 서비스 상태가 진행 중인 작업으로 변경됩니다.
-
업데이트가 종료될 때까지 기다립니다. 서비스 대시보드 페이지에서 서비스 상태가 다시 실행 중으로 변경되어야 합니다.
-
업데이트가 성공했는지 확인합니다. 서비스의 웹 페이지가 표시되는 브라우저 탭을 새로 고칩니다.
이제 페이지에 수정된 이름인 안녕하세요,
새 이름이
표시됩니다!
4단계: 서비스에 대한 로그 보기
이 단계에서는 App Runner 콘솔을 사용하여 App Runner 서비스에 대한 로그를 봅니다. App Runner는 로그를 Amazon CloudWatch Logs(CloudWatch Logs)로 스트리밍하고 서비스의 대시보드에 표시합니다. App Runner 로그에 대한 자세한 내용은 섹션을 참조하세요CloudWatch Logs로 스트리밍된 App Runner 로그 보기.
서비스에 대한 로그를 보려면
-
App Runner 콘솔
을 열고 리전 목록에서를 선택합니다 AWS 리전. -
탐색 창에서 서비스를 선택한 다음 App Runner 서비스를 선택합니다.
콘솔에 서비스 개요와 함께 서비스 대시보드가 표시됩니다.
-
서비스 대시보드 페이지에서 로그 탭을 선택합니다.
콘솔에는 몇 가지 유형의 로그가 여러 섹션에 표시됩니다.
-
이벤트 로그 - App Runner 서비스의 수명 주기 내 활동입니다. 콘솔에 최신 이벤트가 표시됩니다.
-
배포 로그 - App Runner 서비스에 대한 소스 리포지토리 배포입니다. 콘솔에는 각 배포에 대한 별도의 로그 스트림이 표시됩니다.
-
애플리케이션 로그 - App Runner 서비스에 배포된 웹 애플리케이션의 출력입니다. 콘솔은 실행 중인 모든 인스턴스의 출력을 단일 로그 스트림으로 결합합니다.
-
-
특정 배포를 찾으려면 검색어를 입력하여 배포 로그 목록의 범위를 좁힙니다. 테이블에 나타나는 모든 값을 검색할 수 있습니다.
-
로그의 콘텐츠를 보려면 전체 로그 보기(이벤트 로그) 또는 로그 스트림 이름(배포 및 애플리케이션 로그)을 선택합니다.
-
다운로드를 선택하여 로그를 다운로드합니다. 배포 로그 스트림의 경우 먼저 로그 스트림을 선택합니다.
-
CloudWatch에서 보기를 선택하여 CloudWatch 콘솔을 열고 전체 기능을 사용하여 App Runner 서비스 로그를 탐색합니다. 배포 로그 스트림의 경우 먼저 로그 스트림을 선택합니다.
참고
CloudWatch 콘솔은 결합된 애플리케이션 로그 대신 특정 인스턴스의 애플리케이션 로그를 보려는 경우에 특히 유용합니다.
5단계: 정리
이제 App Runner 서비스를 생성하고, 로그를 보고, 몇 가지를 변경하는 방법을 배웠습니다. 이 단계에서는 서비스를 삭제하여 더 이상 필요하지 않은 리소스를 제거합니다.
서비스를 삭제하려면
-
서비스 대시보드 페이지에서 작업을 선택한 다음 서비스 삭제를 선택합니다.
-
확인 대화 상자에서 요청된 텍스트를 입력한 다음 삭제를 선택합니다.
결과: 콘솔이 서비스 페이지로 이동합니다. 방금 삭제한 서비스는 삭제 중 상태로 표시됩니다. 잠시 후 목록에서 사라집니다.
이 자습서의 일부로 생성한 GitHub 및 Bitbucket 연결도 삭제하는 것이 좋습니다. 자세한 내용은 App Runner 연결 관리 단원을 참조하십시오.
다음에 있는 것
이제 첫 번째 App Runner 서비스를 배포했으므로 다음 주제에서 자세히 알아보세요.
-
App Runner 아키텍처 및 개념 - App Runner와 관련된 아키텍처, 주요 개념 및 AWS 리소스입니다.
-
이미지 기반 서비스 및 코드 기반 서비스 - App Runner가 배포할 수 있는 두 가지 유형의 애플리케이션 소스입니다.
-
App Runner용 애플리케이션 코드 개발 - App Runner에 배포할 애플리케이션 코드를 개발하거나 마이그레이션할 때 알아야 할 사항입니다.
-
App Runner 콘솔 사용 - App Runner 콘솔을 사용하여 서비스를 관리하고 모니터링합니다.
-
App Runner 서비스 관리 - App Runner 서비스의 수명 주기를 관리합니다.
-
App Runner 서비스의 관찰성 - 지표 모니터링, 로그 읽기, 이벤트 처리, 서비스 작업 호출 추적, HTTP 호출과 같은 애플리케이션 이벤트 추적을 통해 App Runner 서비스 작업에 대한 가시성을 확보합니다.
-
App Runner 구성 파일 - App Runner 서비스의 빌드 및 런타임 동작에 대한 옵션을 지정하는 구성 기반 방법입니다.
-
App Runner API - App Runner API(Application Programming Interface)를 사용하여 App Runner 리소스를 생성, 읽기, 업데이트 및 삭제합니다.
-
App Runner의 보안 - App Runner 및 기타 서비스를 사용하는 동안 AWS 및가 클라우드 보안을 보장하는 다양한 방법입니다.