Contenu connexe Similaire à AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪 Similaire à AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪 (20) AWS Elastic Beanstalk(初心者向け 超速マスター編)JAWSUG大阪5. AWS Elastic Beanstalk とは
□ Webアプリの実行環境を構築・管理するサービス
Auto scaling Group
Instance
Instance
Amazon
RDS
Elastic Load
Balancing
CloudWatch
デプロイ
AWS Elastic Beanstalk
S3war zip
Amazon
SNS
Internet
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. AWS Elastic Beanstalk とは
□ アプリをアップロードするだけで自動的にデプロイ
・容量のプロビジョニング
・負荷分散
・Auto-Scaling
・アプリケーション状態モニタリング
□ 実行環境の設定
・サーバースペック
・40項目以上の設定が可能
□ 利用できる API の制約・処理時間の制約はない
8. AWS Elastic Beanstalk とは
□ アプリのバージョン管理
・WAR や ZIP の世代管理が可能
・アプリのロールバック・ロールフォワードが容易
□ 複数環境の構築
・本番、テストなど目的によって構築できる
□ 料金
・Elastic Beanstalk 自体の追加料金は無し
・EC2 インスタンスなど利用したリソースの実費のみ
9. AWS Elastic Beanstalk とは
□ Application の論理構成
URL
Application
Environment
Environment
Configuration
URL
Environment
Environment
Configuration
Version
war / zip
war / zip
war / zip
war / zip
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. やること
□ Management Console から利用する
・アプリと環境を作成
・デプロイ方法
・バージョン管理
・新しい環境を作成する
□ 設定を変更する
・Auto Scaling
・ELB
・Container
・RDS
・セーブ&ロード
□ Eclipse から利用する(Java)
・デモンストレーション
21. マネコンからアプリをデプロイ
□ 2つの方法
・AWS Management Console から
・git から
URL
Application
Environment
Environment
Configuration
Version
war / zip
war / zip
URL
Application
Environment
Environment
Configuration
Version
war / zip
war / zip
$ git aws.config
AWS Access Key: AKIXXXX
AWS Secret Key: XXXXXXX
AWS Region: ap-northeast-1
AWS Elastic Beanstalk
Environment: XXXXXX
23. Gitからアプリをデプロイ
□ 2つの方法
・AWS Management Console から
・git から
URL
Application
Environment
Environment
Configuration
Version
war / zip
war / zip
URL
Application
Environment
Environment
Configuration
Version
war / zip
war / zip
$ git aws.config
AWS Access Key: AKIXXXX
AWS Secret Key: XXXXXXX
AWS Region: ap-northeast-1
AWS Elastic Beanstalk
Environment: XXXXXX
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. Gitからアプリをデプロイ
□ プロジェクトを作成
□ ソースコードを開発
$ mkdir helloworld
$ cd helloworld
$ git init
var 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.js
Node.jsの例
26. Gitからアプリをデプロイ
□ 拡張コマンドのセットアップ
□ AWSの設定
$ git aws.config
AWS Access Key: AKIXXXXXXXXXXXXXXXX
AWS Secret Key: XXXXXXXXXXXXXXXXXXX
AWS Region [default to us-east-1]: ap-northeast-1
AWS Elastic Beanstalk Application: XXXXXXXXXX
AWS Elastic Beanstalk Environment: XXXXXXXXXX
$ ~/AWS-ElasticBeanstalk-CLI-2.4.0/AWSDevTools/
Linux/AWSDevTools-RepositorySetup.sh
→http://aws.amazon.com/code/6752709412171743
Security Credentials
37. やること
□ Management Console から利用する
・アプリと環境を作成
・デプロイ方法
・バージョン管理
・新しい環境を作成する
□ 設定を変更する
・Auto Scaling
・ELB
・Container
・RDS
・セーブ&ロード
□ Eclipse から利用する(Java)
・デモンストレーション
38. Auto Scaling を設定する
□ デフォルトの構成だと
Auto scaling Group
InstanceElastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
39. Auto Scaling を設定する
□ Multi-AZ を有効にする
Auto scaling Group
Instance
Instance
Elastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
Availability Zone
41. Auto Scaling を設定する
⑤ CPU Utillization を選択
⑥ Percent を選択
⑦ 70 を指定(適宜)
⑧ 30 を指定(適宜)
デフォルトはNetworkOutとなっており、実際に稼働させていな
い現状では絶対値でのスケールインアウトの判断ができない。
そこで、CPUUtillization による相対値を利用する
⑨ 完了
42. ELB を設定する
□ デフォルトの構成だと
Auto scaling Group
Instance
Instance
Elastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
Availability Zone
43. ELB を設定する
□ Session Stickiness を有効にする
Auto scaling Group
Instance
Instance
Elastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
Availability Zone
44. ELB を設定する
① Load Balancer
をクリック
② Enable Session Stickiness
をチェック
③ Cookie Expiration Period
を指定 ④ 完了
45. ELB を設定する
□ HTTPS を有効にする
Auto scaling Group
Instance
Instance
Elastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
Availability Zone
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-servercertlistbypath
arn:aws:iam::999999999:server-certificate/www_abc_com
47. Container を設定する (Java)
① Container をクリック
② 環境変数を指定
③ S3へログファイルをローテーション
④ 完了
インスタンスタイプ(メモリ量)を
変えても、この設定が動的に変わる
わけではない
48. RDS を設定する
□ ここまで設定した構成は
Auto scaling Group
Instance
Instance
Elastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
Availability Zone
49. RDS を設定する
□ RDS ( Multi-AZ ) を設定する
Auto scaling Group
Instance
Instance
Elastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
Availability Zone
RDS DB
Instance
RDS DB Instance
Standby
50. RDS を設定する
① Database をクリック
② Create an RDS DB Instance
をチェック
⑥ Username, Password を指定
⑦ Multi-AZ をチェック
③ DB Engine を選択
(MySQL, Oracle, SQLServer)
④ Instance Class を選択
⑤ ストレージサイズ を指定
⑧ 完了
53. やること
□ Management Console から利用する
・アプリと環境を作成
・デプロイ方法
・バージョン管理
・新しい環境を作成する
□ 設定を変更する
・Auto Scaling
・ELB
・Container
・RDS
・セーブ&ロード
□ Eclipse から利用する(Java)
・デモンストレーション
55. デモンストレーション
□ 構成図
Auto scaling Group
InstanceElastic Load
Balancing
CloudWatch
AWS Elastic Beanstalk
S3
Amazon
SNS
Availability Zone
RDS DB
Instance
Instance
war
Eclipse
デプロイ
xxxx.elasticbeanstalk.com?id=1
1, YAMADA
パラメータで渡し
たidに対応するレ
コードを表示する
ID NAME
1 YAMADA
2 SUZUKI
3 MIZUNO