プログラミング

AWS KMSで暗号化したSecretsをそのままapplyしたい!

KubernetesでGitOpsを実践しようと思うときに,Secretsをどうするかという問題は結構大きい.GitOpsをしていなかったとしても,Kubernetesのyamlファイルをgitにコミットしようと思うとき,Secretsをどうするかというのは結構大きな問題ではないだろうか. P…

WhalebirdはMisskeyサポートを開始します

Whalebird 4.0.0より,Misskeyをサポートします. Misskeyのドメインを入れていただければ,ログインできるようになってます. ただし,一部機能は使えない(かもしれない)のと,対応していない機能はあります. 対応予定 絵文字リアクション 引用Renote そ…

PodにfluentdのSidecarを自動でinjectする

本番でWebアプリケーションを運用していると,様々なログを取り扱う必要がある.これはKubernetesでも同じで,Kubernetes上で動かしているコンテナのログも,何かしらの方法で集約してどこかに蓄えておいて,分析とか検索とかをしたくなる. こういう用途で…

Slackの盛り上がりを検出するbotを作った

みなさんリモートワークしてますか? リモートワークのときのコミュニケーションツールはSlackですか?Chatworkですか?Discordですか? リモートワークをしていると,全体的にコミュニケーション量は減ると思います. オフィスにいれば,たとえSlackで会話…

ElectronのアプリをAppStoreで配信する(2020年)

以前 h3poteto.hatenablog.com こういう記事を書いた. あれから1年半経ち,少し変わったことがあるので記事にしておく.

kubernetesとhelmで作る最強のオレオレheroku,yadockeri

この記事は LAPRAS Advent Calendar 2019 の18日目です. 会社でWebサービスを開発していると,検証したりレビューしたりするときに専用の環境が欲しくなる.それは開発しているブランチごとに独立した環境であって欲しいし,なんなら本番っぽいデータが入っ…

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のリリース用パッケージについても書いた. 今日はその続きとい…