プログラミング

Pleromaはいいぞ

この記事は分散SNS Advent Calendar 2019 の9日目です. ふだんはMastodon/Pleromaのクライアントアプリケーションである,Whalebirdの話が多いけど,実は https://pleroma.io というPleromaサーバも運用しています. なお,この記事は,分散SNSのサーバを自…

kube2iamをIAM Role for Service Accountに載せ替えた

この記事は LAPRAS Advent Calendar 2019 の4日目です. AWS上にkubernetesクラスタを構築していると,Pod内のコンテナから,AWSのAPIを叩きたいことがある. そのためにはもちろんAWSの認証を通す必要があり,AWSのAccess Tokenとか,IAM Roleを使って認証…

Host-based routingしたALBにRoute53 Health Checkをかける

タイトルの件について結論から言っておくと,スマートな解決策は今のところない. 一応回避することはなんとなくできるのだが,全然スマートではない.今後のアップデートに期待したい.

typescriptでmemcachedのクライアントを作った

nodeからmemcachedを使いたくなったんだけど,あまり良いクライアントがない. というわけで自作した. github.com

kopsで構築したkubernetesクラスタを1.11.7->1.13.10までバージョンアップした

タイトルの通りです. 結構ハマったので書き残しておく.

kube2iamからkiamに乗り換えた

AWS上に構築したKubernetesクラスタ内のPodが,AWSのリソースにアクセスしようとしたときには,もちろんAWS IAM Roleか,AWSの認証情報を使ってAWSのAPIを叩く必要がある. しかし,Kubernetesはクラスタだ.もちろんノードはいっぱいあるし,その上では様々…

Kubernetes上でRundeckをクラスタ構成で運用する

以前RundeckをDockerで動かす話を書いた. h3poteto.hatenablog.com このときはECSだったが,こいつをKubernetesに載せ替え, ジョブ実行ノードがクラスタ全体に分散する Webのリクエストが分散する ようにクラスタ設定を組んだ. なお,この記事を書いてい…

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 …