Lightsail에서 컨테이너 서비스 배포 생성 및 관리 - Amazon Lightsail

Lightsail에서 컨테이너 서비스 배포 생성 및 관리

Amazon Lightsail 컨테이너 서비스에서 컨테이너를 시작할 준비가 되면 배포를 생성합니다. 배포는 서비스에서 시작하려는 컨테이너에 대한 사양 집합입니다. 컨테이너 서비스에는 실행 중인 배포가 동시에 하나만 존재할 수 있으며, 배포에는 최대 10개의 컨테이너 항목이 포함될 수 있습니다. 컨테이너 서비스를 생성하면서 배포를 생성하거나 서비스를 설정하여 실행하고 난 후에 생성할 수 있습니다.

참고

새 배포를 만들면 컨테이너 서비스의 기존 사용률 지표가 사라지고, 새로운 현재 배포에 대한 지표만 표시됩니다.

컨테이너 서비스에 대한 자세한 내용은 Amazon Lightsail의 컨테이너 서비스를 참조하세요.

목차

사전 조건

컨테이너 서비스에서 배포를 생성하기 전에 다음 사전 조건을 완료하세요.

배포 파라미터

이 섹션에서는 배포의 컨테이너 항목 및 퍼블릭 엔드포인트에 대해 지정할 수 있는 파라미터를 설명합니다.

컨테이너 항목 파라미터

배포에 컨테이너 항목을 10개까지 추가할 수 있습니다. 각 컨테이너 항목에는 다음과 같은 파라미터를 지정할 수 있습니다.

Lightsail 콘솔에서 컨테이너 서비스의 배포 구성
  • 컨테이너 이름(Container name) - 컨테이너 이름을 입력합니다. 배포 내의 모든 컨테이너에는 고유한 이름이 있어야 하며, 영숫자 및 하이픈만 포함되어야 합니다. 하이픈으로 단어를 구분할 수 있지만, 이름의 시작이나 끝에 사용할 수는 없습니다.

  • 소스 이미지(Source image) - 컨테이너의 소스 컨테이너 이미지를 지정합니다. 퍼블릭 레지스트리 소스

  • 시작 명령(Launch command) - 컨테이너가 생성될 때 셸 스크립트 또는 bash 스크립트를 실행하는 실행 명령을 지정합니다. 실행 명령을 통해 소프트웨어 추가, 소프트웨어 업데이트와 같은 작업을 수행하거나 다른 방식으로 컨테이너를 구성할 수 있습니다.

  • 환경 변수(Environment variables) - 컨테이너에서 실행되는 애플리케이션 또는 스크립트의 동적 구성을 제공하는 키 값 파라미터인 환경 변수를 지정합니다.

  • 개방 포트(Open ports)- 컨테이너에서 열 포트와 프로토콜을 지정합니다. HTTP, HTTPS, TCP 및 UDP를 통해 포트를 열도록 지정할 수 있습니다. 컨테이너 서비스의 퍼블릭 엔드포인트로 사용할 컨테이너의 HTTP 또는 HTTPS 포트를 열어야 합니다. 자세한 내용은 이 가이드의 다음 섹션을 참조하세요.

퍼블릭 엔드포인트 파라미터

배포에서 컨테이너 서비스의 퍼블릭 엔드포인트로 사용할 컨테이너 항목을 지정할 수 있습니다. 퍼블릭 엔드포인트 컨테이너의 애플리케이션은 임의로 생성된 컨테이너 서비스의 기본 도메인을 통해 인터넷에서 공개적으로 액세스할 수 있습니다. 기본 도메인의 형식은 https://<ServiceName>.<RandomGUID>.<AWSRegion>.cs.amazonlightsail.com으로 지정됩니다. 여기서 <ServiceName>은 컨테이너 서비스의 이름이고, <RandomGUID>는 Lightsail 계정에 대해 AWS 리전에서 임의로 생성된 컨테이너 서비스의 전역 고유 식별자이며, <AWSRegion>은 컨테이너 서비스가 생성된 AWS 리전입니다. Lightsail 컨테이너 서비스의 퍼블릭 엔드포인트는 HTTPS만 지원하며, TCP 또는 UDP 트래픽은 지원하지 않습니다. 하나의 컨테이너만 서비스의 퍼블릭 엔드포인트가 될 수 있습니다. 따라서 나머지 컨테이너가 내부적으로 액세스할 수 있는 동안 애플리케이션의 프런트 엔드를 호스팅하는 컨테이너를 퍼블릭 엔드포인트로 선택해야 합니다.

