はじめに
EC2のインスタンスタイプが200を超えている中、自身にあったインスタンスタイプを見つけ出すのは至難の業です。命名規則からある程度の選択はできますが、AWSのWebページから探し出すのは難しいです。
特に難しいのは料金の見積もりで、Webページからインスタンスタイプを見比べて見積もるのはちょっと難しいです。
AWS Price List Queryというものがあるので、これを使ってアプリを自作しても良いかなと思ったのですが、ちょっと色々と面倒そう。
そんな中、Amazon EC2 Instance Selectorというものを見つけました。
Amazon EC2 Instance Selectorの使い方
使い方は簡単で、GitHubページにあるREADMEの記述に沿えばOK。
今回はCloudShell上で実行しました。まずはインストール。
[cloudshell-user ~]$ curl -Lo ec2-instance-selector https://github.com/aws/amazon-ec2-instance-selector/releases/download/v2.4.1/ec2-instance-selector-`uname | tr '[:upper:]' '[:lower:]'`-amd64 && chmod +x ec2-instance-selector % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 22.0M 100 22.0M 0 0 40.3M 0 --:--:-- --:--:-- --:--:-- 40.3M [cloudshell-user ~]$ ./ec2-instance-selector --version v2.4.1[cloudshell-user ~]$
VCPUが2でメモリが4GBのもの、CPUアーキテクチャがx86_64のものを抽出してみます。
[cloudshell-user ~]$ ./ec2-instance-selector --memory 4 --vcpus 2 --cpu-architecture x86_64 -r ap-northeast-1 c5.large c5a.large c5d.large c6a.large c6i.large c6id.large c6in.large c7a.large c7i-flex.large c7i.large t2.medium t3.medium t3a.medium [cloudshell-user ~]$
表形式で見ることもできます。-o table
を付与すればOK。
[cloudshell-user ~]$ ./ec2-instance-selector --memory 4 --vcpus 2 --cpu-architecture x86_64 -r ap-northeast-1 -o table Instance Type VCPUs Mem (GiB) ------------- ----- --------- c5.large 2 4 c5a.large 2 4 c5d.large 2 4 c6a.large 2 4 c6i.large 2 4 c6id.large 2 4 c6in.large 2 4 c7a.large 2 4 c7i-flex.large 2 4 c7i.large 2 4 t2.medium 2 4 t3.medium 2 4 t3a.medium 2 4 [cloudshell-user ~]$
情報量が少ないのですが、-o table-wide
を指定すればよりたくさんの情報が出てきます。目的であった料金も一緒に。ただ、私が試した感じですと少し応答に時間がかかりました。
[cloudshell-user ~]$ ./ec2-instance-selector --memory 4 --vcpus 2 --cpu-architecture x86_64 -r ap-northeast-1 -o table-wide NOTE: Could not retrieve 30 day avg hourly spot price for instance type r6idn.metal NOTE: Could not retrieve 30 day avg hourly spot price for instance type r6in.metal Instance Type VCPUs Mem (GiB) Hypervisor Current Gen Hibernation Support CPU Arch Network Performance ENIs GPUs GPU Mem (GiB) GPU Info On-Demand Price/Hr Spot Price/Hr (30d avg) ------------- ----- --------- ---------- ----------- ------------------- -------- ------------------- ---- ---- ------------- -------- ------------------ ----------------------- c5.large 2 4 nitro true true x86_64 Up to 10 Gigabit 3 0 0 none $0.107 $0.05007 c5a.large 2 4 nitro true false x86_64 Up to 10 Gigabit 3 0 0 none $0.096 $0.03762 c5d.large 2 4 nitro true true x86_64 Up to 10 Gigabit 3 0 0 none $0.122 $0.04551 c6a.large 2 4 nitro true false x86_64 Up to 12.5 Gigabit 3 0 0 none $0.0963 $0.04101 c6i.large 2 4 nitro true true x86_64 Up to 12.5 Gigabit 3 0 0 none $0.107 $0.04299 c6id.large 2 4 nitro true true x86_64 Up to 12.5 Gigabit 3 0 0 none $0.1281 $0.04726 c6in.large 2 4 nitro true false x86_64 Up to 25 Gigabit 3 0 0 none $0.1428 $0.05243 c7a.large 2 4 nitro true true x86_64 Up to 12.5 Gigabit 3 0 0 none $0.1292 $0.04897 c7i-flex.large 2 4 nitro true true x86_64 Up to 12.5 Gigabit 3 0 0 none $0.10673 $0.0277 c7i.large 2 4 nitro true true x86_64 Up to 12.5 Gigabit 3 0 0 none $0.11235 $0.04683 t2.medium 2 4 xen true true i386, x86_64 Low to Moderate 3 0 0 none $0.0608 $0.02285 t3.medium 2 4 nitro true true x86_64 Up to 5 Gigabit 3 0 0 none $0.0544 $0.02204 t3a.medium 2 4 nitro true true x86_64 Up to 5 Gigabit 3 0 0 none $0.049 $0.01838 [cloudshell-user ~]$
考察
当初目的としたインスタンスタイプを横並びにして料金の比較ができるツールとしてEC2 Instance Selectorが有用であることが確認できました。AWSのアカウントが必要となりますが、Webページをちまちま確認することなく、CLIで確認できるのはたいへんありがたいです。