SlideShare uma empresa Scribd logo
1 de 19
AWSで構築したのだよ 
「プロセス監視、メモリ使用率、ディスク使用率を 
Cloudwatchのカスタムメトリクスに追加し 
たい」
AWS構築時のノウハウを残し 
共有します 
 注意 
順番に記載されているため、前のテーマで記載さ 
れている内容が前提となる場合があります。
お品書き 
 ユーザのコンソール操作をログに残したい 
 ec2で自分のインスタンスIDが知りたい 
 ec2で自分についているタグを読み取りたい 
 ec2起動時にホスト名を変更したい 
 プロセス監視、メモリ使用率、ディスク使用率をCloudwatchのカスタムメ 
トリクスに追加したい 
 ec2起動時にアラーム設定をクラウドウォッチに追加したい 
 Amazon Linuxのsshの認証方式を、ID/PWに変更したい。 
 VPNのプライベートネットワークでNTPを使いたい 
 プライベートネットワークのRDSにssh経由で接続したい 
 夜間にec2を落としたい 
 サーバーのシャットダウン時にログを退避したい
カスタムメトリクスに追加した 
い(1/5) 
 AWSサービスとして提供されているものについて 
は、標準メトリクスで参照することができます。 
しかし、OS側からしか見えないもの、プロセスの 
死活監視、メモリの使用状況やディスクの使用状 
況はCloud Watchでは見ることができません。 
 プロセスの死活監視、メモリの使用状況やディス 
クの使用状況をスクリプトを使い、Cloud Watch 
のカスタムメトリクスとして登録します。
カスタムメトリクスに追加した 
い(2/5) 
 ユーザに、カスタムメトリクスに登録権限を付与 
します。 
(または、ec2に権限を委譲するロールを作成しま 
す。)
カスタムメトリクスに追加した 
い(3/5) 
 メトリクスのもととなるデータを作成して、 
