https://docs.oracle.com/ja-jp/iaas/Content/Compute/Tasks/autoscalinginstancepools.htm#time
スケジュールベースの自動スケーリングで、Computeインスタンス起動停止を自動化
スケジュールベースの自動スケーリング・ポリシーで可能な実行アクション
・プール・サイズのスケーリング
・全インスタンスのライフサイクル状態の変更
-- 1. インスタンス作成(OL9)
oci compute instance launch \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--availability-domain OEIw:US-ASHBURN-AD-1 \
--subnet-id ocid1.subnet.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--assign-public-ip true \
--boot-volume-size-in-gbs 50 \
--display-name vm01 \
--fault-domain FAULT-DOMAIN-1 \
--image-id ocid1.image.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--shape VM.Standard.E2.1 \
--ssh-authorized-keys-file "$HOME/.ssh/id_rsa.pub"
oci compute instance list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci compute instance terminate \
--instance-id ocid1.instance.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
-- 2. インスタンス構成の作成
oci compute-management instance-configuration create-from-instance \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--instance-id ocid1.instance.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--display-name ic01
oci compute-management instance-configuration list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci compute-management instance-configuration get \
--instance-configuration-id ocid1.instanceconfiguration.oc1.iad.000000000000000000000000000000000000000000000000000000000000
oci compute-management instance-configuration delete \
--instance-configuration-id ocid1.instanceconfiguration.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
-- 3. インスタンス・プールの作成
oci compute-management instance-pool create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--instance-configuration-id ocid1.instanceconfiguration.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--placement-configurations '[
{
"availability-domain": "OEIw:US-ASHBURN-AD-1",
"fault-domains": null,
"primary-subnet-id": null,
"primary-vnic-subnets": {
"ipv6-address-ipv6-subnet-cidr-pair-details": null,
"is-assign-ipv6-ip": null,
"subnet-id": "ocid1.subnet.oc1.iad.000000000000000000000000000000000000000000000000000000000000"
},
"secondary-vnic-subnets": null
}
]' \
--size 0 \
--display-name ip01 \
--instance-display-name-formatter 'ip01insntace${launchCount}' \
--instance-hostname-formatter 'ip01insntace${launchCount}'
oci compute-management instance-pool list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci compute-management instance-pool get \
--instance-pool-id ocid1.instancepool.oc1.iad.000000000000000000000000000000000000000000000000000000000000
oci compute-management instance-pool terminate \
--instance-pool-id ocid1.instancepool.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force
-- 4. Computeインスタンスのアタッチ
oci compute-management instance-pool-instance attach \
--instance-pool-id ocid1.instancepool.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--instance-id ocid1.instance.oc1.iad.000000000000000000000000000000000000000000000000000000000000
-- 5. 自動スケーリング構成の作成
oci autoscaling configuration create --generate-full-command-json-input
oci autoscaling configuration create \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--policies '[
{
"capacity": null,
"display-name": "asp01",
"execution-schedule": {
"expression": "0 35 23 * * ? *",
"timezone": "UTC",
"type": "cron"
},
"is-enabled": true,
"policy-type": "scheduled",
"resource-action": {
"action": "STOP",
"action-type": "power"
}
},
{
"capacity": null,
"display-name": "asp02",
"execution-schedule": {
"expression": "0 40 23 * * ? *",
"timezone": "UTC",
"type": "cron"
},
"is-enabled": true,
"policy-type": "scheduled",
"resource-action": {
"action": "START",
"action-type": "power"
}
}
]' \
--resource '{
"id": "ocid1.instancepool.oc1.iad.000000000000000000000000000000000000000000000000000000000000",
"type": "instancePool"
}' \
--cool-down-in-seconds 300 \
--display-name asc01 \
--is-enabled true
oci autoscaling configuration list \
--compartment-id ocid1.compartment.oc1..000000000000000000000000000000000000000000000000000000000000 \
--query 'data.{"display-name":"display-name","id":"id","lifecycle-state":"lifecycle-state"}' \
--output table
oci autoscaling configuration get \
--auto-scaling-configuration-id ocid1.autoscalingconfiguration.oc1.iad.000000000000000000000000000000000000000000000000000000000000
oci autoscaling configuration delete \
--auto-scaling-configuration-id ocid1.autoscalingconfiguration.oc1.iad.000000000000000000000000000000000000000000000000000000000000 \
--force