maroon1stの(昔は)技術日記(だった)?

当初が技術日記だった気もしますが、現在はそうでもないです

本格SEもすなる、技術ブログといふものを、駄目SEもしてみむとて、するなり

1年ぶりでもビール飲んでた

技術ネタは会社ブログに書くので、1年ぶりに書くのもビールです。クラフトビール Advent Calendar 2018の6日目をずいぶん遅れて書いてます。

adventar.org

会社に近い神田のTAP×TAP 神田店に行ってきました。

メニューはこんな感じでした。

f:id:maroon1st:20181210192514j:plain f:id:maroon1st:20181210192519j:plain

で、箕面ビールの『ボスざるIPA』を飲んできました!

f:id:maroon1st:20181210192434j:plain

IPAなんだけどかなりスタウトの味わいで、ホップの苦味が出てくる感じでした。

次のクラフトビール Advent Calendar 2018は13日なので遅れないようにビール飲んでいくぞ!

大阪に赴任してもビール飲んでる

前職の退職エントリー以来3年半ぶりに個人ブログ書いてます。今の会社に転職してからブログは200本くらい書いてるけど技術ネタは全部会社ブログに書いているので個人ブログはお休みでした。

さて、この記事はBeer Advent Calendar 2017の12月20日のエントリーです。12月と来年の1月は大阪に赴任しているので、こちらで飲んたクラフトビールについて書いてみます。今のところ行ったのは3店です。

CRAFT BEER BASE garden

会社の近くにあり、とても寄りやすい。

飲んでたのはこちら。

CororaSession IPA

飲み口は爽やか

f:id:maroon1st:20171209203601j:plain

BREW BASE Prototype

酸味と甘みを感じるIPA 苦味は抑えめ

f:id:maroon1st:20171209205418j:plain

Sierra Nevada Celebration

f:id:maroon1st:20171220061819j:plain

これはビールじゃなくでCIDER

Farm Batch #3

f:id:maroon1st:20171220061924j:plain

ここは肉料理も美味しそうだし、Nitro Cold Brew Coffeeもありました。隣の方がスキレットに肉を盛り合わせたものを食べていたので次に行く時には食べる。

BEER BELLY 土佐堀

土佐堀川沿いのお店です。中之島のすぐとなりです。

飲んでたのはこちら。

MINOH BEER ヴァイツェン

f:id:maroon1st:20171220063210j:plainWeizen

MINOH BEER W-IPA

f:id:maroon1st:20171220063505j:plain

MINOH BEER スタウト

f:id:maroon1st:20171220063628j:plain

MINOH BEER ペールエール

f:id:maroon1st:20171220063750j:plain

ここは箕面ビールメインでした。それとビールじゃないけど江戸堀バーガー、オムレツとか牡蠣とか食べてました。

f:id:maroon1st:20171220063910j:plain

それとOSAKA CRAFT BEER MAPを手に入れたので、今後の大阪のビールが捗ります!

f:id:maroon1st:20171214203346j:plain

GARAGE39

御堂筋と堺筋の中間にあります。

伊勢角屋麦酒 Pale Ale

f:id:maroon1st:20171220065415j:plain

伊勢角屋麦酒 ゴールデンドラゴン

f:id:maroon1st:20171220065510j:plain

京都醸造 週休6日

これは名前で選びましたw

f:id:maroon1st:20171218205517j:plain

さいごに

大阪でも旨いビールを飲んでますよ!

本日 #脱藩なう します

※注意1:これは個人の日記です。内容のレベルについての御批判は御遠慮下さい。
※注意2:ここで言う「脱藩」とはAWS界隈で言う退職/転職の事です。

現職を辞めた理由は音楽性の違いです。
以上!

というテンプレはここまでです。



