1
0

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 1 year has passed since last update.

Cloud9上でElastic Beanstalk CLIを使ってデプロイしてみる

Last updated at Posted at 2021-12-07

Cloud9上でElastic Beanstalk CLIを使ってデプロイしてみる

AWS Developer Associateの試験勉強をしていて、デプロイの方法がいまいちわからなかったり、Elastic Beanstalkを使ってみたかったのでEB CLIを使ってデプロイを試しにやってみました。

AWS Cloud9 は、ブラウザのみでコードを記述、実行、デバッグできるクラウドベースの統合開発環境 (IDE) です。これには、コードエディタ、デバッガー、ターミナルが含まれています。
AWS Cloud9にはIDEの機能が付いており、アプリケーション開発にとって必要なツールや機能を全て兼ね備えているため、外部からのインストールやツールを購入する必要がありません。
ブラウザ上での操作になるため、端末の環境に左右されることなく使用できます。

EB CLI は AWS Elastic Beanstalk のコマンドラインインターフェイスで、ローカルリポジトリからの環境の作成、更新、およびモニタリングを簡単にできます。

このCloud9でElastic Beanstalk CLIを使用してImmutableデプロイとBlue/Greenデプロイを試しにやってみます。

Cloud9の環境構築

以下のようにしてCloud9を作成
image.png

簡単なexpressのアプリを用意しておきます。

//c9でファイルやディレクトリを簡単に開けるようになる
npm i c9 -g

//フォルダを作成
mkdir ~/environment/demoDeploy

//npm環境をセットアップして、package.jsonを生成
npm init -y

//expressをインストール
npm i express --save

//ファイルを作成
touch index.js app.js index.html style.css

curl -s http://169.254.169.254/latest/meta-dataのコマンドを使うことでEC2の情報を見ることができます。次の画像のようにしてセキュリティグループのidを取得しました。

image.png

次にセキュリティグループでポート8080に自分のPCのIPアドレスを許可します。IPアドレスはhttp://checkip.amazonaws.comと検索すると出てきます。

aws ec2 authorize-security-group-ingress --group-id sg-0060fe4bcc3da9653 --port 8080 --protocol tcp --cidr 153.218.160.86/32

//結果を確認できる
aws ec2 describe-security-groups --group-ids sg-0060fe4bcc3da9653 --output text --filters Name=ip-permission.to-port,Values=8080 

次にEC2のpublicアドレスを確認してnpm startします。確認したipアドレス:8080でアプリを起動させます。

curl -s http://169.254.169.254/latest/meta-data/public-ipv4
PORT=8080; npm start

image.png

ElasticBeanstalk CLIの設定

下のgithubのリンクを参照して、EB CLIをインストールします。

eb initします。設定が終わると.elasticbeanstalkフォルダが作成されます。またCodeCommitにもリポジトリができます。
.ebextensionsフォルダも作成し、configファイルを作成しておきます。

image.png

EB create

EB create --single コマンドで新しい環境を作成し、デプロイします。--singleのオプションを付けることで単一の Amazon EC2 インスタンスを使用して環境を作成します。ロードバランサーは使用しません。

image.png

Immutable

Immutableデプロイは一度作成したサーバー(インフラ)は設定変更などを行わず、不変なものとして扱います。デプロイするたびに新しいインフラを構築して、既存のインフラは不要になった後に廃棄されます。

新たに.ebextensionsフォルダ配下にdeploy.configファイルを作成します。
作成したらCodeCommitにプッシュし、eb deployでデプロイします。

image.png

アップデートが開始されました。
image.png

Blue/Green

ブルーグリーンデプロイメントとは現状の本番環境(ブルー)とは別に新しい本番環境(グリーン)を構築した上で、ロードバランサーの接続先を切り替えるなどして新しい本番環境をリリースする運用方法のことです。

URLをスワップするため実行環境が2つ必要になります。eb cloneコマンドで現環境のクローンを作成します。

expressアプリの一部を変更して、eb deployしてクローンの方をデプロイします。

新しいほうの環境をデプロイしたら、次のコマンドでURLを切り替えます。

eb swap demoDeploy-prod --destination_name demoDeploy-prod-clone

Version2になっているのが確認できました。
旧環境の方はeb terminateして消しておきます。

image.png

最後に

こちらの動画を参考にさせていただきました。

1
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?