🙌
OracleCloudの新しいArmインスタンスをTerraformで作ってみる
4コア/24GBまで無料で永続利用できる「Always Free Arm」など複数のプログラム提供
https://ascii.jp/elem/000/004/056/4056339/
ということで、既存のTerraformコードにARMインスタンスを追加してみた。
完成形
Instance
これまでの書き方と違うのはshape_config
の指定が必要な所。
その他はこれまでのインスタンス作成コードと同じで作れる。
resource "oci_core_instance" "free_instance1" {
availability_domain = lookup(data.oci_identity_availability_domains.availability_domains.availability_domains[0], "name")
compartment_id = var.compartment_ocid
display_name = "freeInstance1"
shape = "VM.Standard.A1.Flex" # ARMのShapeを指定
shape_config {
memory_in_gbs = 24 # shape_configで無料上限の4コア/24GB を指定
ocpus = 4
}
create_vnic_details {
subnet_id = oci_core_subnet.nomad_subnet.id
display_name = "primaryvnic"
assign_public_ip = false
hostname_label = "freeinstance1"
}
source_details {
source_type = "image"
source_id = var.images_arm[var.region] # ARM対応のイメージを指定。詳細は次項
}
metadata = {
ssh_authorized_keys = file(var.ssh_public_key_path)
}
}
Image
今の所ARM向けのイメージはOracleLinuxしか存在しないようなので素直に下記を利用する。
variable "images_arm" {
type = map(string)
default = {
# See https://docs.us-phoenix-1.oraclecloud.com/images/
# Oracle-provided image "Oracle-Linux-7.5-2018.10.16-0"
us-ashburn-1 = "ocid1.image.oc1.iad.aaaaaaaadnc5jeyeslhvkvitrsqsx65z3x6vk4trycpaaeyl5fultqbjobdq"
}
}
感想
ARMでいう4コア/24GBがx86のどれくらいに相当するかは知らないけど、太っ腹な感じがする。
free
めっちゃメモリある。
VM.Standard.E2.1.Micro
$ free -h
total used free shared buff/cache available
Mem: 974Mi 663Mi 66Mi 24Mi 245Mi 142Mi
VM.Standard.A1.Flex
$ free -h
total used free shared buff/cache available
Mem: 22Gi 505Mi 21Gi 23Mi 451Mi 19Gi
Discussion