1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Beanstalk基本コマンドとサンプル作成

Last updated at Posted at 2019-05-07

自分用のcli(EB CLI)の主要なコマンドの整理のためのメモ。
まずは基本のコマンドとサンプルアプリケーションの作成

詳しくは公式を参照して下さい。
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/eb-cli3.html

アプリケーションの新規作成もしくは既存アプリケーションの利用

eb init

カレントディレクトリに対してBeanstalkの初期設定を行う

プロファイルを指定して実行したい場合は--profile [プロファイル名] を付加して実行

eb init --profile manjiii

プロファイルの作成に関してはこの辺を記事を参考に。

ソースの存在しない空のディレクトリでの実行例
Pythonの環境を利用。この後は全てこのディレクトリで作業を行う

(ebコマンドは基本的にカレントディレクトリに対して行われる)

$ mkdir beanstalk-cli-test
$ cd beanstalk-cli-test

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 #<-デフォルトで使用したいリージョンを指定

既存のアプリケーションが存在する場合それを使うか聞かれるので選択

Select an application to use
1) manjiii
2) [ Create new Application ]
(default is 2): 1 #<-使用したいアプリケーションを指定。新規なら2

使用するプラットフォームを聞かれるので選択

Select a platform.
1) Node.js
2) PHP
3) Python
4) Ruby
5) Tomcat
6) IIS
7) Docker
8) Multi-container Docker
9) GlassFish
10) Go
11) Java
12) Packer
(default is 1): 3 #<-Pythonを指定

使用するバージョンを聞かれるので選択

Select a platform version.
1) Python 3.6
2) Python 3.4
3) Python 3.4 (Preconfigured - Docker)
4) Python 2.7
5) Python
(default is 1): 1 #<-Python 3.6を指定

ソース(コントロール)がないのでCodeCommitの設定できないけど続けるよーのメッセージが表示される

Cannot setup CodeCommit because there is no Source Control setup, 
continuing with initialization

作成した環境にSSHする際に使用するキーペアでどれを使うか聞かれるので選択

Do you want to set up SSH for your instances?
(Y/n): y

Select a keypair.
1) XXXXXXXX
2) [ Create new KeyPair ]
(default is 1): 1 #<-設定してあるのでそれを指定。なければ2

initコマンドの終了後、ファイルの確認

.elasticbeanstalk/config.ymlが作成されている

$ tree -a
.
├── .elasticbeanstalk
│   └── config.yml
└── .gitignore

$ cat .elasticbeanstalk/config.yml
branch-defaults:
default:
    environment: null
global:
application_name: manjiii
branch: null
default_ec2_keyname: XXXXXXXX
default_platform: Python 3.6
default_region: ap-northeast-1
include_git_submodules: true
instance_profile: null
platform_name: null
platform_version: null
profile: manjiii
repository: null
sc: null
workspace_type: Application

アプリケーション内に新しい環境を作成

eb create

テスト用の環境を作成してみる

$ eb create

作成する名前を聞かれるので入力

Enter Environment Name
(default is manjiii-dev):test-env

URLに使用するprefixを聞かれるので入力(後でブラウザで確認する時などのURLに使われる)

Enter DNS CNAME prefix
(default is test-env): #<- デフォルト使用でそのままenter

使用するロードバランサーを聞かれるので選択

Select a load balancer type
1) classic
2) application
3) network
(default is 2):2 #<- ALBを使用するので2、もしくはそのままenter

ソースがないからサンプル使う?と聞かれるのでYes(後で入れ替えれる)

NOTE: The current directory does not contain any source code. Elastic Beanstalk is launching the sample application instead.
Do you want to download the sample application into the current directory?
(Y/n): y

環境の作成が始まる

NFO: Downloading sample application to the current directory.
INFO: Download complete.
Environment details for: test-env
Application name: manjiii
Region: ap-northeast-1
Deployed Version: Sample Application
Environment ID: e-picm9u2ems
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: test-env2.ap-northeast-1.elasticbeanstalk.com
Updated: 2019-XX-XX 08:18:36.607000+00:00
Printing Status:
2019-XX-XX 08:18:34    INFO    createEnvironment is starting.
2019-XX-XX 08:18:36    INFO    Using elasticbeanstalk-ap-northea
.....

