Slide 1

Slide 1 text

AWS版GitHub? Amazon CodeCatalystの全体像をまとめてみた 2024/08/27 AWS Jr. Champions × YUMEMI.grow AWS勉強会 クラスメソッド株式会社 おのやん

Slide 2

Slide 2 text

⾃⼰紹介 ⼩野⼭翔⼤(おのやん) • クラスメソッド株式会社 AWS事業本部 @福岡オフィス • 2024 Japan AWS Jr. Champions • 趣味:歌‧特撮 • ブログ⾒てね https://dev.classmethod.jp/author/oshanqq/

Slide 3

Slide 3 text

発端 おっしゃ!CodePipelineとGitHubを接続するやで https://aws.amazon.com/jp/codestar/

Slide 4

Slide 4 text

AWS CodeCommitの新規アクセス停⽌ https://x.com/jeffbarr/status/1818461689920344321

Slide 5

Slide 5 text

代替サービスのひとつ • AWS へアプリケーションをデプロイできる 統合開発サービス • コードリポジトリ、Issue管理、プルリクエスト、 CI/CD ワークフロー などなど • 通常のAWSサービスとは別の認証情報(AWS Builder ID)で管理 • AWSアカウントからは独⽴している • ブループリント機能でテンプレートからデプロイ環境を作成 ※以降、CodeCatalystと記述 Amazon CodeCatalyst

Slide 6

Slide 6 text

CodeCatalyst全体像(抜粋)

Slide 7

Slide 7 text

CodeCatalyst : Space

Slide 8

Slide 8 text

CodeCatalyst : Space

Slide 9

Slide 9 text

CodeCatalyst : Project (コードリポジトリ)

Slide 10

Slide 10 text

CodeCatalyst : Project (CI/CD ワークフロー)

Slide 11

Slide 11 text

CodeCatalyst : Project (CI/CD ワークフロー) .netのサンプルアプリケーション • .NETコードをAWS Lambdaにデプロイ • Amazon API Gateway で リクエスト受付 • LambdaはCloudFormationで作成

Slide 12

Slide 12 text

CodeCatalyst : Project (CI/CD ワークフロー) ビルド⽣成物保存S3バケット • .NETプロジェクトをビルドして zipファイルを作成 • zipファイルをAmazon S3に アップロード • AWS CloudFormationテンプレート で定義されたAWSリソースが作成 • CodeCatalyst側で作成

Slide 13

Slide 13 text

CodeCatalyst :ブループリント プループリント機能 • プロジェクト設定をテンプレート化 • プロジェクトの新規作成が簡単に

Slide 14

Slide 14 text

CodeCatalystでデプロイしてみて ✅ 多くの機能はGitHubに似ている • Gitを⽤いたコードホスティング、課題管理、 プルリクエスト、CI/CD … • CodeCatalyst の Space ≒ GitHub の Organizations • CodeCatalyst の Project ≒ GitHub の Repository • コードホスティングだけGitHubで CICDはCodeCatalyst、という設定も可能

Slide 15

Slide 15 text

CodeCatalystでデプロイしてみて ✅ Codeシリーズと⽐べてシンプルな設定 • AWS CodePipelineのCICDフローでは、 AWS CodeBuildやAWSCodeDeployなど 個別サービスを組み合わせて設定 • CodeCatalystは、それ単体が独⽴した統合開発サービス

Slide 16

Slide 16 text

CodeCatalystでデプロイしてみて 🌀意図しないサービス作成‧課⾦発⽣が怖い • ブラックボックスになっている部分が多い (ビルド成果物の保存するS3バケットなど) • デプロイの設定では、知らないリソースが作成されて 気付かぬうちに課⾦が発⽣しちゃうかも

Slide 17

Slide 17 text

CodeCatalystでデプロイしてみて 💡想定されるユースケース • 現状、オハイオリージョンを許容できるなら選択肢に⼊る • 会社の規約などの関係でAWS CodeCommitにホスティングしていた ソースコードを、CodeCatalystで管理 • CI/CDがGUIで設定できるので、GitHubでソースコードを管理して CodeCatalystでCI/CDを設定 => AWSにそのままデプロイ • ブループリントで、CI/CDを含めたプロジェクト設定をテンプレート化 => 新規でプロジェクトを作成するときにラクをする🎵

Slide 18

Slide 18 text

CodeCatalyst は、 語弊を恐れずに⾔えば AWS 版 GitHub まとめ

Slide 19

Slide 19 text

CI/CDやブループリントを設定して 簡単にデプロイを⾃動化させるとよさそう! まとめ