Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHubとGitLabと AWS CodePipelineで CI/CDを組み比べてみた

GitHubとGitLabと AWS CodePipelineで CI/CDを組み比べてみた

Avatar for Satoshi Kaneyasu

Satoshi Kaneyasu

September 09, 2025
Tweet

More Decks by Satoshi Kaneyasu

Other Decks in Programming

Transcript

  1. 2 発表者自己紹介 氏名:兼安 聡 所属:株式会社サーバーワークス アプリケーションサービス部 在住:広島(フルリモート) 担当:DevOps、技術支援、PM、SM SNS(X):@satoshi256kbyte •

    2025 AWS Community Builders • 2025 Japan AWS Top Engineers (AI/ML Data Engineer) • 2025 Japan AWS All Certifications Engineers • 認定スクラムマスター • PMP
  2. 13 SCAとSASTの実装方法 ⚫Amazon InspectorによるSCAはCodePipelineに組み込むことができます ⚫一点だけ注意 Pythonの場合Inspectorはrequirements.txtをチェックするので、 uv exportしてuv.lockからrequirements.txtを出力しておく必要があります ⚫Amazon InspectorはSASTもできますが、

    同期処理にする方法が見つからないため、CI/CDに組み込めませんでした ⚫それ故にSASTにCodeGuru Securityを使用していましたが、 CodeGuru Securityは2025年11月のサービス終了となってしまいました ⚫CodePipelineだけでやりたいことは実現できていたのに残念です
  3. 31 キャッシュの活用 GitLabでファイルをキーの一部とする場合は、filesが使用で きる 参考:Caching in GitLab CI/CD パスの指定の仕方はGitHubと同じだが、ディレクトリ構成 が違う模様

    GitHubのように~/.cargoなどと指定するとキャッシュが空 振りするので、何かインストールするなら作業ディレクトリ直 下に置くようにし、そこをキャッシュ対象にすると効きやすい ※コンテナベースイメージも同じOSだが他と異なるようで、 GitHub・CodePipelineに比べ動かすのに多数のインストールが必要
  4. 35 各ツールの所感 ⚫ 実装のしやすさは、GitHub>GitLab>>>AWS CodePipeline ⚫ 今からCI/CDを始めるならGitHub Actionsが一番やりやすいと思います ⚫ CodeGuru

    Securityが使用可能ならやりたかったことはCodePipelineで完 結したのに、EOLが発表されるとは思っていませんでした・・・
  5. 37 組み合わせの理由 ⚫ CodePipelineはAWSで完結できる上、 InspectorによるSCAがCI/CDに 組み込めるのが大きい ⚫ CodeGuru SecurityがEOLになったのは残念で代替は探しますが、 よくよく考えたらライブラリと違ってソースコード自体は時間が経っても勝手に脆弱

    性が増えたりはしないので、SASTは他に逃すなどの回避策を取ってもよいと思い ました ⚫ 開発中のチェックは、チェック自体にも試行錯誤することがあるので、変更にデプロ イが必要なCodePipelineよりもGitHub Actionsでやった方が効率がよいと 思います 以上です、ありがとうございました
  6. 39 Appendix - 参考資料 ⚫ CodePipeline  End of support

    for CodeGuru Security ⚫ GitHub  GitHub Actions の構造と変数を整理して、AWSのデプロイ先を分岐させてみよう  アマゾン ウェブ サービスでの OpenID Connect の構成 ⚫ GitLab  Configure OpenID Connect in AWS to retrieve temporary credentials  Caching in GitLab CI/CD  各プランのGitLab機能の比較 ⚫ Trivy ⚫ Semgrep