JAWS Festa Tohoku 2014へ行って地味な(?)発表してきた #jawsug #festa2014

普段は会社の名前出して発表した時の振り返りとか書かないんですけど(色々配慮するのが面倒なので)、

最近、色々と心境の変化(Festaによるものではないですw)があったので書いてみます。

補足して伝えておきたいこともあるので。

 

東北は仙台開催!

ってことで、近い(実際には全く近くないw)札幌に初心者ブロックの白羽の矢があたり、

なんか行かせてもらえそうだったので、せっかく行くなら是非に!と立候補しました。

 

本来は別のサービスの話をする予定だったのですが、

それもまあ、ちょっと地味なやつ(失礼w)だったので、

「同じ地味ならこっちが良い!」(とは言ってないですがw)と我儘を言って変えてもらいました。

CloudWatchを選んだのは、資料中にも書いていますが、

「派手な構築の話ばっかりじゃなくて運用の話があっても良いじゃない!」

って思ったからです。

あと、それなりに弄り倒しているので、50分なんとか使いきれそうだなと。

 

内容はあえて、既存のAWSの中の人の解説資料とかの流用や引用をせずに作りました。

実際、流用してるのは最初の「CloudWatchって何?」の所だけです。

せっかくユーザグループ主体のイベントなので、内容も「ユーザ目線」に拘って作りたいなあと。

AWS目線の話はおググりいただければ資料とかドキュメントとか出てきますし、その他イベントとかWebinarとかで聞けるので。

 

ただ、「ユーザ目線」に拘った結果、初心者向けじゃなさそうな内容っぽくなってしまった所があったのが反省点でしたorz

もう少し、CloudWatchそのものの説明を厚めにした方が良かったかなあと思いました。

その辺りは聞いて頂いた方々、申し訳ありませんでした…

 

 

あと、自分のやつの見直しとかしてて他のセッションはちゃんと聞けてなかったりするんですが、

辛うじて全部聞けた2つのセッションの感想を書いておきます。

 

JAWS-UG初代代表 (株)ビーブリッド創業者が介護業界に没頭している訳

AWS及びクラウドの話は全くと言っていいほど出てきませんでしたが、

飯塚さんと竹下さんの話が素晴らしく、ちょっと覗くだけのつもりが、

引き込まれて最後まで聞いていました。

ウチの奥さんも介護じゃないですが、福祉関係だったので、

かの業界のアナログ具合は知っていたものの、

より大きな視点で再認識できて良かった。

今は他にやりたいことがあるので難しいですが、

自分がもう一人居たら、介護というか福祉業界に飛び込ませたいw

 

Kinesis とGPGPUで人工知能を気軽に活用する未来

これは、今回初めから「これだけは絶対聞く」と決めていたセッション。

これまたAWSの話はちょびっとしか出てきませんでしたが、

良質な情報工学の授業を聞いているような感覚になる独特な感じで良かったですw

機械学習とか凄い興味はあるものの、なんとなく難しそうで手が伸びなかったのですが、

少し道筋が見えてきた感じがしました。

とりあえず、前提知識が足りてないので本読む。

 

どちらもAWSの話が全然無かったわけですが、

それもまたFestaという懐の深いイベントの醍醐味ということで良いんじゃないでしょうか :)

 

 

当日は、特に混乱も問題も起きなかったように思います。

東北チームの皆様、素晴らしい企画・運営お疲れ様でした!

 

 

 

TODO:
デモに失敗して、全く伝わらなかった(と思われる)LTのAWS見積り用Google Spreadsheet Add-onのフォロー記事を書く

 


Windows向けのChefカスタムリソース(LWRP)を作ってみた

作ったのは以下の2つです。

