Aws elastic beanstalk-handson-summit2012

2,778 views
2,679 views

Published on

Elastic Beanstalk hands on document

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,778
On SlideShare
0
From Embeds
0
Number of Embeds
1,272
Actions
Shares
0
Downloads
39
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aws elastic beanstalk-handson-summit2012

  1. 1. ハンズオン~AWS Elastic Beanstalk~ 2012年03月03日 片山 暁雄( @c9katayama ) ソリューションアーキテクト
  2. 2. Agenda AWS Elastic Beanstalkの概要 しくみ HostManager ハンズオン Copyright © 2011 Amazon Web Services
  3. 3. 準備AWS Management ConsoleへのログインWARファイルのダウンロード  http://bit.ly/bs-handson-apハンズオン資料  http://bit.ly/bs-handson-doc
  4. 4. AWS Elastic Beanstalkの概要
  5. 5. AWS Elastic Beanstalkとは Beanstalk = 豆の木  「アプリケーションが実る幹」のイメージ Webアプリケーションの実行環境を構築・管理するサービス 現在使用可能な言語:Java(OpenJDK6) コンテナとして、Tomcat6 および Tomcat7をサポート
  6. 6. AWS Elastic Beanstalkとは 利用出来るAPIの制約・処理時間の制約はない  ServletAPI他、Tomcatサポートの機能はすべて利用可能  ライブラリやフレームワークの制約もない  WARやZIPであればデプロイOK ロードバランサー・オートスケーリング  ロードバランサーとオートスケーリングが標準装備  詳細な条件設定が可能 実行環境の設定  サーバスペック、VM設定など40項目以上の設定が可能
  7. 7. AWS Elastic Beanstalkとは Webアプリケーションのバージョン管理  WARやZIPの世代管理が可能  アプリのロールバック・ロールフォワードが容易 複数環境の構築が可能  本番・テストなど目的別に構築可能 開発・管理ツールを提供  AWS Management Console  コマンドラインツール  Eclipseプラグイン
  8. 8. 開発・管理ツール AWS Management Console AWS Toolkit for Eclipse
  9. 9. しくみ
  10. 10. アプリケーション管理の論理構成 Application Environment Version URL Environment Configuration WAR WAR Environment URL Environment Configuration WAR WAR Environment WAR URL Environment Configuration Configuration Template
  11. 11. 用語説明Application  トップレベルの論理単位  Applicationの中に、EnvironmentやVersionが入る  デプロイするアプリケーション(WARファイル)と混同しやす いので注意Environment  ConfigurationTemplateを元に構成される  WARをデプロイする環境  環境毎にURLが付与される • URLは、XXX.elasticbeanstalk.com  各環境毎にEC2、ELBなどが立ち上がる  ログも環境毎に取得できる(1時間おきにS3へ送信可能)
  12. 12. 用語説明Version  Webアプリケーションのバージョン管理  WARファイルの履歴管理が可能  S3上でファイルを保持  Versionで管理したWARファイルを、各Environmentと紐付け
  13. 13. テクニカルアーキテクチャ この環境が 自動で構成される URL Environment ElasticLoadBalanceingManagement SNS Console S3 HM HM CloudWatch EC2 EC2 eclipse AutoScaling Security Group DEMO
  14. 14. HostManager
  15. 15. HostManager 各EC2インスタンス上で動作  Rubyで実装  /opt/elasticbeanstalk/srv/hostmanager/lib/ OS起動と同時に起動  動作に必要なパラメータはuserdataを通じて入手 プロセス起動と監視  Tomcat、Apache、Thin(HostManager用Webサーバ) の起動  「Bluepill」というアプリでプロセスを監視  プロセスが落ちると、プロセスを再起動 HostManager
  16. 16. HostManager Webアプリケーションの生存確認  ELBからの通信を受け取り、Webサーバ内部でWebアプリ の生存を確認して返答 /_hostmanager/healthcheck 指定URL を確認 EC2 HostManager
  17. 17. HostManager WAR入れ替え、Tomcat再起動、設定反映などの処理  各処理の指示が入ったHTTP通信を受け取り、指定の処 理を実行  通信はAES-256で暗号化 /_hostmanager/tasks 暗号化データをPOST 処理を実行 HostManager
  18. 18. ハンズオン
  19. 19. ハンズオンの順番準備環境構築・デプロイ再デプロイサーバキル終了
  20. 20. 準備AWS Management ConsoleへのログインWARファイルのダウンロード  http://bit.ly/bs-handson-apハンズオン資料  http://bit.ly/bs-handson-doc
  21. 21. 秘密鍵の作成(1)
  22. 22. 秘密鍵の作成(2)
  23. 23. 秘密鍵の作成(3) 任意の名前を設定 作成後、鍵をローカルに保存
  24. 24. 環境構築・デプロイ
  25. 25. Application/Environmentの構築(1)
  26. 26. Application/Environmentの構築(2)
  27. 27. Application/Environmentの構築(3) Check Availabilityで チェック
  28. 28. Application/Environmentの構築(4)
  29. 29. Application/Environmentの構築(5)
  30. 30. 構築ステータス
  31. 31. 構築されたリソースの確認(S3)
  32. 32. 構築されたリソース(EC2)
  33. 33. 構築されたリソース(ELB)
  34. 34. Environmentの起動確認
  35. 35. Webアプリの起動確認http://アプリケーションURL.elasticbeanstalk.com/index.do
  36. 36. 再デプロイ
  37. 37. 新バージョンのデプロイ WARアップロードだけなら このボタンで
  38. 38. 再デプロイ HandsOnAppV2.warを選択
  39. 39. Webアプリの起動確認http://アプリケーションURL.elasticbeanstalk.com/index.do
  40. 40. Versionの一覧
  41. 41. サーバキル
  42. 42. サーバをTerminate
  43. 43. 自動的に復旧
  44. 44. 終了
  45. 45. Applicationの削除
  46. 46. 削除前のダイアログ S3に乗せたWARファイ ルは消えないので、手 動で削除
  47. 47. Elastic Beanstalkで大きな実(アプリケーション)を 育てよう!
  48. 48. Appendix
  49. 49. 開発ツール
  50. 50. 開発AWS Toolkit for Eclipse  http://aws.amazon.com/jp/eclipse/  Eclipseマーケットプレースから「AWS」で検索  Eclipse IDE for Java EE Developers 3.6 or higher
  51. 51. 開発機能 AWSサービスのエクスプローラー Webアプリ作成ウィザード Beanstalkの環境構築・環境設定 Webアプリケーションのデプロイ Beanstalkのリモートデバッガー Environmentのイベント・ログビューア
  52. 52. WARファイルのデプロイ プロジェクト右クリック >Run As >Run on Server
  53. 53. デプロイ先のEnvironment を選択
  54. 54. Finishを選択
  55. 55. Version管理時のラベルを 入力 S3にアップロード開始 完了後に自動でデプロイ
  56. 56. イベントログでデプロイ完了を確認
  57. 57. AWS ManagementConsoleの場合 Deploy a Different Version を選択
  58. 58. デプロイ ステージ毎に環境を分けることが可能  本番用、テスト用、開発用 デプロイする URLスワップ機能とバージョン機能を利用する WARは自由に 選択出来る Environment Version URL Environment Configuration WAR WARURLを入れ替えること Environmentで、テスト済みの環境 WAR URL Environment Configurationをそのまま公開できる WAR Environment WAR URL Environment Configuration
  59. 59. 各種設定
  60. 60. 各種設定 Environment毎に設定が可能 サーバ設定 オートスケール設定  インスタンスタイプ  最小/最大サーバ数  セキュリティグループ  配置AZ  キーペア  スケール時のトリガー  監視間隔 ロードバランサ  AMI  HTTP/HTTPSポート  ヘルスチェック設定  セッションStickey
  61. 61. 各種設定(つづき)サーブレットコンテナ設定 ログ設定 ヒープサイズ  S3へのバックアップ(毎時) (最小/最大/permgen) イベント通知 Tomcat起動引数  トピック設定 リモートデバッグ有無  宛先設定 環境変数
  62. 62. 設定方法 Eclipse,Consoleいずれでも設定可能 DEMO
  63. 63. 他サービスとの連携
  64. 64. 他サービスとの連携AWSの他のサービスとの連携は可能 Relational Database Service(RDBサービス) • Oracle,MySQL Simple DB(キーバリューストア) ElastiCache(memcached) Simple Email Service(メール送信) CloudFront(コンテンツ配信) Simple Queue Service(キューイング) ・・・
  65. 65. 他サービスとの連携DBのエンドポイントやSimpleDBのドメインなどの引き渡し  Userdataが使えないため、現状では環境変数が近道 System.getProperty(“AWS_SECRET_KEY") などで取得可能
  66. 66. さらに密に連携するAMIのIDを設定できるため、BeanstalkのAMIを元に作り込む  常に使うアプリケーションはインストールしておく  Tomcatの設定やライブラリ配置も必要であれば行う  OS起動時にChef/puppetを起動するようにスクリプトを仕 込む
  67. 67. その他Tips
  68. 68. その他TipsSSHでログイン可能  障害時の詳細調査  アプリケーションのインストール 手間 デフォルト構成で使用 パラメータ調整 他サービスとの連携 テンプレートカスタマイズ SSH接続柔軟性
  69. 69. その他Tips1つのTomcat上の複数WAR管理は不可  手動でのデプロイは可能だが、管理対象外セッションクラスタリングはデフォルトOFFサーバのスケールアップ  InstanceTypeを変更すると、新しいインスタンスタイプのサーバを起 動後、ELB設定を切り替えて古いサーバをシャットダウンしてくれるSSLも利用可能  API経由でSSL証明書を登録後、EnvironmentのELB設定を実施
  70. 70. 料金 Elastic Beanstalk自体の利用は0 Environment 構築に伴って利用したAWSサービスに対して課金利用サービス 単位 コスト計算 コストAmazon EC2 1 $0.02/hr * 24 hours * 30 days $14.40t1.micro instanceElastic Load Balancer 1 $0.025/hr * 24 hours * 30 days $18.00ELB Data Processing 15GB $0.008/GB * 15GB $0.12Elastic Block Store volume 8GB $0.10/GB * 8GB $0.80S3 Storage for WAR File 1GB $0.14/1GB + $0.01 PUT,GET $0.15Bandwidth In and Out 15GB Inbound is free, 15 GB out * $1.80 $0.12 月額 $35.27
  71. 71. 制約事項cloud-initが使用不可  CloudFrontとの密接な連携はこれから・・  AMI作り込みか、カスタムスクリプトでAmazon VPC(Virtual Private Cloud)は未対応現在米国東部(US-EAST)でのみ利用可能 しばしお待ちを・・

×