今の勤務先である株式会社日立ソリューションズを6月30日付けで退職しました。2003年に新卒で入社して11年間在籍しました。入社時はSEという職種もSIerという業種も、なんとなくしか理解せずに就職した思います。親会社とは関係しない「外販」をメインとした製造業のお客様をターゲットの部署に配属されました。製造業の部署にも関わらず様々な業種のお客様を担当させて貰えました。自部署の仕事は、社内では相対的に小さい案件が多いため、自分の裁量が効きやすい仕事が多かったと思います。

しかし、2011年の春に心を病み1か月ほど入院し、そのまま1年近く休職しました。休んでいる間、会社が指し示しているマネジメントとして上がっていくキャリアパスと、自分があこがれているエンジニアの間に差を感じ転職を選択肢の一つとして考えだしました。

2012年に復帰すると新規案件にアサインされました。そのためのスキルを得るために外部の勉強会に参加するようになり、今ならできないながらも一応エンジニアを名乗れるようになったかなと思っています。

現職では、エンジニアのままのキャリアパスが無いため、エンジニアをやっていきたい自分とは合わないと判断し、現職を離れる事にしました。
冷静に見て、自分が所属していた部署は新規のサービスを作っていくというマインドがあります。新規事業を自分で創造したい人には、良い会社ではないかなとは思います。会社のキャリアの考え方は自分とは合いませんでしたが。

転職活動を開始したのは、今年の春に運営したJAWS DAYS 2014です。懇親会に勢いでつぶやいた後に活動を開始しました。

幸い次の会社は決まっており、明日からは違う肩書になります。
心身を壊さないように程々で気合を入れて頑張っていこうと思っています。

最後に「で、誰?」はいらないです。

AzureとAWSでベンチマークしてみた

最近記事を書いていなかった、、、orz
というのは置いといて、今日はGlobal Windows Azure Boot Camp 2014 in Japanに参加してみました。
基本的にAWS陣営の人なので、若干アウェイ感を感じつつ参加しましたが、大変勉強になりました。
イベントの中身は他の方々が書かれると思うので、イベント中に気になって検証してみた事を書きます。

気になった事

ある方が、AzureとAWSベンチマーク結果を出されていたのですが、AWS側がM3インスタンスだったんですね。結果は当然Azureのが良かったです。公平に見て、AWSは仮想サーバのパフォーマンスが悪い傾向が有ります。
でも、AWSをやっている方は分かっていると思いますが、CPUとメモリの分量で考えるとC3インスタンスを比較すべきだと思います。なので、パフォーマンスがどの程度改善されたかが気になりました。

じゃあ確認するか!

と言う事で、検証にて見ました。

まず検証する

検証対象は、これです。

環境 インスタンス CPU メモリ OS
Azure XL(A4) 8 cores 14 GB CentOS 6.5
AWS c3.2xlarge 8 cores 15 GB Amazon Linux AMI 2014.03
AWS c3.2xlarge 8 cores 15 GB CentOS 6.5

Linuxなので、ベンチマークツールは定番のUnixBench(Version 5.1.3)を使っています。
並列度が8の結果はこんな感じでした。

項目 Index Score
Azure(CentOS 6.5) 2,624.1
AWS(Amazon Linux) 1,934.7
AWS(CentOS 6.5) 1,840.6

色々な方が公開されている結果だと、M1系インスタンスとの比較の場合はAzureがAWSの3倍位だったので、C3系になって随分良くなっています。

再度検証する

やった後に気が付いたのですが、この結果は準仮想化(paravirtual)なので完全仮想化(HVM)の場合も比較する必要があります。
そうして、HVMで取った結果が以下になります。
CentOS 6.5のHVM AMIが無かったのでRHELを使いました。

項目 Index Score
Azure(CentOS 6.5) 2,624.1
AWS HVM(Amazon Linux) 3,401.9
AWS HVM(RHEL 6.5) 4,619.7

なんと、逆転してます!
完全仮想化に比べて準仮想化の方がデバイスのアクセスでパフォーマンスが有利と言われていましたが、ファイルコピーを中心に大幅な向上が見られました。

三度検証する

でも、AzureなのにLinux系のベンチマークって一方的な気がすると思いました。だったらWindowsでもベンチとってみます。
Windowsでの検証対象は、これです。エディションが異なりますが、パフォーマンスには大きな影響がないと思っています。

環境 インスタンス CPU メモリ OS
Azure XL(A4) 8 cores 14 GB Windows Server 2012 Datacenter Edition
AWS c3.2xlarge 8 cores 15 GB Windows Server 2012 Standard Edition

使用ツールは、CrystalDiskMark 3.0.3とCrystalMark 2004R3を使用しました。
ディスクI/Oは以下のようになりました。

Read
Sequence(MB/s) 512K(MB/s) 4K(MB/s) 4K QD32(MB/s)
Azure 1627 1377 54.32 193.4
AWS(EBS) 103.7 98.29 8.44 46.96
AWS(Ephemeral:SSD) 103.7 98.29 8.44 46.96
Write
Sequence(MB/s) 512K(MB/s) 4K(MB/s) 4K QD32(MB/s)
Azure 20.88 42.49 2.036 2.034
AWS(EBS) 30.83 30.89 4.221 11.07
AWS(Ephemeral:SSD) 30.83 30.89 4.221 11.07

ReadはAzureが驚異的なパフォーマンスを叩出しています。Azureはディスクのキャッシュを上手く利かせているのでしょうか?

次に総合的なベンチマークをしてみました。

Mark
Azure 137,043
AWS 285,259

やっぱりAWSの方が速いです。

まとめ

現在では、AzureとAWSを比べると、AWSの方がパフォーマンスが良いです。
しかし、C3は最近出たインスタンスなので世代が異なります。

インスタンス CPU CPU発売時期
Azure XL(A4) AMD Opteron 4171HE 2011年 3月
AWS c3.2xlarge Intel Xeon E5-2680 v2 2013年 Q3

CPUの世代が2年半違うので、あくまで現在の比較結果です。
今後Azureのインスタンスも新世代が出ると思われますので、その時にまた比較してみたいと思います。

最後に

新規インスタンスはHVMを使っとけ!!!

サバフェスに参加したよ!後篇

そういえば後編を書き忘れていたので、年を越える前に書いておきます。
GETの対応までは書いたから、その次か。

POST対策は?

多重度が上がってくるとMySQLの処理時間が大きかったので、MySQLをどうにかしようと思いました。そこでMySQLをスケールアウトさせる戦略を考えました。
ぱっと思いついたのが、以下の2案でした。

  • Federated
  • Spider
Federated

Federatedのリファレンスを見ていると「リモートデータベースに何か変更があると破壊される事があります。」と書いていたので、Insertはスケールアウトができなそうだったので、ボツ。

Spider

Spiderはイケそうな気がしたのですが、パーティションを定義しなければならないので「Engineのみ。Engine以外の変更が必要なEngineは利用不可」というレギュレーションに違反する?ので諦めました。

結局、ストレージエンジンで解決できなそうだったので、全サーバにMySQLを入れ、各WordPressからローカルのMySQLへアクセスさせるようにしました。そして非同期で1台のマシンへ集約するようにしてみました。
f:id:maroon1st:20131231123837j:plain
こんな感じです。

作りは、かなり適当です。非同期でデータを集約するのはShellを作成してループで回しただけだし(Supervisorとか使ってない)。

結果

全体としては、8位でした。POSTは比較的アクセスを稼げました。GETはDSRの有無でアクセスが倍くらい違っていたので、まだまだという感じでした。

もう一歩チューニング、、、

DSRはやった事が無かったと、クラウド環境で使えると思っていなかったので、もう少し時間が有ってもGETは稼げなかったと思います。
POSTの方は、WordPressMySQLの間にMySQL Proxyを噛ませて、mysql-proxy-cacheを使えばアクセスを稼げたかなと思います。
内容としては、完敗という感じでした。