WindowsだとTest-kitchen+Serverspecで良い感じにテストできないので、VirtualBoxとEC2で手動による動作確認はしてますが、動かないケースがあるかもしれません(;´Д`)

  1. Windows Serverでcronライクな定期処理を行うためのリソース(windows_scheduler)

  2. パフォーマンス等の内部情報を取得してCloudWatchに投げてくれるリソース(powershell_cloudwatch)

2は、内部で1を使用することにより、定期的にCloudWatchにPutしてくれる感じです。

Linuxサーバの監視は、vmstatとかpsとかの各種コマンドで取得した値を整形して、

AWSCLIでCloudWatchにPutさせることで監視を行っており、

これもChefのレシピになっているので新しいサーバが増えたらサクッと流すだけになっているので、

それと同じことをWindows Serverでもやりたかったので、作ってみました。

 

詳しい内容はREADMEやソースを見ていただくとして、

以下、概要です。

 

windows_scheduler Cookbook

  • windows_scheduler_jobというリソースを追加します。

PowerShellのScheduledJobというコマンドレットを使用しており、今のところそれしか需要がないので分単位での定期処理でPowerShellの実行のみサポートしています。ScheduledTaskというコマンドレットを使用するとPowerShell以外の定期処理を行えます(が、未対応ですw)

また、今回はじめて知ったのだけど、Windowsのタスクスケジューラは、デフォルトで前の同じタスクが終わっていない場合は次のタスクを実行してくれないのですが、そこはcronと同じように重複起動して欲しかったので変えるオプションを付加しています(リソースに与えるattributeで変更可能)

 

powershell_cloudwatch Cookbook

  • powershell_cloudwatch_couterというリソースを追加します。
  • powershell_cloudwatch_processというリソースを追加します。

PowerShellのGet-Couterというコマンドレットを使用して、PerformanceCounterという内部的なパフォーマンス情報を収扱うためのオブジェクトを取得します。それにより、実行時を切り取った値ではなく、指定されたインターバルで指定された回数取得し、その最小最大やサンプル数と合計値といったCloudWatchが扱える値のそれぞれに分類してPutします。

それに加えて、Get-Processというコマンドレットを使用してプロセス数をPutするためのリソースも作りました。こちらは、実行時を切り取った値をPutします。

 

Windows ServerをChefで色々やろうと思うと、

やはりPowerShellの知識は切っても切れないものとなりそうです。

というか、Windows Serverの管理においてPowerShellが必須なんでしょうね…

 

最初はちょっと楽しかったけど、やっぱり途中からちょっとつらかったですwww

 

 


Windows Chef ClientをChef Serverに自動で繋ぐ

 

Windows ServerのCofigurationをChefでやろうとした場合、

ssh + rsyncが必要なknife-soloは現実的ではないため、

効率的に管理しようと思ったらやっぱりChef Serverを使うのかなと思いチャレンジしています。

 

そんな中、Linux Chef ClientをChef Serverに繋ぐ例は、

いくつか見つけることができましたが、

やはりWindows ServerはさすがのGoogle先生もご存じないご様子だったので、

自力で頑張ってみました。

 

前提条件

  • Windows 2008 R2 or later
  • PowerShell 3.0 or higher
  • Chef Server側のenvironmentはあらかじめ作成しておく
    (これはWindowsに限らずですが…)
  • Amazon S3のPrivate Bucket
    (validatorキーの受け渡しに使います)

 

こんな感じです。

YOUR_*

な所は各々書き換えて使います。

validatorキー含め必要なものは全て外部から取るようにしているので、

まっさらなサーバから流すだけで接続させられます。

Chef Clientの起動スパンは5分毎、

WindowsのScheduledJobは「いつまで」を登録しなければならず、

ここは無限にはできない(PowerShell4.0~はできるらしいけど)ので、

とりあえず適当に大きい値8192日になっていますが、

特に起動スパン5分はあまり一般的ではないようなので用途に合わせて変えてください。

ここらへん↓

$SpanMinutes   = 5
$DurationDays  = 8192

 

EC2の場合

以下で囲んでUserDataから流し込めばRDPで繋ぐこと無く完全自動で繋がせることができます。

あらかじめroleを作っておいて、タグ情報からrun_listにそのroleが指定されたnodeのJSONファイルを生成する等すればそのまま即設定まで完了ですね。

<powershell></powershell>

 

ConfigurationまでChefで完璧にできるようになれば、

Wiondows Serverもログイン無しでセットアップできるとかだいぶ胸熱なので、

ちょっと頑張ってみたいと思いました。