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
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
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
AWS CodeBuildを高速化したい
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ryome
January 11, 2024
Technology
730
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
54
AWS MCPを使ってみた
ryome
0
650
ClineでAWS CDKやインフラ構成図作ってみた
ryome
1
670
PlaywrightというE2Eテストツールを布教したい
ryome
0
110
Cursorという最強エディタを使いこなしたい
ryome
0
360
E2Eテストを自動化したい
ryome
0
100
CDKでAppSyncのJavaScriptリゾルバを開発したい
ryome
0
330
Cognitoの複数IDP認証でユーザを統合したい
ryome
1
1.5k
OAuth2.0完全に理解した
ryome
0
330
Other Decks in Technology
See All in Technology
Browser Spec: Testing Hotwire with Ruby
takahashim
1
150
freeeにおけるSoftware Factory
freee
PRO
0
270
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
150
Refining Active Record
shugo
0
190
AWSDirectConnectの構築の進め方を整理してみた
masa_my
1
120
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
160
顧客価値を追いかけたら、プライシングにたどり着いた
sansantech
PRO
2
380
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
370
ウォンテッドリーの最近のプロダクトと技術の紹介
stomk
0
320
Optunaの最新リリースv5.0について
pfn
PRO
0
130
こんにちは!SORACOM です & IoT とは【SORACOM UG 東北 in 八戸】
soracom
PRO
0
170
CloudWatch Logsのコスト最適化:どこまでAIに任せてどこから人間が承認すべきか
yama3133
0
150
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
540
Designing Experiences People Love
moore
143
24k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
A Soul's Torment
seathinner
8
3.8k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
590
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
Paper Plane
katiecoart
PRO
5
54k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
500
Building Flexible Design Systems
yeseniaperezcruz
330
41k
ラッコキーワード サービス紹介資料
rakko
3
5.4M
KATA
mclloyd
PRO
35
16k
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