【クラウド】【AWS】AWS Elastic Beanstalk(ビーンストーク) - j-komatsu/myCheatSheet GitHub Wiki

AWS Elastic Beanstalk(ビーンストーク)入門と実践

読み方

エーダブリューエス・エラスティック・ビーンストーク


🌱 初学者向けガイド

📘 Elastic Beanstalkとは?

Elastic Beanstalkは、アプリケーションを簡単にデプロイ・管理できるAWSのサービスです。
サーバーやOSの細かい設定を気にせず、コードをアップロードするだけでアプリが動きます。

🧾 たとえ話:

Elastic Beanstalkは「定食屋の注文端末」みたいなもの
メニュー(アプリ)を選ぶだけで、厨房(サーバー)や調理(デプロイ)は自動でやってくれる!


💡 特徴(表)

特徴 内容
対応言語 Java, Python, Node.js, .NET, PHP, Ruby, Go など
インフラ管理 自動(EC2, ELB, Auto Scaling, RDSなどを自動構築)
スケーリング 自動スケーリング対応
モニタリング CloudWatch統合
デプロイ方法 ZIPファイル or Gitからアップロード
簡易設定 .ebextensions でカスタマイズ可能

📦 初期セットアップ(例:Node.jsアプリ)

# AWS CLIとEB CLIが必要(事前にインストール)
pip install awsebcli

# 初期化(対話式)
eb init

# 環境作成
eb create my-env

# デプロイ
eb deploy

# ステータス確認
eb status

✅ 入出力イメージ(Node.js例)

📥 入力:Node.jsアプリ(app.js)

const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('Hello from Beanstalk!'));
app.listen(3000);

📤 出力:ブラウザ表示

Hello from Beanstalk!

🔁 デプロイフロー(Mermaid.js)

flowchart TD
    A[ローカルでアプリ開発] --> B[eb initで初期化]
    B --> C[eb createで環境作成]
    C --> D[eb deployでデプロイ]
    D --> E[URLでアクセス&確認]

👨‍💻 専門者向け:設定と拡張

⚙️ より細かい設定

.ebextensionsディレクトリを作成し、YAMLファイルで設定

📄 .ebextensions/01_packages.config

packages:
  yum:
    git: []

📄 .ebextensions/02_env.config

option_settings:
  aws:elasticbeanstalk:application:environment:
    NODE_ENV: production

🛠️ カスタムデプロイ例(Javaアプリ)

# WARファイルを生成して配置
mvn package
eb deploy

📄 .elasticbeanstalk/config.yml

branch-defaults:
  default:
    environment: java-env
global:
  application_name: MyJavaApp
  default_platform: Java 8 running on 64bit Amazon Linux
  default_region: ap-northeast-1

🔍 トラブルシューティング

症状 原因例 対応方法
デプロイ失敗 .ebextensions のYAMLエラー スペースや記述を確認
アプリが表示されない ポートが違う(例:3000でなく80が必要) process.env.PORT を使用
環境が削除できない RDSが外部にある RDSの削除オプションを確認

📚 まとめ

観点 初心者向け 専門者向け
セットアップ eb init で簡単 .ebextensionsconfig.yml
管理方法 自動スケーリング任せ カスタムAMIや独自ALB設定も可能
利用シーン 学習アプリやテストデプロイ 小中規模プロダクションにも対応

🎁 おまけ:無料利用枠は?

  • 無料枠対象サービス:Elastic Beanstalkそのものは無料
  • ただし、裏で動くEC2やS3、RDSなどは別料金なので注意!

🗂️ 参考リンク