パピーウォーカーになる条件は多くなく、室内で犬が飼えること、自家用車があること、長時間留守にしないこと、等。基本的に赤ちゃん犬なので長時間目を離すことは出来ないし屋外で飼うことも出来ない、自家用車はパピーを連れて盲導犬協会に来て研修を受ける必要があるため。金銭的な負担もほぼ無く、餌代とおもちゃなどのみ。病気や怪我の場合は領収書を取得して盲導犬協会に提出することになる。わんこの食費は一ヶ月で大体5000円くらい。家族での外食を1回控えると充分賄える。publishしたものをtcpdumpでキャプチャしてWiresharkに食わせました。Checkについて調べたのでメモ。Protocolサーバの生存監視(ヘルスチェック)に使うプロトコルを指定します。HTTP、TCP、HTTPS、SSLから選択します。Pathを設定することが出来ます。Portヘルスチェックに使うポートを指定します。ProtocolをHTTP又はHTTPSとした場合に指定可能です。ヘルスチェックで該当PathがGET出来無いと異常と判断します。Timeoutヘルスチェックのタイムアウト時間を秒で指定します。指定した秒だけ応答が無ければ異常と判断します。デフォルトだと5秒です。Intervalヘルスチェックの間隔を分単位で指定します。デフォルトの0.5minutesは30秒です。Thresholdここで設定した回数だけヘルスチェックが失敗した場合、振り分け対象から除外します。デフォルトだと2回です。Intervalが0.5minutesの場合、障害発生から切り離しまで最長30+5+30+5=70秒かかります。Threshold振り分け対象外となったインスタンスが、ここで指定した回数だけヘルスチェックに成功したら、振り分け対象に戻します。デフォルトだと10回です。Intervalが0.5minutesの場合、障害復旧から切り戻しまで最長300秒掛かります。共有2013/10/21AWSでOSSECを導入する前回の調査に引き続き、クラウドにおける侵入検知の一つの方式として、AWSにOSSECを導入してみました。同一Subnet内に二つのEC2を建てる片方のEC2でtcpdumpするもう片方のEC2に通信するという実験をしてみたが、全く通信が引っかからなかった。Processesという文章を見つけた。modeを有効にしても自分以外の通信を盗聴することは出来ない自分自身が所有する2つのEC2インスタンスを同一の物理ホスト上で動かしていても同様ということですね。XenServer)なんだけど、クラウドプラットフォームサービスに特化したAWSでは全面禁止になっているようだ。クラウドが主流となっていくとネットワークベースのIDS/IDPからホストベースのIDS/IDPに変わって行くのかなぁ。この辺のクラウド構成でのセキュリティ対策については今後も勉強していこう。共有2013/10/17[AWS]VyattaでNATインスタンスを立ててみたきっかけはこの記事。2013(の前半)に参加しましたVyattaは2年半前に触ったっきり情報を追ってなかったんだけど、AWSのような環境こそVyattaが活きるなぁと思い、AWSの中でNATインスタンスとして立ててみた。masqueradeの動作になる。(1)準備VPCの中にSubnetを2つ作り、1つをPublic、1つをPrivateとする。Gatewayを作成する。Gatewayを設定する。TableはVPC内の経路のみ持つ。Instance今回はローカルネットワークからのHTTP/HTTPS通信を受け取り、外部に送信する。SSHをAnyにしてあるけど、本来はメンテナンスネットワークのIPアドレス帯をSourceに設定すべき。本AMIは@j3tm0t0氏が作成しデプロイされたもので、ありがたく使わせて頂きます。AMIは場合によっては悪意あるユーザーによってどんなバックドアが仕込まれてるかわかったもんじゃないので自己責任の利用となります。AMI(有償)もリリースしています。Instance設定のキモ。EC2ではデフォルトで実行されている「送受信するパケットの送信元あるいは送信先が自分であるかのチェック」を無効にすることで、他ノードからのあるいは他ノードへのIPパケットが自分を経由して通信することを可能にする。(5)最低限のアクセス認証設定デフォルトだとUser:vyatta、Password:vyattaで、かつパスワード認証でログイン出来てしまうため、このまま外部から接続出来るようにするのは危険。同一ネットワーク内の別のEC2からSCPで公開鍵を送りつけた後にSSHで接続し、最低限のアクセス認証設定だけ行う。これが外部のアクセス先から見えるグローバルIPアドレスになる。Instanceまずは基本的なホスト名、ドメイン名、タイムゾーン、NTPサーバの設定。commit次にキモとなるNATの設定。同一VPCからの通信をmasqueradeでOutboundする。Instanceを経由して外部通信してみる。http://www.google.com/はいOK。BOXとして使われることが多いようだ。次回はその辺にチャレンジしたい。「妻は俺の嫁」を電子書籍にして出版してみた。AZlink以下、これの作り方。(1)原稿を作る原稿はまずePubファイルで作成し、その後KDPで出版可能なMobi形式に変換することになる。ePubエディタは抜群に知名度が高いSigilを使用した。SigilはGPLv3ライセンスで公開されておりgithubでソースが公開されている。このアプリケーションはマルチプラットフォーム対応になっており、Windows、Mac、Linuxで実行可能。ePubの実体はXHTML+XMLで構成されているため、ePubエディタ上もワープロソフトのように文章を入力しつつ、HTMLやCSSをガシガシ使って体裁を整えるイメージ。表紙だけは画像取り込みで行った。メニューなども日本語化されているし、CSSで縦書き構成にも出来るし、とても簡単に作れるなぁという感想。デザイナーの人でいれば綺麗な製版が出来るのだと思う。Previewerが使用できる。formatジェネレータが同梱されており、ePub形式のファイルを読み込むと自動的にMobi形式に変換して表示してくれる。いうツール類がオフィシャルに用意されてるのは強み。Previewerで作成したMobi形式のファイルがそのまま入稿できる。ePub形式でアップロードすると自動的にMobi形式に変換してくれるそうだが、今回はエラーになったため、ローカル環境でMobi形式に変換してからアップロードするほうが確実のようだ。(4)ロイヤリティについて今回は別に利益を得たいわけではないので適当に一番安いのを選んだんだけど、本当に利益を考えて出版するとなると、色々と面倒臭いことがあるようだ。書籍の価格に対するロイヤリティは35%と70%から選択できる。70%の場合ファイルサイズによって「配信コスト」が引かれる。Amazon.co.jpの場合\1/MB。ファイルサイズが大きくなればなるほどコストが高くなるので、書籍のファイルサイズを可能な限り小さくする、といったテクニックが必要になるようだ。KDPのロイヤリティはAmazonUSから支払われるため、小切手か銀行振込になる。小切手の場合$100を越えると支払われる。小切手は外貨建てで、日本円に換金するには銀行で手数料を払う必要がある。銀行振込はどうかというと、1000円単位で自動的に振込してくれるが、1回の振込で2500円の手数料が掛かる。今回の場合は一番面倒くさく無さそうな30%のロイヤリティオプションで小切手支払いを設定した。(5)入稿から出版まで入稿後は手動チェックが入るので出版まで最大48時間程度掛かるそうなんだけど、コレみたいな小さいのは6時間で完了した。(6)全体的な感想まず、出版への敷居が非常に低くなったと思う。電子書籍なんて無かった時代は自分でDTPして製本会社を探して販売してくれるところの伝手を辿って結構大きな自費出費があったり、あるいは同人誌即売会のようなイベントで手渡し販売するような状況だったんだろうけど、今は手間だけ掛ければほぼノーコストで出版まで出来る。デザインや広告、商流まで考えると費用はかかるんだろうけど、個人が趣味で細々とやってる分にはすごくお手軽。この電子書籍の潮流の中で、小説でも詩でも何でも、新しい才能、新しい文化が生まれてくると面白いなぁ。7のノートPCにVagrantをセットアップしてみた。(1)VirtualBoxをインストールする。hostsをダウンロードしインストール。(2)Vagrantをインストールする。http://downloads.vagrantup.com/からVagrant_1.3.4.msiをダウンロードしインストール。(3)CentOSをインストールしたVagrantBoxを作成する。value.怒られました。・Windows7にVirtualBoxとVagrantをインストールしたメモ・仮想化支援機能(VT-x/AMD-V)を有効化できませんを参考にしたところ、64bitのイメージを入れようとしているのに、仮想化支援機能(VT-x/AMD-V)が有効になっていなくてエラーで止まっているようだ。Feature」をEnabledにしてもう一度。/vagrantOK。(4)起動したVagrantBoxに接続してみる。C:/Users/ユーザー/.vagrant.d/insecure_private_key怒られました。上記の通りの情報でTeraTermから接続→OK。(5)Saharaプラグインをインストールする。(0.0.15)'!(6)Saharaプラグインを使ってみる。sandboxモードをON。sandboxモードONにしたタイミングまでRollback。sandboxモードONにしたタイミングからここまでの変更をcommit。commit(7)感想Saharaとかchef-soloとかと組み合わせることで開発環境をサクサク作れるようにしておく、というのはとても便利ですね。チーム開発で環境を横並びに揃えておくにも便利だし、イメージ展開と違って常に新しいバージョンを使えるのもメリットだと思いました。(2012年モデル)を買った題記の通り。東京出張で丸一日空いたので朝から赤羽で飲んだくれて秋葉原のソフマップで触ったら良さそうでちょうどAmazonで旧モデル3000円オフ投売りだったのでポチった。AZlink重量は思ったより軽く片手で持つのにちょうど良い。本を1冊2冊持ち歩くことを考えると確実にこっちのほうが軽い。前面を覆うカバーもあるけど、カバーを付けちゃうと「手軽に取り出して電源を入れたら使える」という優位性が失われると思うので付けていない。このスクリーンはちょっとザラザラしてるんだけど、その触感がとても良いので、保護フィルムも付けていない。手軽さこそが命の製品だと思うので、付属品一切無しのほうが使いやすいと思う。e-linksディスプレイは「紙に印刷された活字に慣れてると気になるかなぁ」と思っていたんだけど、ほとんど気にならない。スリープから復帰してパスワード入力するあたりがちょっとモタつくけど、画面を開いちゃったあとはサクサクページもめくれるし快適。難点があるとすれば、電子書籍自体のラインナップが(僕にとっては)満足できるほどじゃない、というのと、Kindle自体から購入するときの検索UIの使いづらさかなぁ。Kindleに保存→Kindle端末に同期」という手が使えるから良いとして、主にSFばかり読む僕が読みたい本がそれほど多くないというのがちょっと寂しい。今後の充実に期待したいところ。恩田陸さんの「ドミノ」を買ってみた。読み倒してみようと思う。共有2013/10/12AWS::ELBについてのメモ先日、とある識者の方とお話しているときに、マルチAZ構成に組み込まれたELBが、複数のグローバルIPアドレスを所持していることを知りました。AWSマイスターシリーズにも書いてありました。・マルチAZを用いていると、2つ以上のIPアドレスを持つ(最大8個まで)つまりELB自体はAZ上にあるイメージで、AZが丸ごと落ちたときのために、それぞれのAZの範囲内のグローバルIPアドレスを持っている、ということなんですね。ELBは「トラフィックに併せて自動的にキャパシティを増減」し、同時に数も増減するため、このIPアドレス数は=構成するAZの数では無く、最低IPアドレス数が構成するAZの数になるようです。このAレコードの返却についてはAWSのDNSサーバが自動的にラウンドロビンしてくれているとのこと。この辺がELBのFQDNのTTLとminimumが60秒になっている理由のようです。今時のブロードバンド(死語か...)だと大した負荷じゃないのでしょうが、「TTLを60秒にして良いのはサーバ移設かISP移設のときだけ」のような教育をされてきた僕みたいなおっさんはちょっとドキドキします。3Twitterという「媒体」に言葉を放つようになって7年が経ちました。その間に日々発生した妻との出来事ややり取りをちまちまとまとめていたのがコレです。見出しに「愛妻家ってのは妻を愛してる人であって妻に愛されている人とは限らない」って書いたけど、僕は「愛妻家」という表現が好きじゃないです。夫が妻を愛しているのなんて当たり前じゃない。妻に愛されているなら素晴らしいことだと思う。僕?ま、まぁ...さて、妻と出会って15年になるわけですが、恋人から夫婦に代わり、父母の立場になり、そして10年以上一緒に暮らしていると、良い意味で空気のようになります。あっても気にならないけど無いと死ぬ。やり取りも直接的な愛情表現が減っていく分、相手のツボを心得た返事が出来るようになり、毎日の会話がどんどん楽しくなるんですよね。それでも僕はめげずに愛してる愛してる言い続けてるんですけど!こうやって毎日の妻との生活が楽しいと思えるのはほぼ100%妻のおかげです。これはただのログでしか無いし、誰かにとって役立つようなものでは無いけれど、こんな夫婦もいるんだなぁくらいの気持ちで見守って頂けると幸甚です。--listしたら、見たこと無いやつがあった。instance.]とのことで、元々Ubuntuのパッケージだったそうなんだけど、要はEC2インスタンスの初期起動時のお決まりのセットアップをスクリプト化しちゃうものらしい。Data枠に記載する。upgradeして、指定したパッケージを追加で入れて、かつコマンド実行する。今回はAWS-SDKがセットアップされた状態にしたかった。/etc/localtime]EC2インスタンス起動後、ログを確認し、エラーが無いことを確認する。Interfaceを使えばもっと簡単に出来るんじゃないか?と思い、やってみた。InterfaceはPythonのeasy_installでインストールする。awscli(2)configファイルを作成する。TopicへPublishする。"alert"(4)SQSからgetする。SDKを使ってScriptに組み込むのとコマンドラインから操作するのは適材適所だろうけどけど、どっちも便利だなぁ。SDKを使って取り出し」していたんだけど、普通にAWS-SDKを使って通知もしちゃえば良いことに気づき、Script書いてみた。(1)CPU使用率はmpstatを使って取得したいので、sysstatをinstallする。sysstat(2)通知スクリプト。mpstatで取得したCPU使用率をAWS-SDKを使ってSNSに送りつける。60end(3)実行すると1分に1回mpstatの結果をSNSに送りつけるので、監視サーバ側でSQSから取り出せばOK。PowerUsersにしておく。(1)インストールする。aws-scripts-mon(2)getの動作確認。N/A---(3)putの動作確認。PowerUsersのRoleを使ってることが確認できた。(4)実際にSendしてみる。consoleのCloudWatchから確認する。cronで回してCloudWatchのグラフで確認して...って感じかな。RubyでSQSを操作する■やったこと1.SQSの設定SNSから通知するためのSQSを、先に作っておく。SQS、Endpointは1.で作ったSQSのARN。Topicでテストメッセージが送信可能。roleの設定を行う。Roleを変更することは出来ないみたい。roleを設定したEC2を立ち上げる。Roleだけ(1)で作ったRoleを設定する。(3)CloudWatchの設定。Monitoringを使う。Utilizationを1分単位で通知にする。負荷はテストなので10%以上に。toは1.で作成したSNSを指定。(4)試しに負荷を上げてみる。EC2でもう1台立ち上げる。Roleの設定だけ忘れずに。(2)このEC2からSQSをPollingして、Queueがあったらコンソールに表示したい。Ruby経由でSQSからMessageを拾って表示。一度表示したらQueueから削除。Access_keyとSecret_keyはアカウントオプションのSecurityから取得できる。Topicsでテストメッセージを送って、コンソールにMessageが表示されることを確認。(7)監視される側のサーバでyumとか使って負荷を上げて、SNS→SQS→コンソールにメッセージが表示されることを確認する。・CloudWatchを使った監視はとてもお手軽。5分より短い間隔で監視したいほどシビアな案件なんてそんなに無いので、基本モニタリング充分使えると思う。SDKを使ってイベント駆動のアプリ作るのもなかなか面白そう。SDKはもっといろんなことできそうなのでもっと調べたい。共有2013/10/01初めてのAWSメモ:VPCでELBでMultiAZのRDS■やりたいこと■参考にしたURL。RDSで仮想DBインスタンスを作成する・RDSインスタンスにMulti-AZの設定をする■やったこと1.Network周りの設定(1)Amazon無料枠で申し込みする。Consoleを起動。DashboardからVPCを作る。Default(4)SubnetからAZ1にPublic(10.0.1.0/25)とPrivate(10.0.1.128/25)を作る。AZ2にPublic(10.0.2.0/25)とPrivate(10.0.2.128/25)を作る。Gatewayを作成する。Tablesを設定する。AZ1-PrivateとAZ2-PrivateはLocalのみのTableを使う。Gateway)を設定する。新しいRouteを作成し、Localと0.0.0.0/0を設定する。TableにReplaceする。TableにReplaceする。AZ1-PrivateとAZ2-PrivateをGroupingする。(2)RDSを構築する。OptionsはDefaultで。Groupを設定する。Group設定箇所をクリックする。RDS画面に戻り、対象RDSを選択してModifyをクリックする。Groupをdb-serversに変更する。ActionからRebootする。Failover?」をチェックする。Zoneが切り替わったことを確認する。3.EC2(Webサーバ)(1)EC2を構築する。Web1とWeb2の2台構築する。Web1、Web2両方ともに設定する。→たぶんGIP1つでもNATすることで外部通信可能だと思うんだけど調査していない。(3)EC2にSSHアクセス。ユーザーはec2-user。(4)Web1からDBSにmysqlコマンドでアクセスしてみる。-p(5)httpdをインストールする。Web1、Web2両方で。IPに外部からWebで接続して、接続できることを確認。Web1とWeb2でどちらにアクセスしているかわかりやすい内容にしておく。checkはデフォルトのまま。Groupを作成する。Web1とWeb2をSelectする。Servicesになっていることを確認する。振り分けされることを確認する。・立ち上げるだけならとにかく楽。難しい設定を考えなくても動く。・MultiAZのあたりは同期のタイミングとかcommitとかLockのタイミングとかその辺調べるともっと面白そう。・ELBも振り分けまでしかしてないけど、セッションの振り分けとか管理のあたりをもっと知りたい。Groupの設定は、物理みたいに経路とフィルタのセットで考えるんじゃなくて、1つの大きなFirewallで制御しているような感じ?この辺の感覚に慣れるのが難しそう。細かく制御できそうな気がするんだけどな。・とにかく最近新しいことにチャレンジする機会が全く無くて悶々と死んだように生きていたけど、こういうことやるのめちゃくちゃ楽しい。・まだ届いてないけどこの本買いました。