マルチアーキテクチャーでのコンテナデプロイワークショップを受けてきて

経緯

会社の人がGravitonがこの後重要になってくるからGraviton勉強してきてとAWSのアーキテクトの人にお願いした結果、 このワークショップを案内されて受けてきました。

受ける前の私 - GravitonってEC2みたいなAWSのサービスか何かか?って認識 - マルチアーキテクトって何がいいのか、流行ってるのかな

でてくる用語すらわかってない何もわかってない状態がスタート時点だった。

Gravitonからマルチアーキテクトの必要性について

Gravitonとは

GravitonはAmazonが設計したarmベースのプロセッサ AWSのサービスで最適化されるように設計してるそう。

Appleが独自のプロセッサを作ったりしてるように Amazonも他社に振り回される要素を減らしたいので、推してる。 てことは、Intelx86系よりGravitonを搭載してるインスタンスの方を安く、性能もでるようになっていきそう。 使える状態にしていった方が受けれる恩恵はありそうである。

詳細は以下の資料に記載してあります。 https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_Amazon-Graviton_0430_v1.pdf

CPUの差の影響

PCゲームなどで聞きますが、RyzenのCPUだとラグが発生するなどが起きます。 アプリケーションも同じでCPUがx86かarmかで動作が変わってきます。

今後使っていった方がいいGravitonはarm。 それに対して、2024/5時点でメインとなるCPUはIntelx86。 CPUに差分があっても移行できるOR動作するアプリになっていけるのがベストになっていきそうです。

マルチアーキテクトとは

Dockerなどのコンテナサービスは以下をまとめてイメージ化してました。 - アプリケーション - ライブラリ - OS

マルチアーキテクトではこれにCPUが追加され、以下がセットになってます。 - アプリケーション - ライブラリ - OS - CPU

ワークショップでは、CPUの種類ごとにNodePoolを定義しておくことによって、 たてるインスタンスx86だったら、x86用の定義をもとにコンテナをたちあげてくれるようになります。

マルチアーキテクトに対応した場合のメリット

1番はスポットインスが有効に使えること 2024/5時点ではx86系のインスタンスの方がAWSのリソースは潤沢だそうです。 つまり、スポットインスタンスに割り当てられやすいです。 それに対して、オンデマンドインスタンスはarmの方が安いそうです。 そのため、マルチアーキテクト構成にすることによって、費用を抑えることができます。

CPUの移行検証ができること、性能最適になるかの検証ができること armに移行していく際、過渡期に複数のCPU構成で動かしてくことによって、影響を少なくしながら検証ができます。

ハンズオンの概要

  1. 各CPUによるDockerイメージによるビルド x86と異なり、armのイメージはどのように作るのかを実践できた
  2. CPUの種類を指定したコンテナをそれぞれ立ち上げ
  3. 各CPUを定義するためのNodePoolsを作成 CPUごとのテンプレに依って、差分を吸収していると捉える
  4. x86でもarmでも同じようにコンテナが立ったり、割合を決めて両のCPUが共存するクラスターを作る

全体でarmとx86が共存した環境を立ち上げるためのやり方を、ハンズオンで試していくことができます。 どのような定義をいれることによって、インスタンスを使い分けたり、差異を吸収したりできるのかを 作った環境で見比べながらできたので、差分から理解をしやすいワークショップでした。