2018年まとめ

やったことベースで列挙すれば振り返るのも簡単なのでは,と思ったのでやってみる

OSS

滑り込みで200コミット行っていた

f:id:cohalz:20181231170725p:plain

GitHub - cohalz/keepalived-ec2: A cookook for using keepalived in EC2-VPC environment

  • chefでEC2使ってkeepalivedする場合のcookbook

GitHub - cohalz/cloudformation

  • cloudformation置き場だけど,分離しても良い気がする

GitHub - cohalz/update_name: update_name by Go Lambda

  • LambdaとCloudWatch Events使ったupdate_name

GitHub - cohalz/vscode-md2hatena: Convert Markdown to Hatena langage on VSCode

  • vscodeでMarkdownをはてな記法に変換

GitHub - cohalz/todo-cdk-sample

  • cdkでecsサービスを乗せる練習

GitHub - cohalz/CertUpdater: Lambda implementation for automatically getting and uploading to S3 for Let's Encrypt certificates.

  • 証明書自動更新基盤

GitHub - cohalz/slagg: API to aggregate multiple slack channels.

  • slackの投稿を別チャンネルへ集約

意外と作ってたけど,放置気味のもあるからもうちょっと良くしたい

Contribute

Add required IAM permissions to README by cohalz · Pull Request #11 · yuuki/grabeni · GitHub

  • 誤植の訂正と記述が抜けてた部分を追加

Add PostAccountUpdateProfile by cohalz · Pull Request #259 · ChimeraCoder/anaconda · GitHub

  • プロフィール変更する関数の追加

fix(aws-ecs): fix wrong descriptions by cohalz · Pull Request #1143 · awslabs/aws-cdk · GitHub

  • 誤植の訂正

aws-cdkは他にもプルリクしてるけど,まだマージされてないのがいくつかある

技術記事

core.cohalz.co

core.cohalz.co

core.cohalz.co

core.cohalz.co

core.cohalz.co

developer.hatenastaff.com

core.cohalz.co

core.cohalz.co

core.cohalz.co

もっと数書ける気がするな〜って感じだし増やしたい

バーチャルYouTuber関係

このころはVTuberという略称も広まってなかったはず core.cohalz.co

よくまとまってた雑誌だと思う core.cohalz.co

バズってガジェット通信から転載依頼が来た core.cohalz.co

3分スピーチ用 core.cohalz.co

ここまで成功した人もいない core.cohalz.co

感動した core.cohalz.co

アンチスレとなんJに晒されてブログのアクセスが数倍になった core.cohalz.co

めちゃくちゃ網羅してるのでエイレーンファミリーの本スレに晒されてべた褒めされてた core.cohalz.co

もう一年経つんだなぁという感じで,だいぶ状況も変わった気がする

旅行関係

  • 2月 高速バス・電車乗り継ぎで東京から鹿児島まで移動

  • 4月 青森・秋田・岩手

  • 7月 札幌・函館

  • 9月 郡山・沼津

  • 10月 鳥取

  • 11月 香港・姫路

  • 12月 高槻

もっと行ってる気がしたけど意外とこれくらいだった

グルーヴコースター関係

GROOVY FESTIVAL 5, 6のサイト制作,エントリー,当日スコア集計

GROOVY FESTIVAL 5

GROOVY FESTIVAL 6

感想

リンクがあると振り返るのもかなり楽だな〜と思ったので,積極的にアウトプットしていきたい

引き続き来年もよろしくお願いします

追記

そういえばこんな事を言っていた

文章のことしか書いてないけど,最近あんまり情熱をかけてエモい文章を作っていない気がする

文章に向き合うことをしっかり行っていきたい

Slackの投稿をまとめて一つのチャンネルに流すbotを作った

この記事は PMOB Advent Calendar 25日目の記事です.

チャンネルにbotを追加するだけで,そのチャンネルの発言を特定のチャンネルに流すことができるbotを作った.

こんな感じで,チャンネルの投稿を別のチャンネルに流すことができる

