Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015...
Transcript of Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015...
![Page 1: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/1.jpg)
1
AWS OpsWorks
AWS Black Belt Tech Webinar 2015アマゾン ウェブ サービス ジャパン株式会社ソリューションアーキテクト 舟﨑 健治
2015/11/11
![Page 2: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/2.jpg)
2
Agenda
• Introduction
• AWS OpsWorks概要のおさらい
• AWS OpsWorksアップデート
• AWS OpsWorks Tips
• お客様の事例
• まとめ
![Page 3: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/3.jpg)
3
Agenda
• Introduction
• AWS OpsWorks概要のおさらい
• AWS OpsWorksアップデート
• AWS OpsWorks Tips
• お客様の事例
• まとめ
![Page 4: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/4.jpg)
4
Introduction
• アプリケーションは複数のレイヤーで構成されることが多い。
レイヤー 使用例
プレゼンテーション フロントエンドWebサーバ
ビジネスロジック アプリケーションサーバ
ワーカー バックグラウンドのタスクを実行
データ バックエンドデータストア
インテグレーション メッセージングキュー
![Page 5: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/5.jpg)
5
Micro-Servicesアーキテクチャ
• 小さなサービスの集合で1つのアプリケーションを形成• サービス間はインタフェースを使ってコミュニケートする• それぞれのMicro-Serviceは、異なるフレームワーク、プログラ
ミング言語で開発可能 UI
Micro
Service
DB
Micro
Service
DB
Micro
Service
DB
Micro
Service
AWS OpsWorksでは、それぞれのMicro-Serviceを「レイヤー」で定義可能
![Page 6: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/6.jpg)
6
Agenda
• Introduction
• AWS OpsWorks概要のおさらい
• AWS OpsWorksアップデート
• AWS OpsWorks Tips
• お客様の事例
• まとめ
![Page 7: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/7.jpg)
7
AWS OpsWorksとは
アプリケーションのライフサイクル管理サービス
デプロイを頻繁に、早く、セキュアに実行可能
スケーラブルで複雑なインフラストラクチャの構成を管理、モデル化、
自動化することが可能
ビルトイン構成を使って簡単に開始可能
追加コストは不要
![Page 8: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/8.jpg)
8
AWS OpsWorksを使うメリット
自動化できる領域が多くなる
デプロイ自動化 運用タスクの自動化
運用負荷を軽減できる
![Page 9: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/9.jpg)
9
EC2インスタンスの構築例
インスタンス起動
ソフトウェアインストール・構成用のスクリプトを実行
アプリケーションのデプロイ
EC2のAPIで自動化が可能
ユーザー側でインスタンス内部で起動スクリプト等を使って、自動化が可能
![Page 10: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/10.jpg)
10
OpsWorksインスタンスの構築例
インスタンス起動
ソフトウェアインストール・構成用のChefレシピを実行
アプリケーションのデプロイ用のChefレシピを実行
OpsWorksのAPIで自動化が可能
![Page 11: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/11.jpg)
11
なぜ、OpsWorksでインスタンス内部のChefレシピをリモートからOpsWorks APIで実行可能か?
OpsWorksインスタンス内で、OpsWorksエージェントがインストール・動作しているため
![Page 12: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/12.jpg)
12
OpsWorksの基本的な仕組み(1)
EC2インスタンス上のOpsWorksエージェント
OpsWorks
talks with
OpsWorks エージェントからOpsWorks エンドポイントに対してPolling(アウトバウンド通信)
![Page 13: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/13.jpg)
13
OpsWorksの基本的な仕組み(2)
OpsWorksによって発行された一連のコマンドを取得AgentがChef Clientのローカルモードでレシピを実行
EC2インスタンス上のOpsWorks Agent
インスタンスにSSH / RDPログインも可能Chef Server / Chef Clientの構築は不要お客様はChefのレシピの作成に集中可能
![Page 14: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/14.jpg)
14
OpsWorks利用の流れ
User AWS Management Console
![Page 15: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/15.jpg)
15
Stack
OpsWorks利用の流れ
User AWS Management Console
構成情報(JSON)
①スタックの作成
![Page 16: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/16.jpg)
16
Stack
OpsWorks利用の流れ
User AWS Management Console
Load Balancerレイヤー
App Serverレイヤー
Databaseレイヤー
構成情報(JSON)
①スタックの作成
②レイヤーの作成
![Page 17: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/17.jpg)
17
Stack
OpsWorks利用の流れ
User AWS Management Console
Load Balancerレイヤー
App Serverレイヤー
Databaseレイヤー
レシピ
レシピ
レシピ
構成情報(JSON)
①スタックの作成
②レイヤーの作成
③レシピの設定(Appの設定)
![Page 18: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/18.jpg)
18
Stack
OpsWorks利用の流れ
User AWS Management Console
Load Balancerレイヤー
App Serverレイヤー
Databaseレイヤー
レシピ
レシピ
レシピ
構成情報(JSON)
①スタックの作成
②レイヤーの作成
③レシピの設定(Appの設定)
④レイヤーにインスタンス追加・起動
![Page 19: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/19.jpg)
19
Stack
OpsWorks利用の流れ
User AWS Management Console
Load Balancerレイヤー
App Serverレイヤー
Databaseレイヤー
レシピ
レシピ
レシピDB
Web/App
LB
①スタックの作成
②レイヤーの作成
③レシピの設定(Appの設定)
④レイヤーにインスタンス追加・起動
⑤ライフサイクルイベントにより、レシピが自動実行される
構成情報(JSON)
Web/App
![Page 20: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/20.jpg)
20
スタックとは
• OpsWorksのトップエンティティ• 属する全インスタンスの構成を管理
– OSの種類、リージョン、インスタンスのIPアドレスなど
• カスタムレシピを保存する任意のリポジトリを指定可能• VPC内部に作成可能• スタックごとに構成情報をJSON形式で保持
– 構成変更のたびにJSONが更新される– ChefレシピからJSON内の変数を読み込み可能
• スタックをコピー可能– リージョン間でも可能
![Page 21: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/21.jpg)
21
レイヤーとは
• インスタンス構築のための青写真(設計図)
レシピを指定して、パッケージインストールなどの必要な処理を定義
カスタムレシピも定義可能
追加のEBSボリュームの指定。RAID指定も可能
![Page 22: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/22.jpg)
22
ビルトインレイヤーの種類
• Load Balancer– HAProxy
(ELBは各レイヤーに個別にアタッチ可能)
• App Server– Static Web Server– Rails App Server– PHP App Server– Node.js App Server– Java App Server– AWS Flow (Ruby)
• DB– MySQL– RDS
• ECS(EC2 Container Service) Cluster
• Other– Memcached– Ganglia– Custom
ビルトインレイヤー以外にもカスタムレイヤーを使って任意の役割を持つレイヤーを作成可能(Jenkinsレイヤーなど)
NEW
![Page 23: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/23.jpg)
23
インスタンスとは
• アプリケーションを提供するためのEC2インスタンスのこと
• 起動時にインスタンスサイズやAZ(VPC内の場合はサブネット)を指定
• インスタンス内部にOpsWorksAgentが動作している
![Page 24: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/24.jpg)
24
インスタンスのスケーリングタイプ
• インスタンスを(自動)追加起動・終了する方法として以下の3パターンがある– 24/7 インスタンス
• 常時稼働
– 負荷ベースのインスタンス
– 時間ベースのインスタンス
![Page 25: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/25.jpg)
25
Appとは
• アプリケーションサーバーにデプロイするアプリケーションのこと
• 利用可能なアプリケーションの種類(標準のアプリケーションサーバーレイヤーに相当する)– Ruby on Rails / PHP / Node.js(JavaScript) /
Static(HTML) / Java / AWS Flow(Ruby) / Other
• サポートするリポジトリ– Git / Subversion / HTTP archive / S3 Archive / Other– GithubやBitBucketも使用可能
![Page 26: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/26.jpg)
26
OpsWorksで実行可能なコマンド
以下の2種類がある スタックコマンド
スタック全体の構成を変更・管理するためのコマンド
AWSマネージメントコンソール、AWS SDK、AWS CLIでリモートから実行可能
エージェントコマンド デバッグやトラブルシューティングのために利用するコマンド それ以外の用途の場合は、スタックコマンドの利用を推奨
インスタンス内部にログインして実行可能。
sudoもしくはroot権限が必要
重要!
![Page 27: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/27.jpg)
27
スタックコマンドを使ってリモートから任意のタイミングでインスタンスにコマンドを実行可能
スタックコマンド 内容
Install Dependencies 全てのパッケージをインストールする
Update Dependencies 全てのパッケージをアップデートする
Update Custom Cookbooks
リポジトリにある更新されたCookbookをそれぞれのインスタンスに展開する
Execute Recipes 指定したレシピを指定したインスタンス上で実行する
Setup Setupのレシピを実行する。(Setupを実行するとDeployもその後で実行される)
Configure Configureのレシピを実行する。
AWS Management Console
管理者 AWS OpsWorks Instances
Execute Recipesコマンド等を実行
OpsWorksエージェントがChefレシピを実行
![Page 28: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/28.jpg)
28
スタックコマンドでUpdate Custom Cookbooksを実行
• アップデートされたカスタムChef cookbooksをコードリポジトリから指定したインスタンスに展開する
• コマンド実行時のログを確認可能
Update Custom
Cookbooksを選択ログを確認
![Page 29: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/29.jpg)
29
スタックコマンドでExecute Recipesを実行
• Update Custom Cookbooksを実行後に、Cookbookおよびレシピ名を指定してレシピ単体を実行する
• コマンドのログを確認可能
Execute Recipesを選択
Cookbook名::レシピ名を指定
ログを確認
![Page 30: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/30.jpg)
30
インスタンス内部でOpsWorks Agent CLIを実行
• OpsWorksで起動されたインスタンスにSSHでログインして、Agent CLIコマンドを実行可能。
– レシピの実行
– Chefログの表示
– スタックの構成JSONおよびデプロイメントJSONの表示
![Page 31: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/31.jpg)
31
インスタンス内部でOpsWorks Agent CLIによるレシピ再実行
• Agent CLIのrun_commandは、最近スタックコマンドによって実行されたことがあるコマンドのみ再実行が可能。手順は以下。– 1.最近実行されたコマンド(のキャッシュ)を表示する
– 2.表示されたコマンドの中に、実行したいコマンドがあれば同じコマンドを実行可能
$ sudo opsworks-agent-cli list_commands
2014-04-07T02:55:09 setup
2014-04-07T02:58:55 configure
2014-04-07T04:38:12 execute_recipes
$ sudo opsworks-agent-cli run_command execute_recipes hello
インスタンス内部のキャッシュにあるレシピを実行する。コードリポジトリにあるレシピをアップデートしただけでは、最新のレシピを自動でダウンロードはしない。インスタンス起動後に最新のレシピをダウンロードするにはスタックコマンドでUpdate Custom
Cookbooksを実行する必要がある。
![Page 32: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/32.jpg)
32
インスタンス内部でOpsWorks Agent CLIによるスタック構成JSONの表示
• インスタンス内部で以下のコマンドを実行
• スタック構成およびデプロイメントJSONを取得する
sudo opsworks-agent-cli get_json
{
"deploy": {
"hello": {
"deploy_to": "/srv/www/hello",
"application": "hello",
"deploying_user": "arn:aws:iam::111111111111:root",
"domains": [
"hello"
],
"application_type": "php",
"mounted_at": null,
"rails_env": null,
カスタムChefレシピ作成時に、JSONから
パラメータを取得するときの参考として活用可能
![Page 33: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/33.jpg)
33
OpsWorksの 5 つのライフサイクルイベント
Setup
Configure
Deploy
Undeploy
Shutdown
![Page 34: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/34.jpg)
34
どのタイミングでライフサイクルイベントが実行されるか?
![Page 35: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/35.jpg)
35
最初のインスタンスを追加
App
サーバー
Setup Deploy Configure Execute Recipe Shutdown
![Page 36: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/36.jpg)
36
最初のインスタンスを起動すると、Setupが自動実行される
Appサーバーの起動
App
サーバー
Setup Deploy Configure Execute Recipe Shutdown
![Page 37: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/37.jpg)
37
Setupが実行された後にDeployが自動実行される
Appサーバーの起動
App
サーバー
Setup Deploy Configure Execute Recipe Shutdown
![Page 38: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/38.jpg)
38
インスタンスがonlineになるとConfigureが自動実行される
Appサーバーの起動
App
サーバー
Setup Deploy Configure Execute Recipe Shutdown
![Page 39: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/39.jpg)
39
データベースインスタンスの追加
Appサーバーの起動
App
サーバー
DB
サーバー
Setup Deploy Configure Execute Recipe Shutdown
![Page 40: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/40.jpg)
40
Setup, Deployが自動実行される
Appサーバーの起動
App
サーバー
DB
サーバー
DBサーバーの起動
Setup Deploy Configure Execute Recipe Shutdown
![Page 41: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/41.jpg)
41
DBサーバーがonlineになるとスタック内の全インスタンスでConfigureが自動実行される
Appサーバーの起動
App
サーバー
DB
サーバー
DBサーバーの起動
Setup Deploy Configure Execute Recipe Shutdown
![Page 42: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/42.jpg)
42
さらにインスタンスを追加
Appサーバーの起動
App
サーバー
DB
サーバー
App
サーバー
DBサーバーの起動
Setup Deploy Configure Execute Recipe Shutdown
![Page 43: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/43.jpg)
43
Setup、Deployが自動実行される
Appサーバーの起動
App
サーバー
DB
サーバー
App
サーバー
DBサーバーの起動
Setup Deploy Configure Execute Recipe Shutdown
Appサーバーの起動
![Page 44: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/44.jpg)
44
インスタンスがonlineになるとスタック内の全インスタンスでconfigureが自動実行される
Appサーバーの起動
App
サーバー
DB
サーバー
App
サーバー
DBサーバーの起動
Setup Deploy Configure Execute Recipe Shutdown
Appサーバーの起動
![Page 45: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/45.jpg)
45
手動でデプロイを実行
Appサーバーの起動
App
サーバー
DB
サーバー
App
サーバー
DBサーバーの起動
Setup Deploy Configure Execute Recipe Shutdown
Appサーバーの起動
手動でデプロイを実行
![Page 46: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/46.jpg)
46
レシピを手動で実行
Appサーバーの起動
App
サーバー
DB
サーバー
App
サーバー
DBサーバーの起動
Setup Deploy Configure Execute Recipe Shutdown
Appサーバーの起動
手動でデプロイを実行
レシピ単体を実行
![Page 47: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/47.jpg)
47
インスタンスを停止
Appサーバーの起動
App
サーバー
DB
サーバー
App
サーバー
DBサーバーの起動
Setup Deploy Configure Execute Recipe Shutdown
Appサーバーの起動
手動でデプロイを実行
レシピ単体を実行
Appサーバーのシャットダウン
![Page 48: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/48.jpg)
48
インスタンスがonlineでなくなると、Configureが自動実行される
Appサーバーの起動
App
サーバー
DB
サーバー
App
サーバー
DBサーバーの起動
Setup Deploy Configure Execute Recipe Shutdown
Appサーバーの起動
手動でデプロイを実行
レシピ単体を実行
Appサーバーのシャットダウン
![Page 49: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/49.jpg)
49
ライフサイクルイベントに登録するレシピの例(レイヤー別)
Setup Configure Deploy Undeploy Shutdown
ロードバランサーレイヤー
ロードバランサーをインストール
アプリケーションサーバーのIPをアップデート
コネクションをDrainする
アプリケーションサーバーレイヤー
アプリケーションサーバーをインストール
DB接続先をアップデートしてリスタート
アプリケーションコードをアップデートしてリスタート
アプリケーションを削除してリスタート
ログを保存
データベースレイヤー
データベースをインストール
アプリケーションサーバーのIPのACLをアップデート
スナップショットの作成
![Page 50: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/50.jpg)
50
Elastic Load Balancer
レイヤー
VPC内に構築する例
Virtual Private Cloud
VPC Public Subnet
VPC Private Subnet
Internet
Gateway
NAT
PHP App Server
レイヤー
MySQL DB レイヤー Github
Recipe
RepositoryApp Code
Repository
• OpsWorksにより起動されたインスタンスはOpsWorksサービスエンドポイントと接続が必須(Privateサブネット利用時はNAT必須)
• プライベートサブネット内のコードリポジトリを利用可能
![Page 51: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/51.jpg)
51
Agenda
• Introduction
• AWS OpsWorks概要のおさらい
• AWS OpsWorksアップデート
• AWS OpsWorks Tips
• お客様の事例
• まとめ
![Page 52: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/52.jpg)
52
サポートされるオペレーティングシステム
• Amazon Linux
• Ubuntu 12.04 LTS
• Ubuntu 14.04 LTS
• Red Hat Enterprise Linux 7
• Windows Server 2012 R2
NEW
NEW
![Page 53: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/53.jpg)
53
Amazon Linux
• AWSによって提供、サポート、管理されるLinux– EC2内でのみ利用可能
• 多数のAWS APIツールやCloudInitがインストール済み
• 64ビットバージョンのAmazon Linuxをサポート
• 約6か月おきに新しいバージョンをリリース
• カスタムAMIを利用可能
![Page 54: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/54.jpg)
54
Ubuntu
• 約2年ごとに新しいUbuntu LTSがリリース
• 各リリースは約5年間サポートされる
• OpsWorksでは64ビットバージョンのUbuntu 12.04 LTSおよび14.04 LTSをサポート
• カスタムAMIを利用可能
• 既存のUbuntu 12.04インスタンスを14.04インスタンスへ更新することは不可– 新しいUbuntu 14.04インスタンスを作成する必要あり
![Page 55: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/55.jpg)
55
Redhat Enterprise Linux 7 (RHEL 7)
• 64ビットバージョンをサポート
• 最初にサポートされるマイナーバージョンはRHEL 7.1
• Red Hatは約9か月おきにマイナーバージョンをリリース
• 新しいインスタンスを作成すると、OpsWorksは現在のRHEL 7のバージョンが使用される
• 新しいマイナーバージョンがリリースされても、OpsWorksが既存の起動中のインスタンスを自動的に更新することはない
NEW
![Page 56: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/56.jpg)
56
Linuxのバージョンアップグレードについて
• Amazon Linux / Red Hat Enterprise Linux 7でアップグレードが可能
• オンラインインスタンスの場合– インスタンスを指定して、Upgrade Operating Systemスタックコマンドを実行
• オフラインのEBS backedインスタンスの場合– インスタンスを起動して、Upgrade Operating Systemスタックコマンドを実行
• 時間ベース、負荷ベースのインスタンスを含めた、オフラインのInstance Store backedインスタンスの場合– インスタンスのOperating Systemの設定を編集、その後インスタンス再起動時に新
しいバージョンに更新される
![Page 57: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/57.jpg)
57
Windows Server
• 以下の64ビットバージョンをサポート– Microsoft Windows Server 2012 R2(Standard)
– Microsoft Windows Server 2012 R2およびSQL Server Express
– Microsoft Windows Server 2012 R2およびSQL Server Standard
– Microsoft Windows Server 2012 R2およびSQL Server Web
• Windows PowerShellスクリプトをChefレシピから実行可能
• カスタムAMIを使用可能
• Linuxインスタンス同様に使用可能だが、いくつか注意事項がある。
NEW
![Page 58: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/58.jpg)
58
Windows Serverの注意事項
• Windows Stackの場合、Chef 12.2を利用
• OpsWorksの外部で作成されたWindowsインスタンスをStackへ登録することは不可
• Berkshelfは利用不可
• カスタムレイヤーを利用する– 組み込み(ビルトイン)レイヤーは未サポート
• EBS-backedルートボリュームを利用
![Page 59: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/59.jpg)
59
オンプレミスインスタンスのサポート
• オンプレミスの物理サーバおよび仮想サーバをOpsWorksスタックに追加可能
• Linuxスタックのみサポート– オンプレミスのUbuntu, Red Hat Enterprise Linux 7を利用可能
• 通常のAWS OpsWorksインスタンス同様に管理が可能– レイヤーへの追加が可能
• オンプレミスインスタンスからOpsWorksサービスに対してアウトバウンド通信が許可されている必要がある– OpsWorksサービスへの通信はインターネット経由でのアクセスとなるため、イン
ターネットへアウトバウンド通信を許可する
NEW
![Page 60: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/60.jpg)
60
オンプレミスインスタンスをOpsWorksスタックに追加する方法• 1.インスタンスの準備• 2.AWS CLIのインストールおよび設定• 3.aws opsworks registerコマンドを実行
※registerコマンドの実行は以下2通りの方法がある
![Page 61: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/61.jpg)
61
aws opsworks registerコマンド
• スタックに追加するインスタンス内でAWS CLIを実行する場合
• 別のリモートワークステーションでAWS CLIを実行する場合
aws opsworks register --infrastructure-class on-premises \
--region ap-northeast-1 --stack-id <stack-id> --local
aws opsworks register --infrastructure-class on-premises \
--region ap-northeast-1 --stack-id <stack-id> \
--ssh-username [username] --ssh-private-key [key-path] [host-address]
![Page 62: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/62.jpg)
62
既存のAmazon EC2インスタンスのスタックへ追加
• オンプレミスインスタンス同様にOpsWorksスタックの外部にあるAmazon EC2インスタンスをスタックへ追加・管理が可能– 以下は追加するEC2インスタンス内でAWS CLIを実行する例
NEW
aws opsworks register --infrastructure-class ec2 \
--region ap-northeast-1 --stack-id <stack-id> --local
![Page 63: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/63.jpg)
63
OpsWorks管理下でさまざまなオペレーティングシステムを混在させた構成の例
virtual private cloud オンプレミス
OpsWorks Linuxスタック
OpsWorks Windowsスタック
AmazonLinux
Ubuntu RHEL 7
WindowsServer
Ubuntu RHEL 7
※1つのスタック内にLinuxとWindowsの混在は不可
OpsWorks
VPNまたは専用線
![Page 64: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/64.jpg)
64
Amazon ECS(EC2 Container Service)レイヤーのサポート
• Chef 11.10スタックで利用可能
• ECSレイヤーのインスタンスはAmazon Linux 2015.03以降あるいはUbuntu 14.04 LTSで利用可能
• OpsWorksはECSクラスタのコンテナインスタンスの起動と管理を簡素化する– ECSタスクのようなECSの他のエンティティを作成・起動するには、ECSのマ
ネージメントコンソール、API、またはCLIを利用する必要がある。
• Elastic Load BalancingをECSレイヤーにアタッチ可能
NEW
![Page 65: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/65.jpg)
65
Chefのバージョン
• Chef 11.4– 2013年3月に導入
– Linuxスタックでのみ利用可能
– Ruby 1.8.7
– Chef-soloを利用
– Chef searchやData Bagsは未サポート
• Chef 0.9– サポートが終了されているため、非推奨
– Linuxスタックでのみサポート
• Chef 12.2– 2015年5月に導入– Windowsスタックでのみサポート– Ruby 2.0.0で動作– Chef Clientのローカルモードで動作– Chef searchやData Bagsを利用可能
• Chef 11.10– 2014年3月に導入– Linuxスタックでのみサポート– Ruby 2.0.0で動作– Chef Clientのローカルモードで動作– Chef searchやData Bagsを利用可能
NEW
![Page 66: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/66.jpg)
66
OpsWorksエージェントのバージョン指定
• 新しいバージョンが使用可能になったときに、自動的に更新するか、手動で更新するかを指定可能– デフォルトでは自動更新
• Chef 11.10スタックでのみ使用可能• スタックごと、およびインスタンスごとに設定可能
NEW
![Page 67: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/67.jpg)
67
Agenda
• Introduction
• AWS OpsWorks概要のおさらい
• AWS OpsWorksアップデート
• AWS OpsWorks Tips
• お客様の事例
• まとめ
![Page 68: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/68.jpg)
68
OpsWorksでカスタムChefレシピを実行する方法1. コードリポジトリを用意(GitHubなど)
2. コードリポジトリに作成したCookbookおよびレシピをpush
3. スタックを作成カスタムCookbookの利用をYesにして、該当するコードリポジトリを設定
4. レイヤーを作成
5. レイヤーにインスタンスを追加、起動
6. インスタンスがonlineになったことを確認
7. スタックコマンドでUpdate Custom Cookbooksを実行
8. スタックコマンドでExecute Recipesにより指定したレシピをインスタンスに実行させる。
参照:AWS OpsWorksでカスタムChefレシピを実行する方法http://aws.typepad.com/sajp/2014/05/opsworks-custom-recipe.html
動作確認ができたレシピをSetup,Deploy,Configureなど
のライフサイクルイベントに、登録することで自動実行させることが可能
![Page 69: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/69.jpg)
69
Windows PowerShellスクリプトの実行
• Chefのpowershell_scriptリソースによってWindows PowershellコマンドレットをOpsWorksインスタンスで実行可能– https://docs.chef.io/chef/resources.html#powershell-script
Chef::Log.info("******Installing XPS.******")
powershell_script "Install XPS Viewer" do
code <<-EOH
Install-WindowsFeature XPS-Viewer
EOH
guard_interpreter :powershell_script
not_if "(Get-WindowsFeature -Name XPS-Viewer).installed"
end
![Page 70: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/70.jpg)
70
Chef Search
• Chefのsearchメソッドを使って、以下に含まれるスタックの構成情報をレシピ内で検索することが可能– スタック構成およびデプロイメントJSON– ビルトインおよびカスタムのcookbookのattributeファイル
• 多くの場合は、コミュニティのレシピで使われているsearchをそのまま使用可能– ただし、Chefサーバーに対して検索をするのではなく、インスタンスの内
部にある上記構成情報のキャッシュデータに対して検索する。– こちらのキャッシュデータは、OpsWorksのライフサイクルイベントによ
り更新される
• Chef 11.10のスタックで使用可能
![Page 71: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/71.jpg)
71
Chef Searchの使用例
• 以下はレシピ内で、php-appサーバーレイヤーに属するインスタンスを検索している例
– searchの引数でレイヤーを指定するときには、layerではなくroleを指定する
appserver = search(:node, "role:php-app").first
Chef::Log.info("The private IP is '#{appserver[:private_ip]}'")
![Page 72: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/72.jpg)
72
Data Bags
• Chefのdata_bag_itemメソッド使って、data bagにある情報を検索可能
• Chefのレシピには作業内容を書くのに対して、設定情報をData Bagsに入れる。– Data Bagsの設定を書き換えるだけで
レシピの使い回しが可能
• 使い方– 1.カスタムJSONにdata_bagsの
情報を追加する– 2.以下のようにレシピ内で検索する
{ "opsworks": {
"data_bags": {
"myapp": {
"mysql": {
"username": "default-user",
"password": "default-pass"
}
}
}
}
}
mything = data_bag_item("myapp", "mysql")
Chef::Log.info("The username is '#{mything['username']}' ")
カスタムJSONへの追加例
![Page 73: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/73.jpg)
73
Berkshelfのサポート
• Berkshelfとはcookbookとその依存関係を管理してくれるもの
• Berkshelfを使うことで、複数の異なるリポジトリにあるcookbooksを使用可能
• Chef 11.10のスタックでのみ使用可能
• サポートされるBerkshelfのバージョンはオペレーティングシステムによって異なる
![Page 74: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/74.jpg)
74
Berkshelfの使用方法• 1.スタックの設定で、カスタムcookbooksの利用が可能である
ことを確認して、Berkshelfの設定を有効にする
• 2.スタックの設定で指定したカスタムcookbooksのリポジトリの最上位ディレクトリにBerkfileという名前のファイルを配置。その中身の例は以下
• 3.スタックのコマンドでUpdate Custom Cookbooksを実行– インスタンス内の/opt/aws/opsworks/current/berkshelf-cookbooksに、該当する
cookbookが配置される。
• 4.スタックのコマンドでExecute Recipesでレシピ実行
site :opscode
cookbook 'ark', git: 'git://github.com/opscode-cookbooks/ark.git'
![Page 75: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/75.jpg)
75
Chefレシピのデバッグに有効な手法
Execute Recipesスタックコマンドを実行
OpsWorksマネージメントコンソール、API、CLIでリモートからChefレシピを実行可能
インスタンスへログイン SSHキーペアを割り当てている場合は、Linux / Windowsともにログイン可能
Chefログ OpsWorksマネージメントコンソール、API、CLIでChefログを表示可能
AWS OpsWorksエージェントCLIの使用
run_commandを使って、以前実行したコマンドを再実行可能
![Page 76: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/76.jpg)
76
データベースとの接続
• スタックごとにカスタムJSONを設定可能• カスタムJSONにデータベースとの接続情報を入れることで、
Chefレシピからその情報を取得可能
"deploy": {
“appname": {
(途中省略)"database": {
"host": “xxx.ap-northeast-1.rds.amazonaws.com",
"database": "test",
"port": 3306,
"username": "awsuser",
"password": "mypassword",
"reconnect": true,
"data_source_provider": "rds",
"type": "mysql"
},
(以下省略)
dbname = node[:deploy][:appname][:database][:database]
dbuser = node[:deploy][:appname][:database][:username]
dbpass = node[:deploy][:appname][:database][:password]
dbhost = node[:deploy][:appname][:database][:host]
Chefレシピから取得する例
取得した値をApp ServerインスタンスのローカルにDB接続用の設定ファイルとして保持しておく。configureが実行されるたびに上記値を更新する
![Page 77: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/77.jpg)
77
AWS OpsWorksの環境変数
• それぞれのアプリケーションごとに20個の環境変数を定義可能
• アプリケーションサーバインスタンスのセットアップ時に渡される
• パスワードなどをProtected valueとして、コンソール上で値を非表示にすることが可能
![Page 78: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/78.jpg)
78
同じ役割のレイヤーを複数個作る
• カスタムレイヤーを作成して、同じレシピを登録することで同じ役割のレイヤーを作成可能
• RDSやELBのレイヤーを複数個追加する場合は事前にRDSやELBを複数個作成する必要あり
• どのAppが、どのRDSを使うかを指定可能
![Page 79: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/79.jpg)
79
カスタムAMIの利用
• カスタムAMIの利用目的の例– ブート時ではなく、事前に特定のパッケージをインストールしておき
たい。– インスタンスの起動時間を高速化したい(特に負荷ベースのインスタ
ンスの場合)
• 以下のOSをベースのものに対応– Amazon Linux– Ubuntu 12.04 LTS, or Ubuntu 14.04 LTS– Redhat Enterprise Linux 7– Windows Server 2012
![Page 80: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/80.jpg)
80
カスタムAMIの作成方法
• 1.レイヤーにインスタンスを追加• 2.インスタンスを起動してSSHでログイン、以下の処理を行う
※OpsWorksで起動したインスタンスはユニークなIDの情報を含んでいるため、IDが重複しないように、AMI保存する前に上記作業により削除しておく必要がある。
• 3.EBSベースのインスタンスの場合は停止してAMI作成(EC2の管理コンソール画面を使用)、インスタンスストアベースの場合は、停止せずにAMI作成
sudo /etc/init.d/monit stop
sudo /etc/init.d/opsworks-agent stop
sudo rm -rf /etc/aws/opsworks/ /opt/aws/opsworks/ /var/log/aws/opsworks/ \
/var/lib/aws/opsworks/ /etc/monit.d/opsworks-agent.monitrc \
/etc/monit/conf.d/opsworks-agent.monitrc /var/lib/cloud/
![Page 81: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/81.jpg)
81
CloudFormationを使ったOpsWorksリソースの自動作成
• CloudFormationテンプレート(JSON)を使ってOpsWorksの以下のリソースを自動作成可能– AWS::OpsWorks::Stack– AWS::OpsWorks::Layer– AWS::OpsWorks::Instance– AWS::OpsWorks::App– AWS::OpsWorks::ElasticLoadBalancerAttachment
• 構成サンプル:OpsWorks PHPアプリケーションをプロビジョニングする– https://s3.amazonaws.com/cloudformation-templates-us-east-
1/OpsWorks.template
※CloudFormationテンプレートでは、時間ベースおよび負荷ベースのScaling Typeの指定は未対応
![Page 82: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/82.jpg)
82
監視
• Amazon CloudWatchを使った13種のカスタムメトリクス
• AWS CloudTrailを使ったAWS OpsWorksのAPI呼び出しのログへの記録
• Amazon CloudWatch Logsを使ったStackのシステム、アプリケーション、およびカスタムログ
![Page 83: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/83.jpg)
83
Amazon CloudWatchカスタムメトリクスの例
![Page 84: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/84.jpg)
84
OpsWorksのユーザーアクセス管理
• 以下の2通りの方法で実現可能– OpsWorksのPermissionsページの機能(あるいはそれ相応の
API, CLI)を使う方法
– 適切なIAMアクセスポリシーを使う方法
• 両方を組み合わせて利用可能
![Page 85: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/85.jpg)
85
OpsWorksのPermissionsを使ったアクセス権限の設定
![Page 86: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/86.jpg)
86
OpsWorksのトラブルシューティング
• インスタンスが起動中のプロセスでスタックする(オンラインにならない)
• カスタムCookbookが更新されない
• インスタンスが予期せずに再起動する
![Page 87: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/87.jpg)
87
インスタンスが起動中のプロセスでスタックする(オンラインにならない)
• 問題– OpsWorksで起動したインスタンスが、bootingのステータスのまま変わらない
• 原因– インスタンスは、常にAWS OpsWorksサービス、Amazon S3、およびパッケー
ジ、Cookbook、アプリケーションのリポジトリと通信ができる必要がある。これらと通信ができないためにbootingステータスから先に進むことができない
• 解決方法– 上記通信ができるようにVPCを設定する。
(Public IPでインスタンスが通信することを許可する場合は、OpsWorksレイヤーのネットワーク設定でPublic IPをアサインを有効に設定後にそのレイヤーのインスタンスを起動する)
![Page 88: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/88.jpg)
88
カスタムCookbookが更新されない
• 問題– リポジトリ上のカスタムCookbookを更新したが、インスタンスは古いレ
シピを実行している
• 原因– OpsWorksでは各インスタンスはローカルにCookbookをキャッシュし、
キャッシュからレシピを実行する。自動的にキャッシュを更新はしない。
• 解決方法– Update Custom Cookbooksスタックコマンドを実行する
AWS Management Console
管理者 AWS OpsWorks
Update Custom Cookbooksコマンドを実行
インスタンス
![Page 89: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/89.jpg)
89
インスタンスが予期せずに再起動する(1)
• 問題– 停止されたインスタンスが予期せずに再起動する
• 原因– インスタンスの自動ヒーリングを有効にしていると、異常なインス
タンスを再起動する。EC2コンソールやEC2のAPI, CLIを使ってインスタンスを停止すると、OpsWorksにはそれが通知されない。そのため、そのインスタンスをOpsWorksは異常とみなし再起動する
• 解決方法– OpsWorksのコンソール、API、CLIを使ってのみインスタンスを
管理することを推奨(自動ヒーリングを無効化も可能)
![Page 90: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/90.jpg)
90
Agenda
• Introduction
• AWS OpsWorks概要のおさらい
• AWS OpsWorksアップデート
• AWS OpsWorks Tips
• お客様の事例
• まとめ
![Page 91: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/91.jpg)
91
バンダイナムコスタジオ様の事例
• 「ドリフトスピリッツプロジェクト」にてAWS OpsWorksを活用
• AWS OpsWorksを使って、開発環境・本番環境のサーバの構築・運用を自動化することで、運用コストを削減
詳細: https://aws.amazon.com/jp/solutions/case-studies/bns/
![Page 92: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/92.jpg)
92
2015/3/26 よくわかるAWS OpsWorksセミナーにご登壇頂いたユーザー様の資料リンク• バンダイナムコスタジオ様「Let’s join in OpsWorks world」
– http://www.slideshare.net/s2-nakano/lets-join-in-opsworks-world
• Gunosy様「GunosyのMicroServicesとOpsWorks」– https://speakerdeck.com/koid/yokuwakaru-aws-opsworks
• バスキュール様 / スタジオ・アルカナ様「テレビ連動システムを支えるOpsWorks」– http://www.slideshare.net/mayuhamazaki90/20150326-opsworkspublic-fix
• サーバーワークス様:「SimpleWorkflowとOpsWorksでサービスを構築して解ったこと」– http://www.slideshare.net/tetsuyachiba/20150326-aws-opsworks
• マナボ様「OpsWorksに今後期待するところ」– http://www.slideshare.net/fumihikoshiroyama/ops-works
• BrainWars様「BrainWarsのOpsWorks活用事例」– http://www.slideshare.net/matsukaz/brain-warsopsworks
AWS SAブログ:「よくわかるAWS OpsWorks」セミナー資料公開http://aws.typepad.com/sajp/2015/04/opsworks-seminar-material.html
![Page 93: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/93.jpg)
93
Agenda
• Introduction
• AWS OpsWorks概要のおさらい
• AWS OpsWorksアップデート
• AWS OpsWorks Tips
• お客様の事例
• まとめ
![Page 94: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/94.jpg)
94
まとめ
• AWS OpsWorksを使うことで、デプロイおよび運用タスクを自動化可能
• Windows Server, Redhat Enterprise Linux, オンプレミスインスタンス、Amazon ECS等でも動作が可能となり、さらに利用シーンが拡大
AWS OpsWorksを使った新しいDevOpsソリューションを是非お試しください!
![Page 95: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/95.jpg)
95
AWS OpsWorksのハンズオン資料が公開されています
• OpsWorksを使ってWordpressを構築するハンズオンを是非お試しください!
– http://www.slideshare.net/AmazonWebServicesJapan/aws-opsworks
![Page 96: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/96.jpg)
96
参考資料
• AWS OpsWorksユーザーガイド– http://docs.aws.amazon.com/ja_jp/opsworks/latest/userguide/welcome.html
• OpsWorksによる多階層アプリケーションの管理– https://d0.awsstatic.com/whitepapers/managing-multi-tiered-web-applications-with-opsworks.pdf
• Application Management Blog– https://blogs.aws.amazon.com/application-management
• AWS reInvent 2015: OpsWorks Under The Hood– http://www.slideshare.net/AmazonWebServices/dvo301-aws-opsworks-under-the-hood
• AWS reinvent 2015: Benefit from DevOps when moving to AWS for Windows– http://www.slideshare.net/AmazonWebServices/dvo310-benefit-from-devops-when-moving-to-aws-for-
windows
![Page 97: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/97.jpg)
97
Q&A
次回Webinarのお申し込みhttp://aws.amazon.com/jp/event_schedule/
![Page 98: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/98.jpg)
98
AWS Black Belt Tech Webinar 2015
AWSのサービスをディープにご紹介
• 今後の配信予定 デプロイ&プロビジョニング月間!
– 11月18日(水)18:00〜 AWS CloudFormation
– 11月25日(水)18:00〜 AWS Elastic Beanstalk
• 申し込みサイト
– http://aws.amazon.com/jp/about-aws/events/
![Page 99: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/99.jpg)
99
AWS初心者向けWebinar
• AWSをこれからご使用になる向けのソリューションカットのオンラインセミナー– 11/17(火) AWSを活用したモバイルアプリの開発と運用
– 11/24(火) AWSではじめてみよう、IoTシステム構築
• 申し込みサイト– http://aws.amazon.com/jp/about-aws/events/
![Page 100: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/100.jpg)
100
Webinar資料の配置場所
• AWS クラウドサービス活用資料集– http://aws.amazon.com/jp/aws-jp-introduction/
![Page 101: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/101.jpg)
101
公式Twitter/FacebookAWSの最新情報をお届けします
@awscloud_jp
検索
最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを日々更新しています!
もしくはhttp://on.fb.me/1vR8yWm
![Page 102: Presentation Title Here€¦ · AWS OpsWorks AWS Black Belt Tech Webinar 2015 アマゾンウェブサービスジャパン株式会社 ソリューションアーキテクト 舟﨑健治](https://reader034.fdocument.pub/reader034/viewer/2022042314/5f02f09e7e708231d406c33b/html5/thumbnails/102.jpg)
102
ご参加ありがとうございました。