2017振り返り

なんとなく今年の振り返りでもやろうかなと思ったので
TwitterやFacebook、その他SNSに散らばってた情報を拾い集めて、
今年やったことや触れた技術、買ったものとかをまとめてみる。
※ 記事が書いてるうちにだんだんめんどくさくなって適当になってるところとかもあります^^;

1月

専門学校の臨時講師

依頼が来たので、学生さん相手にいろいろお話をする。(2月まで)
教科書通りにクラウドとはなんぞやってお話から
仕事でそこそこ利用してたAWSの話だったり、
AnsibleやDocker、自動化のお話とかもいくつか。
セキュリティのお話もちょっとだけしてたのだけれど、
ちょうどWordpress7.0あたりの脆弱性が話題になった頃だったので
学生向けに再演してみて、これは1日でうん万件やられるよねとか、
こんなんあったりするから身近で使ってるものは
IPAとかJVNとかNVDとかJPCERTとかこういうサイト見たりしてアンテナ張って、
アップデートが必要なソフトは早めにやろうね!ってお話をしたりとかしてました。

Expect

rubyでexpect使ってスイッチの設定投入の自動化やってみたりするも
対話形式めんどくさいのでやっぱり、API用意されてるならそっちから投入したほうがいいって結論に。
AnsibleとかCiscoのスイッチの設定投入とかできるようになってるぽいけど、中身どうなっているのだろうか。
気になってはいたけど、そこまで調べる元気はなかった。

JANOG 39

現地に行けないので、ストリーミング配信を見る
DDoSのお話とか, DNSのKSK rolloverのお話を聞いたりとか

Sphinx

ドキュメントをWordやExcelで書かずに、
Markdownで書けて、gitでバージョン管理できるいい感じのツールを求めてて
Sphinxを触ってみた。
結構使いやすかった記憶はあるけど、
飽き性なので1週間くらい触って終わる。
ドキュメントは1本書いた。

iOS Objective-C WKWebView

WKWebViewでネイティブの機能との連携周りのコードを書いてました。
GoogleやFacebookの認証情報をローカルストレージに保存するようなの書いてたりしたような記憶がある。
WKWebViewは裏側でJavascriptを実行できたっけ。
そんなことをやって画面上のデータを抽出してDBに書き込んだりとかしてました。


2月

Re:dash

BIツール, Re:dashを触り始める。
SQL全然かけなくて挫折するものの、
やってくうちにSQLは書けるようになった気がする。
LEFT, INNER JOINくらいは全然。
PostgreSQLの独自関数とか触るように。

Insomnia

curlでPOSTパラメータをこねこねしながらREST API叩くのも結構しんどくて、
いいツールないかなと探してたら先輩に教えて貰った。
プロジェクト単位で管理できるので結構良かった。
今年はTwilio使うことが多かったので、APIパラメータの検証とかやっててすごく重宝した。

会社の椅子が変わる

バランスボールの生活が始まる。

Rails

Railsは学生時代にちょろっと書いてたり、
入社半年くらいでもそこそこ書いてたけど、
個人開発でRailsでWebアプリを書くことに。(5月くらいまで)
認証周りはだいぶハマって,
Device Cancancan Rolify, Google認証でだいぶつまづいたような。
フロントエンドの知識が全然なくて泣きそうになるも、
やっつけでWebアプリを書いてた。
人の使いやすいUIやUXを考えるのもいい勉強にはなったけど、
自分の思った通りには全く実装できなかった。
現在でも身内10名ほどが利用している。

AWS

会社で使ってたけど、個人で契約。
ここからAWSの利用が加速した。
無料枠なのをいいことにガンガン使い始める。
APIGateway + Lambdaな構成を
あれこれ書くのが増えてきた。


3月

シマンティックSSL

Google Chromeがシマンティックが発行したSSLを弾くニュースが出た。
RapidSSLの証明書使ってたので、乗り換え先とか探してたけど動向が気になってたので結論はここでは出さず。

CISSP

CISSP取ってみようかと勉強し始めてみる。
ただ、5年間の実務経験がないと合格しても準会員になるので、
もう少し実務経験積んでから受けようということになり、
2週間だけがんばってた。

Serverless framework

本格的にServerless Frameworkを使おうと思い、
生のnodeで書いてたやつを全部Serverless Frameworkに移植。5つくらいは移植し直して
APIGatewayもserverless.ymlで定義できるようになったので結構幸せになった。

TypeScript

TypeScriptを軽く覚える。
型定義が提供されてないライブラリを利用しようとして悩んでたりとかしてた。

