Amazon Lightsail에서 컨테이너를 배포하고 관리합니다. - Amazon Lightsail

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Lightsail에서 컨테이너를 배포하고 관리합니다.

Amazon Lightsail 컨테이너 서비스는 컨테이너를 배포, 실행 및 관리할 수 있는 확장성이 뛰어난 컴퓨팅 및 네트워킹 리소스입니다. 컨테이너는 애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 코드와 종속성을 함께 패키징하는 표준 소프트웨어 단위입니다.

Lightsail 컨테이너 서비스는 로컬 시스템에서 생성하여 서비스에 푸시한 이미지 또는 Amazon ECR Public Gallery와 같은 온라인 리포지토리의 이미지를 사용하여 인프라에서 AWS 컨테이너를 실행할 수 있는 컴퓨팅 환경이라고 생각할 수 있습니다.

Docker와 같은 소프트웨어를 설치하여 로컬 시스템에서 로컬로 컨테이너를 실행할 수도 있습니다. Amazon Elastic Container Service(Amazon ECS) 및 Amazon Elastic Compute Cloud(Amazon EC2)는 컨테이너를 실행할 수 있는 AWS 인프라 내의 다른 리소스입니다. 자세한 내용은 Amazon ECS 개발자 가이드를 참조하세요.

목차

컨테이너

컨테이너는 애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 코드와 종속성을 함께 패키징하는 표준 소프트웨어 단위입니다. 개발 환경에서 컨테이너를 실행하고 사전 프로덕션 환경에 배포한 다음, 프로덕션 환경에 배포할 수 있습니다. 개발 환경이 로컬 시스템인지, 사전 프로덕션 환경이 데이터 센터의 물리적 서버인지, 프로덕션 환경이 클라우드의 가상 프라이빗 서버인지에 관계없이 컨테이너가 안정적으로 실행됩니다.

컨테이너 이미지는 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같은 애플리케이션을 실행하는 데 필요한 모든 것이 포함된 가벼운 독립 실행형 소프트웨어 패키지입니다. 컨테이너 이미지는 런타임 시 컨테이너가 됩니다. 애플리케이션과 종속성을 컨테이너화하면 소프트웨어가 배포된 운영 체제 및 인프라에서 제대로 실행되는지를 더 이상 걱정할 필요가 없어 코드에 더 많은 시간을 할애할 수 있습니다.

컨테이너 및 컨테이너 이미지에 대한 자세한 내용은 Docker 문서컨테이너란?을 참조하세요.

Lightsail 컨테이너 서비스 요소

다음은 시작하기 전에 이해해야 하는 Lightsail 컨테이너 서비스의 주요 요소입니다.

Lightsail 컨테이너 서비스

컨테이너 서비스는 Lightsail을 사용할 수 있는 모든 위치에서 생성할 수 있는 Lightsail 컴퓨팅 리소스입니다. AWS 리전 언제든지 컨테이너 서비스를 만들고 삭제할 수 있습니다. 자세한 내용은 Lightsail 컨테이너 서비스 생성 및 Lightsail 컨테이너 서비스 삭제를 참조하십시오.

Lightsail 컨테이너 서비스 다이어그램

컨테이너 서비스 용량(규모 및 성능)

컨테이너 서비스를 처음 생성할 때는 다음과 같은 용량 파라미터를 선택해야 합니다.

  • 규모(Scale) - 컨테이너 워크로드를 실행할 컴퓨팅 노드의 수입니다. 컨테이너 워크로드는 서비스의 컴퓨팅 노드 전체에 복사됩니다. 컨테이너 서비스에 대해 최대 20개의 컴퓨팅 노드를 지정할 수 있습니다. 가용성을 개선하고 용량을 늘리려면 서비스 성능을 좌우하는 노드 수에 따라 규모를 선택하면 됩니다. 컨테이너에 대한 트래픽은 모든 노드에서 로드 밸런싱됩니다.

  • 성능(Power) - 컨테이너 서비스에 있는 각 노드의 메모리 및 vCPU입니다. 선택할 수 있는 성능은 나노(Na), 마이크로(Mi), 스몰(Sm), 미디엄(Md), 라지(Lg), 엑스라지(Xl)이며, 뒤로 갈수록 메모리와 vCPU 용량이 점차 더 커집니다.

컨테이너 서비스 규모를 1보다 크게 지정하면 컨테이너 워크로드가 서비스의 여러 컴퓨팅 노드에 걸쳐 복사됩니다. 예를 들어, 서비스 규모가 3이고 성능이 나노인 경우 각각 512MB의 RAM과 0.25개의 vCPU를 갖춘 3개의 컴퓨팅 리소스에서 컨테이너 워크로드 사본 3개가 실행됩니다. 수신 트래픽은 3개의 리소스 간에 로드 밸런싱됩니다. 컨테이너 서비스에 더 큰 용량을 지정할수록 처리할 수 있는 트래픽의 수가 늘어납니다.

