AWSでのGitLab実装パターンについてまとめてみた

こんにちは、アライアンス事業部のきだぱんです。肌寒くなってきて、お鍋が美味しい季節になってきました。「お鍋×冬」の組み合わせも最高!!なのですが、それに負けないくらい「GitLab×AWS」も最高なので、今回はお鍋の話題ではなくAWSでのGitLab活用について見ていきたいと思います。本記事はクラスメソッド DevOps・セキュリティ Advent Calendar 2023とGitLab Advent Calendar 2023の12/11記事になります!
2023.10.25

こんにちは、こんばんは。アライアンス事業部のきだぱんです。
今年も残りわずか… 12月に入りました。アドベントカレンダーの季節です!
本記事はクラスメソッド DevOps・セキュリティ Advent Calendar 2023GitLab Advent Calendar 2023の12/11記事になります!
- GitLab Advent Calendar 2023

  • クラスメソッド DevOps・セキュリティ Advent Calendar 2023

今回は、GitLabとAWSを組み合わせることでの実装パターンについて書いていきたいと思います。

GitLabとは

そもそもGitLabとは?
計画から開発・運用・監視までライフサイクルの全ステージを一貫してサポートしてくれるのが、GitLabです。
単一のアプリケーションでDevOpsのライフサイクル全般を対応してくれるのです。便利ですね。^ ^

GitLabを使うにあたって、まずは試してみたいという方も多いのではないでしょうか。
GitLabでは30日間、無料でトライアルを始められます。
お問い合わせは下記から。

アカウント作成については下記のブログをご覧ください。

AWSでGitLabを活用してく

GitLabが、他のDevOps アプリケーションと異なるのは、1つのプラットフォームでソフトウェア開発のライフサイクル全体を管理できます。
そのため、複雑なツールチェーンが必要ありません。
GitLabのソースコード管理、CI/CD ワークフロー、高度なセキュリティ機能などをAWSでも活用が可能であり、GitLabのDevSecOpsプラットフォームと連携して、ソフトウェア開発ライフサイクル(システム)全体をサポートします。
またAWSでGitLabを活用する場合は、GitLab CI/CDを使用することで、任意のAWSサービスへカスタマイズが可能です。

(「GitLabをAWS Marketplaceで導入!DevOps統合プラットフォーム「GitLab」でビジネス成功につなげるDevOpsの実践」に登壇しました | DevelopersIOより)

今回は、AWS サービスとどのように統合されるか一部見ていきたいと思います。

GitLab+Lambda

GitLabを使用することで、AWS Lambdaでは以下の組み合わせを使用してサーバーレスなアプリケーションを作成することが可能です。

  • AWSを使用したサーバーレスフレームワーク
  • SAM、Serverless Application Model (SAM)
  • GitLab CI/CD

GitLabでは、Serverless Framework/JSテンプレートからプロジェクトを作成することができます。

GitLab+EKS

GitLabは、タスクを自動化し、開発者がビジネスに集中できるようにすることで、開発者の生産性を向上させることが可能です。
GitLabでは、Amazon EKSでのKubernetesクラスターの自動作成サポートが可能です。
サポート内容は以下の通りです。

  • GitLab Runnerを使用した拡張性の高いCI/CDシステム
  • アプリのコードレビュー
  • コードや設計の変更の際、GitLabは新しい変更を加えてアプリを動的環境にデプロイ
  • AutoDevOps
  • GitLabと組み合わせることで、アプリケーションを検出、構築、テスト、デプロイ、監視します

GitLab Runnerとは

  • GitLabと連携しパイプラインでジョブを実行するアプリケーション
  • OSS で提供のため、自前でも簡単に構築が可能
  • 環境のスペックを自由にコントロールが可能
  • プライベートネットワーク配下で提供できる

AWS Fargateでの自動スケーリング

ユーザーが AWS Fargate(AWS ECS Fargate)使用する際に、GitLab CI/CD パイプラインでジョブを実行し、コンテナを自動的に起動およびスケーリングできるようにするソリューションを実装します。
これにより、AWS EC2 インスタンスにインストールされたRunner Manager(GitLab Runner)が、GitLab CI ジョブを実行するためのコンテナを AWS Fargate 上に自動的に作成します。
また、AWS Fargate上で、 GitLab Runnerの自動スケーリングを使用すると、GitLabパイプラインでCI/CD ジョブを実行する必要があるときに、新しい DockerコンテナがAWS Fargate クラスター上で自動的に起動されます。


(GitLab Runner Manager on EC2 instanceより)

おわりに

今回は、AWSでのGitLab活用についてブログにしてみました。
今回ご紹介した機能は一部で、まだまだ豊富な機能が沢山あります。
GitLab Documentationでは、様々な情報やドキュメントを確認することが出来ます。

また、2023年04月19日にプレスリリース出させていただきましたが、クラスメソッドとGitLab、クリエーションラインの3社にてDevOps統合プラットフォーム導入支援に向けた協業を開始しました。

GitLabに関するブログも展開されていますので、是非こちらもご覧ください。

この記事がどなたかのお役に立てば幸いです。
以上、きだぱんでした。

お知らせ

10/26(木)に開催されるJapan IT WeekのGItLabブースにてクラスメソッドも今回参加させていただきます。
【 イベント名 】第14回 Japan IT Week 秋
【 日程 】2023年10月26日(木)
※クラスメソッドの参加は26日のみ(開催期間:2023年10月25日(水)~27日(金))
【 時間 】10:00~18:00(最終日のみ17:00終了)
【 会場 】幕張メッセ

参照