Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第127回 雲勉【オンライン】今年こそCI/CDをはじめよう! 〜CodeBuildとマブダチ...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
iret.kumoben
February 08, 2024
Technology
0
180
第127回 雲勉【オンライン】今年こそCI/CDをはじめよう! 〜CodeBuildとマブダチになる〜
下記、勉強会での資料です。
https://youtu.be/qiF4AcjNt1A
iret.kumoben
February 08, 2024
Tweet
Share
More Decks by iret.kumoben
See All by iret.kumoben
第182回 雲勉 【Gemini 3.0 Pro】AI ベンチマーク徹底比較!他モデルに比べ優れている点まとめ
iret
0
62
第181回 雲勉 WEB制作者のちょっとした面倒をAWSで解決!Amazon S3とAWS Lambda活用術
iret
0
51
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
79
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
110
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
79
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
89
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
70
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
110
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
150
Other Decks in Technology
See All in Technology
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.1k
聲の形にみるアクセシビリティ
tomokusaba
0
130
JAWS Days 2026 楽しく学ぼう! 認証認可 入門/20260307-jaws-days-novice-lane-auth
opelab
9
1.5k
Agentic Software Modernization - Back to the Roots (Zürich Agentic Coding and Architectures, März 2026)
feststelltaste
1
210
チームメンバー迷わないIaC設計
hayama17
5
4k
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
5
1.1k
Introduction to Bill One Development Engineer
sansan33
PRO
0
380
GitLab Duo Agent Platform + Local LLMサービングで幸せになりたい
jyoshise
0
180
JAWSDAYS2026_A-6_現場SEが語る 回せるセキュリティ運用~設計で可視化、AIで加速する「楽に回る」運用設計のコツ~
shoki_hata
0
2.9k
DevOpsエージェントで実現する!! AWS Well-Architected(W-A) を実現するシステム設計 / 20260307 Masaki Okuda
shift_evolve
PRO
3
240
Ultra Ethernet (UEC) v1.0 仕様概説
markunet
3
220
モブプログラミング再入門 ー 基本から見直す、AI時代のチーム開発の選択肢 ー / A Re-introduction of Mob Programming
takaking22
2
390
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
470
Designing Experiences People Love
moore
143
24k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
280
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Evolving SEO for Evolving Search Engines
ryanjones
0
150
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
180
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.4k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.1k
Transcript
第127回 雲勉【オンライン】 今年こそCI/CDをはじめよう︕ ~CodeBuildとマブダチになる〜
0. 自己紹介 松田 啓佑 • 所属 ◦ クラウドインテグレーション事業部 構築第2セクション •
業務 ◦ Webアプリケーション開発における非機能領域全般を担当 ◦ バックエンド、インフラ、オブザーバビリティ • 好きなAWSサービス ◦ Amazon ECS ◦ AWS Step Functions • 認定 ◦ 2023 Japan AWS Top Engineers ◦ iretテクニカルアンバサダー advanced • 趣味 ◦ テニス ◦ 飲酒 2
本日のゴール 3 CodeBuildの基礎を理解することにより、AWS Codeシリーズを利用する敷居を下げる
本日のアジェンダ 4 1. CI/CDとは 2. CodeBuildとは 3. 実際にCodeBuildを使ってみる
5 1. CI/CDとは
6 CI/CDとは • Continuous Integration/Continuous Delivery = 継続的インテグレーション/継続的デリバリー • アプリケーション開発の各ステージを自動化することにより、アプリケーション開発を高速/効率化する手法
CI/CDがない世界 7 時間がかかる ヒューマンエラーが発生する ソースコードの変更 ビルド実施 テスト実施 デプロイ実施 リリース 人がやる範
囲
CI/CDがある世界 8 ソースコードの変更 ビルド実施 テスト実施 デプロイ実施 リリース 人がやる範 囲 時間はかからない
ヒューマンエラーはゼロ
9 CI/CDの重要性 アジリティ(俊敏性)が求められる昨今のアプリ開発において CI/CDは必要不可欠な要素
10 アプリケーションの一般的なリリースサイクル • ソース:ソースコードの更新 • ビルド:コンパイル、単体テスト、コンテナイメージの作成 • テスト:結合テスト、UIテスト、ロードテスト • デプロイ:本番環境への適用
CI/CDではこれら各フェーズを自動化する => 自動化した一連のプロセスをCI/CDパイプラインと呼 ぶ ソース ビルド テスト デプロイ
11 2. CodeBuildとは
12 AWS Codeシリーズとは AWSにおいて、アプリケーションのリリースプロセスを担うサービス 本日の主役
13 AWS Codeシリーズとは 脇役たちの紹介 プライベートなGitリポジトリ AWSリソースへのアプリケーション をデプロイする 他のCodeシリーズを連携させて、 CI/CDパイプラインを構成する
14 CodeBuildとは CodeBuildを一言で表すと、、、 サーバレスな何でも屋さん
15 CodeBuildで何ができるの? • パイプラインにおいてコマンド、プログラムを実行することができる。 • 実行による成果物を後続処理(主にデプロイ)に利用できるようにする。
16 CodeシリーズによるCI/CDパイプラインの構成イメージ 1. CodeCommitレポジトリの発火対象ブランチに変更が加わる 2. CodeBuildにてソースコードのビルドを行う(場合によってはテストを実行する) 3. ビルドされた成果物をCodeDeployにて対象(EC2やECS)にデプロイする ビルド、テスト =
コマンド、プログラムの実行
17 CodeBuildの要素 CodeBuild ビルドプロジェクト ビルド ビルド ビルド • ビルドプロジェクト =
ビルド内の処理を定義した金型 • ビルド = ビルドプロジェクトを元に実行されるビルド処理そのもの
18 サーバレスなビルド環境 • ビルドの実行ごとにコンテナが起動しビルド環境を構築する • コンテナのオペレーティングシステムやプログラミング言語ランタイムは指定可能 • 自前のDockerイメージも利用可能 ビルド環境となるコンピューティングリソースを管理する必要な し
19 アーティファクト • パイプライン内の処理にて利用されるファイル群 • アーティファクトはアーティファクトストア(S3バケット)にて保存される
20 アーティファクトストア アーティファクトストア パイプラインの各処理にてファイルを受け渡すためにアーティファクトストアが利用される
21 ビルドスペックファイル • ビルドの内容を記述したyaml形式のファイル • 各ビルドフェーズにて実行するコマンド、プログラムを定義する • 必須ではないが、特別な理由がない限りは利用するべき
22 buildspec.yml version: 0.2 env: variables: ENV: "prd" phases: install:
runtime-versions: java: corretto11 pre_build: commands: - echo Nothing to do in the pre_build phase… build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Build completed on `date` artifacts: files: - target/messageUtil-1.0.jar [version] buildspecのバージョン。 0.2以外を選択するケースはない。 [env] ビルド環境で利用する環境変数。 パラメータストアやシークレット マネージャーとの連携も可能。 [phase] ビルド内の各フェーズごとの処理 内容などを定義。 runtime-versionsを定義することで 、ビルド環境の言語ランタイム 指定することが可能。 commandsにコマンドを定義する。 [artifacts] アーティファクトストアに出力す るファイル。後続処理にて利用す るものを指定する。
23 その他機能 VPC内ビルド環境 ビルド環境コンテナをVPC内にて起動することにより、ビルド環境からVPC内のリ ソースへのアクセスが可能。テストなどにてRDSなどを利用することができる。 ビルド環境へのログイン Session Managerによりビルド環境コンテナにログインすることができる。トラブル シュート時に重宝。 バッチビルド
複数のビルドの処理を並列で同時に実行させたりすることができる。 テストレポート ビルドにて実行したテスト結果をレポート形式としてグラフなどの形式で出力するこ とができる。対応しているフォーマットにしたがっていれば利用可能。 ビルドバッジ ビルドステータスを表す埋め込み可能なイメージ。ビルドバッジURLとしてreadme などに埋め込むことで利用できる。 ビルド結果の通知 SNSやChatbotにビルド結果を通知する。これによりビルドが完了したタイミングで Slackやメールを受信することができる。
24 3. 実際にCodeBuildを使ってみる
25 実際に使ってみる ステップ① : ビルド内でコマンドを実行する ステップ② : CodeCommit/CodePipelineと連携させる ステップ③ :
アーティファクトを受け渡す ステップ④ : ビルド環境にログインする ステップ⑤ : Pythonプログラムを実行して、テストレポートを出力する ステップ⑥ : ビルドバッジを利用する
26 ステップ① ビルド内でコマンドを実行する
27 ステップ② CodePipeline/CodeCommitと連携させる
28 ステップ③ アーティファクトを受け渡す
29 ステップ④ ビルド環境にログインする
30 ステップ⑤ Pythonプログラムを実行して、テストレポートを出力する
31 ステップ⑥ ビルドバッジを利用する