프로비저닝이 부족해지면 언제든지 다운타임 없이 컨테이너 서비스의 성능 및 규모를 동적으로 늘리고, 과다 프로비저닝될 경우 축소할 수 있습니다. Lightsail은 현재 배포와 함께 용량 변경을 자동으로 관리합니다. 자세한 내용은 컨테이너 서비스의 용량 변경을 참조하세요.

요금

컨테이너 서비스의 월별 요금은 성능 요금과 컴퓨팅 노드 수(서비스 규모)를 곱하여 계산됩니다. 예를 들어, 가격이 40 USD이고 컴퓨팅 노드가 3개 규모인 미디엄 성능 서비스를 사용하려면 월 120 USD를 부담해야 합니다. 컨테이너 서비스 요금은 컨테이너 서비스의 사용 및 배포 여부에 관계없이 부과됩니다. 요금이 더 이상 청구되지 않도록 하려면 컨테이너 서비스를 삭제해야 합니다.

각 컨테이너 서비스에는 구성된 용량에 관계없이 매월 500GB의 데이터 전송 할당량이 포함됩니다. 데이터 전송 할당량은 서비스에 대해 어떤 성능 및 규모를 선택하더라도 변함이 없습니다. 할당량을 초과하여 인터넷으로 데이터를 전송할 경우 GB당 0.09 USD부터 시작하는 초과 요금이 부과됩니다 AWS 리전 . 할당량을 초과하여 인터넷에서 전송된 데이터에는 초과 요금이 부과되지 않습니다. 자세한 내용은 Lightsail 요금 페이지를 참조하세요.

배포

Lightsail 컨테이너 서비스에 배포를 생성할 수 있습니다. 배포는 서비스에서 시작하려는 컨테이너 워크로드의 사양 집합입니다.

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

  • 시작할 컨테이너의 이름

  • 컨테이너에 사용할 소스 컨테이너 이미지

  • 컨테이너를 시작할 때 실행할 명령

  • 컨테이너에 적용할 환경 변수

  • 컨테이너에서 열 네트워크 포트

  • 컨테이너 서비스의 기본 도메인을 통해 공개적으로 액세스할 수 있도록 지원하는 배포의 컨테이너

    참고

    배포에 있는 컨테이너 하나만 각 컨테이너 서비스에 공개적으로 액세스할 수 있습니다.

다음 상태 확인 파라미터는 배포가 시작된 후 배포의 퍼블릭 엔드포인트에 적용됩니다.

  • 상태 확인을 수행할 디렉터리 경로입니다.

  • 간격 초, 시간 초과 초, 성공 코드, 정상 임계값 및 비정상 임계값과 같은 고급 상태 확인 설정입니다.

컨테이너 서비스에는 활성 배포가 동시에 하나만 존재할 수 있으며, 배포에는 최대 10개의 컨테이너 항목이 포함될 수 있습니다. 컨테이너 서비스를 생성하면서 배포를 생성하거나 서비스를 설정하여 실행하고 난 후에 생성할 수 있습니다. 자세한 내용은 컨테이너 서비스 배포 생성 및 관리를 참조하세요.

배포 버전

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

컨테이너 이미지 소스

배포를 생성할 때 배포의 각 컨테이너 항목에 소스 컨테이너 이미지를 지정해야 합니다. 배포를 생성한 직후 컨테이너 서비스는 사용자가 지정한 소스에서 이미지를 가져와 컨테이너를 생성하는 데 사용합니다.

이미지는

  • Amazon ECR Public Gallery 또는 기타 퍼블릭 컨테이너 이미지 레지스트리와 같은 퍼블릭 레지스트리. Amazon ECR에 대한 자세한 내용은 Amazon ECR Public User Guide의 What Is Amazon Elastic Container Registry Public?를 참조하세요.

  • 로컬 시스템에서 컨테이너 서비스로 푸시된 이미지. 로컬 시스템에 컨테이너 이미지를 생성하는 경우 해당 이미지를 컨테이너 서비스에 푸시하여 배포를 생성할 때 사용할 수 있습니다. 자세한 내용은 컨테이너 서비스 이미지 생성컨테이너 이미지 푸시 및 관리를 참조하세요.

Lightsail 컨테이너 서비스는 Linux 기반 컨테이너 이미지를 지원합니다. Windows 기반 컨테이너 이미지는 현재 지원되지 않지만 Windows에서 Docker, AWS Command Line Interface (AWS CLI) 및 Lightsail Control (lightsailctl) 플러그인을 실행하여 Linux 기반 이미지를 빌드하고 Lightsail 컨테이너 서비스에 푸시할 수 있습니다.

