Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AWS CodeBuildを高速化したい
Search
ryome
January 11, 2024
Technology
720
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS CodeBuildを高速化したい
AWS CodeBuildのビルド時間を高速化する検証。
ryome
January 11, 2024
More Decks by ryome
See All by ryome
AWSデスノート〜AWSの嫌いなところまとめ〜
ryome
0
50
AWS MCPを使ってみた
ryome
0
640
ClineでAWS CDKやインフラ構成図作ってみた
ryome
1
640
PlaywrightというE2Eテストツールを布教したい
ryome
0
98
Cursorという最強エディタを使いこなしたい
ryome
0
350
E2Eテストを自動化したい
ryome
0
97
CDKでAppSyncのJavaScriptリゾルバを開発したい
ryome
0
320
Cognitoの複数IDP認証でユーザを統合したい
ryome
1
1.5k
OAuth2.0完全に理解した
ryome
0
300
Other Decks in Technology
See All in Technology
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
3
440
module Synths; end
asonas
1
130
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
120
Snowflakeのコスト最適化を支えるアーキテクチャ設計
ktatsuya
0
1.1k
Omarchy Quattro の日本語設定周り
simosako
2
100
AIに丸投げしないトイル削減 / Eliminating Toil Without Leaving It All to AI
kohbis
4
1k
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
100
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
4
2.7k
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
3
180
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
320
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
2
380
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
150
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
4.8M
Side Projects
sachag
455
43k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Code Review Best Practice
trishagee
74
20k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
260
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
430
Writing Fast Ruby
sferik
630
63k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
67
58k
How to Talk to Developers About Accessibility
jct
2
540
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
340
Transcript
AWS CodeBuildを 高速化したい
AWS CodeBuildのおさらい • AWS CodeBuildは、コードのビルド、テスト、パッケージ化など、ソフト ウェア開発のパイプライン内で様々なタスクを自動化するために使用され るフルマネージド型のサービスです。 • ビルドの指示はbuildspec.ymlファイルによって定義されます。 CodeCommitやCodeDeployと
一緒に使用されることが多い
どうやって速くするの? • 依存関係をS3に保管しておく • Bunを使用して依存関係のインストールを高速化する • コンピューティングにLambdaを選択する
なぜ、速くするの? EC2 料金 ビルド時間で課金される
なぜ、速くするの? Lambda 料金 ビルド時間で課金される
前提 React初期プロジェクトのビルド時間短縮を目指す。 環境 ・Nodeバージョン:18 ・Reactバージョン:18.2.0 インストールパッケージ名 @emotion/react @emotion/styled @mui/material axios
react react-dom react-router-dom react-scripts web-vitals @testing-library/jest- dom @testing-library/react @testing-library/user- event jest-junit jsdom
テスト時の依存関係をS3に保管しておく • CodeBuildのS3キャッシュ設定
テスト時の依存関係をS3に保管しておく buildspec.ymlにcacheを追加する キャッシュに残すパス
テスト時の依存関係をS3に保管しておく ビルド時間比較 • S3キャッシュを使用した場合: o インストール:11秒 • S3キャッシュを使用しない場合: o インストール:31秒
Bunを使用して依存関係のインストールを 高速化する • Bunの紹介 o Node.jsやDenoと同様のJavaScriptランタイム o JavaScriptCoreエンジンを採用して高速 o Bun自体がパッケージマネージャー
o タスクランナーとして動かすことも可能(bun run 〜とか使える) o ファイルの書き込み、SQLite3データベースのサポート、環境変数の自 動読み込み(.envファイル対応)などをデフォルトでサポート
Bunを使用して依存関係のインストールを 高速化する • 「npm install –g bun」でBunをインストール
Bunを使用して依存関係のインストールを 高速化する • Bunコマンドでインストール、ビルドを行う
Bunを使用して依存関係のインストールを 高速化する ビルド時間比較 • Bunを使用した場合: o インストール:10秒 • Npmを使用した場合: o
インストール:31秒
コンピューティングにLambdaを選択する • AWS CodeBuild で AWS Lambda によるコンピューティングのサポートを開始
コンピューティングにLambdaを選択する • CodeBuild作成時にコンピューティングでLambdaを選択する
コンピューティングにLambdaを選択する ビルド時間比較(S3キャッシュ、Bun込み) • EC2の場合:1分15秒 • Lambdaの場合:30秒
まとめ • 結果 改善前のビルド 時間 改善後のビルド 時間 短縮時間 テスト時の依存関係をS3に保管しておく 31秒
11秒 20秒 Bunを使用して依存関係のインストールを高 速化する 31秒 10秒 21秒 コンピューティングにLambdaを選択する 1分15秒 30秒 45秒
GitHub • 今回検証で使用したコードは以下です。 o https://github.com/ryomeblog/codebuild-speedup
余談 • CodeBuildのテスト時にレポート作成 o buildspec.ymlにreportsを追加 レポートファイル名 レポートファイルがある ディレクトリ名
余談 • CodeBuildのテスト時にレポート作成
余談 • dependenciesとdevDependenciesを使い分ける o npm install 【パッケージ名】→ dependencies o npm
install --save-dev 【パッケージ名】→ devDependencies • 依存関係のインストールをデプロイ先によって分ける!! o 開発環境:npm install → dependenciesとdevDependencies o 本番環境:npm install --production → dependenciesのみ!! 本番環境に不要な パッケージが入らなくなる!! 本番環境で使うパッケージ 開発時に使うパッケージ
参考文献 • https://aws.amazon.com/jp/about-aws/whats- new/2023/11/aws-codebuild-lambda-compute/ • https://aws.amazon.com/jp/codebuild/pricing/ • https://aws.amazon.com/jp/codebuild/features/ • https://dev.classmethod.jp/articles/codebuild-
lambda-compute/ • https://docs.aws.amazon.com/ja_jp/codebuild/latest /userguide/test-report-jest.html