Azure/GCP 使いの人にも知って欲しい(?)
AWS Elastic Beanstalk
青柳 英明
福岡クラウドUG Night
2017/8/31
JAWS-UG福岡
自己紹介
青柳 英明
職業: インフラSE(オンプレOnly)
経歴: アプリケーション開発 … 3年
インフラエンジニア … 16年
AWS歴:
JAWS-UG歴:
… 1年半
過去、「ネタLT」 「ネタセッション」 で御好評(?)を頂きましたが…
JAWS-UG福岡 in AWS Cloud Roadshow JAWS-UG福岡 Reboot #4
今回はネタ切れのため 「ふつー」 の話です…
Elastic Beanstalk
AWS Azure GCP
Computing
IaaS EC2 Virtual Machines Compute Engine
PaaS Elastic Beanstalk Web Apps App Engine
FaaS Lambda Azure Functions Cloud Functions
: : : : :
ちなみに…
× Beans Talk
ビーンズ・トーク
… 豆の話?
○ Beanstalk
ビーン・ストーク
… 豆の主茎
“Jack and the Beanstalk” 「ジャックと豆の木」
以上、豆知識でした…
AWS Elastic Beanstalk とは
Webアプリケーションをホストするサービス
・ インフラに詳しくない開発者でも扱いやすい
- サーバーやネットワークなどの知識が無くても構築できる
- 拡張性、信頼性のあるインフラを簡単に構築できる
- 普段の開発手法に合わせたアプリケーションのデプロイ方法
zipアップロード、Git、IDE (Eclipse、Visual Studio)
AWS Elastic Beanstalk とは
Webアプリケーションをホストするサービス
・ セキュリティ面も AWS が面倒を見てくれる
- OS、ライブラリのパッチを自動的に最新化してくれる
- アクセス権限やファイアウォールなど適切に設定してくれる
対応プラットフォーム
・ Java (Tomcat)
・ PHP
・ Python
・ Node.js
・ Ruby
・ .NET (Windows/IIS)
・ Docker コンテナ
利用までの流れ
(1) Elastic Beanstalk を新規作成して、各種設定を指定
【必須指定】 プラットフォーム (言語)
【オプション】 ドメイン名、サーバーの性能・規模、など
(2) 環境が構築されるのを待つ
(3) アプリケーションのファイル群をデプロイする
(4) 稼働開始
Elastic Beanstalk
ここからは、少し
の中を覗いてみましょう
Elastic Beanstalk の 「中の人」 たち ①
EC2 (仮想マシン)
・ Web アプリケーションを動作させる仮想マシン
・ Webサーバー
・ ランタイム/ライブラリ
(Apache、nginx、etc.)
(Java、PHP、Python、etc.)
AWS がインストール・設定してくれる
起動する度に1からインストール?
・ OS … Amazon Linux (CentOSベース)
Elastic Beanstalk の 「中の人」 たち ①
作成された EC2 インスタンスのプロパティ:
※ AMI … 仮想マシンを作成する基となるマシンイメージ
Elastic Beanstalk の 「中の人」 たち ①
Elastic Beanstalk 専用の AMI が用意されている
・ プラットフォーム毎
・ 世代管理
http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/platform-history.html
Elastic Beanstalk の 「中の人」 たち ②
(EC2のスケールアウト・スケールイン)
(ロードバランサ)
Auto Scaling
Elastic Load Balancing
最小構成
単一の
スケーラビリティな構成
EC2インスタンス
わずかな設定で
負荷分散構成を
作成できる!
Elastic Beanstalk の 「中の人」 たち ②
さらに信頼性の高い構成へ… RDS(DBサービス)と組み合わせて…
AZ#1 AZ#2
AZ = Availability Zone
地理的に離れている独立したゾーン
原則として異なるAZが同時にダウンすることはない
Elastic Beanstalk の 「中の人」 たち ③
VPC (ネットワーク環境)
・ 既定では、「デフォルトVPC」 内に各リソース(EC2等)が配置される
※ デフォルトVPC … AWSアカウント内に最初から用意されているVPC
・ サブネット ・インタネットゲートウェイ
ネットワークに関しては、「デフォルトVPC」 を選んでおけば何も指定する必要なし
全て作成済み
・ルートテーブル ・ネットワークACL
Elastic Beanstalk の 「中の人」 たち ③
VPC (ネットワーク環境)
もし、「本番環境」 「開発環境」…など複数のネットワーク環境を運用したい場合…
Elastic Beanstalk には、VPC を新規作成する機能は無い
事前に、自分で VPC を設計・作成しておく必要がある
非インフラエンジニアな人が苦手な部分
Elastic Beanstalk が面倒みてくれるといいんですけどね…
Elastic Beanstalk の 「中の人」 たち ④
セキュリティグループ (仮想マシン単位のファイアウォール)
・ 「EC2」 と 「Elastic Load Balancer」 のそれぞれに対して
適切なファイアウォール規則を設定してくれる
OK ! OK !
NG !
Elastic Beanstalk の 「中の人」 たち ⑤
IAM (アクセス権管理)
・ アクセス権限と範囲を 「IAM ロール」 によって管理
・ EC2 など各リソースに対するアクセス権限
・ Elastic Beanstalk サービス自体に対するアクセス権限
→ 開発・運用など、チームやメンバーの役割に応じたアクセス権限を設定できる
Elastic Beanstalk の 「中の人」 たち ⑥
S3 (オブジェクトストレージ)
・ Webアプリから利用するファイル格納領域
…ではなく、
・ デプロイしたアプリケーション資産の保管先 (バージョン毎に管理)
・ サーバーログの保存先
Elastic Beanstalk の 「中の人」 たち ⑦
CloudFormation (インフラ自動構築/構成管理)
EC2
Auto Scaling
Elastic Load Balancing
VPC
セキュリティグループ
IAM
S3
これらのリソース全てを定義・管理する
Infrastructure as Code
Elastic Beanstalk
あれ?
って
って言ってたけど
なの?
PaaS
IaaS実は
一般的な PaaS は…
ユーザーにインフラ部分を見せない、意識させない
Elastic Beanstalk は…
ユーザーがインフラ部分を見ようと思えば見える
・ EC2 にログインすれば、サーバーの設定から何から全部知ることができる
・ 隠してる、というよりは、
ユーザーが難しいことを考えずに済んだり、間違って触らずに済んだり、…のため
・ CloudFormation の設定を見れば、全体の構成もすべて分かる
既存の IaaS サービスを組み合わせて、PaaS のようなサービスを提供している (?)
そういえば、「Mobile Hub」 (AWSのモバイルバックエンドサービス) も似た感じでした
(前回の登壇資料より)
などから想像される 「一般的な PaaS」 とは
Azure の 「Web Apps」
GCP の 「App Engine」
アプローチの異なるサービス
はElastic Beanstalk
何をもって 「一般的」 と呼ぶのか?という議論はありますが…
結局のところ…
・ Web アプリケーションを動かしたいけど、インフラ知識も運用する人もいない
→ IaaS の知識が無くても PaaS のように使える
AWS が 「PaaS です」 と言ってるんだから、
Elastic Beanstalk は PaaS です!
…と言うのは冗談として
・ 本職のインフラ屋さんにとっても、 AWS のベストプラクティスに沿った構成を
お手軽に構成できるというメリットがある…かも?

