このトピックでは、Elastic Compute Service (ECS) コンソール、API操作、またはTerraformを使用してプリエンプティブルインスタンスを作成する方法について説明します。
使用上の注意
プリエンプティブインスタンスを作成して使用するには、次の点に留意してください。
合理的な入札をします。
あなたが入札をするとき、市場価格の変動を考慮に入れてください。 妥当な入札価格は、プリエンプティブルインスタンスを作成する可能性を高め、価格の変更によりインスタンスがリリースされる可能性を低くします。 ワークロードの要件に基づいて入札価格を提出する必要があります。
説明プリエンプティブルインスタンスの入札価格を決定できない場合は、購入時の市場価格を入札価格として使用することを推奨します。
必要なソフトウェアの設定を含むイメージを使用して、インスタンスの作成後にインスタンスを起動できるようにします。 インスタンスのユーザーデータを使用して、インスタンスの起動時にコマンドを実行することもできます。 詳細については、「ECSインスタンスのユーザーデータの概要」をご参照ください。
プリエンプティブルインスタンスのリリースの影響を受けないストレージメディアに重要なデータを保存することを推奨します。
ストレージメディアには、個別に作成されたクラウドディスク、Object Storage Service (OSS) バケット、およびApsaraDB RDSインスタンスが含まれます。
グリッド、Hadoop、またはキューベースのアーキテクチャを使用してタスクをより小さなタスクに分割するか、チェックポイントを使用して計算結果を保存します。
ECSからのインスタンスリリース通知を確認して、プリエンプティブルインスタンスのステータスを監視します。
ECS によってプリエンプティブインスタンスがリリースされる 5 分前に、インスタンスメタデータが更新されます。 インスタンスのメタデータを確認することで、プリエンプティブインスタンスのステータスを毎分取得できます。 詳細については、「ECSインスタンスメタデータの概要」をご参照ください。
従量課金インスタンスでアプリケーションを実行し、インスタンスをリリースして、アプリケーションが実行できるかどうかを確認します。
インスタンスのリリース時に設定が自動的に変更されます。
手順
ECSコンソールでプリエンプティブルインスタンスを作成する
ECSコンソールのインスタンス購入ページに移動します。
[カスタム起動] タブをクリックします。
ビジネス要件に基づいて、プロンプトに従って設定を構成します。
次のパラメータに注意してください。 その他のパラメーターについては、「ウィザードを使用したインスタンスの作成」をご参照ください。
課金方法 : [プリエンプティブルインスタンス] を選択します。
インスタンス使用期間:
1時間: プリエンプティブルインスタンスの1時間の保護期間を指定します。 インスタンスは、インスタンス作成後1時間以内に自動的にリリースされません。 期間が終了すると、システムは5分ごとにインスタンスタイプの在庫と市場価格をチェックして、インスタンスをリリースするかどうかを判断します。
None: プリエンプティブルインスタンスの保護期間を指定しません。 保護期間のないプリエンプティブルインスタンスは、保護期間のあるプリエンプティブルインスタンスよりも費用対効果が高くなります。
インスタンスあたりの最高価格
自動入札を使用:購入時の市場価格が入札価格として使用されます。
[最大価格の設定]: インスタンスタイプに対して支払う最大価格を指定する必要があります。
[順序の作成] をクリックしてプリエンプティブルインスタンスを作成する前に、インスタンスの使用期間などのインスタンス設定を確認し、すべての設定が要件を満たしていることを確認します。
ECS利用規約と製品利用規約を読み、[注文の作成] をクリックします。
API操作を呼び出してプリエンプティブルインスタンスを作成する
Alibaba Cloud CLI、OpenAPI Explorer、Alibaba Cloud SDKなどの開発者ツールを使用して、RunInstances操作を呼び出し、プリエンプティブルインスタンスを作成できます。 詳細は、「RunInstances」をご参照ください。
購入時の市場価格を入札価格として使用するには、SpotStrategyパラメーターをSpotAsPriceGoに設定します。 また、SpotStrategyパラメーターをSpotWithPriceLimitに設定し、インスタンスタイプの最大料金を指定することもできます。
Terraformを使用してプリエンプティブルインスタンスを作成する
前提条件
Alibaba Cloudアカウントが作成され、そのAccessKeyペアが取得されます。
Terraformを使用する場合、Alibaba CloudアカウントのAccessKeyペアが必要です。 AccessKeyペアを取得する方法の詳細については、「AccessKeyペアの作成」をご参照ください。
Terraformがインストールされ、設定されます。
詳細については、「ローカルPCでのTerraformのインストールと設定」および「Cloud ShellでのTerraformの使用」をご参照ください。
Alibaba Cloudプロバイダーalicloudのバージョンが1.198.0にアップグレードされました。
手順
ブラウザを開き、アドレスバーにhttps://shell.aliyun.comを入力して、Cloud Shellにアクセスします。
Cloud Shellの使用方法の詳細については、「Cloud Shellの使用」をご参照ください。
Cloud Shellにログインします。
vim terraform.tf
コマンドを実行し、terraform.tfファイルを作成します。terraform.tfファイルを開き、次の内容を入力し、
wq
と入力して設定を保存します。説明次のサンプルコードのパラメーターについては、「alicloud_instance」をご参照ください。
プロバイダー "alicloud" {} リソース "alicloud_vpc" vpc "{ name = "tf_test_foo" cidr_block = "172.16.0.0/12" } リソース "alicloud_vswitch" vsw "{ vpc_id = alicloud_vpc.vpc.id cidr_block = "172.16.0.0/21" availability_zone = "cn-hangzhou-b" } リソース "alicloud_security_group" default "{ name = "default" vpc_id = alicloud_vpc.vpc.id } リソース "alicloud_instance" "instance" { # プリエンプティブルインスタンスを作成するゾーン。 availability_zone = "cn-hangzhou-b" # プリエンプティブルインスタンスを関連付けるセキュリティグループ。 security_groups = alicloud_security_group.default.*.id # プリエンプティブルインスタンスのインスタンスタイプ。 instance_type = "ecs.n2.small" # システムディスクのカテゴリ。 system_disk_category = "cloud_efficiency" # プリエンプティブルインスタンスの作成に使用するイメージのオペレーティングシステム。 image_id = "ubuntu_140405_64_40G_cloudinit_20161115.vhd" # プリエンプティブルインスタンスの名前。 instance_name = "test_foo" # プリエンプティブルインスタンスを接続するvSwitch。 vswitch_id = alicloud_vswitch.vsw.id # プリエンプティブルインスタンスのパブリック帯域幅。 internet_max_bandwidth_out = 10 # プリエンプティブルインスタンスの課金方法。 instance_charge_type = "PostPaid" # プリエンプティブルインスタンスの入札ポリシー。 spot_strategy = "SpotAsPriceGo" # プリエンプティブルインスタンスの保護期間。 spot_duration = 0 } リソース "alicloud_security_group_rule" "allow_all_tcp" { type = "ingress" ip_protocol = "tcp" nic_type = "intranet" policy = "accept" port_range = "1/65535" priority = 1 security_group_id = alicloud_security_group.default.id cidr_ip = "0.0.0.0/0" }
terraform init
コマンドを実行して、Terraform設定を初期化します。terraform plan
コマンドを実行して、設定をプレビューします。terraform apply
コマンドを実行して、プリエンプティブルインスタンスを作成します。terraform show
コマンドを実行して、作成されたプリエンプティブルインスタンスを表示します。次のサンプルコマンド出力は、プリエンプティブルインスタンスが作成されたことを示しています。