前の記事で、VMware Tanzu Application Service for VMs (TAS) をAWSにインストールをしました。
この記事では、Spot Instanceを使用して、EC2のインスタンス使用料金を大幅に下げる方法を紹介します。
目次
VM Extensionの作成
TASで使用するVMでSpot Instanceを使うかどうかはVM Extensionで設定できます。
vm-extension-spot-instance.ymlにspot instanceを使用する定義を記述します。spot_bid_priceはSpot Instanceのセリの最高価格(USD/hour)です。ここでは$1.0に設定しておきます。
TASで使用するVMでは$1.0には到達しないので、基本的にどんな価格でも競り落とす想定です。
cat <<EOF > vm-extension-spot-instance.yml
---
vm-extension-config:
name: spot-instance
cloud_properties:
spot_bid_price: 1.0
spot_ondemand_fallback: true
---
EOF
VM ExtensionをOps Managerに登録します。
om --env env.yml create-vm-extension -c vm-extension-spot-instance.yml
次にTASの各VMにこのVM Extensionを適用する設定をadditional-vm-extensions-cf.ymlに記述します。
使用する全てのVM Extensionを集約して設定する必要があることに気をつけてください。
cat <<EOF > additional-vm-extensions-cf.yml
---
product-name: cf
resource-config:
compute:
additional_vm_extensions:
- spot-instance
control:
additional_vm_extensions:
- ssh-lb-security-groups
- cloud-controller-iam
- spot-instance
database:
additional_vm_extensions:
- spot-instance
router:
additional_vm_extensions:
- web-lb-security-groups
- spot-instance
---
EOF
この設定をOps Managerに反映します。
om --env env.yml configure-product -c additional-vm-extensions-cf.yml
Apply Changes
Ops Managerのダッシュボードから"REVIEW PENDING CHANGES"をクリックします。
"BOSH Director"と"Small Footprint VMware Tanzu Application Service"それぞれの"SEE CHANGES"を確認してください。
次のようなDiffになっていてればOKです。
確認したら元のページに戻って"APPLY CHANGES"ボタンをクリックしてください。
設定が反映されたら、EC2のインスタンス一覧からTASのVMの"インスタンスのライフラサイクル"がspotになっていることを確認してください。
またスポットリクエスト一覧からも4つのリクエストを確認することができます。
2024/7/1のタイミングでは、以下の金額になっています。
| VM Type | On-Demand Price | Spot Price |
|---|---|---|
| r5a.large | $0.1370 | $0.0484 |
| t3a.micro | $0.0122 | $0.0042 |
| t3a.medium | $0.0490 | $0.0170 |
約65%のコスト削減になります。
もし、Spot InstanceのVMが削除された場合、BOSH Directorによって、再度セリに参加して、新しい価格でVMを自動作成します。