Dev > PaaS > CloudFoundry > PCF

前の記事で、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"を確認してください。

image

次のようなDiffになっていてればOKです。

image image

確認したら元のページに戻って"APPLY CHANGES"ボタンをクリックしてください。

設定が反映されたら、EC2のインスタンス一覧からTASのVMの"インスタンスのライフラサイクル"がspotになっていることを確認してください。

image

またスポットリクエスト一覧からも4つのリクエストを確認することができます。

image

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を自動作成します。

Found a mistake? Update the entry.
Share this article: