More Related Content
PDF
AWS Black Belt Online Seminar 2017 Amazon DynamoDB PDF
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM) PDF
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな PDF
AWS Black Belt Online Seminar 2017 AWS Storage Gateway PDF
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN PDF
Infrastructure as Code (IaC) 談義 2022 PDF
AWS Black Belt Online Seminar 2017 Amazon Kinesis PDF
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用 What's hot
PDF
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib... PDF
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K... PDF
20180425 AWS Black Belt Online Seminar Amazon Relational Database Service (Am... PDF
AWS Black Belt Online Seminar 2016 AWS CloudFormation PDF
AWS Black Belt Techシリーズ AWS Direct Connect PDF
20190326 AWS Black Belt Online Seminar Amazon CloudWatch PDF
Black Belt Online Seminar AWS Amazon RDS PDF
20190319 AWS Black Belt Online Seminar Amazon FSx for Lustre PDF
AWS Black Belt Online Seminar AWS Key Management Service (KMS) PDF
20191002 AWS Black Belt Online Seminar Amazon EC2 Auto Scaling and AWS Auto S... PDF
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介 PPTX
PDF
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz... PDF
20190206 AWS Black Belt Online Seminar Amazon SageMaker Basic Session PDF
PDF
VPC Reachability Analyzer 使って人生が変わった話 PDF
マルチテナント化で知っておきたいデータベースのこと PDF
PDF
20200212 AWS Black Belt Online Seminar AWS Systems Manager PDF
DevOps with Database on AWS Similar to AWS OpsWorksハンズオン
PDF
[AWSマイスターシリーズ] AWS OpsWorks PDF
Chef(Server)と AWS OpsWorks(tm)の比較 PDF
AWS Black Belt Tech シリーズ 2015 - AWS OpsWorks PDF
AWS Black Belt Online Seminar 2017 AWS OpsWorks PDF
3分でわかる(気になれる) AWS OpsWorks PDF
Aws OpsWorks [JAWSDAYS 2014 ACEに聞けトラック] PDF
PDF
第2回 JAWS−UG 神戸 開発運用の現場でのChef活用 PDF
よくわかるAWS OpsWorks: AWS OpsWorksの概要&アップデート紹介 PDF
JAWSUG初心者向けトラック 【Deploy&Ops】 PDF
PDF
PDF
opsworks本番前提でopsworksを使わないで開発する話 at #jawsug #chibadan PDF
DevOpsを実現する為のChef実践テクニック Chef12対応版 PDF
PDF
ChefとOpsWorksで EC2 楽チンクッキング! PPTX
PPTX
Cloudstack user group meeting in osaka PDF
PDF
More from Amazon Web Services Japan
PDF
202205 AWS Black Belt Online Seminar Amazon FSx for OpenZFS PDF
202204 AWS Black Belt Online Seminar AWS IoT Device Defender PDF
202204 AWS Black Belt Online Seminar Amazon Connect を活用したオンコール対応の実現 PDF
202204 AWS Black Belt Online Seminar Amazon Connect Salesforce連携(第1回 CTI Adap... PDF
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート PPTX
20220409 AWS BLEA 開発にあたって検討したこと PDF
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用 PDF
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf PDF
Amazon QuickSight の組み込み方法をちょっぴりDD PDF
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ PDF
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介 PDF
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles PDF
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために PDF
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨ PPTX
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介 PDF
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介 PDF
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ... PDF
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ PDF
20211209 Ops-JAWS Re invent2021re-cap-cloud operations PDF
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報 AWS OpsWorksハンズオン
- 1.
- 2.
Agenda
AWS OpsWorks概要
AWS OpsWorksハンズオン
•CloudFormationによるEC2インスタンス、RDS、VPCの自動生
成
• GitHub上にコードリポジトリ生成
• サンプルレシピを作成、GitHubにpush
• OpsWorksのスタック、レイヤー、インスタンス、App生成
• OpsWorksで起動したインスタンスにサンプルレシピを実行
• OpsWorksでWordPressをデプロイする
APPENDIX
2
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
構成例
17
Virtual Private Cloud
VPCPublic Subnet
VPC Private Subnet
Internet
Gateway
NAT
PHP App Server
レイヤー
MySQL DB レイヤー
Github
Recipe
Repository
App Code
Repository
VPC内に構築
• OpsWorksにより起動された
インスタンスはOpsWorks
サービスエンドポイントと接
続が必須
(Privateサブネット利用時は
NAT必須)
• プライベートサブネット内の
コードリポジトリを利用可能
• 同じレイヤーのインスタンス
を異なるサブネットに配置可
能
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
スタックの設定をする
51
Name: WordPressStack
Region: AsiaPacific (Tokyo)
VPC: OpsWorksVPC(CloudFormationで作成
したVPC)
Default subnet:10.0.1.0/24 PublicSubnet
Default operating system: Amazon Linux
Default root device type: Instance store
Default SSH key: (CloudFormation作成時に
指定したSSH key)
Advancedを選択(忘れずに!)
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
- 63.
- 64.
- 65.
- 66.
- 67.
- 68.
- 69.
- 70.
- 71.
- 72.
- 73.
- 74.
- 75.
- 76.
- 77.
- 78.
- 79.
- 80.
- 81.
- 82.
- 83.
- 84.
- 85.
- 86.
- 87.
- 88.
- 89.
- 90.
- 91.
- 92.
PHP App Serverレイヤーのインスタ
ンス上でStackJSONを確認する
以下のコマンドを実行
出力結果は以下
92
[ec2-user@php-app1 ~]$ sudo su
[root@php-app1 ec2-user]# opsworks-agent-cli get_json
OpsWorksインスタンス
上で実行
(途中省略)
"deploy": {
"wordpress": {
“wp_admin_email”: “(ご自身のEメールアドレス)"
}
},
(以下省略)
Stackの構成情報が含まれている
JSONデータを確認可能
- 93.
- 94.
- 95.
- 96.
- 97.
deploy.rbファイルの中身
97
require "net/http"
require "uri"
wpdir= "/srv/www/wordpress/current"
dbname = node[:deploy][:wordpress][:database][:database]
dbuser = node[:deploy][:wordpress][:database][:username]
dbpass = node[:deploy][:wordpress][:database][:password]
dbhost = node[:deploy][:wordpress][:database][:host]
wp_admin_email = node[:deploy][:wordpress][:wp_admin_email]
execute "wp configure" do
command "wp core config --dbname=#{dbname} --dbuser=#{dbuser} --
dbpass=#{dbpass} --dbhost=#{dbhost}"
cwd "#{wpdir}"
user "deploy"
not_if { File.exists?("#{wpdir}/wp-config.php") }
action :run
end
次頁へ続く
- 98.
- 99.
deploy.rbファイルの中身(つづき)
99
execute "wp deploy"do
command "wp core install --url=#{public_hostname} --title=Test --
admin_name=admin --admin_password=admin --admin_email=#{wp_admin_email}"
cwd "#{wpdir}"
user "deploy"
action :run
not_if "sudo -u deploy wp core is-installed --path=#{wpdir}"
end
- 100.
deploy.rbの中で実行する内容の説明
dbuser / dbpass/ dbname /dbhostをStackのJSONから取得
• WordPress AppをStackに追加する時に、data sourceをRDSとして
設定、そのユーザー名やパスワード、リモートホスト名を以下のよう
に指定することで取得可能
node[:deploy][:wordpress][:database][:username]
/srv/www/wordpress/currentにwp-config.phpが存在しない
場合は以下を実行
• wp core config –dbname=<dbname> --dbuser-<dbuser> --
dbpass=<dbpass> --dbhost=<dbhost>
上記コマンドのパラメータはOpsWorksのCustom Chef JSON
から取得する
100
- 101.
- 102.
- 103.
- 104.
- 105.
- 106.
- 107.
- 108.
- 109.
- 110.
- 111.
- 112.
- 113.
- 114.
- 115.
PHP App Serverレイヤーのインスタ
ンス上でStackJSONを確認する
以下のコマンドを実行
出力結果は以下
115
[ec2-user@php-app1 ~]$ sudo su
[root@php-app1 ec2-user]# opsworks-agent-cli get_json
OpsWorksインスタンス
上で実行
"deploy": {
"wordpress": {
"deploy_to": "/srv/www/wordpress",
(途中省略)
"database": {
"host": "or18gd1om9fxcgo.cyibkvmwlgp2.ap-
northeast-1.rds.amazonaws.com",
"database": "wordpress",
"port": 3306,
"username": "wpuser",
"password": "wppassword",
RDSへの接続に必要なパラメー
タを確認。(これらを作成したChef
レシピで活用する)
- 116.
- 117.
- 118.
- 119.
- 120.
- 121.
- 122.
- 123.
- 124.
- 125.
- 126.
- 127.
- 128.
- 129.
- 130.
- 131.
- 132.
- 133.
- 134.
- 135.
- 136.
- 137.
- 138.
構成管理
スタックの構成情報の例→
(JSON形式)
ライフサイクルコマンドが実行
されると、そのインスタンスに
送られる。
下記コマンドでも取得可能
{
"opsworks": {
"layers": {
"php-app":{
"id": "4a2a56c8-f909-4b39-81f8-556536d20648",
"instances": {
"php-app2": {
"elastic_ip": null,
"region": "us-west-2",
"booted_at": "2013-02-26T20:41:10+00:00",
"ip": "192.112.235.192",
"aws_instance_id": "i-34037f06",
"availability_zone": "us-west-2a",
"instance_type": "c1.medium",
"private_dns_name": "ip-10-252-0-203.us-west-2.com
"private_ip": "10.252.0.203",
"created_at": "2013-02-26T20:39:39+00:00",
"status": "online",
"backends": 8,
"public_dns_name": "ec2-192-112-235-192.us-west-
2.compute.amazonaws.com"
},
"php-app1": {
...
}
},
"name": "PHP Application Server"
},
"lb": {
$ opsworks-agent-cli get-json
- 139.
- 140.
ソフトウェアアップデート
ライフサイクルイベントによるアップデート
• Setup /Configure / Deploy
個別にコマンドを実行することによるアップデートも可能
• Install Dependencies
• 全てのパッケージまたはRuby gemsをインストール
• Update Dependencies
• 全てのパッケージまたはRuby gemsをアップデート
• Update Cookbooks
• アップデートされたcookbookを
それぞれのインスタンスのキャッシュに
デプロイ
• Execute Recipes
• 指定したレシピを実行
- 141.
- 142.
- 143.
OpsWorks Agent CLI利用時の注意
事項
OpsWorksで起動されたインスタンスにSSHログインして、
OpsWorksAgent CLIを実行することが可能
OpsWorksで起動されたインスタンス上で、最近実行された
コマンドをキャッシュしている。以下その例
上記のように出力されたコマンドを、再度OpsWorks Agent
CLIで再度実行が可能
• ※インスタンスに対して1度も実行されていないコマンドは、実行
不可。その場合はOpsWorks Stack Commandで実行する必要があ
る。
• 主にトラブルシュートやデバッグ等での利用に最適
143
$ opsworks-agent-cli list_commands
2014-04-07T02:55:09 setup
2014-04-07T02:58:55 configure
2014-04-07T04:38:12 execute_recipes
OpsWorksインスタンス上で実行
- 144.
OpsWorks Agent CLIを使って
Cookbooksを再度アップデート
OpsWorksAgent CLIでコマンド実行履歴を確認
既にCustom Cookbooksをアップデート
• インスタンスに最新のChef Cookbooks、レシピをダウンロー
ドさせる
• OpsWorksで起動されたインスタンスにSSHログインして実行
• アップデートされたChef Cookbooks, レシピは
/opt/aws/opsworks/current/site-cookbooks以下に配置され
る
144
$ sudo opsworks-agent-cli run_command update_custom_cookbooks
OpsWorksインスタンス上で実行
$ sudo opsworks-agent-cli list_commands
$ sudo opsworks-agent-cli run_command
<update_custom_cookbooksを実行したときのtime stamp>
または
- 145.
OpsWorks Agent CLIを使ってChef
レシピを実行
opsworks-agent-clilist_commandsでレシピ実行された履歴があ
れば、同様に再度レシピ実行が可能
Chefレシピ単体を実行する
レシピの指定の仕方は<cookbook名>::<レシピ名>
• .rb拡張子は不要
• レシピ名がdefaultの場合は省略可能
作成したレシピを単体で動作テストする時に使うと良い
OpsWorksのライフサイクルイベント内で登録されていなくても、
指定したリポジトリにレシピがあれば、Update Custom
Cookbooksを実行後に、レシピを実行可能
145
$ sudo opsworks-agent-cli run_command execute_recipes hello
OpsWorksインスタンス
上で実行
または
$ sudo opsworks-agent-cli run_command <レシピ実行時のタイムスタ
ンプ>
- 146.