참고

컨테이너 서비스에서 사용자 지정 도메인 이름을 사용할 수 있습니다. 자세한 내용은 Amazon Lightsail 컨테이너 서비스용 사용자 지정 도메인 사용 설정 및 관리를 참조하세요.

배포의 퍼블릭 엔드포인트와 컨테이너 서비스에는 다음과 같은 파라미터를 지정할 수 있습니다.

Lightsail 콘솔의 컨테이너 서비스 퍼블릭 엔드포인트
  • 엔드포인트 컨테이너(Endpoint container) - 배포에서 컨테이너 서비스의 퍼블릭 엔드포인트 역할을 할 컨테이너의 이름을 선택합니다. 배포에서 HTTP 또는 HTTPS 포트가 열려 있는 컨테이너만 드롭다운 메뉴에 나열됩니다.

  • 포트(Port) - 퍼블릭 엔드포인트에 사용할 HTTP 또는 HTTPS 포트를 선택합니다. 선택한 컨테이너에 열려 있는 HTTP 및 HTTPS 포트만 드롭다운 메뉴에 나열됩니다. 선택한 컨테이너가 처음 시작될 때 HTTPS 연결을 지원하도록 구성되지 않은 경우 HTTP 포트를 선택합니다.

    참고

    HTTP 포트를 퍼블릭 엔드포인트 포트로 선택하더라도 컨테이너 서비스의 기본 도메인은 기본적으로 HTTPS를 사용합니다. 이는 컨테이너 서비스의 로드 밸런서가 기본적으로 HTTPS용으로 구성되어 있지만, HTTP를 사용하여 컨테이너와의 연결을 설정하기 때문입니다.

    컨테이너 서비스의 로드 밸런서는 HTTP를 사용하여 컨테이너에 연결되지만, HTTPS를 사용하여 사용자에게 콘텐츠를 제공합니다.

  • 상태 확인 경로(Health check path) - 선택한 퍼블릭 엔드포인트 컨테이너에서 컨테이너 서비스의 로드 밸런서 상태가 정상인지 정기적으로 검사할 경로를 지정합니다.

  • 고급 상태 확인 설정— 선택한 퍼블릭 엔드포인트 컨테이너에 대해 다음과 같은 상태 확인 설정을 구성할 수 있습니다.

    • 상태 확인 제한 시간 초 – 응답을 기다릴 시간(초)입니다. 이 시간 동안 응답이 수신되지 않으면 상태 확인이 실패합니다. 2~60초를 지정할 수 있습니다.

    • 상태 확인 간격 초 - 컨테이너의 상태 확인 사이의 대략적인 간격(초)입니다. 5~300초를 지정할 수 있습니다.

    • 상태 확인 성공 코드 - 컨테이너로부터 응답 성공을 확인할 때 사용하는 HTTP 코드입니다. 200에서 499 사이의 값을 지정할 수 있습니다. 여러 값(예: 200,202) 또는 값 범위(예: 200~299)를 지정할 수 있습니다.

    • 상태 확인 정상 임계값 - 컨테이너를 정상 상태로 이동하기 전에 필요한 연속 상태 확인 성공 횟수입니다.

    • 상태 확인 비정상 임계값 - 컨테이너를 비정상 상태로 이동하기 전에 필요한 연속 상태 확인 실패 횟수입니다.

프라이빗 도메인

또한, 모든 컨테이너 서비스에는 <ServiceName>.service.local로 형식이 지정된 프라이빗 도메인이 있으며, 여기서 <ServiceName>은 컨테이너 서비스의 이름입니다. 프라이빗 도메인을 사용하여 서비스와 동일한 AWS 리전에 있는 다른 Lightsail 리소스에서 컨테이너 서비스에 액세스할 수 있습니다. 프라이빗 도메인은 서비스 배포에서 퍼블릭 엔드포인트를 지정하지 않은 경우 컨테이너 서비스에 액세스할 수 있는 유일한 방법입니다. 퍼블릭 엔드포인트를 지정하지 않더라도 컨테이너 서비스에 대해 기본 도메인이 생성되지만, 해당 도메인을 찾아보려고 하면 404 No Such Service 오류 메시지가 표시됩니다.

