Elastic Beanstalk
なので、エラーが発生した際には CloudFormation のログを見るなどすると良い。
CLIデプロイコマンド
eb deploy
S3にアップ? zip でまとめる?
ebextensionsディレクトリ
AWSリソースのカスタマイズを行う際に必要となるやつ。
EC2でシェルスクリプトとか動かすときにもこれを使う。
ここに *.config を配置することで認識される。
フォーマットは JSON / YAML。公式としては YAML を推している。
ロードバランサーとかオートスケールとかの設定はここに書くことになる。
ElastiCache, CloudWatch, SNS, SQS, DynamoDB とかも。コンピューティングリソース以外は全部と思えばいいのか。
X-Ray 有効化
ebextensions でできる。
Elastic Beanstalk コンソールでも設定できる。
デプロイ戦略
Rolling
よくある1つずつ入れ替えていくやつ
新旧が混在する時間がある。ダウンタイムはないはず。
Rolling with additional batch
最初に新しいバージョン分をバッチで起動しておき、容量を確保する。
それ以外は Rolling に準拠、だと思う
All at once
一気に全部入れ替える。かかる時間は最も小さい。
ダウンタイムが発生する。
Immutable
新バージョンのインスタンスを全ての台数分起動しておいて、準備可能になったらゴッソリ入れ替える。
新旧を混在させず、ダウンタイムもなくしたい場合に。
DNSスイッチを組み合わせるプラクティスのこと
デプロイ戦略とは異なり、Elastic Beanstalk にもこの設定は存在しない
定期タスク(スケジュール)
cron.yaml を作成する
環境定義
env.yaml を作成する
環境名・ソリューションスタック・環境リンクを設定するのに使える
ライフサイクルポリシー
設定することで古いバージョンを自動で削除する運用ができる。
ワーカー環境
アプリケーション本体とは別?で、長時間かかる処理をオフロードすることができる
暗黙的にSQSが作成され、活用される
アプリケーションコードのパッケージング
zip ファイルにしておけば eb deploy でできる
アプリケーションバージョン
ソースコードを更新してアップロードするたびに向上する番号
ソースコードとの対応であり、動作中のアプリケーションに直接の影響はない
ライフサイクル管理で古いやつを消したりできる
本番・ステージング・開発などのステージ生成
環境 設定で分けることができる。
依存関係解決の高速化
CodeDeployでまとめてバンドルすることで早くなるらしい(よくわからん)