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
AWS CodeBuildを高速化したい
Search
ryome
January 11, 2024
Technology
0
590
AWS CodeBuildを高速化したい
AWS CodeBuildのビルド時間を高速化する検証。
ryome
January 11, 2024
Tweet
Share
More Decks by ryome
See All by ryome
AWSデスノート〜AWSの嫌いなところまとめ〜
ryome
0
24
AWS MCPを使ってみた
ryome
0
560
ClineでAWS CDKやインフラ構成図作ってみた
ryome
1
560
PlaywrightというE2Eテストツールを布教したい
ryome
0
62
Cursorという最強エディタを使いこなしたい
ryome
0
300
E2Eテストを自動化したい
ryome
0
76
CDKでAppSyncのJavaScriptリゾルバを開発したい
ryome
0
290
Cognitoの複数IDP認証でユーザを統合したい
ryome
1
1.3k
OAuth2.0完全に理解した
ryome
0
220
Other Decks in Technology
See All in Technology
Connection-based OAuthから学ぶOAuth for AI Agents
flatt_security
0
400
テストセンター受験、オンライン受験、どっちなんだい?
yama3133
0
180
株式会社ビザスク_AI__Engineering_Summit_Tokyo_2025_登壇資料.pdf
eikohashiba
1
120
Microsoft Agent Frameworkの可観測性
tomokusaba
1
120
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
1
200
AIBuildersDay_track_A_iidaxs
iidaxs
4
1.4k
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
430
[2025-12-12]あの日僕が見た胡蝶の夢 〜人の夢は終わらねェ AIによるパフォーマンスチューニングのすゝめ〜
tosite
0
200
Cloud WAN MCP Serverから考える新しいネットワーク運用 / 20251228 Masaki Okuda
shift_evolve
PRO
0
110
ESXi のAIOps だ!2025冬
unnowataru
0
400
Snowflake導入から1年、LayerXのデータ活用の現在 / One Year into Snowflake: How LayerX Uses Data Today
civitaspo
0
2.5k
Claude Skillsの テスト業務での活用事例
moritamasami
1
110
Featured
See All Featured
Information Architects: The Missing Link in Design Systems
soysaucechin
0
720
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.2k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
410
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Why Our Code Smells
bkeepers
PRO
340
57k
The Curse of the Amulet
leimatthew05
0
4.9k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
200
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
200
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