Azure/GCP使いの人にも知って欲しい(?) AWS Elastic Beanstalk

  • 1.
    Azure/GCP 使いの人にも知って欲しい(?) AWS ElasticBeanstalk 青柳 英明 福岡クラウドUG Night 2017/8/31 JAWS-UG福岡
  • 2.
    自己紹介 青柳 英明 職業: インフラSE(オンプレOnly) 経歴:アプリケーション開発 … 3年 インフラエンジニア … 16年 AWS歴: JAWS-UG歴: … 1年半
  • 3.
    過去、「ネタLT」 「ネタセッション」 で御好評(?)を頂きましたが… JAWS-UG福岡in AWS Cloud Roadshow JAWS-UG福岡 Reboot #4 今回はネタ切れのため 「ふつー」 の話です…
  • 4.
  • 5.
    AWS Azure GCP Computing IaaSEC2 Virtual Machines Compute Engine PaaS Elastic Beanstalk Web Apps App Engine FaaS Lambda Azure Functions Cloud Functions : : : : :
  • 6.
    ちなみに… × Beans Talk ビーンズ・トーク …豆の話? ○ Beanstalk ビーン・ストーク … 豆の主茎 “Jack and the Beanstalk” 「ジャックと豆の木」 以上、豆知識でした…
  • 7.
    AWS Elastic Beanstalkとは Webアプリケーションをホストするサービス ・ インフラに詳しくない開発者でも扱いやすい - サーバーやネットワークなどの知識が無くても構築できる - 拡張性、信頼性のあるインフラを簡単に構築できる - 普段の開発手法に合わせたアプリケーションのデプロイ方法 zipアップロード、Git、IDE (Eclipse、Visual Studio)
  • 8.
    AWS Elastic Beanstalkとは Webアプリケーションをホストするサービス ・ セキュリティ面も AWS が面倒を見てくれる - OS、ライブラリのパッチを自動的に最新化してくれる - アクセス権限やファイアウォールなど適切に設定してくれる
  • 9.
    対応プラットフォーム ・ Java (Tomcat) ・PHP ・ Python ・ Node.js ・ Ruby ・ .NET (Windows/IIS) ・ Docker コンテナ
  • 10.
    利用までの流れ (1) Elastic Beanstalkを新規作成して、各種設定を指定 【必須指定】 プラットフォーム (言語) 【オプション】 ドメイン名、サーバーの性能・規模、など (2) 環境が構築されるのを待つ (3) アプリケーションのファイル群をデプロイする (4) 稼働開始
  • 11.
  • 12.
    Elastic Beanstalk の「中の人」 たち ① EC2 (仮想マシン) ・ Web アプリケーションを動作させる仮想マシン ・ Webサーバー ・ ランタイム/ライブラリ (Apache、nginx、etc.) (Java、PHP、Python、etc.) AWS がインストール・設定してくれる 起動する度に1からインストール? ・ OS … Amazon Linux (CentOSベース)
  • 13.
    Elastic Beanstalk の「中の人」 たち ① 作成された EC2 インスタンスのプロパティ: ※ AMI … 仮想マシンを作成する基となるマシンイメージ
  • 14.
    Elastic Beanstalk の「中の人」 たち ① Elastic Beanstalk 専用の AMI が用意されている ・ プラットフォーム毎 ・ 世代管理 http://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/platform-history.html
  • 15.
    Elastic Beanstalk の「中の人」 たち ② (EC2のスケールアウト・スケールイン) (ロードバランサ) Auto Scaling Elastic Load Balancing 最小構成 単一の スケーラビリティな構成 EC2インスタンス わずかな設定で 負荷分散構成を 作成できる!
  • 16.
    Elastic Beanstalk の「中の人」 たち ② さらに信頼性の高い構成へ… RDS(DBサービス)と組み合わせて… AZ#1 AZ#2 AZ = Availability Zone 地理的に離れている独立したゾーン 原則として異なるAZが同時にダウンすることはない
  • 17.
    Elastic Beanstalk の「中の人」 たち ③ VPC (ネットワーク環境) ・ 既定では、「デフォルトVPC」 内に各リソース(EC2等)が配置される ※ デフォルトVPC … AWSアカウント内に最初から用意されているVPC ・ サブネット ・インタネットゲートウェイ ネットワークに関しては、「デフォルトVPC」 を選んでおけば何も指定する必要なし 全て作成済み ・ルートテーブル ・ネットワークACL
  • 18.
    Elastic Beanstalk の「中の人」 たち ③ VPC (ネットワーク環境) もし、「本番環境」 「開発環境」…など複数のネットワーク環境を運用したい場合… Elastic Beanstalk には、VPC を新規作成する機能は無い 事前に、自分で VPC を設計・作成しておく必要がある 非インフラエンジニアな人が苦手な部分 Elastic Beanstalk が面倒みてくれるといいんですけどね…
  • 19.
    Elastic Beanstalk の「中の人」 たち ④ セキュリティグループ (仮想マシン単位のファイアウォール) ・ 「EC2」 と 「Elastic Load Balancer」 のそれぞれに対して 適切なファイアウォール規則を設定してくれる OK ! OK ! NG !
  • 20.
    Elastic Beanstalk の「中の人」 たち ⑤ IAM (アクセス権管理) ・ アクセス権限と範囲を 「IAM ロール」 によって管理 ・ EC2 など各リソースに対するアクセス権限 ・ Elastic Beanstalk サービス自体に対するアクセス権限 → 開発・運用など、チームやメンバーの役割に応じたアクセス権限を設定できる
  • 21.
    Elastic Beanstalk の「中の人」 たち ⑥ S3 (オブジェクトストレージ) ・ Webアプリから利用するファイル格納領域 …ではなく、 ・ デプロイしたアプリケーション資産の保管先 (バージョン毎に管理) ・ サーバーログの保存先
  • 22.
    Elastic Beanstalk の「中の人」 たち ⑦ CloudFormation (インフラ自動構築/構成管理) EC2 Auto Scaling Elastic Load Balancing VPC セキュリティグループ IAM S3 これらのリソース全てを定義・管理する Infrastructure as Code
  • 23.
  • 24.
    一般的な PaaS は… ユーザーにインフラ部分を見せない、意識させない ElasticBeanstalk は… ユーザーがインフラ部分を見ようと思えば見える ・ EC2 にログインすれば、サーバーの設定から何から全部知ることができる ・ 隠してる、というよりは、 ユーザーが難しいことを考えずに済んだり、間違って触らずに済んだり、…のため ・ CloudFormation の設定を見れば、全体の構成もすべて分かる
  • 25.
    既存の IaaS サービスを組み合わせて、PaaSのようなサービスを提供している (?) そういえば、「Mobile Hub」 (AWSのモバイルバックエンドサービス) も似た感じでした (前回の登壇資料より)
  • 26.
    などから想像される 「一般的な PaaS」とは Azure の 「Web Apps」 GCP の 「App Engine」 アプローチの異なるサービス はElastic Beanstalk 何をもって 「一般的」 と呼ぶのか?という議論はありますが…
  • 27.
    結局のところ… ・ Web アプリケーションを動かしたいけど、インフラ知識も運用する人もいない →IaaS の知識が無くても PaaS のように使える AWS が 「PaaS です」 と言ってるんだから、 Elastic Beanstalk は PaaS です! …と言うのは冗談として ・ 本職のインフラ屋さんにとっても、 AWS のベストプラクティスに沿った構成を お手軽に構成できるというメリットがある…かも?