プログラミング

kubernetes上で単発のジョブを実行するツールを作った

kubernetesにはJobというリソースがある(CronJobもあるよ). このJobを使いたい用途が2つあった. デプロイ時のmigration等 Rundeckからジョブを実行したい というわけで,この2つを両方共満たせるものを作った. github.com

できる限りterraformでリソース管理しつつkopsでkubernetesクラスタを作る

最近KubernetesクラスタをAWS上に作っているのだが,EKSは結構お高い. これはどうしても削れない,EKSの利用料金として,$0.20/hour持っていかれるためである. EKSだけでだいたい$144/monthかかることになる. これは流石に痛いので,kopsでKubernetesクラ…

IstioでgRPCのリクエストを振り分ける

前回 はIstioでHTTPのリクエストを振り分けていたので,今度はgRPCを扱ってみようと思う. といっても基本的な構成はそんなに変わらない. 前回とほとんど同じような環境を使うので, Helm Istio Auto injection あたりの設定は終わっているものとする. ま…

IstioでHTTPのリクエストを振り分ける

前回の記事で,Envoyの話をした. Envoy,すごく便利なのだがこの設定を全コンテナごとに書いてやるのはなかなかにめんどくさい. せっかくSidecarなのでもっと楽に差し込めたら良い. あと,せっかくEnvoyを使っているので,static_resourcesだけじゃなくdy…

EnvoyでgRPCをロードバランスする

gRPCサーバをサーバサイドでロードバランスしようと思う. なお,この記事はKubernetesを前提にしている. ECSの場合これと同じ方法でうまく行かない気がしているので注意.

EKSのノードをSpot Fleetで構築する

EKSをterraformで作っている.そうするとEKSのノード群をAutoscalingGroupで構築する例は出てくるのだが,これをSpotFleetを使って構築しようと思う.

AWS ECS上にErlang(Elixir) Clusterを組むためのツールを作った

PhoenixをDockerに乗せてAWS ECS上で運用している. PhoenixはPubSubの機構を持っているが,このバックエンドは,デフォルトではPG2というErlangクラスタ内のプロセス間通信を前提にしたものになっている. ECSのようなDockerクラスタ上にPhoenixを載せる際…

IAMユーザにMFAを強制しつつterraformする

AWSのIAMユーザで,コンソールログインする際には必ずMFAを強制したい,と思うことがある. というわけでそういうIAM Policyを作って当ててみた. IAM Policyでの強制 だいたいこういうのを参考にすると,そのまま使えるのがある. blog.vtryo.me ただし,注…

AWS ECS上にfluentdクラスタを構築し別のVPCからログを送りつける

この記事は scouty Advent Calendar 2018 の17日目です. fluentdに関して,勢い余って今年こういう発表をした. speakerdeck.com 完全に酔っていたので勢いだけなのだが,その後マトモなfluentdクラスタができたので書こうと思う. もう二度とchefで作ろう…

Whalebirdの重かった部分の話

この記事は Mastodon Advent Calendar 2018 の10日目です. 普段はMastodonのデスクトップ向けクライアントWhalebird を開発しています. https://whalebird.org あと,Pleromaのインスタンスを運用してます.全然人が少ないし特に何も運営らしきことはして…

RundeckをECS上に構築してGitHubログインできるようにする

この記事はscouty Advent Calendar 2018 の3日目です. ECSで動かしているサービスのスケジュールジョブが多くなってきた. もともとECS Scheduled Taskを使っていたんだけど,数十個レベルになってくると,これで管理するのはだいぶつらい. というわけでRu…

AWS ECSのタスクを実行してログを標準出力に出すecs-taskというツールを作った

色々あって最近Rundeckを建てている.そのへんの話は後日書く. で,RundeckからAWS ECS上のタスクを発火しようと思ったのだが,なかなかいいツールがなかったので自作した. github.com

pleroma.ioというPleromaインスタンスを立てた

というわけで立てた.別におひとりさまインスタンスというわけじゃなく,新規登録も開放しています.特にテーマはない. ioドメインが取れたので, pleroma.io にしました.まぁゆるく .io のあたりから察していただけると. https://pleroma.io 建てたって…

Elixirでslack botを作る

hubotでSlack botを作っていたときに思っていたことがある. この正規表現はかなりめんどくさい.Elixirのパターンマッチで書いたらもっと楽になるのではないだろうか,と(そう簡単な話でもなかったのだが). というわけでElixirでslack botを作ってみよう…

趣味サービスのインフラをAWS ECSに載せ替えた