webpack2

TypeScriptとwebpackを組み合わせてごにょごにょやっていたような気がするけど、よく覚えてない。
ライブラリを単一のjsファイルに書き出しができるのすごく良かった。

Twilio

TwilioのSMSとVoiceを触り始める。
といっても、SMS送ったり電話かけてみたりだけ。

Rails?

Rails5のβ版を触り、SlimテンプレートとJavascriptでフロントエンドな開発をしていた。
ModelとControllerは全然使ってなかったかも。
外部APIを呼び出してJavascriptでView作る的な感じ。
でも出始めのwebpackerとか触ってみたり、Githubのissue読んだりとかしてた。

yarn

持ってたプロジェクトでnpmを使用してたものを全部yarnに切り替える。


4月

情報安全確保支援士を受験

午後2が後2点でダメでした。

GCPUG in OKINAWA#4

機械学習どんなもんだろうかと思って遊びに行った気がする。
機械学習やるためのインフラを用意するのって結構苦労すると思うのだけれど、
APIで呼び出せるのはすごい良かった。
懇親会でいろんな人とお話できた。

jawsug okinawa

Serverless Wordpress HostingのShifterに出会う。
インフラ構成図を見たときにこれはピタゴラスイッチだと思った。
サーバレスでこういうサービスが作れると面白そうだなあって眺めてた。
いつかはEC2インスタンス使わずに、サービス作ってみたいと考えるように。
懇親会でいろんな人とお話できた。

STMに応募

毎年6月ごろに幕張メッセでInteropというイベントをやっているのだけれど、
Shownetのボランティアメンバーの募集をやっていたので、応募してみた。

Docker

Dockerは入社仕立てのときから触ってたけど、
Railsアプリを運用するためのDockerfileをごりごり書く。
Web, AP, DBは全部コンテナ分けて
static fileはunicornじゃなくてnginx側で配信するようにしたりとか
いろいろ頑張った。
書いたやつ今現場で動き続けてる。


5月

STMの選考通過

4月に応募していたSTMの選考が通った。

メールサーバの移行

さくらのクラウドでメールサーバ立てて自前で運用していたけど
飽きたのでGsuiteを個人で契約。
毎月500円くらい払ってメールアカウントを維持している。

Hardening 1010CashFlow 選考通過

4月,5月くらいに応募したけど、これも選考通過したので
チームミーティングしたりとかいろいろやりとりしてました。
ハードニング勉強会が沖縄でも開催されたので、参加しました。

Twilio

Twilioがっつり触る。
InsomniaやTwilioのSDKを利用してAPI叩きまくってた。
今年はTwilioにだいぶお世話になった。

CakePHP

WebフレームワークはRailsしか触ったことなかったけど、
お仕事でCakePHPを触るように。
この間CakePHP2は暗黒時代って勉強会で言われたのだけれど、
何が暗黒時代だったのかは未だによくわかってない。
でも、CakePHP2系だとcomposerとか使いづらくて
ライブラリとかも結構入れにくいなあっては感じてた。
やりようはあるんだろうけど。

SequalProに出会う

CLIベースでmysqlにアクセスしてばっかりだったけど、
どっちのDB見てるのか時々わかんなくなったりしてたので
GUIのツール探してたら、SequalProがいい感じだったので
それ触ってました。今でも結構使ってる。

djbdnsを触る

bind以外のDNSあるんだろうかって調べてたら見つかったので
遊んでた気がする。

gixy

nginx.confの静的解析ツール。confのここがダメって教えてくれるので
nginx動かしてたサーバのconfを全て検査かけて直してた。


6月

Interop 遠征

沖縄から幕張へ。
STMの体験記とか書きました。
NDAあるのであんまり詳しくは書けないけど、
すごく良い経験になりました。

OSC 2017 okinawa

今年はほとんどセミナーばっかり聞いてて出展ブースにはちょっと顔だしただけでした。
NutanixのHCIについていろいろとお話聞いたり、コミュニティの運用について考えるお話があったり。
懇親会ではカプラといっちょんちょんを聞いた

MacのAD参加

Homebrew周りで結構はまりそうだったので、
一度クリーンインストールしてからのAD参加。
おかげでハマりどころは全部回避できた気がする。

Hardeningに参加

全く知らない人たちとチームになってビジネスを守るのって結構楽しかった。
サービス落とされた時はすごい悔しくてリアルに「ぐぬぬ。。。」って言った気がする。
2位でした。
懇親会では運営の人や参加者と積極的に交流した。

