最新のコンテナアプリケーション開発環境でパフォーマンス向上とコスト削減を両立する
~AWS Graviton に対応した CircleCI の CI/CDプラットフォームとは
根本 征 (CircleCI 合同会社)
自動車や産業用アプリケーションなど、極めて広範な要件をリアルタイム、かつ高水準で処理するワークロードを取り扱う場合、非常に多様な種類のコンピューティングに対応した環境が必要になります。
この記事では、このような多様な種類のコンピューティングに対応したアプリケーションを開発される企業やエンジニアの皆様に向けて、広範囲のワークロードに対応し、最良のコストパフォーマンスを発揮する AWS Graviton プロセッサの利用メリットをご紹介しながら、AWS パートナー CircleCI が提供する CI/CD プラットフォームを活用し、実際にAWS Graviton を搭載した AWS 環境において、どのように CI/CD パイプラインを構築し、コンテナアプリケーション開発における品質と開発スピードの向上を可能にできるのかについて解説いたします。
CircleCI による Arm コンピューティングのサポート
クラウドネイティブな CI/CD (継続的インテグレーション・継続的デリバリー) プラットフォームをグローバル展開している CircleCI は、2021 年より、Amazon EC2 に最良の料金とパフォーマンスを提供する AWS Graviton プロセッサに対応しています。詳細は こちら をご覧ください。
ARM ベースの AWS Graviton プロセッサによって、ご自身で CI/CD インフラストラクチャを管理することなく、Arm 向けアプリケーションをビルド・テスト・デプロイすることができます。
下記のような CircleCI の設定ファイル (.circle/config.yml) を準備することによって、すぐにはじめることができます。
Arm コンピューティングを利用した CircleCI の設定ファイル (.circle/config.yml) 例
(クリックすると拡大します)
CircleCI では、現在 arm.medium (arm64 アーキテクチャ、2 vCPU、8 GB RAM) と arm.large (arm64 アーキテクチャ、4 vCPU、16 GB RAM) をリソースクラスとしてクラウドで提供しており、上記の CircleCI の設定ファイル (.circle/config.yml) の resource_class に指定することによってご利用していただくことができます。詳細は こちら をご覧ください。
Arm プロセッサの普及は急速に進んでおり、Arm コンピューティングの CI/CD を活用することによって、開発者は様々なメリットを受けることができます。
1 つは CI/CD におけるパフォーマンスの向上です。
Arm コンピューティングを活用することによって、消費電力・コストを抑えたまま、パフォーマンスを向上させることが可能です。
これによって、CI/CD におけるビルド・テストの実行パフォーマンスの向上を期待することができます。
引用 : https://circleci.com/ja/product/features/resource-classes/
(クリックすると拡大します)
引用 : https://circleci.com/ja/product/features/resource-classes/
(クリックすると拡大します)
CircleCI では Arm VM だけでなく、x86_64 ベースのLinux VM も提供しています。
同じ 1 分あたりに消費するクレジット数は同じなので、Arm VM にすることによって
- ビルド・テストの実行パフォーマンス向上
- コストパフォーマンス向上
のどちらも期待することができます。
そしてもう 1 つは、AWS Gravion2 との親和性です。
Arm ベースで作られた AWS Graviton2 プロセッサを活用することにより、従来の AWS インスタンスと比べて大幅なコストパフォーマンスの向上を期待することができます。詳細は こちら をご覧ください。
CircleCI の Arm VM も AWS Graviton2 上に構築されており、AWS Graviton2 への Continuous Delivery (継続的デリバリー) をシームレスに実現することが可能です。
また、CircleCI は AWS Graviton2 との親和性の高さを証明する AWS Graviton Ready 認定を取得しました。
AWS Graviton2 との CI/CD ソリューション
前述の通り、AWS Graviton2 プロセッサを活用することにより、従来の AWS インスタンスと比べて大幅なコストパフォーマンスの向上を期待することができます。
AWS Fargate は現在 AWS Graviton2 をサポート しており、コストパフォーマンスを向上させることができます。
また、Amazon EKSにおいても、AWS Graviton2 のインスタンスを利用することが可能です。
これらの AWS Graviton2 を使ったコンテナソリューションを利用するためには、Arm アーキテクチャ向けの Docker イメージをビルドする必要があります。
CircleCI の Arm VM を利用することによって、特別な設定をする必要がなく、Arm アーキテクチャ向けの Docker イメージをビルドすることが可能です。
Arm アーキテクチャ向けの Docker イメージをビルドする CircleCI の設定ファイル(.circleci/config.yml)
(クリックすると拡大します)
実際に Honeycomb 社は CircleCI と AWS Graviton2 を採用し、採用した理由について次のように語っています。
「AWS Graviton2 とCircleCI を採用することでコストの 50% 削減とパフォーマンス強化を両立できるというなら、もはや賭けではありません。『採用しない理由』を探すのが大変です。」
OpenID Connect を使った、AWS へのセキュアなデプロイ
また、CircleCI では 2022 年に OpenID Connect のサポートを開始 しました。
これまでは、CircleCI 経由 で AWS への Continuous Delivery (継続的デリバリー) を実現するためには、CircleCI に AWS の永続的なクレデンシャルを保存する必要がありました。
OpenID Connect を活用することにより、一時的なクレデンシャルのみを使用した認証が可能となり、よりセキュアな CI/CD パイプラインを構築することができます。
CircleCI には Orb とよばれる設定ファイルをパッケージ化、配信、再利用する機能が用意されており、今回の OpenID Connect を使った認証も簡潔に実装することが可能です。
aws-cli orb を使った OpenID Connect の認証
(クリックすると拡大します)
CircleCI with AWS 共催オンラインセミナーのご紹介
今回は、CircleCI の Arm サポート × AWS Graviton2 による CI/CD ソリューションや、OpenID Connect を使った、AWS へのセキュアなデプロイについて簡単に紹介しました。
今回のソリューションや、CircleCI を使った AWS への CI/CD パイプラインについてより詳しく知りたい方は、AWS 共催オンラインセミナーへの参加をお勧めします。
第一回目は AWS Fargate on AWS Graviton2、第二回目は Amazon EKS on AWS Graviton2 を対象にして、CircleCI を使った CI/CD パイプラインについて紹介する予定です。
加えて、AWS Graviton の概要や移行するメリットについて、AWSソリューションアーキテクトが解説します。
今後 AWS Graviton への移行を検討している方や、より良いコンテナアプリケーション開発を検討している方は是非ふるってご参加ください。
第一回 CircleCI with AWS 共催オンラインセミナー ~最新のコンテナアプリケーション開発環境でパフォーマンス向上とコスト削減を両立する ~AWS Fargate 編~
日時 : 2022 年 6 月 16 日 (木) 16:00-17:30
第二回 CircleCI with AWS 共催オンラインセミナー ~最新のコンテナアプリケーション開発環境でパフォーマンス向上とコスト削減を両立する ~Amazon EKS編~
日時 : 2022 年 7 月 14 日 (木) 16:00-17:30
筆者紹介
根本 征
CircleCI 合同会社 Solutions Engineer
これまで Software Engineer in Test(SET) や DevOps エンジニアとして、CI / CD や自動テストの導入・改善を行なってきました。
現在は CircleCI や CI / CD 導入における技術的支援を行なっています。
AWS を無料でお試しいただけます