前回
(Beanstalk基本コマンドとサンプル作成)の続き
アプリケーション上にgit上の既存ソースをデプロイする。
リリースディレクトリを作成
これは通常の通り
mkdir release
cd release
git clone XXXXXXXXXXXXXXXX
# 必要あればブランチに切り替え
git checkout release
使用するリージョンとアプリケーションを設定
eb init コマンドで設定する
$eb init --profile manjiii
Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-south-1 : Asia Pacific (Mumbai)
7) ap-southeast-1 : Asia Pacific (Singapore)
8) ap-southeast-2 : Asia Pacific (Sydney)
9) ap-northeast-1 : Asia Pacific (Tokyo)
10) ap-northeast-2 : Asia Pacific (Seoul)
11) sa-east-1 : South America (Sao Paulo)
12) cn-north-1 : China (Beijing)
13) cn-northwest-1 : China (Ningxia)
14) us-east-2 : US East (Ohio)
15) ca-central-1 : Canada (Central)
16) eu-west-2 : EU (London)
17) eu-west-3 : EU (Paris)
18) eu-north-1 : EU (Stockholm)
(default is 3):9 #<- 東京リージョンに作成するので9
Select an application to use
1) manjiii-app
2) [ Create new Application ]
(default is 2): #<- manjiii-appアプリケーション上に作成したいので1
Do you wish to continue with CodeCommit? (y/N) (default is n): n
既存の環境を念の為確認
サンプルの中ではmanjiiiアプリケーション上に現在manjiii-cat環境が作成されています
eb list コマンドで確認
$ eb list -av
Region: ap-northeast-1
Application: manjiii
Environments: 1
* manjiii-cat : ['i-XXXXXXXXXXXX'] #<- 既にある環境がデフォルトになっている
eb status コマンドでも確認
$ eb status
Environment details for: manjiii-cat
Application name: manjiii
Region: ap-northeast-1
Deployed Version: app-before_model_refactor-XXXXXXXXXXXXXXX
Environment ID: e-XXXXXXXXXXXXXXX
Platform: arn:aws:elasticbeanstalk:ap-northeast-1::platform/Python 3.6 running on 64bit Amazon Linux/2.8.3
Tier: WebServer-Standard-1.0
CNAME: XXXXXXXXXXX.ap-northeast-1.elasticbeanstalk.com
Updated: 2019-05-10 16:40:09.582000+00:00
Status: Ready
Health: Green
既存環境の設定を保存(必要あれば)
既存の環境と同じ設定を利用したいけどまだローカルもしくはs3に保存されていない場合に実施
eb config listで確認
$ eb config list
prod1_XXXX
prod1_YYYY <-現在の設定された設定が(作成されていれば)表示される
既存の環境をeb config saveで保存、s3にアップロード
$ eb config save --cfg maniii-cat #<- maniii-cat環境の設定をダウンロードする
Configuration saved at: [現在のディレクトリ]/.elasticbeanstalk/saved_configs/manjiii-cat.cfg.yml
# 念の為確認
$ tree -L 2 .elasticbeanstalk/
.elasticbeanstalk/
├── config.yml
└── saved_configs
└── manjiii-cat.cfg.yml
# 必要あればmanjiii-cat.cfg.ymlを編集
# S3にアップロード
$ eb config put manjiii-cat
# 確認
$ eb config list
prod1_XXXX
manjiii-cat # <-追加されている
prod1_YYYY
環境の作成
eb createで作成。既存の保存された設定を使用する場合は--cfgオプションを使用
※cfgに指定した設定情報はローカル→s3の順番に検索される
詳しくは
公式
を参照して下さい。(ってそもそもここに書いてあるコマンド全部書いてあるんですけどね(´ε`;))
デフォルトで良ければ指定無し
$ eb create --cfg manjiii-cat #<-先程保存した設定を利用
Enter Environment Name
(default is napaeae-dev): manjiii-bird #<- 今回作成する環境名を指定
Enter DNS CNAME prefix
(default is prod-bird): manjiii-bird-XXXXXX #<- URLのプリフィックスを指定
Select a load balancer type
1) classic
2) application
3) network
(default is 2): 2 #<- applicationバランサーを使用するので2
Creating application version archive "app-before_mod....
....
# 環境の作成が始まる
エラーが出るとき
環境作成時のログに出ている場合もあるが、エラーなどで失敗する場合、以下のコマンドなどで確認する
$ eb logs
もしくは
$ eb ssh
で環境に入って、
/var/log/eb-activity.log
等ログを確認する。
確認
eb open コマンドでブラウザで確認
$ eb open
現在のディレクトリが新しく作成した環境に向いていることを確認
(特に作成失敗している場合など既存のものに向いている場合があるので特に注意)
$ eb list
* manjiii-bird #<- 「*」をよく確認
manjiii-cat
デプロイ
※上記作成時に行った時にデプロイされています。今後リリースしたい時に実行。
デプロイ対象となるのは
- 既存のブランチにコミットされている
- ステージ煮上げているものを対象に含めたい場合は「--staged」
なので注意(ローカルで編集しただけだと対象にならない)
また、安全を期すために対象環境を指定するのが吉
$ eb list #<- 指定するにもかかわらずやっぱり確認
* manjiii-bird #<- 「*」をよく確認
manjiii-cat
$ eb deploy manjiii-bird
一旦ここまで。