本記事はBeanstalkを触ってみた時の個人的なメモになります。
記述部分に間違いがあれば指摘いただければと思います。
Beanstalk を触ってみた
AZ間冗長化を犠牲にしてでも通信料を $0.00にしたい (Production環境では行わないこと)
Private な Service A, Service B 間の通信でもAvailability Zone(以下 Zone)を超えた通信を行えばテータ転送(アウト) $0.01 GB が必要になる
ただし以下の条件を満たせば $0.00 GB で service 間通信が行える。
・Service A 及び Service B の ELB 及び Instance を「同一Zone」上に構築する
・ELBは「内部」設定にする
・同一 VPC である
PublicなIPを付与している環境等あるとは思うので初めの構築時に traceroute とかで確認しておくと確実かと
ただしこの設定は単一 Zone 上で構築するため可用性を高めるといった非機能要件を満たすことはできないので要注意
検証等で Service 間通信を多用する場合はやってみても良いのではないかと
Amazon EC2 料金
https://aws.amazon.com/jp/ec2/pricing/on-demand/
Immutable な更新・デプロイメント
ヘルスチェックを「拡張」にしなければ設定することができない。
事前設定済みプラットフォーム
Docker : docker がインストールされた AWS 提供のAMIを利用したデプロイ
Multi-container Docker : 実態は AWS ECS (https://aws.amazon.com/jp/ecs/details/)
Docker プラットフォームについて
更新・デプロイ時は以下の流れになる模様
METAファイルの更新-> docker rm -> docker run の順
このとき「何らかの原因で」docker rm に失敗した場合は環境情報の更新に失敗する。
特に「環境プロパティ」の更新を行いたい場合は要注意
更新と環境の再構築は同時に行えないため immutable な設定を行っていない場合は新規構築をする形になる。