LoginSignup
8
7

More than 3 years have passed since last update.

【初心者】AWS Elastic Beanstalk を使ってみる

Posted at

目的

  • AWS Elastic Beanstalkについて話題になり、知ったかぶりするため、基本動作を確認することにした。(目標:なんとなくアプリのデプロイまでできること)

AWS Elastic Beanstalk とは(自分の理解)

  • インフラ(EC2、ELB等)の構築、運用を自動化し、アプリケーションの実行環境として一元管理できるサービス。

やったこと

  • Elastic Beanstalk によるサンプルアプリ実行環境(python)の作成
  • 構成変更(EC2*1 ⇒ ELB+EC2*2)
  • アプリケーションのデプロイ(追加バッチとローリング)

構成図

ebt13.png

動作確認

Elastic Beanstalk 「アプリケーション」の作成

  • Elastic Beanstalk の画面で、「今すぐ始める」を選択する。設定値としては、「アプリケーション名:mksamba-ebtalk-sample」、「プラットフォーム:Python」とする。
    ebt01a.png

  • 数分で環境が構成され、アプリケーション「MksambaEbtsample-env」の作成が完了する。デフォルト構成(最小構成)のため、EC2インスタンス(t2.micro) 1台、ELBなしとなり、その1台のインスタンス上のみでPythonの実行環境が動作する。

ebt03a.png

  • WEBアクセス用のURLが用意されるため、ブラウザからアクセスして初期画面を確認する。apacheとかと同様の「無事インストールできましたね」的な画面が表示される。

ebt04b.png

アプリケーションのデプロイ

  • 公式ガイド:チュートリアル及びサンプルのところに、pythonのソース(python-v1.zip)が配布されており、このソースが初期状態として使われている様子。
  • zipファイルの中にある application.py の中身(表示文言および背景色)を少し変更し、再度cron.yaml(こちらは変更なし)と合わせてzipファイルにする。
  • 「アップロードとデプロイ」のボタンから、zipファイルをアップロードしてデプロイを行う。
  • デプロイが無事完了し、文言と色が変わったことを確認する。

ebt06a.png

構成の変更

  • EC2 1台構成だとローリングでのデプロイができないため、ELB + EC2 2台の構成に変更する。
  • 「設定」-「容量の変更」のところで、値を以下に変更する。他の値はデフォルト値とする。
    • 環境タイプ: 単一のインスタンス ⇒ 負荷分散
    • インスタンス: (設定なし) ⇒ 最小2, 最大2
  • 設定を更新すると、ELB(CLB)が作成され、EC2も2台に増加する。

ebt16a.png

アプリケーションのデプロイ(追加バッチとローリング)

  • 「設定」-「ローリング更新とデプロイの変更」のところで、値を以下に変更する。他の値はデフォルト値とする。
    • デプロイメントポリシー: 1回にすべて ⇒ 追加バッチとローリング
    • バッチサイズ: (設定なし) ⇒ 固定 1インスタンス/1回

ebt14a.png

  • 再度「アプリケーションとデプロイ」のボタンから、デプロイ(色を変えるだけの更新)を行う。
  • ポリシーを「追加バッチとローリング」としたため、まずバッチ(追加の1台)を作成し、そこに新しいアプリをデプロイしてELBに組み込む。その後で既存のEC2インスタンスへのデプロイを行い、一番古い?インスタンスが削除される。
  • アプリが更新されていることを確認する。

ebt15a.png

所感

  • いろいろ奥が深そうだがこの辺にしておき、実案件で使うことがあれば深堀したい。

参考記事

8
7
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
8
7