Cloudwatchに登録する、スクリプトを作成します。
権限を持ったユーザの情報、リージョンの情報など、操作に必要な情報をyml 
ファイルで定義しておきます。 
# vi aws.yml 
access_key_id: "AKIAIFJPTCXRF943FBXA" 
secret_access_key: "lLaGfDbBE+gjbSVrGyD7+35AlOAg364qtge91XDM" 
ec2_endpoint: "ec2.ap-northeast-1.amazonaws.com" 
region: "ap-northeast-1"
# vi putMetric.rb 
#!/usr/bin/env ruby 
# encoding: utf-8 
# OSの監視情報をCloudWatchのカスタムメトリクスに追加するスクリプト 
# 
# 追加する項目 
# - メモリ使用率 
# - ディスク利用率 
# - / : 標準EBSボリューム 
# - プロセス監視 
# 各EC2インスタンス上のcronで5分ごとに実行 
# */5 * * * * ec2-user ruby /opt/aws/putMetricsrb 
require 'rubygems' 
require 'aws-sdk' 
AWS.config(YAML.load(File.read(“./aws.yml"))) 
NAMESPACE = 'Custom/EC2'
# プロセス監視するプロセス名 
@process1 = 'httpd' 
@process2 = 'tomcat6' 
# メモリ使用率 
def mem_usage 
meminfo = {} 
File.open('/proc/meminfo').each do |line| 
line =~ /^(.*?):s+(d+)/ or next; 
meminfo[$1] = $2.to_i * 1024 
end 
total = meminfo['MemTotal'] 
avail = meminfo['MemFree'] + meminfo['Cached'] + meminfo['Buffers'] 
100.0 * ( total - avail ) / total 
end
# Disk使用状況 
def disk_usage(path) 
df = "/bin/df -k -l -P #{path} | tail -n 1" 
total, used = `#{df}`.chomp.split(/s+/).values_at(1, 2) 
100 * ( used.to_f / total.to_f ) / 1 
end 
# プロセス稼働状況(init.dにstatus参照可能な起動スクリプトがある想定) 
def process_count(name) 
`/etc/init.d/#{name} status | grep "is running..." | wc -l`.chomp 
end
@instanceID = `wget -q -O - http://169.254.169.254/latest/meta-data/instance-id` 
dimensions = [ { "name"=> "InstanceId", "value"=> @instanceID } ] 
# 個別項目 
metric_data = [ 
{ "metric_name"=> "MemoryUsage" ,  
"value"=> mem_usage , "unit"=> "Percent" }, 
{ "metric_name"=> "DiskUsage_root" ,  
"value"=> disk_usage('/') , "unit"=> "Percent" }, 
{ "metric_name"=> "process_#{@process1}",  
"value"=> process_count(@process1).to_i, "unit"=> "Count"}, 
{ "metric_name"=> "process_#{@process2}",  
"value"=> process_count(@process2).to_i, "unit"=> "Count"}, 
] 
# 共通項目 
metric_data.each do |m| 
m[:dimensions] = dimensions 
end
# カスタムメトリクス追加 
cw = AWS::CloudWatch.new 
cw.put_metric_data( "namespace"=> NAMESPACE, "metric_data"=> metric_data )
カスタムメトリクスに追加したい 
(4/5) 
 手動で実行して動作確認を行う。 
ruby putMetric.rb 
 Cloudwatchで、実際に確認する。MetricsのEC2カスタムメ 
トリクスを参照する。Custom/EC2というネームスペースが 
追加されている。
 DiskとMemoryの使用状況を参照してみる
カスタムメトリクスに追加した 
い(5/5) 
 Cronに登録して、5分置きにカスタムメトリクス 
を追加するようにします。 
(スクリプトファイルとymlファイルのパーミッ 
ションは、適宜変更してください。) 
$ sudo crontab -e 
*/5 * * * * ec2-user ruby /opt/aws/putMetric.rb

Mais conteúdo relacionado

Mais procurados

MSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシーMSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシーMakoto Miida
 
Elixir Meetup #1 Loggerの構造と拡張
Elixir Meetup #1 Loggerの構造と拡張Elixir Meetup #1 Loggerの構造と拡張
Elixir Meetup #1 Loggerの構造と拡張Sugawara Genki
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
WebサーバのチューニングYu Komiya
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web ServiceShinji Tanaka
 
Webサーバ勉強会03
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03oranie Narut
 
Amazon EC2 HPCインスタンス - AWSマイスターシリーズ
Amazon EC2 HPCインスタンス - AWSマイスターシリーズAmazon EC2 HPCインスタンス - AWSマイスターシリーズ
Amazon EC2 HPCインスタンス - AWSマイスターシリーズAmazon Web Services Japan
 
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境Katsutoshi Nagaoka
 
AWS SDK for Haskell開発
AWS SDK for Haskell開発AWS SDK for Haskell開発
AWS SDK for Haskell開発Nomura Yusuke
 
JAWS-UG中央線東海支部ハンズオン
JAWS-UG中央線東海支部ハンズオンJAWS-UG中央線東海支部ハンズオン
JAWS-UG中央線東海支部ハンズオン真吾 吉田
 
Apacheチューニング
ApacheチューニングApacheチューニング
Apacheチューニングii012014
 
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング勲 國府田
 
AWSのEC2の複数インスタンスからファイルを共有する方法
AWSのEC2の複数インスタンスからファイルを共有する方法AWSのEC2の複数インスタンスからファイルを共有する方法
AWSのEC2の複数インスタンスからファイルを共有する方法聡 大久保
 
エンタープライズワークロードにおけるAmazon Auroraの活用
エンタープライズワークロードにおけるAmazon Auroraの活用エンタープライズワークロードにおけるAmazon Auroraの活用
エンタープライズワークロードにおけるAmazon Auroraの活用Amazon Web Services Japan
 
【ヒカラボ】RDS for MySQL → Aurora
【ヒカラボ】RDS for MySQL → Aurora【ヒカラボ】RDS for MySQL → Aurora
【ヒカラボ】RDS for MySQL → AuroraYuki Kanazawa
 
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)CLARA ONLINE, Inc.
 
ansible 社内お勉強会資料
ansible 社内お勉強会資料ansible 社内お勉強会資料
ansible 社内お勉強会資料Makoto Uehara
 

Mais procurados (20)

PowerShell de Azure
PowerShell de AzurePowerShell de Azure
PowerShell de Azure
 
MSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシーMSPとしてのオペチー向けReadOnly IAMポリシー
MSPとしてのオペチー向けReadOnly IAMポリシー
 
Elixir Meetup #1 Loggerの構造と拡張
Elixir Meetup #1 Loggerの構造と拡張Elixir Meetup #1 Loggerの構造と拡張
Elixir Meetup #1 Loggerの構造と拡張
 
Webサーバのチューニング
WebサーバのチューニングWebサーバのチューニング
Webサーバのチューニング
 
Performance and Scalability of Web Service
Performance and Scalability of Web ServicePerformance and Scalability of Web Service
Performance and Scalability of Web Service
 
Webサーバ勉強会03
Webサーバ勉強会03Webサーバ勉強会03
Webサーバ勉強会03
 
Amazon EC2 HPCインスタンス - AWSマイスターシリーズ
Amazon EC2 HPCインスタンス - AWSマイスターシリーズAmazon EC2 HPCインスタンス - AWSマイスターシリーズ
Amazon EC2 HPCインスタンス - AWSマイスターシリーズ
 
AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境AWSとGCPを使用したインフラ環境
AWSとGCPを使用したインフラ環境
 
AWS SDK for Haskell開発
AWS SDK for Haskell開発AWS SDK for Haskell開発
AWS SDK for Haskell開発
 
AWS Black Belt Techシリーズ Amazon EBS
AWS Black Belt Techシリーズ  Amazon EBSAWS Black Belt Techシリーズ  Amazon EBS
AWS Black Belt Techシリーズ Amazon EBS
 
JAWS-UG中央線東海支部ハンズオン
JAWS-UG中央線東海支部ハンズオンJAWS-UG中央線東海支部ハンズオン
JAWS-UG中央線東海支部ハンズオン
 
Apacheチューニング
ApacheチューニングApacheチューニング
Apacheチューニング
 
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
 
AWSのEC2の複数インスタンスからファイルを共有する方法
AWSのEC2の複数インスタンスからファイルを共有する方法AWSのEC2の複数インスタンスからファイルを共有する方法
AWSのEC2の複数インスタンスからファイルを共有する方法
 
エンタープライズワークロードにおけるAmazon Auroraの活用
エンタープライズワークロードにおけるAmazon Auroraの活用エンタープライズワークロードにおけるAmazon Auroraの活用
エンタープライズワークロードにおけるAmazon Auroraの活用
 
【ヒカラボ】RDS for MySQL → Aurora
【ヒカラボ】RDS for MySQL → Aurora【ヒカラボ】RDS for MySQL → Aurora
【ヒカラボ】RDS for MySQL → Aurora
 
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)Ansibleで始めるサーバ管理勉強会(2014年10月1日)
Ansibleで始めるサーバ管理勉強会(2014年10月1日)
 
No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)No SSH (@nojima; KMC関東例会)
No SSH (@nojima; KMC関東例会)
 
