🤖

ECSにAWS Gravitonを導入すると何が良いのか調べてみた

に公開

結論

  • 主にコスト面でメリットが大きい。現行インスタンスに比べて20%ほど削減できる(すごい)
  • 現行インスタンスと比べてパフォーマンスが向上したという声も

そもそも、AWS Gravitonとは何者か

  • ArmベースのAWSが独自で開発したプロセッサ(要するにCPU)
  • x86系のインスタンスと比較して、同インスタンスサイズで二倍の物理コアが利用可能だったり、様々な基盤や処理で高いコストパフォーマンスを発揮する実績がある

https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2023_Amazon-Graviton_0430_v1.pdf

ECSに導入するには

  • タスク定義のruntimePlatformに以下を書けばよいだけらしい
{
    "runtimePlatform": {
        "cpuArchitecture": "ARM64"
    },
...
}

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/ecs-arm-specifying.html

考慮点

  • arm版のイメージを作ってあげる必要があるため、ローカルでイメージビルドしている場合はdocker buildxを使ってクロスビルドするか、GitHub ActionsなどCI/CD環境で--platform=linux/arm64を指定してビルドするようにする
  • 移行時のアプリケーションの影響をしっかり検証、考慮すること
  • arm版のイメージが提供されていないライブラリがあること

まとめ

  • 調べてみて、考慮点はそこそこあるものの移行した方が良さそうな代物だと思った。ただ、やはりプラットフォームが変わるのはアプリケーションにとって影響が多いところもあるため、移行計画を立てるときは丁寧に実施すること意識することがベスト

参考資料

Discussion