こんにちは。前回に続き、今回はEKS on Fargateの活用事例について、お届けします!

EKS on Fargateの活用事例

オンデマンドでのマシンリソースの確保というFargateの特性を生かして、「オンデマンドでスケーリングするJenkinsによるCI/CDパイプライン」という構成を実現することも可能です。

JenkinsによるDevOpsを実現する時、「開発者は活動時間帯が日によって偏りがあり、特にリリースの前にはCI/CDが頻繁に走り、無駄にハイスペックなマシンを用意する必要がある」という課題は特に生まれがちですが、JenkinsのビルドパイプラインをFargateに乗せることで、SaaSのCI/CDサービスように利用状況に応じて効率的にリソースを使えるようになります。

Jenkinsはステートフルなアプリケーションなので以前までのEFSをアタッチできないFargateではこの構成が取れませんでしたが、昨年のアップデートによりこのような構成を行うことが可能となりました。
詳しい構成や構築方法等はAWSのブログで解説されているので、詳しく知りたい方はこちらもご覧下さい。

まだまだ続くFargateのアップデート

EKS on Fargateを取り巻く状況は日々アップデートされており、AWSのオフィシャルイベント等で言及のあった(提供の可能性が高い)ものをいくつかピックアップしてみます。

  • AWS Distro for OpenTelemetry

Fargateだけに限ったモノでは無いのですが、OpenTelemetryと呼ばれるクラウド向けのメトリクス収集のためのアプリケーションのAWS組み込みの開発が進んでおり(現在はパブリックベータ)、将来的にはFargateのメトリクスに関しても詳細にCloudWatch等に送る仕組みが整備されそうです。

  • Podへのセキュリティグループのアタッチ

デメリットでも紹介した通りEKS on Fargateの場合セキュリティグループの設定に難がある状態ですが、こちらも解消される見込みのようです。

  • ローカルボリュームの20GB制限の拡張

Fargateの現行のプラットフォームバージョン(1.4)ではデフォルトで20GBのエフェメラルボリュームがアタッチされるのですが、Fargateはデータ分析のETL処理等、ローカルに大量のデータを持つようなワークロードには対応しきれていません。

この問題に対しても、今後テラバイト級のストレージを持てるようになる「予定」だという話があります。

まとめ

Fargateは利用者のニーズに対してオンデマンドでマシンリソースを提供するための仕組みです。

「Fargateでなければサービスが提供できない」事は無いので技術的・運用的な課題に当たらない限りは積極的にFargateを検討する機会も少ないと思いますが、最近になってデメリットも少なくなった所でリソース最適化による運用的・金銭的なメリットを狙うことが出来る状況になりつつあります。

「ノードのリソースを食いつぶす凶悪なPodがある」等、リソースの使い方を詰めきれていない場合はこの機会にFargate導入のチャレンジに関して検討してみるのはいかがでしょうか。