はじめに
突然 AMD や Arm で構築しないといけなくなった時の備忘録です。
CPU アーキテクチャを決定する EC2 パラメータ
下記の 2 要素が EC2 インスタンスにおける CPU アーキテクチャの決定に影響します。
- AMI
- インスタンスファミリー
よって、各 CPU アーキテクチャの上記パラメータの組み合わせは以下となります*1
Param | Intel(x86_64) | AMD(x86_64) | AArch64 |
---|---|---|---|
AMI | 64 ビット(x86) | 64 ビット(x86) | 64 ビット(Arm) |
インスタンスファミリー | - | A 系 | G 系 |
t3.nano の場合 | t3.nano | t3a.nano | t4g.nano*2 |
各インスタンスファミリーと CPU アーキテクチャの関係については公式ドキュメントの以下をご参考下さい*3。
■ Intel について
T3 インスタンスでは、最大 3.1 GHz の持続的な全コアターボを備えた、第 1 もしくは第 2 世代インテル Xeon Platinum 8000 シリーズ (Skylake-SP もしくは Cascade Lake) プロセッサを搭載しているのが特徴です。
引用元: https://aws.amazon.com/jp/ec2/instance-types/t3/
■ AMD について
T3a インスタンスには、全コアターボのクロック速度が 2.5 Ghz の AMD EPYC 7000 シリーズプロセッサが搭載されています。
引用元: https://aws.amazon.com/jp/ec2/instance-types/t3/
■ Arm について
Powered by AWS Graviton2 processors AWS Graviton2 Processors are based on 64-bit Arm Neoverse cores and custom silicon designed by AWS for optimized performance and cost.
引用元: https://aws.amazon.com/jp/ec2/instance-types/t4/?nc1=h_ls
実際にやってみた
CPU アーキテクチャを決定する場合のフローは以下になります。
- AMI アーキテクチャを選択
- インスタンスファミリーを選択
それでは AMI 名: Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type
を用いて、実際に Arm アーキテクチャのインスタンスをデプロイします。
EC2 をデプロイする際の細かい手順は省略しつつ、ポイントのみ絞って説明いたします。
①AMI アーキテクチャの選択
EC2コンソールからインスタンスの起動を開始します。
その後 AMI の選択画面にて、各パラメータ値を以下にします。
AMI
: Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type
アーキテクチャ
: 64 ビット(Arm)
② インスタンスファミリーの選択
① と同じ画面を下にスクロールして、 インスタンスタイプ
の値を "t4g.nano" とします。(g 系インスタンスファミリーであれば何でも OK です。)
これで CPU アーキテクチャは決定したので、あとは通常と同じように EC2 を構築します。
ここは割愛いたします。
構築後の確認
最後に CPU アーキテクチャが正しく作られてるか確認してみます。
SSH か SSM でインスタンスに接続して以下コマンドを実行してください。
$uname -m
実際に打ってみました。ちゃんと 64 ビット(Arm)になってますね。
$ uname -m aarch64
まとめ
インテル CPU ばっか使っていて地味に知らなかったので、勉強になりました。
ご覧いただきありがとうございました。
*1:AMI 名:"Amazon Linux 2 AMI (HVM) - Kernel 5.10, SSD Volume Type" の場合
*2:T3g 系はないため、T4g 系で代替してます。
*3:T3 系の場合です。
菅谷 歩 (記事一覧)