참고:

컨테이너 인스턴스 서비스를 사용하여 OCI에서 컨테이너 워크로드 관리

소개

OCI(Oracle Cloud Infrastructure)의 컨테이너 인스턴스는 애플리케이션 컨테이너를 실행하는 새롭고 간소화된 방법을 제공합니다. 서버리스 컴퓨트 서비스로 인프라를 관리하지 않고도 컨테이너를 즉시 실행할 수 있습니다.

컨테이너 인스턴스는 서버 또는 기타 인프라를 계획하고 관리할 필요 없이 OCI에서 컨테이너 워크로드를 빠르게 시작할 수 있는 단순하고 안전한 방법을 제공합니다. 이 서비스는 인프라에 대한 프로비저닝, 라이프사이클 관리, 패치 적용 및 업그레이드를 관리하므로 사용자가 애플리케이션 개발에 집중할 수 있습니다. 컨테이너 인스턴스는 OCI 리소스로, 하나 이상의 컨테이너를 실행하는 데 사용할 수 있는 서비스에서 제공됩니다.

컨테이너 인스턴스 생성 환경은 간단합니다. 사용자는 컨테이너 인스턴스 내에서 실행하려는 컨테이너 이미지와 함께 CPU 코어 및 메모리 수를 선택할 수 있습니다. 일부 컨테이너가 리소스를 독점하지 못하도록 컨테이너 인스턴스 내의 개별 컨테이너를 제한하고, 유예 컨테이너 종료를 관리하고, 사용자가 실행하려는 컨테이너에 대해 환경 변수를 제공하고 매개변수를 대체하는 고급 컨트롤도 있습니다. 컨테이너 이미지는 OCI Container Image Registry(OCIR)를 포함한 모든 컨테이너 이미지 레지스트리, ghcr, quay.io, dockerhub 또는 기타 전용 레지스트리 등 타사 레지스트리에서 가져올 수 있습니다. 컨테이너 인스턴스가 실행되면 공용 또는 전용 IP 주소를 할당할 수 있으며 애플리케이션을 사용자에게 표시할 수 있습니다. 컨테이너 인스턴스 서비스는 즉시 사용 가능한 로깅 및 모니터링 기능도 제공합니다. 패치 적용 및 업그레이드를 포함한 모든 인프라 관리는 사용자나 워크로드에 대한 부담 없이 서비스에 의해 투명하게 처리됩니다.

이 사용지침서에서는 컨테이너 인스턴스 서비스를 시작하는 방법과 Oracle Cloud Infrastructure에서 컨테이너 워크로드를 쉽고 빠르게 실행하고 관리하기 위한 다양한 제어를 살펴봅니다.

목표

필요 조건

작업 1: 컨테이너 인스턴스 생성 및 구성