컨테이너 서비스의 프라이빗 도메인을 사용하여 특정 컨테이너에 액세스하려면 연결 요청을 수락할 컨테이너의 개방 포트를 지정해야 합니다. 이렇게 하려면 요청의 도메인 형식을 <ServiceName>.service.local:<PortNumber>로 지정하면 됩니다. 여기서 <ServiceName>은 컨테이너 서비스의 이름이고 <PortNumber>는 연결하려는 컨테이너의 개방 포트입니다. 예를 들어, container-service-1이라는 컨테이너 서비스에 배포를 생성하고 포트 6379가 열려 있는 Redis 컨테이너를 지정하는 경우 요청 도메인 형식을 container-service-1.service.local:6379로 지정해야 합니다.

컨테이너 간 통신

환경 변수를 사용하면 동일한 컨테이너 서비스 내의 컨테이너 간, 다른 컨테이너 서비스 내의 컨테이너 간 또는 컨테이너와 다른 리소스 간(예: 컨테이너와 관리형 데이터베이스)에 통신을 열 수 있습니다.

동일한 컨테이너 서비스 내의 컨테이너 간에 통신을 열려면 다음 예제에 표시된 것과 같이 localhost를 참조하는 환경 변수를 컨테이너 배포에 추가합니다.

Lightsail 콘솔에서 localhost 환경 변수를 사용하여 컨테이너 배포

서로 다른 컨테이너 서비스에 있는 컨테이너 간에 통신을 열려면 다음 예제에 표시된 것과 같이 다른 컨테이너 서비스의 프라이빗 도메인(예: container-service-1.service.local)을 참조하는 환경 변수를 컨테이너 배포에 추가합니다.

Lightsail 콘솔에서 프라이빗 도메인 환경 변수를 사용하여 컨테이너 배포

컨테이너와 다른 리소스 간에 통신을 열려면 리소스의 퍼블릭 엔드포인트 URL을 참조하는 환경 변수를 컨테이너 배포에 추가합니다. 예를 들어, Lightsail 관리형 데이터베이스의 퍼블릭 엔드포인트는 일반적으로 ls-123abc.czoexamplezqi.us-west-2.rds.amazonaws.com입니다. 따라서 다음 예제에 표시된 것과 같이 환경 변수에서 이를 참조해야 합니다.

Lightsail 콘솔에서 리소스 퍼블릭 엔드포인트 URL 환경 변수를 사용하여 컨테이너 배포

컨테이너 로그

배포의 모든 컨테이너는 로그를 생성합니다. 컨테이너 로그는 컨테이너 내부에서 실행되는 프로세스의 stdoutstderr 스트림을 제공합니다. 컨테이너의 로그에 주기적으로 액세스하여 작업을 진단할 수 있습니다. 자세한 내용은 Amazon Lightsail 컨테이너 서비스의 컨테이너 로그 확인을 참조하세요.

배포 버전

컨테이너 서비스에서 생성하는 모든 배포는 배포 버전으로 저장됩니다. 기존 배포의 파라미터를 수정하면 컨테이너가 서비스에 다시 배포되고 수정된 배포로 인해 새 배포 버전이 만들어집니다. 각 컨테이너 서비스에 대한 최신 배포 버전 50개가 저장됩니다. 50개의 배포 버전 중 하나를 사용하여 동일한 컨테이너 서비스에서 새 배포를 생성할 수 있습니다. 자세한 내용은 Amazon Lightsail 컨테이너 서비스의 배포 버전 확인 및 관리를 참조하세요.

배포 상태

배포는 생성된 후 다음 상태 중 하나가 될 수 있습니다.

  • 활성화 중 - 배포가 활성화되는 중이며 컨테이너가 생성 중입니다.

  • 활성 - 배포가 성공적으로 생성되었으며 현재 컨테이너 서비스에서 실행 중입니다.

  • 비활성 - 이전에 성공적으로 생성한 배포가 더 이상 컨테이너에서 실행되지 않습니다.

  • 실패 - 배포에 지정된 하나 이상의 컨테이너를 시작하지 못했기 때문에 배포에 실패했습니다.

배포 실패

배포에서 하나 이상의 컨테이너가 시작되지 않으면 배포가 실패합니다. 배포에 실패하고 컨테이너 서비스에서 이전 배포가 실행 중인 경우 컨테이너 서비스는 이전 배포를 활성 배포로 유지합니다. 이전 배포가 없으면 컨테이너 서비스가 현재 활성 배포가 없는 준비 상태로 변경됩니다.

실패한 배포의 컨테이너 로그를 보며 잘못된 부분을 진단하고 문제를 해결할 수 있습니다. 자세한 내용은 Amazon Lightsail 컨테이너 서비스의 컨테이너 로그 확인을 참조하세요.