会社からCisco機借りたので遊ぶ

割愛

Twilio機械検知とかで遊び始める

サポート対象国に日本が入ってないのだけれど、
使ってみてデータ取ったりしてた。

ドメイン更新してサーバーレスブログにする

当初はさくらのクラウドで運用してたのだけれど、クーポンが切れたタイミングで
AWSに移行した。
このブログはHugoで静的ページ吐き出してるだけなので
CloudFront + S3な構成で運用することに。

Zabbix-Agentが動かない問題

ここはブログで書いたので割愛

Capistranoがっつり触る

5月から書いてたCakePHPアプリのデプロイを自動化したくて
Capistranoを触る。
(入社当初にも触ってて、だいぶ前にブログ書いた気がする)
Capistranoは学習コスト結構高かった気がするけど
おかげさまでアプリの更新が一瞬で終わるし、ロールバックも簡単なので
学習コスト払った価値はあったと思ってる。


7月

init.dのスクリプトをsystemdに書き直すお勉強

そんな大した手間じゃなかった… はず… あまり記憶が無い。

owasp okinawa 5.5

Hardeningの振り返りとか。
ここで初めて、脆弱性診断業務について知った。

画像認識サービスを使ってみようハンズオン JAWS-UG沖縄

結構面白かったので、
APIGateway + Lambda + Rekognition + Linebotなサービスをちょろっと作ってみて、
Linebotにガッキーとかほしのあきの画像をアップして遊んでた。
ガッキーの髪が短かったのかMaleが50%って判定された。

XSS Gameで遊んでみた

ブログ書いたので割愛

JANOG40

現地行けなかったのでストリーミング配信で。
ShowNetの話とか自作ロードバランサの話とか聞いてた。

セキュリティミニキャンプ

大学時代のボスからミニキャンプの講師依頼が来た。

nginxチューニング

夜間作業が入り、Webアプリが動作する物理サーバのアップデート作業だったのだけれど、
メンテナンスページは出したいという話になり、机の引き出しに眠ってたRaspberryPiにnginx入れて、
ちょっとチューニングしてabコマンドで3000リクエストくらい送ってFailしないやつ作ってみたりとか。


8月

自宅の机を新調

L字型になって作業スペースが広くなって自宅での作業がしやすくなった。
ルーター3台並べたり、ディスプレイ並べたりしてる。
いつかは椅子も新調する。アーロンチェアとかに座りたい。

Grafanaで遊び始める

Zabbixのグラフをもっと綺麗に見せたいと思い、
Grafanaで遊び始める。
大量のグラフを載っけたダッシュボードとか作って定期更新かけてたら
Zabbixサーバが高負荷でアラートが飛びまくり。
jsonrpcって結構重たいんだなってのを実感したので、
Zabbixのインスタンスサイズを上げる。

SoftwareDesign購入

エンジニアのためのうけるプレゼンってトピックが気になったので購入。
セキュリティミニキャンプ用にプレゼン資料とか作成するつもりだったので、勉強用に。
内容はすごく良かったけど、話慣れ、場数は必要だなあという結論に。
練習したいなぁとFacebookでつぶやいたら、とある大学さんからお声がけいただいた。

ChromeCast Ultra購入

うち4KテレビないけどUltra購入。
まだAbemaTVとか見るくらいにしか使ってないので、そのうち使い倒す。

JTFのライブ配信を見る

JULY TECH FESTA 2017のライブ配信があったので見てた。
「どんなに頑張ったって運用の自動化もDevOpsも進まない。そう、テストがなければね」というのが一番印象に残ってる。

terraformを触り始める

AWSのインフラ構築の自動化がやってみたくて、
この頃よく記事になっていた気がするTerraformを覚えることに。
CloudFormationでも良かったはずなんだけど、なんとなくTerraformでインフラ構築をいろいろやってた。

CodeBuildとGithub連携

GithubでPRがMergeされたらCodeBuildでDockerImageを生成し、タグをつけてContainer ServiceのリポジトリにPUSHするというのを作ってた。
これもブログ書こうと思ってて、下書きに眠っている。
APIGateway + Lambda + CodeBuild + ElasticContainer Repository Service? な構成で作ってた。

Zabbixのエスカレーション

アクションのエスカレーション設定を触る

RDS監視

ZabbixにAPIキー仕込んで、RDSのメトリクスを取得するのを書いてみたり

Redmineのアップデート作業

3.4系にするとGitmikeのテーマがちゃんと動かなくて悩んでた