컨테이너 서비스 ARN

Amazon 리소스 이름 (ARN) 은 리소스를 고유하게 AWS 식별합니다. IAM 정책 및 API 호출과 같이 모든 영역에서 리소스를 명확하게 지정해야 하는 경우 ARN이 필요합니다. AWS

컨테이너 서비스의 ARN을 가져오려면 GetContainerServices Lightsail API 작업을 사용하고 파라미터를 사용하여 컨테이너 서비스의 이름을 지정합니다. serviceName 컨테이너 서비스 ARN은 다음 예와 같이 해당 작업의 결과에 나열됩니다. 자세한 내용은 Amazon GetContainerServicesLightsail API 레퍼런스를 참조하십시오.

다음과 같은 결과가 출력됩니다.

{ "containerServices": [ { "containerServiceName": "container-service-1", "arn": "arn:aws:lightsail: :111122223333:ContainerService/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "createdAt": "2024-01-01T00:00:00+00:00", "location": { "availabilityZone": "all", "regionName": "us-west-2" }, ..... }

퍼블릭 엔드포인트 및 기본 도메인

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

컨테이너 서비스의 기본 도메인을 사용하거나 자체 사용자 지정 도메인(등록된 도메인 이름)을 사용할 수 있습니다. 컨테이너 서비스와 함께 사용자 지정 도메인을 사용하는 방법에 대한 자세한 내용은 컨테이너 서비스용 사용자 지정 도메인 사용 설정 및 관리를 참조하세요.

프라이빗 도메인

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

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

사용자 지정 도메인 및 SSL/TLS 인증서

기본 도메인을 사용하는 대신 컨테이너 서비스와 함께 최대 4개의 사용자 지정 도메인을 사용할 수 있습니다. 예를 들어, 사용자 지정 도메인에 대한 트래픽(예: example.com)을 퍼블릭 엔드포인트로 레이블이 지정된 배포의 컨테이너로 연결할 수 있습니다.

서비스와 함께 사용자 지정 도메인을 사용하려면 먼저 사용할 도메인에 대한 SSL/TLS 인증서를 요청해야 합니다. 그런 다음 도메인의 DNS에 CNAME 레코드 집합을 추가하여 SSL/TLS 인증서를 검증해야 합니다. SSL/TLS 인증서가 검증되면 유효한 SSL/TLS 인증서를 서비스에 연결하여 컨테이너 서비스에서 사용자 지정 도메인을 사용하도록 설정합니다. 자세한 내용은 Lightsail 컨테이너 서비스를 위한 SSL/TLS 인증서 생성, Lightsail 컨테이너 서비스에 대한 SSL/TLS 인증서 유효성 검사 및 Lightsail 컨테이너 서비스를 위한 사용자 지정 도메인 활성화 및 관리를 참조하십시오.

컨테이너 로그

컨테이너 서비스의 모든 컨테이너는 액세스할 수 있는 로그를 생성하여 컨테이너의 운영을 진단합니다. 이 로그가 컨테이너 내부에서 실행되는 프로세스의 stdoutstderr 스트림을 제공합니다. 자세한 내용은 컨테이너 서비스 지표 확인을 참조하세요.

지표

컨테이너 서비스의 지표를 모니터링하여 과도한 활용으로 인해 발생할 수 있는 문제를 진단할 수 있습니다. 또한, 지표를 모니터링하여 서비스가 과소 또는 과다 프로비저닝되었는지 확인할 수도 있습니다. 자세한 내용은 컨테이너 서비스 지표 확인을 참조하세요.

Lightsail 컨테이너 서비스 사용

로컬 시스템에서 서비스로 컨테이너 이미지를 푸시하고 배포에 사용하려는 경우 Lightsail 컨테이너 서비스를 관리하는 일반적인 단계는 다음과 같습니다.

  1. Lightsail 계정에 컨테이너 서비스를 생성합니다. 자세한 내용은 Lightsail 컨테이너 서비스 생성을 참조하십시오.

  2. 로컬 시스템에 자체 컨테이너 이미지를 생성하는 데 필요한 소프트웨어를 설치하고 이를 Lightsail 컨테이너 서비스로 푸시합니다. 자세한 내용은 다음과 같은 가이드를 참조하세요.

  3. 컨테이너를 구성하고 시작하는 컨테이너 서비스에서 배포를 생성합니다. 자세한 내용은 Lightsail 컨테이너 서비스의 배포 생성 및 관리를 참조하십시오.

  4. 컨테이너 서비스의 이전 배포를 확인합니다. 이전 배포 버전을 사용하여 새 배포를 생성할 수 있습니다. 자세한 내용은 Lightsail 컨테이너 서비스의 배포 버전 보기 및 관리를 참조하십시오.

  5. 컨테이너 서비스의 컨테이너 로그를 확인합니다. 자세한 내용은 Lightsail 컨테이너 서비스의 컨테이너 로그 보기를 참조하십시오.

  6. 컨테이너와 함께 사용하려는 도메인에 대한 SSL/TLS 인증서를 생성합니다. 자세한 내용은 Lightsail 컨테이너 서비스를 위한 SSL/TLS 인증서 생성을 참조하십시오.

  7. 도메인의 DNS에 레코드를 추가하여 SSL/TLS 인증서를 검증합니다. 자세한 내용은 Lightsail 컨테이너 서비스의 SSL/TLS 인증서 유효성 검사를 참조하십시오.

  8. 컨테이너 서비스에 유효한 SSL/TLS 인증서를 연결하여 사용자 지정 도메인을 사용하도록 설정합니다. 자세한 내용은 Lightsail 컨테이너 서비스의 사용자 지정 도메인 활성화 및 관리를 참조하십시오.

  9. 컨테이너 서비스의 사용률 지표를 모니터링합니다. 자세한 내용은 컨테이너 서비스 지표 확인을 참조하세요.

  10. (선택 사항) 성능 사양을 높여 컨테이너 서비스의 용량을 수직적으로, 규모 사양을 늘려 용량을 수평적으로 확장할 수 있습니다. 자세한 내용은 Lightsail 컨테이너 서비스의 용량 변경을 참조하십시오.

  11. 컨테이너 서비스를 사용하지 않는 경우 월별 요금이 발생하지 않도록 이를 삭제합니다. 자세한 내용은 Lightsail 컨테이너 서비스 삭제를 참조하십시오.

배포 시 공용 레지스트리의 컨테이너 이미지를 사용하려는 경우 Lightsail 컨테이너 서비스를 관리하는 일반적인 단계는 다음과 같습니다.

  1. Lightsail 계정에 컨테이너 서비스를 생성합니다. 자세한 내용은 Lightsail 컨테이너 서비스 생성을 참조하십시오.

  2. 퍼블릭 레지스트리의 컨테이너 이미지를 사용하려면 Amazon ECR Public Gallery와 같은 퍼블릭 레지스트리에서 컨테이너 이미지를 찾습니다. Amazon ECR에 대한 자세한 내용은 Amazon ECR Public User Guide의 What Is Amazon Elastic Container Registry Public?를 참조하세요.

  3. 컨테이너를 구성하고 시작하는 컨테이너 서비스에서 배포를 생성합니다. 자세한 내용은 Lightsail 컨테이너 서비스의 배포 생성 및 관리를 참조하십시오.

  4. 컨테이너 서비스의 이전 배포를 확인합니다. 이전 배포 버전을 사용하여 새 배포를 생성할 수 있습니다. 자세한 내용은 Lightsail 컨테이너 서비스의 배포 버전 보기 및 관리를 참조하십시오.

  5. 컨테이너 서비스의 컨테이너 로그를 확인합니다. 자세한 내용은 Lightsail 컨테이너 서비스의 컨테이너 로그 보기를 참조하십시오.

  6. 컨테이너와 함께 사용하려는 도메인에 대한 SSL/TLS 인증서를 생성합니다. 자세한 내용은 Lightsail 컨테이너 서비스를 위한 SSL/TLS 인증서 생성을 참조하십시오.

  7. 도메인의 DNS에 레코드를 추가하여 SSL/TLS 인증서를 검증합니다. 자세한 내용은 Lightsail 컨테이너 서비스의 SSL/TLS 인증서 유효성 검사를 참조하십시오.

  8. 컨테이너 서비스에 유효한 SSL/TLS 인증서를 연결하여 사용자 지정 도메인을 사용하도록 설정합니다. 자세한 내용은 Lightsail 컨테이너 서비스의 사용자 지정 도메인 활성화 및 관리를 참조하십시오.

  9. 컨테이너 서비스의 사용률 지표를 모니터링합니다. 자세한 내용은 컨테이너 서비스 지표 확인을 참조하세요.

  10. (선택 사항) 성능 사양을 높여 컨테이너 서비스의 용량을 수직적으로, 규모 사양을 늘려 용량을 수평적으로 확장할 수 있습니다. 자세한 내용은 Lightsail 컨테이너 서비스의 용량 변경을 참조하십시오.

  11. 컨테이너 서비스를 사용하지 않는 경우 월별 요금이 발생하지 않도록 이를 삭제합니다. 자세한 내용은 Lightsail 컨테이너 서비스 삭제를 참조하십시오.