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