AWS FargateのCPUは何が使われているのか疑問でしたので、調べてみました。
ArmのCPUはAWSGraviton2 が使われています。
しかし、IntelCPU(X86)の方はどのCPUを使用しているか明記されていないようですので、実験して調べました。
結果、以下のいづれかが使われていることがわかりました!
- Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz
- EC2 M6i インスタンス 相当(以下の公式サイトの記述よりM6iという認識)
- 最大 3.5 GHz の第 3 世代インテル Xeon スケーラブルプロセッサ (Ice Lake 8375C)
インスタンスタイプ - Amazon EC2 | AWSAmazon EC2 では、異なるユースケースに合わせて最適化されたさまざまなインスタンスタイプが用意されています。インスタンスタイプはさまざまな CPU、メモリ、ストレージ、ネットワークキャパシティーの組み合わせによって構成されているため、アプリケーションのリソースとして適切な組み合わせを柔軟に選択できます。 - Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz
- EC2 C5 インスタンス 相当(以下の公式サイトの記述よりC5という認識)
- 第 2 世代カスタムインテル Xeon スケーラブルプロセッサ (Cascade Lake 8275CL) を搭載しています。
インスタンスタイプ - Amazon EC2 | AWSAmazon EC2 では、異なるユースケースに合わせて最適化されたさまざまなインスタンスタイプが用意されています。インスタンスタイプはさまざまな CPU、メモリ、ストレージ、ネットワークキャパシティーの組み合わせによって構成されているため、アプリケーションのリソースとして適切な組み合わせを柔軟に選択できます。
調べたこと:FargateでIntelCPU利用時に、どのCPUが使われているか
→ArmのCPUはAWSGraviton2 が使われてることが分かっているので調査対象外
調査結果:以下のいずれかが使われている
Intel(R) Xeon(R) Platinum 8375C CPU(EC2 M6i インスタンス相当)
Intel(R) Xeon(R) Platinum 8275CL CPU(EC2 C5 インスタンス 相当)
結果を書いてしまいましたが、上記結果に至るまでの調査方法を書いていきます。
調査方法
以下のDockerイメージを使わせていただきました。
上記Dockerイメージでは、コンテナ起動時にログにCPU名が出力されるので、ログを見てCPUを確認するという調査方法です。
クラスタ作成
タスク定義作成
タスクの起動
まずは、クラスターを作成します!
クラスター作成
AWSマネージメントコンソール画面のECSダッシュボードから「クラスターの作成」ボタンを押下し、以下の設定でクラスターを作成します。
- クラスター名:適切な名前
- 上記以外、デフォルトのまま
次はタスク定義を作成します!
タスク定義の作成
AWSマネージメントコンソール画面のECSダッシュボードからタスク定義を選択し、「新しいタスク定義の作成」ボタンを押下し、以下の設定でタスク定義を作成する
- タスク定義とコンテナの設定
- タスク定義ファミリー:適切な名前
- コンテナ – 1
- 名前:適切な名前
- イメージ URI:actions/lscpu:latest
- 上記以外デフォルトのまま
- 環境、ストレージ、モニタリング、タグの設定
- 環境
- CPU:.5VCPU
- メモリ:1GB
- 環境
- 上記以外デフォルトのまま
次はタスクの作成(コンテナ立ち上げ)です!
タスクの作成
AWSマネージメントコンソール画面のECSダッシュボードで作成したクラスターを選択し、タスクタブ押下して、「新しいタスクの実行」ボタンを押下し、以下の設定で作成します。(このステップでコンテナを立ち上がります)
- デプロイ設定
- ファミリー:作成したタスク定義を指定
- 上記以外デフォルトのまま
- 必要なタスク:5
- 上記以外はデフォルトのまま
調査結果
上記でタスクを立ち上げ、ログを確認したところ、CPUは以下の通りでした。
Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz
Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz
Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz
Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz
Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz
まとめ
FargateでIntelCPU(X86)選択時に、どのCPUが使用されるかについて、明記されていなかったので、CPUにばらつきがある(起動タイミングによってCPUが変わる)のかなと思ったりしてました。
調査したところ、多少のばらつきはあり、EC2 M6iまたはC5 インスタンス相当のCPUが使われているという結果でした!
調査内容:FargateでIntelCPU利用時に、どのCPUが使われているか
調査結果:以下のいずれかが使われている
Intel(R) Xeon(R) Platinum 8375C CPU(EC2 M6i インスタンス相当)
Intel(R) Xeon(R) Platinum 8275CL CPU(EC2 C5 インスタンス 相当)