Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪

  1. 1. しみず @shimy_net2013 / 6 / 22AWS Elastic Beanstalk!初心者向け 超速マスター編
  2. 2. 自己紹介しみず @shimy_netWebアーキテクトアマゾン芸人無駄に技術を使って面白いことをする
  3. 3. 本を執筆しましたhttp://goo.gl/QtaK6
  4. 4. アプリケーションを動かすには実行環境が必要□ 2つの方法・EC2 や ELB を利用して実行環境を構築する →手間がかかる  自由度が高い・AWS Elastic Beanstalk を利用する →スケールできる環境を即構築  バージョン・環境の管理が簡単
  5. 5. AWS Elastic Beanstalk とは□ Webアプリの実行環境を構築・管理するサービスAuto scaling GroupInstanceInstanceAmazonRDSElastic LoadBalancingCloudWatchデプロイAWS Elastic BeanstalkS3war zipAmazonSNSInternet
  6. 6. AWS Elastic Beanstalk とは□ サポートする言語とスタック・Apache Tomcat for Java・Apache HTTP Server for PHP・Apache HTTP Server for Python・Nginx or Apache HTTP Server for Node.js・Passenger for Ruby・Microsoft IIS 7.5 for .NET
  7. 7. AWS Elastic Beanstalk とは□ アプリをアップロードするだけで自動的にデプロイ・容量のプロビジョニング・負荷分散・Auto-Scaling・アプリケーション状態モニタリング□ 実行環境の設定・サーバースペック・40項目以上の設定が可能□ 利用できる API の制約・処理時間の制約はない
  8. 8. AWS Elastic Beanstalk とは□ アプリのバージョン管理・WAR や ZIP の世代管理が可能・アプリのロールバック・ロールフォワードが容易□ 複数環境の構築・本番、テストなど目的によって構築できる□ 料金・Elastic Beanstalk 自体の追加料金は無し・EC2 インスタンスなど利用したリソースの実費のみ
  9. 9. AWS Elastic Beanstalk とは□ Application の論理構成URLApplicationEnvironmentEnvironmentConfigurationURLEnvironmentEnvironmentConfigurationVersionwar / zipwar / zipwar / zipwar / zip
  10. 10. 開発・管理ツール  AWS Management Console(Webブラウザ)  AWS Elastic Beanstalk Command Line Tools→http://aws.amazon.com/code/6752709412171743  AWS Toolkit for Eclipse(Java)→http://aws.amazon.com/eclipse・AWS SDK for Java・AWS Explorer・AWS Elastic Beanstalk
  11. 11. やること□ Management Console から利用する・アプリと環境を作成・デプロイ方法・バージョン管理・新しい環境を作成する□ 設定を変更する・Auto Scaling・ELB・Container・RDS・セーブ&ロード□ Eclipse から利用する(Java)・デモンストレーション
  12. 12. Management Console から利用① ここからスタート② Elastic Beanstalk を選択
  13. 13. アプリと環境を作成□ まずは、手順にそってデフォルト構成で構築URLApplicationEnvironmentEnvironmentConfigurationVersionwar / zip
  14. 14. アプリと環境を作成③ Create New Application をクリック⑤ コンテナ を選択⑥ サンプルアプリを選択④ アプリケーション名 を指定
  15. 15. アプリと環境を作成⑧ URL を指定⑦ 環境名 を指定
  16. 16. アプリと環境を作成⑨ インスタンスタイプ を指定EC2インスタンスにSSHアクセスする場合はキーペアを指定通知を受ける場合はメールアドレスを指定
  17. 17. アプリと環境を作成⑩ 完了
  18. 18. アプリと環境を作成数分でサンプルアプリが起動① URLにアクセス
  19. 19. 出来上がった論理構成は□ サンプルアプリが起動URLApplicationEnvironmentEnvironmentConfigurationVersionwar / zipサンプルアプリhttp://XXXXX.elasticbeanstalk.com/
  20. 20. 新しいアプリをデプロイ□ アプリを切り替えるURLApplicationEnvironmentEnvironmentConfigurationVersionwar / ziphttp://XXXXX.elasticbeanstalk.com/war / zip新しいアプリサンプルアプリ
  21. 21. マネコンからアプリをデプロイ□ 2つの方法 ・AWS Management Console から ・git からURLApplicationEnvironmentEnvironmentConfigurationVersionwar / zipwar / zipURLApplicationEnvironmentEnvironmentConfigurationVersionwar / zipwar / zip$ git aws.configAWS Access Key: AKIXXXXAWS Secret Key: XXXXXXXAWS Region: ap-northeast-1AWS Elastic BeanstalkEnvironment: XXXXXX
  22. 22. マネコンからアプリをデプロイ□別のアプリをデプロイするには① Deploy a Different Versionをクリック② ラベル をつける③ アプリ を選択④ 完了
  23. 23. Gitからアプリをデプロイ□ 2つの方法 ・AWS Management Console から ・git からURLApplicationEnvironmentEnvironmentConfigurationVersionwar / zipwar / zipURLApplicationEnvironmentEnvironmentConfigurationVersionwar / zipwar / zip$ git aws.configAWS Access Key: AKIXXXXAWS Secret Key: XXXXXXXAWS Region: ap-northeast-1AWS Elastic BeanstalkEnvironment: XXXXXX
  24. 24. Gitからアプリをデプロイ□ 必要なもの・AWS Elastic Beanstalk Command Line Tool  →http://aws.amazon.com/code/6752709412171743・Git 1.6.6 or later  →http://git-scm.com/・Ruby version 1.8.7 or later  →http://www.ruby-lang.org/en/・Python 2.7 or 3.0
  25. 25. Gitからアプリをデプロイ□ プロジェクトを作成□ ソースコードを開発$ mkdir helloworld$ cd helloworld$ git initvar http = require("http");http.createServer(function(request, response) {response.writeHead(200, {"Content-Type": "text/plain"});response.write("Hello World");response.end();}).listen(process.env.PORT || 8888);$ vi server.jsNode.jsの例
  26. 26. Gitからアプリをデプロイ□ 拡張コマンドのセットアップ□ AWSの設定$ git aws.configAWS Access Key: AKIXXXXXXXXXXXXXXXXAWS Secret Key: XXXXXXXXXXXXXXXXXXXAWS Region [default to us-east-1]: ap-northeast-1AWS Elastic Beanstalk Application: XXXXXXXXXXAWS Elastic Beanstalk Environment: XXXXXXXXXX$ ~/AWS-ElasticBeanstalk-CLI-2.4.0/AWSDevTools/Linux/AWSDevTools-RepositorySetup.sh→http://aws.amazon.com/code/6752709412171743Security Credentials
  27. 27. Gitからアプリをデプロイ□ ローカルリポジトリにコミット□ AWS Elastic Beanstalk へデプロイ$ git add server.js$ git commit –m “initial commit”$ git aws.push
  28. 28. Gitからアプリをデプロイ□ 新しいアプリがデプロイされる新しいアプリに切り替わる
  29. 29. アプリのバージョンを管理① Versions をクリック一覧が表示される
  30. 30. 新しい環境を追加□ Environmentを追加URLApplicationEnvironmentEnvironmentConfigurationVersionwar / zipwar / zipテスト環境
  31. 31. 新しい環境を追加□ Environmentを追加URLApplicationEnvironmentEnvironmentConfigurationVersionwar / zipwar / zipURLNew EnvironmentEnvironmentConfigurationテスト環境本番環境
  32. 32. 新しい環境を追加① Launch New Environment をクリック③ URL を指定② 環境名称 を指定④ アプリ を指定⑤ コンテナ を選択
  33. 33. 新しい環境を追加⑥ インスタンスタイプ を選択
  34. 34. 新しい環境を追加⑦ 完了
  35. 35. 新しい環境を追加本番環境の出来上がり
  36. 36. 環境のスワッピングDNS切り替えによって環境を移行できる例えば、テスト環境 → 本番環境① Swap EnvironmentURL をクリック
  37. 37. やること□ Management Console から利用する・アプリと環境を作成・デプロイ方法・バージョン管理・新しい環境を作成する□ 設定を変更する・Auto Scaling・ELB・Container・RDS・セーブ&ロード□ Eclipse から利用する(Java)・デモンストレーション
  38. 38. Auto Scaling を設定する□ デフォルトの構成だとAuto scaling GroupInstanceElastic LoadBalancingCloudWatchAWS Elastic BeanstalkS3AmazonSNS
  39. 39. Auto Scaling を設定する□ Multi-AZ を有効にするAuto scaling GroupInstanceInstanceElastic LoadBalancingCloudWatchAWS Elastic BeanstalkS3AmazonSNSAvailability ZoneAvailability Zone
  40. 40. Auto Scaling を設定する③ 2 に変更④ Any2 を選択① Edit/Load Configurationをクリック② Auto Scaling タブをクリック
  41. 41. Auto Scaling を設定する⑤ CPU Utillization を選択⑥ Percent を選択⑦ 70 を指定(適宜)⑧ 30 を指定(適宜)デフォルトはNetworkOutとなっており、実際に稼働させていない現状では絶対値でのスケールインアウトの判断ができない。そこで、CPUUtillization による相対値を利用する⑨ 完了
  42. 42. ELB を設定する□ デフォルトの構成だとAuto scaling GroupInstanceInstanceElastic LoadBalancingCloudWatchAWS Elastic BeanstalkS3AmazonSNSAvailability ZoneAvailability Zone
  43. 43. ELB を設定する□ Session Stickiness を有効にするAuto scaling GroupInstanceInstanceElastic LoadBalancingCloudWatchAWS Elastic BeanstalkS3AmazonSNSAvailability ZoneAvailability Zone
  44. 44. ELB を設定する① Load Balancerをクリック② Enable Session Stickinessをチェック③ Cookie Expiration Periodを指定 ④ 完了
  45. 45. ELB を設定する□ HTTPS を有効にするAuto scaling GroupInstanceInstanceElastic LoadBalancingCloudWatchAWS Elastic BeanstalkS3AmazonSNSAvailability ZoneAvailability Zone
  46. 46. ELB を設定する□ HTTPS を有効にする取得した証明書IDを指定することでELBにHTTPSのトラフィックをルーティングさせることができる$ iam-servercertupload -b www_abc_com.crt -c www_abc_com.ca-bundle -k www_abc_com.key -s www_abc_com$ iam-servercertlistbypatharn:aws:iam::999999999:server-certificate/www_abc_com
  47. 47. Container を設定する (Java)① Container をクリック② 環境変数を指定③ S3へログファイルをローテーション④ 完了インスタンスタイプ(メモリ量)を変えても、この設定が動的に変わるわけではない
  48. 48. RDS を設定する□ ここまで設定した構成はAuto scaling GroupInstanceInstanceElastic LoadBalancingCloudWatchAWS Elastic BeanstalkS3AmazonSNSAvailability ZoneAvailability Zone
  49. 49. RDS を設定する□ RDS ( Multi-AZ ) を設定するAuto scaling GroupInstanceInstanceElastic LoadBalancingCloudWatchAWS Elastic BeanstalkS3AmazonSNSAvailability ZoneAvailability ZoneRDS DBInstanceRDS DB InstanceStandby
  50. 50. RDS を設定する① Database をクリック② Create an RDS DB Instanceをチェック⑥ Username, Password を指定⑦ Multi-AZ をチェック③ DB Engine を選択(MySQL, Oracle, SQLServer)④ Instance Class を選択⑤ ストレージサイズ を指定⑧ 完了
  51. 51. 設定のセーブ① Save Configurationをクリック② Configuration Nameを指定⑧ 完了
  52. 52. 設定のロード② ロードしたい設定を選択① Edit/Load Configurationをクリック
  53. 53. やること□ Management Console から利用する・アプリと環境を作成・デプロイ方法・バージョン管理・新しい環境を作成する□ 設定を変更する・Auto Scaling・ELB・Container・RDS・セーブ&ロード□ Eclipse から利用する(Java)・デモンストレーション
  54. 54. デモンストレーション□ 利用ツール・Eclipse 4.2・Seasar2  http://eclipse.seasar.org/updates/3.3/・AWS Toolkit for Eclipse  http://aws.amazon.com/jp/eclipse/・Sequel Pro 1.0.2デモ動画をアップしましたhttp://youtu.be/ZR6zp1lVzCE
  55. 55. デモンストレーション□ 構成図Auto scaling GroupInstanceElastic LoadBalancingCloudWatchAWS Elastic BeanstalkS3AmazonSNSAvailability ZoneRDS DBInstanceInstancewarEclipseデプロイxxxx.elasticbeanstalk.com?id=11, YAMADAパラメータで渡したidに対応するレコードを表示するID NAME1  YAMADA2  SUZUKI3  MIZUNO
  56. 56. !    以上!ありがとうございました!

×