今日から始める Elastic Beanstalk
2015 Feb  
ヒロヤマ ユタカ
AWS と豆の木
自己紹介
廣山 豊 (ヒロヤマ ユタカ)
所属:
好きなサービス:
  Elastic Beanstalk
大阪リージョン
開設!!
大阪リージョン
開設!!
豆知識 読み方
Elastic Beanstalk
アジェンダ
・ Elastic Beanstalk の概要
・ Elastic Beanstalk の機能
・デモ
アジェンダ
・ Elastic Beanstalk の概要
・ Elastic Beanstalk の機能
・デモ
Elastic Beanstalk とは?
AWS が提供する PaaS 。
Deployment&Management
に分類される。
比較!デプロイサービス
難易度:
Elastic Beanstalk CloudFormationOpsWorks
自由度:
Elastic Beanstalk とは?
サポートするプラットフォーム
Python (boto) PHP
.NET Ruby Node.js
Java
サポートするプラットフォーム
名称 言語 Application / Web
サーバー
64bit Amazon Linux 2014.09 v1.0.9
running Ruby 2.1
(Puma)
Ruby 2.1.4 Puma 2.9.1 and
Nginx
1.6.2
64bit Amazon Linux 2014.09 v1.0.9
running Ruby 2.1
(Passenger Standalone)
Ruby 2.1.4 Passenger 4.0.53
64bit Amazon Linux 2014.09 v1.0.9
running Ruby 2.0
(Puma)
Ruby 2.0.0-
p594
Puma 2.9.1 and
Nginx
1.6.2
64bit Amazon Linux 2014.03 v1.0.2
running Ruby 1.9.3
Ruby 1.9.3 Passenger 4.0.37
32bit Amazon Linux 2013.09 running Ruby
1.8.7
Ruby 1.8.7 Passenger 4.0.20
などなど
サポートするプラットフォーム
料金
Elastic Beanstalk の料金は
タダ!!
ただし、
使用したリソースは
有料
論理構成
Elastic
Beanstalk
application applicationapplication
論理構成
Version
リポジトリ
Enviroment
Configration
Enviroment
Configration
URLURL
Enviroment
Enviroment
Configration
Enviroment
Configration
URLURL
Enviroment
Configration
Template
Configration
Template
application
デプロイ
環境の種類
Web Server Worker
Web Server 構成
Auto Scaling group
Security group Security group
Availability Zone
ホスト
マネージャー
ホスト
マネージャー
Web Server 構成
Auto Scaling group
Security group
Availability Zone
Worker 構成
Auto Scaling group
aws_sqsdaws_sqsd
豆知識 部分的導入
Version
リポジトリ
Enviroment
Configration
Enviroment
Configration
URLURL
Enviroment
Enviroment
Configration
Enviroment
Configration
URLURL
Enviroment
現行
試験
アジェンダ
・ Elastic Beanstalk の概要
・ Elastic Beanstalk の機能
・デモ
操作ツール
マネジメントコンソール
各種 SDK
専用 CUI 「 eb 」
eb コマンド
コマンド 説明
eb init Application の初期設定
eb start Application 環境の開始
eb status ステータスの確認
eb update Application 環境の設定更新
eb stop Application 環境の停止
eb delete Application 環境の破棄
環境構築機能
環境の生成および削除や
シングル・マルチインスタンスの変更、
Configration の保存や読み込みが可能。
EC2 の設定
インスタンスタイプ
セキュリティグループ
アクセスキー
インスタンスプロフィール
監視間隔
AMI の ID
EBS の設定
ELB の設定
ポート
プロトコル( HTTP or TCP )
SSL 設定
ヘルスチェック設定
セッション設定
Auto Scaling の設定
最小および最大インスタンス数
Availability Zone 設定
トリガー
Configuration
以下の操作が可能。
・保存
・読み出し
・保存データからの新規環境作成
豆知識 節約術
・ Single Instance も検討
・環境の停止
モニタリング機能
環境や AWS リソースの状態監視、
および
イベントログを参照することができる。
モニタリング機能
グラフ表示するメトリクスは
カスタマイズ可能!
Enviroment の状態
Auto Scaling group
Security group
Availability Zone
URL アクセスURL アクセス
CNAME が正しく設定CNAME が正しく設定
ELB の存在ELB の存在
ELB に EC2 付与ELB に EC2 付与
Auto Scaling Group
の存在
Auto Scaling Group
の存在
ポート 80 疎通ポート 80 疎通
EC2 の状態EC2 の状態
Enviroment の状態
Enviroment の状態
状態 説明
Green URL チェック成功
Yellow URL チェック失敗(5分以内)
Red URL チェック失敗(5分超)
または
その他のエラー
Grey アプリのリロード中などで、
状態を取得できない
ログ閲覧
マネジメントコンソールなどから
Beanstalk の動作ログや
EC2 のシステムログを閲覧可能。
EC2 に ssh しなくてもよい(かも)
DNS Swaping
Version
リポジトリ
Enviroment
Configration
Enviroment
Configration
URL
A
URL
A
Enviroment
Enviroment
Configration
Enviroment
Configration
Enviroment
URL
B
URL
B
URL
A
URL
A
URL
B
URL
B
DNS Swaping
継続的デプロイメント
が
お手軽に!
環境のカスタマイズ
依存関係のあるミドルウェアを
インストールしたり、
環境をカスタマイズすることができる。
同じことを AMI に仕込むことも可能である
が、より疎結合な設計となる。
環境のカスタマイズ
名称 概要
Packages パッケージ管理
Sources アーカイブのダウンロードと
EC2 への展開
Files EC2 上にファイルを配置
Users ユーザー追加
Groups ユーザーグループ追加
Commands EC2 上でのコマンドの実行
Container_commands コンテナ上でのコマンドの実行
Services サービスの制御
Option_settings 環境変数の設定など
環境のカスタマイズ
環境カスタマイズの手順
1. <application 名 >.config を
 トップレベルディレクトリに配置
