AWS re:Invent 2016: Scaling Your Web Applications with AWS Elastic Beanstalk (DEV206)
なぜElastic Beanstalkを作ったのか
- 複雑なコードのデプロイ、セットアップ、インフラの管理
- サーバの設定、DB、ロードバランサー、firewall、ネットワークの管理に訓練と時間が必要
- スケールの自動化をどうするか
- チーム間の整合性をどう取るか
Elastic Beanstalkって?
- デプロイ、スケール、Webアプリとサービスの管理を簡単にしてくれる奴
何がいいのか
- 簡単に始められる
- 開発者の生産性と速度
- 不足を感じさせない(スケールできる的な意味?)
- 完全なリソースの管理
- 追加コストはない(リソースのコストだけ)
ユースケース
- Webサイト
- APIバックエンド
- モバイルのバックエンド
- 非同期のワーカー
どう始めるの?
- コードがあります
- リージョンを選びます
- Stack(container) typeを選びます(プラットフォーム)
- 1インスタンスか、分散+オートスケールするか
- RDS
アプリケーションはデプロイバージョンで管理され、各バージョンが各環境にデプロイできる(dev, tset, prodとか)
どうデプロイするか
EBコマンドについて
- $eb initしたディレクトリ(プロジェクト)でコマンドを叩くとそのバージョンでデプロイできる
- 修正、デプロイ、修正、デプロイ、みたいな
ebextensions
Option settings
CodeCommitとの連携
- eb cliから直接リポジトリを作れる
- コード書く→できた→デプロイしつつGit管理したい みたいな?
- でも既にあるリポジトリが表示されてるのよくわからん
- ローカルじゃなくてリポジトリのコードをデプロイする?
新しいバージョンのデプロイ
- デフォルトだと全インスタンスが一気にバージョン上がる
- ダウンタイムがある
ローリング
//途中 22:49 https://www.youtube.com/watch?v=Fv0yG_wDgoo
- underneath
- agility
- outgrow
- intimidate
- terminology
- opinionated
- tailor
- plumb
- shrink-wrap
- simultaneously
- essentially