【AWS/EB CLI(Elastic Beanstalk Command Line Interface)の設定とデプロイ方法】

# 目次
0.AWS/EB CLIとは...
1.設定方法
 ・EB CLIのインストール
    　a)Homebrew で EB CLI をインストール
    　b)macOS で Python、pip、EB CLI をインストール
 ・EB CLIの設定
2.デプロイ方法
## 0.AWS/EB CLIとは...

> AWS Elastic Beanstalk は、Java、.NET、PHP、Node.js、Python、Ruby、Go および Docker を使用して開発されたウェブアプリケーションやサービスを、Apache、Nginx、Passenger、IIS など使い慣れたサーバーでデプロイおよびスケーリングするための、使いやすいサービスです。
お客様はコードをアップロードするだけで、Elastic Beanstalk が、キャパシティのプロビジョニング、ロードバランシング、Auto Scaling からアプリケーションのヘルスモニタリングまで、デプロイを自動的に処理します。同時に、お客様のアプリケーションが稼動している AWS リソースの完全な制御を維持でき、いつでも基盤となるリソースにアクセスすることができます。
https://aws.amazon.com/jp/elasticbeanstalk/ より引用

## 1.設定方法
**<span style="font-size: 150%">・EB CLIのインストール（以下 a), b)の２種類。）**</span>
    a)Homebrew で EB CLI をインストールする。

```
#Homebrewが最新バージョンであるかを確認
$ brew update
        
#インストールを実行
$ brew install awsebcli
        
#EB CLIが正しくインストールできているか確認
$ eb --version
EB CLI 3.17.1 (Python 3.8.1)
```

   b)macOS で Python、pip、EB CLI をインストールする。
        https://www.Python.org からPythonをダウンロードして、インストールする。

```
#pipをインストールする。
$ curl -O https://bootstrap.pypa.io/get-pip.py
$ python3 get-pip.py --user
    
#pipを使用してEB CLIをインストールする。
$ pip3 install awsebcli --upgrade --user
    
#EB CLIが正しくインストールできているか確認
$ eb --version
EB CLI 3.17.1 (Python 3.8.1)
```
※最新バージョンにアップグレードするには、以下インストールコマンドを実行。

```
$ pip3 install awsebcli --upgrade --user
```
***EB CLIインストール完了！***
    
   **<span style="font-size: 150%">・EB CLIの設定**</span>
　EB CLI をインストールした後で、eb init を実行するとプロジェクトディレクトリと
  EBCLIを設定する準備ができる。

**EB CLI プロジェクトを初期化する**
1.リージョンを指定する。

```
% eb init

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)
19) ap-east-1 : Asia Pacific (Hong Kong)
20) me-south-1 : Middle East (Bahrain)
(default is 3): 9
```
2.リソースを管理できるように、アクセスキーとシークレットキーを入力。

```
You have not yet set up your credentials or your credentials are incorrect
You must provide your credentials.
(aws-access-id): hoge（入力）
(aws-secret-key): hoge（入力）
```
3.アプリケーションを選択する。

```
Select an application to use
1) hoge_server
2) xxx_pj
3) aws_app
4) [ Create new Application ]
(default is 4): 1（今回は1）
```
4.CodeCommit

```
Do you wish to continue with CodeCommit? (y/N) (default is n): n（defaultのまま）
```
**EB  CLIの設定完了！**

## 2.デプロイ方法
・実際にデプロイできているか確認。

```
    $ eb deploy
    Creating application version archive "app-0d27-200220_180123".
    Uploading: [##################################################] 100% Done...
    2020-02-20 09:01:50    INFO    Environment update is starting.
    2020-02-20 09:01:57    INFO    Deploying new version to instance(s).
    2020-02-20 09:03:13    INFO    New application version was deployed to running EC2 instances.
    2020-02-20 09:03:13    INFO    Environment update completed successfully.
```
***デプロイ完了！***

以上