Twilio戦い

なんか戦ってたログが残っていた。


9月

JANOG BoF LT見てる

配信あったので見てた。 CumulusLinux, pingアスキーアートのお話とか。

興味本位でbitcoinを買う

1年後くらいに叙々苑いけるくらいになってたらいいなと思い少額投資。 叙々苑のコース2回分頼めるくらいには増えてた。

GCPに触れる

インスタンスのスナップショットを定期的に取りたいよというお話があったので
AWSのLambdaからGCPのAPIを叩くという暴挙に。
ドキュメントとか漁ってみても
Google Cloud Functionだけでは、
CloudWatchのような機能が実現できそうになかったので、
諦めてAWSのLambdaで書いた。

Hardening Fesの募集開始

応募しようかめっちゃ迷ったけど、いろいろ重なり断念…
次は絶対に応募するって決めた。

Fortigateを自宅に投入

ヤフオクで安くで手に入りそうだったので購入。 自宅で運用中。

AWS認定試験が沖縄で受験できることを知る

半年くらい前から目をつけてたのだけれど、主要都市でしか受験でできなかったので諦めてた。
が、試験センターが変わったようで沖縄でも受験ができるように…!
これを知った翌日には受験申し込みをした。

terraform

8月からEC2インスタンスやRDS立てるくらいのterraformを書いてたんだけど、
VPC周り(ルートテーブルやネットワークACLとか)もterraformで作ってみたり。
結果としてAWS認定試験の勉強に結構役に立ったと思ってる。

コスト配分タグを触る

AWSはコスト配分タグというのがあって
プロジェクトごとに利用してるサービスにタグ付けして料金の内訳みたりとかしてた。
でも、プロジェクトごとにアカウントを分けたくなるのはなぜなのだろうか。

Swift3

アルバイトしてた時、Swift2系で書いてたアプリを3系で書き直す。
でも、XcodeでConvertが走ったのでやることは少なかったけど、
Convert効かなかったところは手で直したりしてました。

SQS触る

AWSのSQSサービス触って遊んだりとか。FIFOキュー早く東京リージョン来ないかなあ。待ち遠しい。

Vuls

これまでもちょいちょい触ってたけど、
以前に比べてJVN Fetchがだいぶ早くなったなって実感した。
今でも結構使ってる。

Github NotificationをSlackに

GithubのPR, OpenとCloseだけの情報が欲しかったので、
Slackに通知するスクリプトを書く。
APIGateway + Lambdaで実装した。

DBのトランザクションで悩まされる

CakePHPのDaemonでバッチ処理書いてたけど、
時々変な挙動をすることに気づいてよくよく調査したら
とある関数でエラーが出た時に、rollbackの記述がされてなくて
トランザクションがネスト状態になりおかしな挙動をしてた…
これに気づくまで1週間くらいかかってた。


10月

CiscoのAPを購入

家の無線が増強され、家庭内どこでもトイレでも11acが使えるように。

googlehomeを購入

自宅にはHueを設置しているので、買ってすぐに連携。
音声で家の照明が操作できるのですごく便利です。
電気消すために起き上がらなくていいのは最高。

naxsi

NaxsiはnginxのWAFモジュール。
利用するにはnginxを自前でビルドするしかなくて
ビルドするのに結構はまったりしてました。

AWS SAA合格

ブログ書いたので割愛

ネスペを受ける

最近合格発表出たんだけど、午後2が後2点だった…
真面目に勉強します….

Cognitoを使う

AWSの勉強会でCognitoに触れる。
ハンズオンで認証、認可のお話から実装まで。

Websocket

Websockify(WebSocketの中継サーバ)を利用して遊んでたりしたこともありました。
結構ハマってWiresharkでパケットキャプチャしてパケットの中身見て
Websocketの挙動を確認したり、フレーム構造がよくわからなくてRFC眺めてたりもしてた。

Reporter

iOSの売り上げレポートとかが取れるライブラリ。
以前は、IDとPWベタ書きでしか使えなかったんだけど、
いつのまにかAccess Token必須になっていた。
ここもたしかブログ書いたはず…

Twilio

一人であれこれ検証したり、バグ見つけて技術サポートに問い合わせしたりとかしたりしてた。
Twilio使いとの情報交換とかやりたくて、TwitterやSNSで情報発信してる人をフォローしたりとか。

証明書更新