이 자습서에서는 컨테이너 인스턴스에서 WordPress 및 MySQL 컨테이너를 모두 실행하여 완전히 작동하는 WordPress 사이트를 생성해야 합니다.

  1. 개발자 서비스, 컨테이너 및 아티팩트, 컨테이너 인스턴스로 이동합니다.

    아래 표시된 컨테이너 인스턴스 서비스 페이지에는 현재 실행 중인 컨테이너 인스턴스가 표시되며 여기에서 새 컨테이너 인스턴스도 생성할 수 있습니다.

    컨테이너 인스턴스 홈

  2. 컨테이너 인스턴스 생성을 눌러 컨테이너 인스턴스 생성 마법사를 엽니다.

    생성 마법사 개요

    참고: 컨테이너 인스턴스를 생성할 때는 먼저 배치, 모양 및 네트워킹 옵션과 같은 몇 가지 기본 매개변수를 설정합니다. 그런 다음 컨테이너 인스턴스 내에서 실행할 컨테이너를 하나 이상 선택하고 선택적으로 컨테이너에 대한 매개변수를 설정합니다.

    • 먼저 이 컨테이너 인스턴스의 이름을 지정하고 해당하는 구획을 선택하십시오. 이 예에서는 컨테이너 인스턴스 이름을 Wordpress로 지정합니다.

      컨테이너 인스턴스 이름 지정

    • 배치 옵션에는 컨테이너 인스턴스를 배치할 가용성 도메인과 선택한 결함 도메인을 선택하는 옵션이 포함됩니다. 구성을 선택하면 지원되는 컴퓨트 플랫폼이 제공되며, 컨테이너에 필요한 CPU 코어와 메모리의 양을 선택할 수 있습니다. 이 기능을 사용하면 비용을 최적화하면서 CPU 바인드 또는 메모리 바인드된 워크로드에 대해 컨테이너 인스턴스의 크기를 유연하게 조정할 수 있습니다. OCPU 2개 및 16GB 메모리를 선택합니다.

      CPU 선택

    • 네트워킹 구성을 사용하면 컨테이너 인스턴스를 설정하려는 VCN 및 서브넷과 같은 네트워킹 옵션을 선택할 수 있습니다. 선택적으로 공용 IP 주소를 컨테이너 인스턴스에 지정하여 애플리케이션을 공용으로 표시할 수도 있습니다. 애플리케이션이 수신하는 포트는 서브넷의 보안 목록 또는 NSG(네트워크 보안 그룹)에서 연결을 수신할 수 있도록 허용해야 합니다.

      네트워킹

    • 고급 옵션을 사용하면 컨테이너 인스턴스가 종료될 때 컨테이너 인스턴스 내의 컨테이너가 정상적으로 종료되도록 지정된 시간인 정상 종료 시간 초과를 설정할 수 있습니다. 컨테이너 다시 시작 정책을 설정하여 컨테이너 종료/종료 컨테이너를 자동으로 다시 시작하거나 컨테이너 종료 상태의 다시 시작 정책을 기반으로 할 수도 있습니다.

    고급

  3. 다음을 누릅니다. 다음 단계에서는 컨테이너 인스턴스에서 실행할 컨테이너를 선택하고 구성합니다.

  4. 먼저 컨테이너 구성 섹션에서 첫번째 컨테이너를 정의합니다. 이 예에서는 WordPress 컨테이너로 시작할 수 있습니다. 컨테이너 이름을 wordpress로 지정합니다.

    이름 wp 컨테이너

  5. 이미지 선택을 눌러 이미지 선택 대화상자를 엽니다.

    WP 이미지 선택

    이미지 선택 대화상자에는 OCIR 또는 외부 레지스트리에서 이미지를 선택할 수 있는 옵션이 있습니다. WordPress의 공식 이미지는 DockerHub에 게시되고, DockerHub은 기본 외부 레지스트리입니다. 따라서 외부 레지스트리 탭을 선택하고 이미지 이름에 wordpress를 입력합니다. image tag는 선택사항이며 기본값은 latest입니다. 이 경우 최신 워드 프레스 이미지가 필요하므로 비워 두고 서비스가 기본값을 latest로 설정합니다.

    또한 teh URL 및 인증 정보를 제공할 수 있는 다른 외부 레지스트리를 볼 수 있습니다. 레지스트리 URL에 연결할 수 있으면 컨테이너 인스턴스 서비스는 OCI(Open Container Initiative) 호환 레지스트리에서 이미지를 추출할 수 있습니다.

  6. 그런 다음 이 이미지 설명서이 이미지를 사용하는 방법 섹션에 설명된 대로 일부 환경 변수를 설정해 보겠습니다. 다음 변수와 값이 설정됩니다.

    변수
    WORDPRESS_DB_HOST 127.0.0.1
    WORDPRESS_DB_USER 워드프레스
    WORDPRESS_DB_PASSWORD 워드프레스
    WORDPRESS_DB_NAME 워드프레스

    변수 세트

    • 컨테이너 인스턴스 내에 컨테이너가 여러 개 있으면 컨테이너 인스턴스에서 사용할 수 있는 CPU 및 메모리 같은 컴퓨트 리소스를 공유합니다. 또한 네트워킹 네임스페이스를 공유합니다. 따라서 WordPress 컨테이너가 localhost을 통해 MySQL 컨테이너 또는 위에 구성된 루프백 주소 127.0.0.1에 연결할 수 있습니다.

    • 한 컨테이너가 이러한 리소스를 너무 많이 사용하고 컨테이너 인스턴스에서 다른 컨테이너를 사용하지 못하도록 하려면 각 컨테이너에 사용 가능한 리소스를 제한하면 됩니다. ENTRYPOINT, CMDWORKDIR와 같은 일부 이미지 기본값을 대체할 수도 있습니다. 이러한 옵션은 고급 옵션 아래의 각 컨테이너에 사용할 수 있습니다. 이 컨테이너의 고급 옵션을 확장하고 CPU 코어의 50% 이하를 소비하도록 WordPress 컨테이너를 설정할 수 있습니다.

      WP 고급 옵션

    • WordPress를 사용하려면 데이터베이스도 작동해야 합니다. 이 자습서에서는 MySQL 데이터베이스를 컨테이너 인스턴스 내의 두 번째 컨테이너로 실행합니다. 실제 운용 중인 배치의 경우 MySQL 데이터베이스 서비스와 같은 데이터베이스 서비스를 사용하는 것이 좋습니다.

  7. MySQL 컨테이너로 시작하려면 + 다른 컨테이너를 눌러 컨테이너 인스턴스에 컨테이너를 하나 더 추가합니다. 이전과 마찬가지로 컨테이너 이름 지정부터 시작하여 이번에는 "mysql"이라는 이름을 지정합니다.

  8. 그런 다음 이미지 선택을 눌러 이미지 세부정보를 제공합니다. Oracle은 DockerHub에 공식 MySQL 이미지를 게시하며 이 자습서에는 MySQL 8.0.31 릴리스를 사용해야 합니다.

    MySQL 이미지 선택

    • 다음 환경 변수를 설정하여 데이터베이스를 초기화합니다.

      변수
      MYSQL_ROOT_PASSWORD 워드프레스미스
      MYSQL_DATABASE 워드프레스
      MYSQL_USER 워드프레스
      MYSQL_PASSWORD 워드프레스

      MySQL 매개변수 설정

    • WordPress 컨테이너와 마찬가지로 컨테이너 스로틀을 설정하고 MySQL 컨테이너의 ENTRYPOINT 인수를 대체하도록 시작 매개변수를 추가로 설정합니다. --default-authentication-plugin=mysql_native_password 인수를 전달하여 데이터베이스 비밀번호 인증 플러그인을 사용으로 설정합니다.

      MySQL ENTRYPOINT 우선 적용 설정

  9. 다음을 눌러 모든 정보를 검토하고 생성을 눌러 컨테이너 인스턴스를 생성합니다. 방금 구성한 컨테이너 인스턴스에는 두 개의 컨테이너가 있습니다. 각 컨테이너는 컨테이너 인스턴스에서 사용 가능한 CPU와 메모리의 50%만 차지하도록 조절되며, WordPress 및 MySQL에 대해 공용 이미지를 선택하여 WordPress 사이트를 만들었습니다. 각 사이트는 환경 변수를 사용하여 컨테이너를 초기화하도록 구성되었습니다.

컨테이너 인스턴스는 몇 초 내에 시작되며 워크로드가 현재 가동 중입니다. 컨테이너 인스턴스에 공용 IP 주소를 지정하도록 선택했기 때문에 이를 사용하여 인터넷의 WordPress 사이트에 연결할 수 있습니다. 컨테이너 인스턴스에 대한 개요 페이지에 표시된 공용 IP 주소입니다.

컨테이너 인스턴스 라이브

브라우저에서 IP 주소를 방문하면 인터넷의 라이브 WordPress 웹 사이트로 이동합니다.

사이트가 라이브임

승인

추가 학습 자원

docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.

제품 설명서는 Oracle Help Center를 참조하십시오.