AWS Black Belt Techシリーズ Amazon EMR
AWS Black Belt Techシリーズ  Amazon EMRAWS Black Belt Techシリーズ  Amazon EMR
AWS Black Belt Techシリーズ Amazon EMR
 
ansible 社内お勉強会資料
ansible 社内お勉強会資料ansible 社内お勉強会資料
ansible 社内お勉強会資料
 

Semelhante a Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい

EWD 3トレーニング・コース #4 ewd-xpressのインストールと構成
EWD 3トレーニング・コース #4 ewd-xpressのインストールと構成EWD 3トレーニング・コース #4 ewd-xpressのインストールと構成
EWD 3トレーニング・コース #4 ewd-xpressのインストールと構成Kiyoshi Sawada
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門Hisashi HATAKEYAMA
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックEmma Haruka Iwao
 
Infrastructure as code for azure
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azureKeiji Kamebuchi
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspecTsuyoshi Yamada
 
SugarCRM meets Azure
SugarCRM meets AzureSugarCRM meets Azure
SugarCRM meets AzureToshiya TSURU
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on dockerHiroshi Miura
 
今日から使い始めるChef
今日から使い始めるChef今日から使い始めるChef
今日から使い始めるChefMasahiro NAKAYAMA
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1kenjis
 
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/1210分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12kenjis
 
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
 10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya 10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoyakenjis
 
ZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツShinsukeYokota
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回Naoyuki Yamada
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介Etsuji Nakai
 

Semelhante a Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい (20)

EWD 3トレーニング・コース #4 ewd-xpressのインストールと構成
EWD 3トレーニング・コース #4 ewd-xpressのインストールと構成EWD 3トレーニング・コース #4 ewd-xpressのインストールと構成
EWD 3トレーニング・コース #4 ewd-xpressのインストールと構成
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
 
Dockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニックDockerイメージ構築 実践テクニック
Dockerイメージ構築 実践テクニック
 
AWS運用自動化への第一歩 
AWS運用自動化への第一歩 AWS運用自動化への第一歩 
AWS運用自動化への第一歩 
 
Infrastructure as code for azure
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azure
 
Circle ci and docker+serverspec
Circle ci and docker+serverspecCircle ci and docker+serverspec
Circle ci and docker+serverspec
 
SugarCRM meets Azure
SugarCRM meets AzureSugarCRM meets Azure
SugarCRM meets Azure
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
BBBBB
BBBBBBBBBB
BBBBB
 
1MB
1MB1MB
1MB
 
今日から使い始めるChef
今日から使い始めるChef今日から使い始めるChef
今日から使い始めるChef
 
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1 10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
 
10分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/1210分でわかるFuelPHP @ 2011/12
10分でわかるFuelPHP @ 2011/12
 
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
 10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya 10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
 
ZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツ
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 

Mais de 聡 大久保

Oculus Interaction SDK で物をつかむ編
Oculus Interaction SDK で物をつかむ編Oculus Interaction SDK で物をつかむ編
Oculus Interaction SDK で物をつかむ編聡 大久保
 
Oculus Interaction SDK でグラブまわりの設定方法
Oculus Interaction SDK でグラブまわりの設定方法Oculus Interaction SDK でグラブまわりの設定方法
Oculus Interaction SDK でグラブまわりの設定方法聡 大久保
 
空間を認識する - 取り込みから表示まで -
空間を認識する - 取り込みから表示まで -空間を認識する - 取り込みから表示まで -
空間を認識する - 取り込みから表示まで -聡 大久保
 
Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩聡 大久保
 
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)聡 大久保
 
Hololens2でアカウント情報の取得
Hololens2でアカウント情報の取得Hololens2でアカウント情報の取得
Hololens2でアカウント情報の取得聡 大久保
 
HoloLens2とPCで、WebRTCで映像をやりとり
HoloLens2とPCで、WebRTCで映像をやりとりHoloLens2とPCで、WebRTCで映像をやりとり
HoloLens2とPCで、WebRTCで映像をやりとり聡 大久保
 
UnityでVRアプリ(Android Cardboard)を作る -準備編-
UnityでVRアプリ(Android Cardboard)を作る -準備編-UnityでVRアプリ(Android Cardboard)を作る -準備編-
UnityでVRアプリ(Android Cardboard)を作る -準備編-聡 大久保
 
VRでのUI設計のヒント
VRでのUI設計のヒントVRでのUI設計のヒント
VRでのUI設計のヒント聡 大久保
 