終わりに

今回は初開催と言う事もあってか、レギュレーションがブレたり、変更可能な個所がこなれていなかった印象が有ります。しかし、2回目の開催は決まった様なので、次回もぜひ参加したいと思います。
次は、もう少し実用的なチューニングをしようと思います。

「SIerのSE」は、JAWS-UGに出会うことにより「エンジニア」になれたか?

本日は、JAWS-UG Advent Calendar 2013 on Zusaarの10日のエントリです。
なお、技術的なことは書きません。

JAWS-UGって何だっけ?

JAWS-UGとは、皆さんご存知の通り Japan AWS User Group の略ですね。
世界最大?のAWSユーザグループで、全国(実はシンガポールにも)に50程度の支部が有ります。

AWSに触れる」

AWSとも出会いは約2年前、2012年の春。
上司:「今度のプロジェクトは、Amazonでやるから。あと、君がインフラ担当ね!」
俺 :「はあ。AWSやったことないですねえ。そもそもインフラ専任って初めてなんですけど、、、」
こんなのから始まり、結構不安でした。
まず、AWSのパートナー向けトレーニングを受ける。そうすると、何でも標準サービスを使えば何とかなりそうという印象が有りました。
その時の講師はアイレットの鈴木 宏康さんだったなあ。

JAWS-UGとの出会い

AWSについて調べ始めると Publickey に、「クラウドデザインパターン」(Cloud Design Pattern)の紹介記事が載っていました。CDPの各パターンを詳しく調べると、考え方*1にカルチャーショックを受けました。
外部の勉強会なんて参加したことが無かったのですが、CDPのイベント見つけてすぐ申し込みました。
実際にパターンを作ったNinja of Threeの方々の解説は勉強になりました。また、JAWS-UGの方の発表は面白かったです。得上さんのパターンとか。
このイベントでJAWS-UG知って、JAWS-UG東京に参加するようになり、AWS SUMMIT TOKYO 2012にも会社を休んで*2行きました。
この頃にはAWSに普通にハマっていました。

JAWS-UGの中の人へ

2012年の10月に地元の横浜支部が立ち上がるというtweetを見て、すぐに申し込みました。11月、12と連続開催だったので当然両方参加しました。東京支部は参加者がとても多いため、一体感が少ないところがあったのですが、横浜支部コワーキングスペースで30人だったので一体感を感じやすかったので、参加しやすかったです。
勉強会の最後に支部長の吉田さんが「横浜支部はコアメンバーを募集中です。」と募集していたので、勢いで手を挙げていました。

JAWS-UGの中の人として

横浜支部で何回か勉強会を運営してました。横浜支部のイニシアチブを吉田さんがとってくれていることも有り、色々な勉強会を開催しました。
例えばこんなの。

そして、今年の6月に「秋に大阪で大きいイベントを開催するぞ!」とJAWS-UGの中で話が上がり、流れで運営者の一員になってました。
ただの運営者の一員で御手伝い的な乗りだったのですが、横浜支部でやった ワールドカフェ を大阪でもやることになり、セッションを実際にやる人になってました。それまで、ほとんど発表することがなかったので正直どうしようと思っていたのですが、横浜支部のみんなのお陰で無事成功をおさめられたのかなあ、と思います。
その時やった内容は、これ「JAWS FESTA Kansai 2013 で一番長いセッションをやってきた - maroon1stの技術日記?」に書いてます。

SIerのSE」はエンジニアになれたか?

AWS、JAWS-UGに携わる前は、いわゆる「SIerのSE」をやってました。正直、自分のことをエンジニアを言っていいのか不安がありました。
自分で何かを作れるわけでもなく、「設計」と「テスト」をやっているだけでエンジニアではなかった気がします。エンジニアは技術を生かすのが仕事ですが、それをしていませんでした。

