참고:
- 이 사용지침서에서는 Oracle Cloud에 접근해야 합니다. 무료 계정에 등록하려면 Oracle Cloud Infrastructure Free Tier 시작하기를 참조하십시오.
- Oracle Cloud Infrastructure 자격 증명, 테넌시 및 구획에 대한 예제 값을 사용합니다. 실습을 마치면 해당 값을 클라우드 환경과 관련된 값으로 대체합니다.
OCI 컨테이너 인스턴스를 사용하여 OCI 컴퓨트 인스턴스에 대한 시작 및 정지 일정을 잡습니다.
소개
OCI(Oracle Cloud Infrastructure) 컨테이너 인스턴스는 서버 관리 없이 빠르고 쉽게 컨테이너를 실행할 수 있는 서버 미사용 컴퓨트 서비스입니다.
OCI 컴퓨트 서비스를 사용하여 애플리케이션을 배치 및 실행할 베어메탈 컴퓨트 또는 VM(가상 머신) 인스턴스를 생성할 수 있습니다. OCI 컴퓨트를 사용하면 컴퓨트 호스트(인스턴스)를 프로비전하고 관리할 수 있습니다.
이 사용지침서에서는 컨테이너 인스턴스를 사용하여 구획에서 컴퓨트 인스턴스의 라이프사이클 상태를 관리하는 방법의 예를 설명합니다. 이를 테넌시로 확장할 수도 있습니다. crontab 작업과 같이 컴퓨팅 인스턴스의 중지/시작을 자동으로 예약하는 방법이 필요한 경우가 있습니다. 예를 들어 낮에는 일부 컴퓨트 인스턴스를 실행하고 밤에는 중지하여 비용을 절감해야 합니다. 이러한 종류의 "crontab" 작업은 OCI 컨테이너 인스턴스 서비스를 사용하여 생성할 수 있습니다.
기본적으로 컨테이너 인스턴스는 Python 코드를 실행하여 구획의 각 컴퓨트 인스턴스에서 루프 내 특정 자유형 태그를 찾습니다. 특정 태그를 찾으면 태그 값을 현재 시간(스크립트가 실행될 때)과 비교하여 컴퓨트 인스턴스가 실행 중 또는 정지됨 상태여야 하는지 여부를 설정하고 컴퓨트 인스턴스를 정지하거나 시작하기로 결정합니다.
목표
- Docker 이미지 빌드
- 고유 이미지에서 컨테이너 인스턴스 구축
- Oracle Cloud Infrastructure Registry 작업
- 인수를 ENTRYPOINT 컨테이너에 전달
필요 조건
- Docker, 이미지, 레지스트리에 대한 지식
- 동적 그룹 및 정책을 생성할 수 있는 사용자 권한입니다. 이를 통해 컨테이너 인스턴스가 컴퓨트 인스턴스를 관리할 수 있습니다. 사용자에게 이러한 권한이 없을 경우 테넌시 관리자가 동적 그룹 및 정책을 생성할 수 있습니다.
- 이 자습서를 실행하는 컴퓨터에서 실행되는 Docker입니다.
- Oracle Cloud Infrastructure Registry에서 이미지(푸시, 풀, 태그) 작업을 위한 사용자 권한과 Oracle Cloud Infrastructure Registry에 로그인하기 위해 생성된 토큰입니다.
- Oracle Cloud Infrastructure Registry에 이미지 푸시를 익힙니다.
작업 1: 컨테이너 인스턴스가 컴퓨트 인스턴스를 관리할 수 있도록 동적 그룹을 생성합니다.
-
정책을 사용하여 실행 중인 컨테이너 인스턴스가 구획의 컴퓨트 인스턴스를 관리하도록 허용해야 합니다.
-
다음 명령과 같이 동적 그룹에 대한 일치 규칙을 생성합니다.
ALL {resource.type = 'computecontainerinstance', resource.compartment.id = 'ocid1.compartment.oc1…… '}
작업 2: 동적 그룹의 리소스가 컴퓨트 인스턴스를 관리할 수 있도록 허용하는 정책을 생성합니다.
-
다음 정책을 생성합니다.
allow dynamic-group <dynamic group name> to manage instances in compartment <compartment name>
작업 3: Docker 이미지 빌드
-
로컬 폴더를 생성합니다.
-
files.zip의 컨텐츠를 추출하고 모든 파일을 로컬 폴더에 복사합니다.
-
requirements.txt파일에는 설치할 Python 패키지가 포함되어 있습니다. 지금은 oci 패키지만 필요합니다. -
Docker를 사용하여 이미지를 작성합니다.
docker build -t start_stop_compute:latest .
작업 4: Oracle Cloud Infrastructure Registry에 이미지 업로드
-
Oracle Cloud Infrastructure Registry에 이미지를 푸시하기 전에 로그인하십시오. 자세한 내용은 Oracle Cloud Infrastructure Registry에 로그인을 참조하십시오.
-
다음 예와 같이 방금 만든 이미지에 태그를 지정합니다. 테넌시/Oracle Cloud Infrastructure Registry 저장소에 대한 이미지 식별자 및 대상 태그 설정 방법에 대한 자세한 내용은 Docker CLI를 사용하여 이미지 푸시를 참조하십시오.
docker tag start_stop_compute:latest fra.ocir.io/orasenatdpltintegration03/fvassrepo1/start_stop_compute:latest -
Oracle Cloud Infrastructure Registry에 이미지를 푸시합니다.
docker push fra.ocir.io/orasenatdpltintegration03/fvassrepo1/start_stop_compute:latest
작업 5: 컴퓨트 인스턴스에서 자유 형식 태그 정의
-
이 자습서에 제공된 코드를 사용하는 경우 자유 형식 태그의 이름을
myschedule로 지정해야 합니다. 그 이유는 컨테이너 내에서 실행되는 Python 코드가myschedule이라는 자유 형식 태그(컴퓨트 메타데이터)를 검색하기 때문입니다. -
이 자습서에서 제공된 방식으로 컴퓨트 인스턴스를 관리하려면 각 컴퓨트 인스턴스에
myschedule라는 자유 형식 태그를 추가해야 합니다. -
자유 형식 태그의 값은 다음 섹션에 표시된 것과 같아야 합니다. 여기서 "s"는 STOPPED를 의미하고 "r"은 RUNNING을 의미합니다.
s,s,s,s,s,s,s,s,r,r,r,r,r,r,r,r,r,s,s,s,s,s,s,s -
목록의 각 요소는 자정(00~01 AM)으로 시작하는 하루 중 한 시간에 해당합니다. 따라서 요소 0은 하루 중 00~01 AM 사이의 간격에 해당하고 "s"는 인스턴스를 정지해야 함을 의미합니다.
myschedule[0] from 00 to 01 AM => s means instance should be stopped myschedule[8] from 08 to 09 AM => r means instance should be running -
위의 세부 정보를 기준으로 인스턴스는 다음 절과 같이 실행되어야 합니다.
00-08 stopped 08-17 running 17-00 stopped
작업 6: 컨테이너 인스턴스 생성
-
OCI 웹 콘솔의 워크플로우에 따라 새 컨테이너 인스턴스를 생성합니다.
-
작업 4에서 Oracle Cloud Infrastructure Registry로 푸시한 이미지를 선택하십시오.
-
다음 이미지에 표시된 코드를 사용하여 컴퓨트 인스턴스를 관리할 구획의 OCID를 시작점 인수로 전달합니다.

관련 링크
승인
- Francisc Vass(Principal Cloud Architect)
추가 학습 자원
docs.oracle.com/learn에서 다른 실습을 탐색하거나 Oracle Learning YouTube 채널에서 더 많은 무료 학습 콘텐츠에 액세스하십시오. 또한 Oracle Learning Explorer가 되려면 education.oracle.com/learning-explorer을 방문하십시오.
제품 설명서는 Oracle Help Center를 참조하십시오.
Use OCI Container Instances to schedule start and stop for OCI Compute Instances
F79241-01
March 2023
Copyright © 2023, Oracle and/or its affiliates.