ハードサーフェイスモデリング勉強会(Blender2.79b編)
ハードサーフェイスモデリング勉強会(Blender2.79b編)ハードサーフェイスモデリング勉強会(Blender2.79b編)
ハードサーフェイスモデリング勉強会(Blender2.79b編)聡 大久保
 
Google Tangoで 現実世界を感じてみよう
Google Tangoで現実世界を感じてみようGoogle Tangoで現実世界を感じてみよう
Google Tangoで 現実世界を感じてみよう聡 大久保
 
仮想マシンを仮想空間で見る Cloud roadshow
仮想マシンを仮想空間で見る Cloud roadshow仮想マシンを仮想空間で見る Cloud roadshow
仮想マシンを仮想空間で見る Cloud roadshow聡 大久保
 
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更聡 大久保
 
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得聡 大久保
 
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得聡 大久保
 
Awsで構築したのだよ 01 ユーザのコンソール操作をログに残す
Awsで構築したのだよ 01 ユーザのコンソール操作をログに残すAwsで構築したのだよ 01 ユーザのコンソール操作をログに残す
Awsで構築したのだよ 01 ユーザのコンソール操作をログに残す聡 大久保
 
awsを学ぶ上で必要となる前提知識(DB)
awsを学ぶ上で必要となる前提知識(DB)awsを学ぶ上で必要となる前提知識(DB)
awsを学ぶ上で必要となる前提知識(DB)聡 大久保
 
AWSを学ぶ上で必要となる前提知識(SSL)
AWSを学ぶ上で必要となる前提知識(SSL)AWSを学ぶ上で必要となる前提知識(SSL)
AWSを学ぶ上で必要となる前提知識(SSL)聡 大久保
 
Awsを学ぶ上で必要となる前提知識(DNS/LB)
Awsを学ぶ上で必要となる前提知識(DNS/LB)Awsを学ぶ上で必要となる前提知識(DNS/LB)
Awsを学ぶ上で必要となる前提知識(DNS/LB)聡 大久保
 
AWS入門編 EC2/ELBを使った、ブログシステム構築ハンズオントレーニング
AWS入門編 EC2/ELBを使った、ブログシステム構築ハンズオントレーニングAWS入門編 EC2/ELBを使った、ブログシステム構築ハンズオントレーニング
AWS入門編 EC2/ELBを使った、ブログシステム構築ハンズオントレーニング聡 大久保
 

Mais de 聡 大久保 (20)

Oculus Interaction SDK で物をつかむ編
Oculus Interaction SDK で物をつかむ編Oculus Interaction SDK で物をつかむ編
Oculus Interaction SDK で物をつかむ編
 
Oculus Interaction SDK でグラブまわりの設定方法
Oculus Interaction SDK でグラブまわりの設定方法Oculus Interaction SDK でグラブまわりの設定方法
Oculus Interaction SDK でグラブまわりの設定方法
 
空間を認識する - 取り込みから表示まで -
空間を認識する - 取り込みから表示まで -空間を認識する - 取り込みから表示まで -
空間を認識する - 取り込みから表示まで -
 
Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩Photon Fusionのはじめの一歩
Photon Fusionのはじめの一歩
 
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
Hololens2 MRTK2.7(OpenXR) でのビルド環境構築(環境設定からビルドまで)
 
Hololens2でアカウント情報の取得
Hololens2でアカウント情報の取得Hololens2でアカウント情報の取得
Hololens2でアカウント情報の取得
 
HoloLens2とPCで、WebRTCで映像をやりとり
HoloLens2とPCで、WebRTCで映像をやりとりHoloLens2とPCで、WebRTCで映像をやりとり
HoloLens2とPCで、WebRTCで映像をやりとり
 
UnityでVRアプリ(Android Cardboard)を作る -準備編-
UnityでVRアプリ(Android Cardboard)を作る -準備編-UnityでVRアプリ(Android Cardboard)を作る -準備編-
UnityでVRアプリ(Android Cardboard)を作る -準備編-
 
VRでのUI設計のヒント
VRでのUI設計のヒントVRでのUI設計のヒント
VRでのUI設計のヒント
 
