🏗️ AWS CodeBuild buildspec.yaml

建物を建てるように、アプリをビルドしよう!

buildspec.yamlって何?

🏗️ たとえ話:建設現場の設計図

buildspec.yamlは、 建物を建てる時の詳細な作業手順書 のようなものです。建設現場では、まず土台を作り、骨組みを組み立て、壁を作り、最後に仕上げをしますよね。CodeBuildも同じように、アプリケーションを段階的に「建設」していきます。

buildspec.yamlは、AWS CodeBuildに「どのようにアプリケーションをビルド(構築)するか」を指示するファイルです。このファイルがないと、CodeBuildはあなたのコードをどう処理していいか分からなくなってしまいます。

ビルドの流れ(建設工程)

📋
pre_build
準備工事
➡️
🔨
build
本工事
➡️
🎯
post_build
仕上げ工事
➡️
📦
artifacts
成果物
1
install

必要な道具や材料を準備する段階。Node.jsやPythonなどのランタイムをインストールします。

2
pre_build

本格的な作業の前準備。依存関係のインストールやテスト環境の設定を行います。

3
build

メインの建設作業。アプリのコンパイル、テスト実行、Docker イメージの作成などを行います。

4
post_build

仕上げ作業。成果物の最終チェックや、デプロイ先への配置準備を行います。

基本的なbuildspec.yamlの構造

🏗️ 建設現場の例

作業手順書
  1. 準備 :ヘルメット着用、道具確認
  2. 基礎工事 :土台を固める
  3. 本工事 :壁を建てる
  4. 仕上げ :掃除して完成品を納品

💻 buildspec.yamlの例

version: 0.2 phases: install : runtime-versions: nodejs: 18 pre_build : commands: - npm install build : commands: - npm run build - npm test post_build : commands: - echo "ビルド完了!" artifacts : files: - '**/*' base-directory: 'dist'

実践的な例:Webアプリのビルド

🍳 料理に例えると...

Webアプリのビルドは 料理 にも似ています。材料(ソースコード)を準備し、調理器具(ビルドツール)を用意し、レシピ通り(buildspec.yaml)に調理して、最終的に美味しい料理(動くアプリ)を完成させます。

version: 0.2 env: variables: # 環境変数(調理の設定) NODE_ENV: production API_URL: https://api.example.com phases: install: runtime-versions: nodejs: 18 commands: - echo "調理器具を準備中..." pre_build: commands: - echo "材料を準備中..." - npm install - npm run lint # 材料の品質チェック build: commands: - echo "調理開始!" - npm run build - npm test - echo "味見(テスト)完了!" post_build: commands: - echo "盛り付け完了!" - aws s3 sync dist/ s3://my-website-bucket artifacts: files: - '**/*' base-directory: 'dist' name: my-website-$(date +%Y-%m-%d)

重要なポイント

環境変数(env)

建設現場で言う「作業環境の設定」です。どの環境で作業するか(本番環境?テスト環境?)を指定します。

成果物(artifacts)

建設完了後の「完成した建物」に相当します。ビルドで作成されたファイルのうち、どれを保存・配布するかを指定します。

バージョン指定

現在は version: 0.2 を使用します。これは「作業手順書のフォーマットバージョン」のようなものです。

よくあるパターン

🐳 Docker アプリ

pre_build: Docker ログイン

build: イメージ作成

post_build: レジストリにプッシュ

⚛️ React アプリ

pre_build: npm install

build: npm run build

post_build: S3にアップロード

🚀 API サーバー

pre_build: 依存関係インストール

build: テスト実行

post_build: デプロイ

まとめ

buildspec.yamlは、あなたのアプリケーションを自動で「建設」するための 設計図 です。 一度作成すれば、CodeBuildが毎回同じ手順で確実にビルドしてくれます。

🎯 次のステップ

実際にbuildspec.yamlを作成して、AWS CodeBuildでビルドを試してみましょう!

Created by SSuzuki1063

AWS SAP Learning Resources