しかし、JAWS-UG等のコミュニティに参加することで、SIer以外の人とふれあい、考え方が変わった気がします。そして、技術や情報について受け身だったのが、少しずつですが自分で検証して外にアウトプットできるようになってきました。そして技術の仕事をちゃんとできるようになったと思います。

今は、「自分はエンジニアです」を自信を持って*3言えるようになりました。

最後に

自信を持って「自分はエンジニアです」と言えるようになったのは、JAWS-UGのに皆さんのおかげだと思っています。JAWS-UGの関係者の皆さん、本当にありがとうございます。

*1:「クラウドアーキテクティング原則」などです。

*2:サボってませんよ。ちゃんと年休です。

*3:まあ、三流かも知れませんが、、、

サバフェスに参加したよ!前篇

11月に1週間も開催されたCloud Server Festa 2013 Autumn(サバフェス)に参加しました。
その参戦記でも書いてみます。12/11に表彰式もある*1しね。

なんで参加したか?

はい、賞金20万円に釣られました!
ということは置いといて、チューニンガソンが面白そうだなと思っていたのですが、前回参加しそびれた後、次が開催されなかったので、同じようなものが開催されたなと言う事で参加しました。

どんな内容

一言でいうと「WordPressを5台構成で如何に早くできるか」です。

環境は、以下です。

  • IDCフロンティアさんのクラウドで、サーバのスペックはM8までを5台まで使用可能。
  • OSは、CentOS6.4 64bit、WebサーバはApacheかNginxのみ、DBはMySQL
  • WordPressのソースは一切触らず、プラグインも禁止。

細かいレギュレーションは、ここ(http://serverfesta.info/?page_id=11)に書いています。

最初にしたこと

「参加の手引き」に従ってWordPressをインストールしましたが、とりあえず、PHPMySQLCentOS標準のバージョンから新しいものを入れました。

  • PHP 5.5.6(@remi-php55)
  • MySQL 5.5.34(@remi)

PHPは最新を入れました。
MySQLは5.6も考えたのですが、設定ファイルの場所が変わっているのと、どこかでBenchMarkがあまり変わらないのを見たので5.5を入れました。

それと、ベンチマークの確認です。
サバフェスのレギュレーションでは、2時間に1回しかベンチマークが走らないので、スコア確認をやりにくいのです。
一旦、負荷のアクセスログを確認しました。アクセスは単純で、最初にGETが1分、POSTは2分で、アクセス先も固定されていました。
GETは"/"で、POSTは"/wp-comments-post.php"にアクセスが来ていました。

とりあえずGETの対策

GETの後にPOSTというアクセスだったので、GETはキャッシュを返しても問題なさそうでした。
Varnishを入れてスコアを見るとGETで80,000位行ってました。ただ、WebサーバがApacheとNginxのみという制限がどこまで影響するかわからなかったので、VarnishをやめてNginx+PHP-FPMを入れました。Nginxでも80,000程度のスコアが出てました。
VarnishもNginxもまともに触ったことが無かったので、ちょっと苦労してました。

後半戦になる

他の参加者のスコアを見ると、GETが400,000越えのスコアも出ていました。POSTに至っては、2,000,000を超えるという化け物級のスコアだし。
まったく勝てる気がしない、、、

そうしたらtwitterの公式アカウントで、

とか言っている。
もしかして、意味が分からないスコアは、ステータスだけ返してる???
もう一度、ベンチマークのリクエストを確認すると、大量GET->大量POST->5secのwait->最後にGET となっていたので、最後のGETでPOSTの結果を確認していると推測。
何故ならGETがキャッシュのみを返していたため、POSTのスコアが0になってました。
確認用GETリクエストのwaitが5sec程度なので、キャッシュも5secに調整したら、POSTのスコアが戻りました。

正直、GETはこれ以上思いつかないので、POSTをどうにかしようと対応しだしました。
っとなったのですが、そろそろ面倒になってきたので、これ以上は後編に書きます。
では!

*1:まあ、表彰される順位ではないでしょう、、、