サービスで利用していたワイルドカード証明書(RapidSSL)の更新があって
3月くらいにGoogle ChromeがSymantecのSSL証明書は今後認めない的な発言があってから
証明書何買うかで結構悩んでた。
3年分の方が安いので、それを買うように言われたけど、
Symantecのような件がほかにも出てくる可能性を考慮して, RapidSSLの証明書を1年分だけ買った。
本当は別のSSL証明書買ったほうがいいのだけれど、ワイルドカード証明書ってどこも高いんですよね…
結局、執行猶予ギリギリまでRapidSSLを利用することに。

AWS Lambda

LambdaってENIを自動的に紐付けて利用するのだけど、
Lambdaが利用するIPアドレスをどうにかこうにか変化できないかなって検証してた。
結果的にLambdaを起動する度にIPアドレスを変える的なことはできなかったんだけど、
1つのLambda Functionを100件くらい並列実行したら4~7IPくらいにはばらけてくれてた。

脆弱性診断

Kindleで脆弱性診断本がお安くなってたので購入。
Burp Suiteの無料版をDLして、BadStoreの診断をやってみたものの
全然うまくいかず。。。

キャリア的な悩み

ここまでやってきたことを振り返ってみても
インフラやってたりプログラム書いてたり、いろんなもの検証したり
いろんなことに触れられてるのはいいけど、
全部中途半端なのでちょっと悩んでた。
そろそろ何か技術的に尖ったものが欲しいとか思うように。


11月

モバイルルータと固定IPSIM

モバイルルータと固定のグローバルIPv4アドレスが利用できるがSIMを契約
Fortigateに刺して家の回線を冗長化したが、障害が滅多に起きないのでほとんど利用してないので
時々、モバイルルータをFortigateから外して外出先で使ってる。

Twilio Studio

Twilio Studioのプレビュー版が9月末に公開されてすぐにリクエストを送ったけど、
2ヶ月待ってようやく利用できるように。
ドラッグアンドドロップでなんちゃってコールセンターができるので遊んでた。
プレビュー版だからか日本語がまだ利用できないっぽいけど
ノンプログラミングでここまでできるならすごい。
Slack Teamにも入って動向を調査中。

大学で講義

8月にお話をいただいてたので、ミニキャンプ講師の練習も兼ねて1コマ分講義しました。
人前に立つのってほとんどないのですごく緊張してました。
会社のこととかセキュリティ関連のお話とかやりました。

IPSec-VPN

AWSのVPCと自宅のFortigateでIPSec-VPNを張って遊ぶ

favicon

5月くらいに作成してたCakePHPアプリのログ解析でもやろうかなと眺めてたら
9割くらいがfaviconのエラーログだった….
favicon全サイズ作ってwebrootに配置して対応。

その他

  • JAWS-UGでbeenstalkを触る
  • Ansibleを500行くらい書く
  • InfluxDBを触る

12月

coconalaで似顔絵を描いてもらう

今Twitterで利用しているアイコンはcoconalaで依頼して描いてもらいました

ブラウザ操作の自動化

Selenium, Headless Chrome, Rubyでブラウザ操作の自動化をやってみる
ECサイトで買い物できるくらいのものを作成

侵入テスト申請

セキュリティミニキャンプで利用する演習環境をAWSで作成してたのだけれど、
VPC内部で閉じるとはいえ攻撃パケットが飛び交うので侵入テストの申請(英語)をやった。
久々に300行くらいの英文を書いた。
3日後くらいには許可が下りた。
上限緩和申請とかもやってみたけど、日本語でOKだし、「必要だから」で通っちゃうのでそんなに手間ではなかった。

APIGatewayをカスタムドメインで運用

APIGateway + Lambda + DynamoDBの構成でサーバレスな短縮URLサービスを作ってみた.(公開はしてない) APIGatewayのドキュメント見てたらカスタムドメインが使えるらしくて設定した。

セキュリティミニキャンプ

講師として参加し、4時間の講義を実施しました。
Hardeningオマージュな環境を学生さんに提供し、
チームでECサイトの堅牢化をしてもらいました。

OWASP OKINAWAでLT

セキュリティミニキャンプのこととか
演習環境を作成するにあたっての苦労話とかをLTでやりました。

BurpSuite Proを買ってみる

本気で脆弱性診断の勉強をしようと思ったのと、ちょうどボーナスが入ったので買った。 年末年始はBurpSuiteと戯れてる予定

———

雑感とか

いろんなものに触れているけど、
触れてるだけでがっつりは触りきれてないなあって感じてるので
来年は何かしら尖った技術を1つ作りつつ
なんでもやれるような人になろうと思います^^

それではみなさん良いお年を。