ハードサーフェイスモデリング勉強会(Blender2.79b編)
ハードサーフェイスモデリング勉強会(Blender2.79b編)ハードサーフェイスモデリング勉強会(Blender2.79b編)
ハードサーフェイスモデリング勉強会(Blender2.79b編)
 
Google Tangoで 現実世界を感じてみよう
Google Tangoで現実世界を感じてみようGoogle Tangoで現実世界を感じてみよう
Google Tangoで 現実世界を感じてみよう
 
仮想マシンを仮想空間で見る Cloud roadshow
仮想マシンを仮想空間で見る Cloud roadshow仮想マシンを仮想空間で見る Cloud roadshow
仮想マシンを仮想空間で見る Cloud roadshow
 
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
Awsで構築したのだよ 04 ec2インスタンス起動時にホスト名を変更
 
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
Awsで構築したのだよ 03 ec2インスタンスに設定したタグをサーバから取得
 
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
Awsで構築したのだよ 02 ec2インスタンスから自分のインスタンスidを取得
 
Awsで構築したのだよ 01 ユーザのコンソール操作をログに残す
Awsで構築したのだよ 01 ユーザのコンソール操作をログに残すAwsで構築したのだよ 01 ユーザのコンソール操作をログに残す
Awsで構築したのだよ 01 ユーザのコンソール操作をログに残す
 
awsを学ぶ上で必要となる前提知識(DB)
awsを学ぶ上で必要となる前提知識(DB)awsを学ぶ上で必要となる前提知識(DB)
awsを学ぶ上で必要となる前提知識(DB)
 
AWSを学ぶ上で必要となる前提知識(SSL)
AWSを学ぶ上で必要となる前提知識(SSL)AWSを学ぶ上で必要となる前提知識(SSL)
AWSを学ぶ上で必要となる前提知識(SSL)
 
Awsを学ぶ上で必要となる前提知識(DNS/LB)
Awsを学ぶ上で必要となる前提知識(DNS/LB)Awsを学ぶ上で必要となる前提知識(DNS/LB)
Awsを学ぶ上で必要となる前提知識(DNS/LB)
 
AWS入門編 EC2/ELBを使った、ブログシステム構築ハンズオントレーニング
AWS入門編 EC2/ELBを使った、ブログシステム構築ハンズオントレーニングAWS入門編 EC2/ELBを使った、ブログシステム構築ハンズオントレーニング
AWS入門編 EC2/ELBを使った、ブログシステム構築ハンズオントレーニング
 

Último

プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (8)

プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

