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
iret.kumoben
February 08, 2024
Technology
180
0
Share
第127回 雲勉【オンライン】今年こそCI/CDをはじめよう! 〜CodeBuildとマブダチになる〜
下記、勉強会での資料です。
https://youtu.be/qiF4AcjNt1A
iret.kumoben
February 08, 2024
More Decks by iret.kumoben
See All by iret.kumoben
第182回 雲勉 【Gemini 3.0 Pro】AI ベンチマーク徹底比較!他モデルに比べ優れている点まとめ
iret
0
73
第181回 雲勉 WEB制作者のちょっとした面倒をAWSで解決!Amazon S3とAWS Lambda活用術
iret
0
62
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
90
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
120
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
90
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
98
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
78
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
120
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
150
Other Decks in Technology
See All in Technology
第26回FA設備技術勉強会 - Claude/Claude_codeでデータ分析 -
happysamurai294
0
390
解剖"React Native"
hacusk
0
120
バックオフィスPJのPjMをコーポレートITが担うとうまくいく3つの理由
yueda256
1
290
40代からのアウトプット ― 経験は価値ある学びに変わる / 20260404 Naoki Takahashi
shift_evolve
PRO
5
900
2026年度新卒技術研修 サイバーエージェントのデータベース 活用事例とパフォーマンス調査入門
cyberagentdevelopers
PRO
4
5.4k
🀄️ on swiftc
giginet
PRO
0
180
会社紹介資料 / Sansan Company Profile
sansan33
PRO
16
410k
Hooks, Filters & Now Context: Why MCPs Are the “Hooks” of the AI Era
miriamschwab
0
120
BIツール「Omni」の紹介 @Snowflake中部UG
sagara
0
240
Databricks Lakebaseを用いたAIエージェント連携
daiki_akimoto_nttd
0
170
サイバーフィジカル社会とは何か / What Is a Cyber-Physical Society?
ks91
PRO
0
150
AIドリブン開発の実践知 ― AI-DLC Unicorn Gym実施から見えた可能性と課題
mixi_engineers
PRO
0
120
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
430
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
310
WCS-LA-2024
lcolladotor
0
520
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
260
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
My Coaching Mixtape
mlcsv
0
94
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
160
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
700
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 ステップ⑥ ビルドバッジを利用する