Share
Embed
納涼LT祭-X Mile上原
萩原菜々子
September 05, 2024
Transcript
9 slides
-
ある日デプロイが通らなくなった Amplifyでホスティングを行っているプロダクトがある 普段通り開発を進めていると、ある日デプロイが通らなくなった どうやらビルドの生成物がAmplifyの許容サイズを超えているらしい Uncompressed code size exceeded (Max size:
220MB). Please reduce the artifact size. For help see our docs: https://docs.aws.amazon.com/amplify/latest/userguide/troubleshooting-ssr-deplo yment.html -
ビルドアウトプットを確認してみる • aws cli もしくは aws console からデプロイが失敗したビルドのビルドアウ トプットをダウンロード •
中身のディレクトリのファイルサイズを確認 • 296MBもある!? ❯ cd artifacts ❯ du -csh compute static 250M compute ← コード類 46M static ← 画像ファイル系 296M total -
ビルドアウトプットを確認してみる • 一番大きいのは node_modules、次が .next • node_modulesをすぐにどうにかするのは難しそう • .next 内でサイズが大きいものがないか確認してみる
❯ cd compute/default ❯ du -csh (.|)* 4.0K .env.production 78M .next ← 2番 147M node_modules ← 1番大きい 4.0K package.json 8.0K public 4.0K run.sh 40K server.js 25M src ← 3番 250M total -
サイズのデカいファイルがないか探す • 計 約18MBのJSONファイル群があった • データの内容は統計情報など。 • 過去に実装速度・リリース速度優先のために、DBではなくひとまずJSONを読 み込む形で進めてしまったもの。 →
このJSONファイル群を消してみる。データはDBに移動させる。 -
削除結果 • .next が 約17MB、 src が約22MB減った • src をビルドして
.next が生成されているので、どちらも減ったもよう # After ❯ cd compute/default/ ❯ du -csh (.|)* 4.0K .env.production 61M .next 147M node_modules 4.0K package.json 0B public 4.0K run.sh 40K server.js 2.7M src 210M total # Before ❯ cd compute/defaul ❯ du -csh (.|)* 4.0K .env.production 78M .next 147M node_modules 4.0K package.json 8.0K public 4.0K run.sh 40K server.js 25M src 250M total -
削除結果 • 計約40MBを削減することができた • この変更以降デプロイが失敗することは無くなった • しかし、トータル 220MB 超えているのにデプロイ通っているのは疑問が残る ◦
どこのサイズが判断基準になっているのかは未調査のため、今後調査していきたい。 # Before ❯ du -csh compute static 250M compute 46M static 296M total # After ❯ du -csh compute static 210M compute 46M static 256M total -
まとめ 残った課題 • まだまだサイズギリギリなので、小さくしていきたい ◦ ビルドの時間やgit pullの時間にも関わってくるため、開発者体験的にも改善したい • package.jsonの整理を行いつつ、node_modules内でも削除出来そうな ファイルの調査と削除を進めたい
• Amplifyの仕様で不明なところがあるので追加で調査していく • そもそも、Amplifyを使い続けるのかも議論が必要かも ビルドやデプロイ関連の知識が足りていないので、勉強していきたい!!!