Awsで構築したのだよ 05 プロセス監視、メモリ使用率、ディスク使用率をCloudWatchのカスタムメトリクスに追加したい

  • 2. AWS構築時のノウハウを残し 共有します  注意 順番に記載されているため、前のテーマで記載さ れている内容が前提となる場合があります。
  • 3. お品書き  ユーザのコンソール操作をログに残したい  ec2で自分のインスタンスIDが知りたい  ec2で自分についているタグを読み取りたい  ec2起動時にホスト名を変更したい  プロセス監視、メモリ使用率、ディスク使用率をCloudwatchのカスタムメ トリクスに追加したい  ec2起動時にアラーム設定をクラウドウォッチに追加したい  Amazon Linuxのsshの認証方式を、ID/PWに変更したい。  VPNのプライベートネットワークでNTPを使いたい  プライベートネットワークのRDSにssh経由で接続したい  夜間にec2を落としたい  サーバーのシャットダウン時にログを退避したい
  • 4. カスタムメトリクスに追加した い(1/5)  AWSサービスとして提供されているものについて は、標準メトリクスで参照することができます。 しかし、OS側からしか見えないもの、プロセスの 死活監視、メモリの使用状況やディスクの使用状 況はCloud Watchでは見ることができません。  プロセスの死活監視、メモリの使用状況やディス クの使用状況をスクリプトを使い、Cloud Watch のカスタムメトリクスとして登録します。
  • 5. カスタムメトリクスに追加した い(2/5)  ユーザに、カスタムメトリクスに登録権限を付与 します。 (または、ec2に権限を委譲するロールを作成しま す。)
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. カスタムメトリクスに追加した い(3/5)  メトリクスのもととなるデータを作成して、 Cloudwatchに登録する、スクリプトを作成します。
  • 11. 権限を持ったユーザの情報、リージョンの情報など、操作に必要な情報をyml ファイルで定義しておきます。 # vi aws.yml access_key_id: "AKIAIFJPTCXRF943FBXA" secret_access_key: "lLaGfDbBE+gjbSVrGyD7+35AlOAg364qtge91XDM" ec2_endpoint: "ec2.ap-northeast-1.amazonaws.com" region: "ap-northeast-1"
  • 12. # vi putMetric.rb #!/usr/bin/env ruby # encoding: utf-8 # OSの監視情報をCloudWatchのカスタムメトリクスに追加するスクリプト # # 追加する項目 # - メモリ使用率 # - ディスク利用率 # - / : 標準EBSボリューム # - プロセス監視 # 各EC2インスタンス上のcronで5分ごとに実行 # */5 * * * * ec2-user ruby /opt/aws/putMetricsrb require 'rubygems' require 'aws-sdk' AWS.config(YAML.load(File.read(“./aws.yml"))) NAMESPACE = 'Custom/EC2'
  • 13. # プロセス監視するプロセス名 @process1 = 'httpd' @process2 = 'tomcat6' # メモリ使用率 def mem_usage meminfo = {} File.open('/proc/meminfo').each do |line| line =~ /^(.*?):s+(d+)/ or next; meminfo[$1] = $2.to_i * 1024 end total = meminfo['MemTotal'] avail = meminfo['MemFree'] + meminfo['Cached'] + meminfo['Buffers'] 100.0 * ( total - avail ) / total end
  • 14. # Disk使用状況 def disk_usage(path) df = "/bin/df -k -l -P #{path} | tail -n 1" total, used = `#{df}`.chomp.split(/s+/).values_at(1, 2) 100 * ( used.to_f / total.to_f ) / 1 end # プロセス稼働状況(init.dにstatus参照可能な起動スクリプトがある想定) def process_count(name) `/etc/init.d/#{name} status | grep "is running..." | wc -l`.chomp end
  • 15. @instanceID = `wget -q -O - http://169.254.169.254/latest/meta-data/instance-id` dimensions = [ { "name"=> "InstanceId", "value"=> @instanceID } ] # 個別項目 metric_data = [ { "metric_name"=> "MemoryUsage" , "value"=> mem_usage , "unit"=> "Percent" }, { "metric_name"=> "DiskUsage_root" , "value"=> disk_usage('/') , "unit"=> "Percent" }, { "metric_name"=> "process_#{@process1}", "value"=> process_count(@process1).to_i, "unit"=> "Count"}, { "metric_name"=> "process_#{@process2}", "value"=> process_count(@process2).to_i, "unit"=> "Count"}, ] # 共通項目 metric_data.each do |m| m[:dimensions] = dimensions end
  • 16. # カスタムメトリクス追加 cw = AWS::CloudWatch.new cw.put_metric_data( "namespace"=> NAMESPACE, "metric_data"=> metric_data )
  • 17. カスタムメトリクスに追加したい (4/5)  手動で実行して動作確認を行う。 ruby putMetric.rb  Cloudwatchで、実際に確認する。MetricsのEC2カスタムメ トリクスを参照する。Custom/EC2というネームスペースが 追加されている。
  • 19. カスタムメトリクスに追加した い(5/5)  Cronに登録して、5分置きにカスタムメトリクス を追加するようにします。 (スクリプトファイルとymlファイルのパーミッ ションは、適宜変更してください。) $ sudo crontab -e */5 * * * * ec2-user ruby /opt/aws/putMetric.rb