1年ぶりでもビール飲んでた
技術ネタは会社ブログに書くので、1年ぶりに書くのもビールです。クラフトビール Advent Calendar 2018の6日目をずいぶん遅れて書いてます。
会社に近い神田のTAP×TAP 神田店に行ってきました。
メニューはこんな感じでした。
IPAなんだけどかなりスタウトの味わいで、ホップの苦味が出てくる感じでした。
次のクラフトビール Advent Calendar 2018は13日なので遅れないようにビール飲んでいくぞ!
大阪に赴任してもビール飲んでる
前職の退職エントリー以来3年半ぶりに個人ブログ書いてます。今の会社に転職してからブログは200本くらい書いてるけど技術ネタは全部会社ブログに書いているので個人ブログはお休みでした。
さて、この記事はBeer Advent Calendar 2017の12月20日のエントリーです。12月と来年の1月は大阪に赴任しているので、こちらで飲んたクラフトビールについて書いてみます。今のところ行ったのは3店です。
CRAFT BEER BASE garden
会社の近くにあり、とても寄りやすい。
飲んでたのはこちら。
CororaSession IPA
飲み口は爽やか
BREW BASE Prototype
酸味と甘みを感じるIPA 苦味は抑えめ
これはビールじゃなくでCIDER
Farm Batch #3
ここは肉料理も美味しそうだし、Nitro Cold Brew Coffeeもありました。隣の方がスキレットに肉を盛り合わせたものを食べていたので次に行く時には食べる。
BEER BELLY 土佐堀
飲んでたのはこちら。
MINOH BEER ヴァイツェン
Weizen
MINOH BEER W-IPA
MINOH BEER スタウト
MINOH BEER ペールエール
ここは箕面ビールメインでした。それとビールじゃないけど江戸堀バーガー、オムレツとか牡蠣とか食べてました。
それとOSAKA CRAFT BEER MAPを手に入れたので、今後の大阪のビールが捗ります!
GARAGE39
御堂筋と堺筋の中間にあります。
伊勢角屋麦酒 Pale Ale
伊勢角屋麦酒 ゴールデンドラゴン
京都醸造 週休6日
これは名前で選びましたw
さいごに
大阪でも旨いビールを飲んでますよ!
本日 #脱藩なう します
※注意1:これは個人の日記です。内容のレベルについての御批判は御遠慮下さい。
※注意2:ここで言う「脱藩」とはAWS界隈で言う退職/転職の事です。
現職を辞めた理由は音楽性の違いです。
以上!
というテンプレはここまでです。
今の勤務先である株式会社日立ソリューションズを6月30日付けで退職しました。2003年に新卒で入社して11年間在籍しました。入社時はSEという職種もSIerという業種も、なんとなくしか理解せずに就職した思います。親会社とは関係しない「外販」をメインとした製造業のお客様をターゲットの部署に配属されました。製造業の部署にも関わらず様々な業種のお客様を担当させて貰えました。自部署の仕事は、社内では相対的に小さい案件が多いため、自分の裁量が効きやすい仕事が多かったと思います。
しかし、2011年の春に心を病み1か月ほど入院し、そのまま1年近く休職しました。休んでいる間、会社が指し示しているマネジメントとして上がっていくキャリアパスと、自分があこがれているエンジニアの間に差を感じ転職を選択肢の一つとして考えだしました。
2012年に復帰すると新規案件にアサインされました。そのためのスキルを得るために外部の勉強会に参加するようになり、今ならできないながらも一応エンジニアを名乗れるようになったかなと思っています。
現職では、エンジニアのままのキャリアパスが無いため、エンジニアをやっていきたい自分とは合わないと判断し、現職を離れる事にしました。
冷静に見て、自分が所属していた部署は新規のサービスを作っていくというマインドがあります。新規事業を自分で創造したい人には、良い会社ではないかなとは思います。会社のキャリアの考え方は自分とは合いませんでしたが。
転職活動を開始したのは、今年の春に運営したJAWS DAYS 2014です。懇親会に勢いでつぶやいた後に活動を開始しました。
割と本気で、 #脱藩ナウ っで言ったらどうする?
— まろんふぁーすと a.k.a. ぜろグリ (@maroon1st) 2014, 3月 15
幸い次の会社は決まっており、明日からは違う肩書になります。
心身を壊さないように程々で気合を入れて頑張っていこうと思っています。
最後に「で、誰?」はいらないです。
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は以下のようになりました。
まとめ
現在では、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台のマシンへ集約するようにしてみました。
こんな感じです。
作りは、かなり適当です。非同期でデータを集約するのはShellを作成してループで回しただけだし(Supervisorとか使ってない)。
結果
全体としては、8位でした。POSTは比較的アクセスを稼げました。GETはDSRの有無でアクセスが倍くらい違っていたので、まだまだという感じでした。
もう一歩チューニング、、、
DSRはやった事が無かったと、クラウド環境で使えると思っていなかったので、もう少し時間が有ってもGETは稼げなかったと思います。
POSTの方は、WordPressとMySQLの間に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の中の人として
横浜支部で何回か勉強会を運営してました。横浜支部のイニシアチブを吉田さんがとってくれていることも有り、色々な勉強会を開催しました。
例えばこんなの。
- JAWS-UG 横浜支部 第3回勉強会「AWSとセキュリティ Bastion 1」 on Zusaar
- JAWS-UG 横浜支部 第4回勉強会「第1回ワールドカフェ(AWS設計・移行ワークショップ)」 - connpass
- JAWS-UG 横浜支部 第5回勉強会「chef on AWS ベストプラクティス」 on Zusaar
そして、今年の6月に「秋に大阪で大きいイベントを開催するぞ!」とJAWS-UGの中で話が上がり、流れで運営者の一員になってました。
ただの運営者の一員で御手伝い的な乗りだったのですが、横浜支部でやった ワールドカフェ を大阪でもやることになり、セッションを実際にやる人になってました。それまで、ほとんど発表することがなかったので正直どうしようと思っていたのですが、横浜支部のみんなのお陰で無事成功をおさめられたのかなあ、と思います。
その時やった内容は、これ「JAWS FESTA Kansai 2013 で一番長いセッションをやってきた - maroon1stの技術日記?」に書いてます。
「SIerのSE」はエンジニアになれたか?
AWS、JAWS-UGに携わる前は、いわゆる「SIerのSE」をやってました。正直、自分のことをエンジニアを言っていいのか不安がありました。
自分で何かを作れるわけでもなく、「設計」と「テスト」をやっているだけでエンジニアではなかった気がします。エンジニアは技術を生かすのが仕事ですが、それをしていませんでした。
しかし、JAWS-UG等のコミュニティに参加することで、SIer以外の人とふれあい、考え方が変わった気がします。そして、技術や情報について受け身だったのが、少しずつですが自分で検証して外にアウトプットできるようになってきました。そして技術の仕事をちゃんとできるようになったと思います。
今は、「自分はエンジニアです」を自信を持って*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をインストールしましたが、とりあえず、PHPとMySQLはCentOS標準のバージョンから新しいものを入れました。
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の公式アカウントで、
@netmarkjp 本日レギュレーションに(「4.競技終了後」)最終計測の詳細追記しました。URL DBをtruncate→ベンチ計測→POSTの書込みを確認、といった流れです。懸念点がありましたら明日技術担当に確認してみます。
2013-11-21 00:07:59 via HootSuite to @netmarkjp
もしかして、意味が分からないスコアは、ステータスだけ返してる???
もう一度、ベンチマークのリクエストを確認すると、大量GET->大量POST->5secのwait->最後にGET となっていたので、最後のGETでPOSTの結果を確認していると推測。
何故ならGETがキャッシュのみを返していたため、POSTのスコアが0になってました。
確認用GETリクエストのwaitが5sec程度なので、キャッシュも5secに調整したら、POSTのスコアが戻りました。
正直、GETはこれ以上思いつかないので、POSTをどうにかしようと対応しだしました。
っとなったのですが、そろそろ面倒になってきたので、これ以上は後編に書きます。
では!
*1:まあ、表彰される順位ではないでしょう、、、