EB CLIを使ってAWS環境にデプロイする
2022-06-11
2022-06-11
6 min read
EB CLIやAWS CLIとは?
名前にもある通りCLI(コマンドラインインターフェース)
で、AWSのサービス
やAWS Elastic Beanstalk
の操作を行うものです。
AWS CLI
- AWSの様々なサービスをCLIで操作できる
EB CLI
- AWS Elastic BeanstalkをCLIで操作できる
ちなみにAWS Elastic Beanstalk
とは、AWSが提供するサービスの1つで、実際のシステムを動かすための環境の管理をまとめて行ってくれるようなものです。
これらを用いることで、通常の管理画面からGUI(グラフィカルユーザインタフェース)
操作しなくてもデプロイなどの処理が可能となります。
またCLIでの操作になるので、スクリプトで様々な作業を自動化したりもできます。
今回は、macOSインストールを例にご説明します。
LinuxやWindowsの場合も公式の手順でインストールすれば動くと思います。多分。。
AWS CLIの導入
基本的に公式にある手順でAWS CLIをインストールしていきます。
macOS pkgファイルをダウンロードできたら、そのファイルを実行してAWS CLIをインストールします。
インストールができたら、awsコマンドが動くか確認します。
$ aws --version
aws-cli/2.7.7 Python/3.9.11 Darwin/20.6.0 exe/x86_64 prompt/off
次にAWSと紐づけていきます。
※AWSの管理画面のIAMのサービスより、使用するユーザーのアクセスキーIDとシークレットキーIDを準備してください。
$ aws configure --profile hogehoge
AWS Access Key ID [None]: XXXXXXXXXXXXXX
AWS Secret Access Key [None]: 〇〇〇〇〇〇〇〇
Default region name [None]: ap-northeast-1
Default output format [None]: json
これで紐づけたAWSのサービスを確認できます。
$ aws sts get-caller-identity --profile hogehoge
{
"UserId": "XXXXXXXXXXXXXX",
"Account": "1234567890",
"Arn": "arn:aws:iam::1234567890:user/yamada"
}
EB CLIの導入
EB CLIも同様に公式にある手順でインストールしていきます。
$ brew update
$ brew install awsebcli
$ eb --version
EB CLI 3.14.8 (Python 3.7)
ここでPythonが入っていない方はエラーとなるので、Pythonのインストールしてから上記を実施します。
$ python3 --version
Python 3.9.13
次にpipをインストールします。
$ curl -O <https://bootstrap.pypa.io/get-pip.py>
$ python3 get-pip.py --user
$ pip3 --version
パスが通っていない場合は通します。
$ vi ~/.bashrc
// .bashrcに下記を追加
export PATH=$PATH:{パス}
source ~/.bashrc
ではここからEB CLIの設定を行なっていきます。
今回は既にローカルで開発しているファイルをデプロイする設定します。
~test/app $ eb init --profile hogehoge
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) eu-south-1 : EU (Milano)
20) ap-east-1 : Asia Pacific (Hong Kong)
21) me-south-1 : Middle East (Bahrain)
22) af-south-1 : Africa (Cape Town)
(default is 3): 9
Select an application to use
1) test
2) [ Create new Application ]
(default is 2): 1
Select the default environment.
You can change this later by typing "eb use [environment_name]".
1) test-production
2) test-staging
(default is 1): 2
これでapp以下のファイルがデプロイされます。
hogehogeは、AWS CLIのprofileで設定したものが入ります。
environmentには、staging環境をとりあえず設定しておきます。設定後、下記コマンドでenvironmentを変更することができます。
$ eb use test-production
EB CLIでデプロイしてみる
ステータスを確認して、問題がなければデプロイを行います。
$ eb status
$ eb deploy -l "test_2022061101"
下記コマンドで、アップロードしたバージョン一覧を確認したり、既にデプロイしているバージョンのものをデプロイしたりすることも可能です。
$ eb appversion
$ eb deploy -l "test_2022061001"
余談
実際の仕事でもEB CLIを使ってデプロイしているのですが、少し前はローカルでzipファイルを作成して、AWS Elastic Beanstalkの管理画面からアップロードしていました。 そうすることになった理由として、アップロードできるzipファイルの大きさに制限があり、デプロイできなくなったからです。