数分かかるので落ち着いて待つ

作成終了

20XX-XX-XX 08:22:17    INFO    Successfully launched environment: test-env

ファイルを確認

$ tree -a
.
├── .elasticbeanstalk
│   └── config.yml
├── .gitignore
├── application.py #<- サンプルが保存されれいる
└── cron.yaml #<- サンプルが保存されれいる

アプリケーション、環境の確認

eb list

-a で全てのアプリケーション

-v で詳細情報

先程のアプリケーション、環境ができたか確認してみる

$ eb list -va
Region: ap-northeast-1
Application: manjiii
    Environments: 1
        * test-env : ['i-028bfedXXXXXXXXXXX'] #<- [*]がついているのがデフォルト

ブラウザでの確認

eb open

$ eb open #<- デフォルト指定のものが開く。「test-env」をしてしても良い
#ブラウザが開いて「Congratulations」の画面が出ればOK

ssh接続する

eb open

eb ssh -i [インスタンス名]

インスタンスに接続

接続

自動的にec2-userでログインされる

$ eb ssh #< インスタンスが1台しかないのでインスタンス名を省略可

INFO: Attempting to open port 22.
INFO: SSH port 22 open.
INFO: Running ssh -i [init時に指定したキー]
ec2-user@XX.XXX.XXX.XXX
The authenticity of host 'XX.XXX.XXX.XXX (XX.XXX.XXX.XXX)' can't be established.
ECDSA key fingerprint is SHA256:XXXXXXX
Are you sure you want to continue connecting (yes/no)? yes #<- yes
Warning: Permanently added '13.230.181.206' (ECDSA) to the list of known hosts.
_____ _           _   _      ____                       _        _ _
| ____| | __ _ ___| |_(_) ___| __ )  ___  __ _ _ __  ___| |_ __ _| | | __
|  _| | |/ _` / __| __| |/ __|  _ \ / _ \/ _` | '_ \/ __| __/ _` | | |/ /
| |___| | (_| \__ \ |_| | (__| |_) |  __/ (_| | | | \__ \ || (_| | |   <
|_____|_|\__,_|___/\__|_|\___|____/ \___|\__,_|_| |_|___/\__\__,_|_|_|\_\
                                    Amazon Linux AMI
.....
[ec2-user@ip-XXX-XX-XX-XXX ~]$

デプロイされているファイルを確認

[ec2-user@ip-XXX-XX-XX-XXX ~]$ ls -l /opt/python/current/app/
合計 12
-rw-r--r-- 1 wsgi root 5065  4月  2  2015 application.py
-rw-r--r-- 1 wsgi root   84  4月  2  2015 cron.yaml

一旦終了
[ec2-user@ip-XXX-XX-XX-XXX ~]$ exit

デプロイ

eb deploy

先程のサンプルアプリケーションを変更してデプロイしてみる

sampleを編集

$ sed -i -e "s/Congratulations/Hello Elastic Beanstalk\!/g" application.py
#エディターで編集してもOK

デプロイ

$ eb deploy
Creating application version archive "app-19XXXX_175807".
Uploading manjiii/app-190505_175807.zip to S3. This may take a while.
Upload Complete.
.....
2019-XX-XX 08:58:39    INFO    Environment update completed successfully.

デプロイされているか確認

$ eb open
#「Hello Elastic Beanstalk!」に変わって表示されていればOK

注意
今回は利用していないが、gitなどをSouceCont利用している時は、ローカル内で編集・保存しただけだとdeployされない。
その場合はcommitするか、ステージに上げて「--staged」オプションをつけてdeployする必要がある。

環境の終了

eb terminate

環境を関連するリソースも含め終了する

(使用しないのにそのままにしておくと時間で課金されるものもあるため忘れずに!)

eb terminate [環境名]

test-env を終了する

$ eb terminate test-env

確認の為、環境名の入力を求められるので入力

The environment "test-env" and all associated instances will be terminated.
To confirm, type the environment name: test-env #<- 入力

削除完了、削除確認

....
2019-XX-XX XX:XX:XX    INFO    terminateEnvironment completed successfully.
$ eb list -va
Region: ap-northeast-1
Application: manjiii
    Environments: 0

一旦ここまで。

追記)
続きを作成しました。
 

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?