趣味で運営していたサービスたち,今まではEC2の上にdocker swarmで構築していたのだが,いよいよECSに載せ替えた. 基本terraform構築 ALBでhost-based routing ECSに使うインスタンスはAutoScalingGroupとSpotFleetとのハイブリッド cronはECS ScheduledTa…

js向けMastodonのAPIクライアントライブラリ,megalodonを作った

最近はずっとMastodonクライアントであるWhalebirdを作っている. いわゆるデスクトップアプリを作っていたんだけど,Mastodonへの接続部分はすべてmastodon-apiを使っていた. しかし,これにいろいろ問題があり,最終的にAPIクライアントライブラリを自作…

electronで作ったアプリをMacAppStoreリリースするまで

少し前にelectronMastodonクライアントを作ったのだが,ようやくそれをMacAppStoreに登録した. WhalebirdAkira FukushimaSocial NetworkingFree ちゃんと公開されてる. そいえば前にelectronのリリース用パッケージについても書いた. 今日はその続きとい…

Vue.jsでページ全体のカラーをコントロールする

先日Whalebirdのバージョン0.5.0をリリースした.このリリースに,アプリのテーマカラー変更が含まれている. 中身はElectronの上でVue.jsが動いているだけなのだが,どうやってテーマを変更するか,だいぶ悩んだので書いておく.

electronでリリース用パッケージを作る

先日書いたとおり,electronでMastodonクライアントを作ったのだが,パッケージ化に関してかなり迷走したので,最近のelectron事情を書いておく. electronに関しては,「ほら,こうしたら簡単に作れるでしょ?」といういわゆるHello World系の記事が非常に…

Twitterクライアントの開発を辞める

3年くらい運用してきたTwitterクライアントがあります. WhalebirdAkira Fukushimaソーシャルネットワーキング無料 2018年6月20日に予定されているTwitterAPIのUserStream廃止に伴い,このクライアントの開発を辞めます. 理由は言うまでもなくUserStreamで…

匿名ダイアリーの新着エントリーを延々読みたいだけのサービスを作った

みなさんさようなら. 新しいサービスを作ったよ. https://masuda-stream.net/ また世の中で俺しか使わないようなサービスを作ってしまった.

django-allauthのはてなログイン用providerを作った

みなさんさようなら. またいらんものを作りましたぞ.

go-bindataを使っていた部分をgo-assetsに置き換える

#GOLANG WARNINGgo-bindata creator deleted their @github account and someone else created a new account with the same name.There's no guarantees that the new user has good intentions, so if you're using the repository make sure you verify …

zshで楽にAWS EC2インスタンスにsshログインしたい

みなさんさようなら. 仕事でも家でもAWSを使っていて,よくsshログインをしなければならない局面がある. で,高度に自動化されたAWSだと,Autoscaling Groupを使ってEC2インスタンスを自動で生み出したり,また自動で落としたりするよね. ECSを使っていて…

Docker for macに乗り換えようかと迷った

もともとmacでのdockerはdinghyをずっと使っている. docker-syncはなんか違うなーと思っているし,dockerを使いはじめる段階ではそもそもDocker for macがまだ公開されていなかった. で,Docker for macが公開されたのはいいんだけど,ずっとファイル共有…

goでjsonを扱うときにいつも迷うこと

golangが好きだ. golangでjsonを扱う際,「こういうことできないのかなー」といつも迷って,やり方を頑張って探すことが多いので,少しまとめておこうと思う.

ああdocker swarm,俺はkubernetesに行くよ

今年10月,dockerはkubernetesとの統合を発表した. http://www.publickey1.jp/blog/17/dockerkubernetesdockercon_eu_2017.html しかもローカルではdocker環境と同時にkubernetes環境が構築されるとか,わけわからんことも発表されている. kubernetesは更…

vueとvuexを使ってみた感想

最近vue.jsを使っている. 今日のは感想なんで,解決策とか対処法は一切ない.ただだらだらと感想が並ぶだけである. 今までずっとReactばかりだったんだけど,書いてみると普通にかける.Reactからvueに転身するのはハードル低い感じがした. ただ,やっぱ…

echoでpongo2のtemplateを使う

Goのウェブフレームワークとして最近はechoを使っている. echoはmiddlewareも充実しているし便利なのだが,いざhtmlを吐き出そうと思うと,echoがサポートしてくれることは少ない. jsonを出している限り,あまり困らないのだが. そこで,以前使っていたpo…

scalaのgRPCで例外ハンドリングをする

またまたscalaでgRPCする話. サーバを運用する以上,例外が起こることは避けられないと思う. そしてその例外,どこかでキャッチして適切に処理したいと思う.