현재 컨테이너 서비스 배포 확인

Lightsail 컨테이너 서비스의 현재 배포를 보려면 다음 절차를 완료하세요.

  1. Lightsail 콘솔에 로그인합니다.

  2. 왼쪽 탐색 창의 이미지에서 컨테이너를 선택합니다.

  3. 현재 배포를 보려는 컨테이너 서비스의 이름을 선택합니다.

  4. 컨테이너 서비스 관리 페이지에서 배포(Deployments) 탭을 선택합니다.

    배포(Deployments) 페이지에는 현재 배포 및 배포 버전이 나열됩니다. 컨테이너 서비스에서 배포를 생성하지 않은 경우 페이지의 두 섹션은 모두 비어 있습니다.

컨테이너 서비스 배포 생성 또는 수정

Lightsail 컨테이너 서비스에서 배포를 생성하거나 수정하려면 다음 절차를 완료하세요. 새 배포를 생성하든 기존 배포를 수정하든 컨테이너 서비스는 모든 배포를 새 배포 버전으로 저장합니다. 자세한 내용은 Amazon Lightsail 컨테이너 서비스의 배포 버전 확인 및 관리를 참조하세요.

  1. Lightsail 콘솔에 로그인합니다.

  2. 왼쪽 탐색 창의 이미지에서 컨테이너를 선택합니다.

  3. 컨테이너 서비스 배포를 생성하거나 수정할 컨테이너 서비스의 이름을 선택합니다.

  4. 컨테이너 서비스 관리 페이지에서 배포(Deployments) 탭을 선택합니다.

    배포(Deployments) 페이지에는 현재 배포 및 배포 버전(있는 경우)이 나열됩니다.

  5. 다음 옵션 중 하나를 선택하세요:

    • 컨테이너 서비스에 기존 배포가 있는 경우 배포 수정(Modify your deployment)을 선택합니다.

    • 컨테이너 서비스에 배포가 없는 경우 배포 생성(Create a deployment)을 선택합니다.

      기존 배포 파라미터를 편집하거나 새 배포 파라미터를 입력할 수 있는 배포 양식이 열립니다.

      Lightsail 콘솔의 컨테이너 서비스 배포 양식
  6. 배포의 파라미터를 입력합니다. 지정할 수 있는 배포 파라미터에 대한 자세한 내용은 가이드 앞 부분에 나와 있는 배포 파라미터 섹션을 참조하세요.

  7. 컨테이너 항목 추가(Add container entry)를 선택하여 둘 이상의 컨테이너 항목을 배포에 추가합니다. 배포에 컨테이너 항목을 10개까지 포함할 수 있습니다.

  8. 퍼블릭 엔드포인트 컨테이너 서비스로 사용할 배포의 컨테이너 항목을 선택합니다. 여기에는 HTTP 또는 HTTPS 포트, 선택한 컨테이너 항목의 상태 확인 경로 및 고급 상태 확인 설정 지정이 포함됩니다. 자세한 내용은 이 가이드의 앞부분의 퍼블릭 엔드포인트 파라미터를 참조하십시오.

  9. 배포 파라미터를 입력했으면 저장 및 배포(Save and deploy)를 선택하여 컨테이너 서비스에 배포를 생성합니다.

    배포가 생성되는 동안 컨테이너 서비스 상태가 배포 중으로 변경됩니다. 잠시 후 배포 상태에 따라 컨테이너 서비스 상태가 다음 중 하나로 변경됩니다.

    • 배포에 성공하면 컨테이너 서비스 상태가 실행 중으로 변경되고 배포 상태가 활성으로 변경됩니다. 배포에서 퍼블릭 엔드포인트를 구성한 경우 퍼블릭 엔드포인트로 선택한 컨테이너를 컨테이너 서비스의 기본 도메인을 통해 사용할 수 있습니다.

    • 배포에 실패하고 컨테이너 서비스에서 이전 배포가 실행 중인 경우 컨테이너 서비스 상태가 실행 중으로 변경되고 컨테이너 서비스는 이전 배포를 활성 배포로 유지합니다. 이전 배포가 없으면 컨테이너 서비스 상태가 현재 활성 배포가 없는 준비로 변경됩니다. 실패한 배포의 컨테이너 로그를 보며 잘못된 부분을 진단하고 문제를 해결할 수 있습니다. 자세한 내용은 Amazon Lightsail 컨테이너 서비스의 컨테이너 로그 확인을 참조하세요.