f:id:cohalz:20181231154616p:plain

構成図

f:id:cohalz:20181231152507p:plain

  1. botがチャンネルの発言をAPI Gatewayに送信する

  2. API GatewayからのイベントをLambdaが受け取る

  3. チャンネルやユーザの情報がDynamoDBに保存されているか確認する

  4. 保存されていなければSlack APIに問い合わせる

  5. 問い合わせた情報をDynamo DBに保存

  6. 取得した情報を元に投稿先チャンネルへ投稿

何故作ったのか

  • 複数チャンネルを巡回する手間の削減
    • 分報チャンネル追うの大変
  • TwitterのTLみたいに混ざったら面白そうという気持ち

使うためには

  • Slack APIのtoken
  • 投稿するためのincoming webhook
  • slack botを追加しEvent Subscriptionsでmessage.channelsのイベントを受け取るようにする

ハマったところなど

ユーザやチャンネルの情報がidで渡されてくる

こういう構成にする事になった理由として,イベントではidが渡されてくるため,名前を引くためにAPIを使うことになった

api.slack.com

Slackのイベントタイムアウトは3秒

タイムアウトが3秒しかなく,それまでにイベントに対してのレスポンスを返さないともう一度イベントが送信されてしまう

そうすると投稿先チャンネルへ二重投稿されてしまうため,できる限りすぐレスポンスを返せるようにしないといけない

今回はDynamo DBを使って,そこに情報が保存されていたらそれを使うことでタイムアウトまでにレスポンスを返せるようになった

api.slack.com

終わりに

最初は遊びで作ってたものだったけれど,意外と面白いし実用性もあって良かった

分報が全部流れるとどのくらいの流量になるのか気になる

今回作ったリポジトリはこちら

github.com

『Docker/Kubernetes 実践コンテナ開発入門』のサンプルアプリケーションをAWS CDKでデプロイした

この記事は PMOB Advent Calendar 18日目の記事です.

前回は,『Docker/Kubernetes 実践コンテナ開発入門』の4章をコンソールからECSクラスタを構築し,その上でアプリケーションを動かすまでをやった.

『Docker/Kubernetes 実践コンテナ開発入門』のサンプルアプリケーションをECSに載せる - Re:cohalz

今回はそれをAWS CDKを使って,デプロイしてみた.

作成したリポジトリをサンプル用に公開したのが以下.

github.com

気をつけたところなど

細かいところはリポジトリを見てもらうとして,気をつけたところや工夫したところをまとめる.

まず,DBは試行錯誤の途中で作り直されるのが面倒だったので,RDSに変更した.

ロググループがデフォルトで削除保護がかかっており,作り直しでエラーになるため,retainLogGroup: falseを追加した.

サービスディスカバリの追加を関数化して扱いやすくした.サービスも削除保護が掛かっているのでそれを外した.

Dockerボリュームを使うにはプロパティを上書きする必要があったのでそれをやった.

ALBは初めにaddContainerしたコンテナを負荷分散用コンテナとして扱う動作をするようなのでnginxを先に追加した.

終わりに

AWS CDKはまだ開発者プレビューという状態で,気を付けることがあったり破壊的変更もよく出る感じだけれど,こういったECSクラスタなどをさっと作るには便利だと思った.

この構成と同じものををCloudFormationで作成しようと思ったら1200行ほど書かないといけないので非常に楽になる.(その分何が作られるのかしっかり把握しないといけないけれど)

気がついたら前回から一ヶ月経っていた

イベントの運営やら旅行やらポケモンやらやっていたら全然書いていなかった

それとは別に非公開ブログにSlackの会話を貼り付けるみたいなこともやっていたせいでここの更新が止まっていた感じがしなかった

普段PCで書いていて,スマホで書けないという問題点から先延ばしにしがち

最近iPad Proもキーボードとペン含めで買ったので下書きやメモなんかを簡単に残して更新頻度上げられるといいなぁ