最新のコンテナアプリケーション開発環境でパフォーマンス向上とコスト削減を両立する

~AWS Graviton に対応した CircleCI の CI/CDプラットフォームとは

2022-06-01
デベロッパーのためのクラウド活用方法

根本 征 (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

お申込みはこちら »


builders.flash メールメンバーへ登録することで
AWS のベストプラクティスを毎月無料でお試しいただけます

筆者紹介

根本 征
CircleCI 合同会社 Solutions Engineer

これまで Software Engineer in Test(SET) や DevOps エンジニアとして、CI / CD や自動テストの導入・改善を行なってきました。
現在は CircleCI や CI / CD 導入における技術的支援を行なっています。

AWS のベストプラクティスを毎月無料でお試しいただけます

さらに最新記事・デベロッパー向けイベントを検索

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する