2. version をデプロイ
アジェンダ
・ Elastic Beanstalk の概要
・ Elastic Beanstalk の機能
・デモ
数分以内に。。。
ウソじゃないだろうな!?
デモ
略( ´д `;)
まとめ
Elastic Beanstalk を使うことで、
ベストプラクティスに近い
インフラをカンタンに構築!
PaaS のくせに、
わりといろいろ出来てしまう!!
豆知識  Why beanstalk?
「ジャックと豆の木」の
豆の木のように、
雲( Cloud )へと
導いてくれるから。
Fin.

Jawsug elastic beanstalk_150207

Editor's Notes

  • #6 ビーンズトークじゃありません
  • #7 と言うことで、今日はElastic Beanstalkについて話させていただきます。
  • #12 公式ドキュメントにもこのように記されています。
  • #13 PaaSと言いましたが、このようなプラットフォームに対応しています。
  • #14 こちらは、Rubyの提供プラットフォームの一例です。まだまだあります。言語のバージョンやOS、Application/Webサーバーの様々な組み合わせを提供しています。
  • #15 そして、dockerもサポートしています。 これによって、たとえば、Perl言語を使ったサーバー構築など、PaaSでありながら、よりフレキシブルな環境構築が可能です。
  • #17 Elastic Beanstalkでは、application単位で管理していきます。 ここでのapplicationとは、Applicationサーバーなどのapplicationとは違った単語です。公式ドキュメントではフォルダのようなものと解説されています。 複数のapplicationを持つことができます。 Beanstalk環境構築時は、最初にこのapplicationを作るところから始めます。
  • #18 では、applicationの構成を見てみます。 applicationはEnviromentを持ちます。こちらも複数可能です。 各、Enviromentには、アクセスするURLと、EnviromentConfigrationを持ちます。 EnviromentConfigrationは、EnviromentやAWSリソースに関するパラメータ群です。 また、applicationはVersionリポジトリを持ちます。 このリポジトリに対し、コードをデプロイします。 ストレージはS3に確保されます。 Enviromentはリポジトリ上のいずれかのVersionを参照します。 ConfigrationTemplateとは、EnviromentConfigration用のテンプレートです。
  • #21 ホストマネージャーが実行される。 ホストマネージャーは以下のような機能を持つ。 ・アプリケーションのデプロイ ・イベントとメトリックスの収集と取得(コンソール、API、またはコマンドラインを使用)。 ・インスタンスレベルのイベントの生成 ・アプリケーションログファイルで重大エラーがないかどうかを監視 ・アプリケーションサーバーの監視 ・インスタンスコンポーネントへの修正プログラムの適用 ・アプリケーションのログファイルのローテーションと、Amazon S3 への公開
  • #22 ELBのない、Single Instance環境も選択できます。 Single InstanceでもAuto Scaling Groupは存在します。
  • #23 Workerはバックグラウンドタスクの処理に最適化されています。 SQSに登録されたタスクを非同期に処理する。 WebServerTierではELB+EC2のセットみたいな感じですが、 こちらはELBの代わりにSQSといった感じです。 EC2の中のaws-sqsdデーモンがよしなにSQSを処理してくれます。
  • #24 別のバージョンを設定した複数の環境を持てることから、こんな技もできます。 例えば、新バージョンのプログラムができたけど、全体に適用するのは少し怖い。。。 徐々に新バージョンで動かしたい。 そんな要望も、Route53のWeightedRoundRobinと組み合わせることで実現可能です。
  • #25 以上で、Beanstalkの概要の説明を終わります。 Beanstalkによって、どのようなシステムが構築できるかイメージを掴んでいただけましたでしょうか? では、次にもう少し掘り下げて、Beanstalkの機能を説明したいと思います。
  • #36 ElasticなWebServerの場合
  • #37 Enviromentの状態を色で表現している
  • #43 Linuxサーバーでの例 アプリケーションやwebサーバーの起動前に実行する。 アプリケーションやwebサーバーの起動後に実行する。
  • #46 ふたたび登場の公式サイト。 もしかしたら、先ほどお気づきの方もいたかも知れませんが、こんなこと書かれています。