2019-01-01から1年間の記事一覧

ターミナルに良い感じにタイマーを描画したい

昔 Go の勉強と思って作ったターミナルでポモドーロするツールを年末だし0から書き直すことにした。 そこでまずメインとなるタイマーの部分を書き直してみることにした。 まず今の挙動は次の gif 画像です。 今のタイマーの問題 さきほどの gif を見てわかる…

CKAD に合格しました

Certified Kubernetes Application Developer (CKAD) に合格しました。 www.cncf.io 66% の合格ラインのところを 74% でなんとか通過しました。 この記事ではとりあえず何やったかとか書いていきます。 試験の内容はたぶん書いちゃダメなので当日どんな雰囲…

kops で t3 インスタンスの T2/T3 Unlimited を無効にする

kops で kubernetes のクラスタを構築する時には master と node となるインスタンスが1台以上必要になる。 kops は Instance Groups という概念で これらを表現していて AWS だと AutoScalingGroup にあたる。 今までは t2 インスタンスで master と node …

各podのActionCableのconnection数をCloudWatch Metricsに送る

前回の記事に書いたように最近 graphql-ruby を使って Subscription を実装しました。 blog.hatappi.me そのタイミングで Rails の ActionCable を使うことになったのですが、ふと各 pod でどれくらい connection 数があるのかを見れるようにしてみたいなと…

graphql-ruby で始める GraphQL Subscription

いままで GraphQL で Query と Mutation を使う機会はあったけど Subscription は使ったことがなかった。 ということで今回は graphql-ruby を使って Subscription を使ってみました。のメモ。 できたもの Anket で回答した結果をブラウザから確認できるので…

Slack App を作るフレームワークのboltを検証する

slack.dev 今回は Bolt ネタです。 今まで、Slack Bot を作成する時は howdyai/botkit を使ってました。 これ自体はよくできていて、良いのですが、 Slackのためのというわけではなく Facebook Messanger 上で動作させたりと結構汎用的に作られている framew…

kops にPRをおくる

1ヶ月前くらいのエントリで kops で構築した k8s クラスタに IRSA をいれた時に kube-apiserver の service-account-key-file に複数のキーファイルを指定した時にエラーになるという issue に遭遇した。 blog.hatappi.me Github issue は↓ github.com 本来…

Goで処理途中でvimを開いてその結果を受け取って後続の処理をする

タイトルをうまい感じにまとめられなくてそのままなタイトルになってしまったw 最近 Go のスキルをあげるのとちょっとほしい CLI があって作ってます。 その中でユーザーからの入力を echo --message hogehoge のように実行時に引数として文字列を受け取るコ…

kopsでaws上に作成したKubernetesクラスターでIAM Roles for Service Accountsを使う

今月AWSでKubernetesでクラスター構築してる勢に衝撃が走りました。 EKS で Kubernetes サービスアカウントに IAM アクセス許可を割り当てることが出来るようになったのです!! aws.amazon.com これによって pod に対して IAM Role を割り当てやすくなりま…

CloudWatch Logs Insights のクエリメモ

blog.hatappi.me 1ヶ月前くらいに CloudWatch Container Insights をいれて k8s 内の pod のメトリクスを収集していたのですが、ダッシュボードを作成していなかったので作成してました。 ダッシュボードの作成に必要そうな Service に対する CPU 使用率とか…

CodefreshでKubernetesへアプリケーションをデプロイするパイプラインを作成する

blog.hatappi.me 前回の記事では CircleCI を使った Kubernetes へのアプリケーションへデプロイする記事を書きました。 これはこれでよかったのですが、次の2点で少し悩んでいました。 docker build のキャッシュを有効にするのは有料 Docker Layer Caching…

CircleCIを使ってリリースタグを作ったらKubernetesにアプリケーションをデプロイする仕組みを作る

今回はプライベートで作ってるサービスのデプロイで抱えていた問題を解決した話 デプロイで抱えていた問題 今運用している2つのサービスはk8s上で動いているのですが、現状こんな感じのサイクルでデプロイしています。 masterからブランチきって作業 PR出し…

KubernetesでServiceAccountを作成してcurlで情報を取得する

普段は kubectl を使って manifest file を apply したりするけど今回は curl で情報を取得したくなった。 全体的な流れ ClusterRole を作成する ServiceAccount を作成 1.で作成した ClusterRole と 2.で作成したServiceAccountを紐づける apply curl に必…

Amazon CloudWatch Container Insightsを導入する

最近 Anket 以外にもプライベートで作成したサービスをリリースしたのですが実行環境には両方とも k8s を採用してます。 k8s は AWS の EC2 上に構築しているのですが、 EKS は使用しておらず kops を使って構築しています。 そのあたりの話はここに書いてま…

Anket の Docker Image 作成を Packer + Ansible から Dockerfile にした

Docker Image を作る!! といえば Dockerfile から作るケースが多いのではないでしょうか。 しかし Anket は Packer + Ansible を使って Docker Image を作っていました。 理由として元々 Anket は EC2(AmazonLinux) 上に構築していた歴史があってその時に AM…

Anket のアーキテクチャを見直した結果 Redis はいなくなりました

Anket の話。 最近 bot 権限を付与した Anket ですが、今回はアーキテクチャの見直しなどを行いました。 blog.hatappi.me 今まで この構成になっている理由は以前記事を書いているのでそちらをご覧ください。 blog.hatappi.me これから どこが変わったかよく…

bot scopeを付与したAnketをリリースした話とbot scopeがなぜ必要なのかの話

blog.hatappi.me Anket を初回リリースしてから195日くらいたちました。 今回のリリースではちょっと大きめ?のリリースをしたのでブログを書こうと思います。 今回のリリースでは Anket に bot scope を追加しました この記事ではリリースした機能の紹介と…

zshの起動が遅かったので早くできないかチャレンジした

普段 vimrc をちょこちょこいじることはあっても zshrc をいじることってあんまりない。 変更する時は実行ファイルがある場所にパスを通したり source <(kubectl completion zsh) のように補完したり alias 設定したりするくらい。 ある時気が付いた。 俺の …

Ebisu.rb #23 で 「RubyではじめるGraphQL」というタイトルで発表してきました

ebisurb.connpass.com 今日はこちらに参加してLTをしてきました。 初 Ebisu.rb 参加 LT では最近勉強している GraphQL の話をしてきました。 speakerdeck.com この記事では資料には書いてなかったことを少し書こうと思います。 LT の中でもふれましたが Ank…

EKSからkopsで構築したKubernetesクラスタに乗り換えた

Anket は今まで EKS を使って Kubernetes を運用してきました。 blog.hatappi.me EKS を使って運用し始めたのが4ヶ月くらいですが、今回 kops で構築した Kubernetes (k8s) クラスタに乗り換えました。 このエントリではなぜ乗り換えたかなどを書いていこう…

Block KitのButtonに色つけれるようになったのでAnketでも取り入れました

Back by popular demand! Color buttons are now available for Block Kit enabled apps https://t.co/hM2H0RzN1H— Slack Platform (@SlackAPI) April 12, 2019 ついに Slack Block Kit のButtonに色がつけられるようになった!!!! 嬉しい。 [ { "type": "act…

Chainer Meetup #09で「RubyでChainerつくってます!!」というタイトルで発表してきました

月に1回は登壇するチャレンジをしていて今月は月初に1回LTしたので今日は2回目なので良いペース!! 今日はお誘いいただいて Chainer Meetup で登壇してきました。 chainer.connpass.com 資料はこちらです。 speakerdeck.com 今回はRed Chainerをなぜ作ったか…

Anketのメッセージをjsx-slackを使ってBlock Kitベースへ変更しました

Block Kit は 今年の2月に発表されたツールセットです。 これを使うことで今までよりもリッチに情報を表示したりSlack Appの対話性が向上するようです。 japan.zdnet.com 実際に見てみるのが早いです。 Block Kit Builder というプロトタイピングツールが提…

eksctl で VPC を作るのをやめて Terraform で作るようにしました

Anket は EKS を使ってます。 こんな感じ↓ 今回やったこと AWS 内の各サービスは基本は Terraform を使って作成しているのですがEKS周りの必要なものはeksctlを使ってました。 blog.hatappi.me Anket における Terraform と eksctl の役割をざっと書くとこん…

AnketのAurora MySQLのVPCを引っ越しました

Anket はSlack でアンケートをとるためのサービスです。 hatappi.slack.com 今回やったこと Aurora MySQL の VPC を移行しました。 というのもAnket は EKS を使って k8s 上にアプリケーションを構築しているのですが、Redis と DB を AWS のサービスを利用…

yarnで管理しているpackageやgemの定期更新はPRまでは自動化!!

blog.hatappi.me 以前↑な記事を書きました。 この時は gem の update だけでよかったけど Yarn でパッケージをしているのでそっちも定期的に update していきたい ということで Yarn で管理しているパッケージの定期更新に使ったのがこちら github.com 自分…

Otemachi.rb #13 で「EKSにRailsをのせた」話をしてきました

初参加の地域.rb、今年初LT、転職後初LTというはじめてずくしのLTしてきました。 参加したのは Otemachi.rb !! enechange-meetup.connpass.com 登壇資料はこちら。 speakerdeck.com 内容としては最近やっていた Anket のインフラ環境を EC2 上から EKS に…

EKS で ALB のホストごとにヘルスチェックを設定する

前提として今回の記事は AWS ALB Ingress Controller を使用していることを想定しています。 ALB Ingress Controller については以前書いた記事にのっているので、そちらを参考にしてください blog.hatappi.me 今回やりたかったこと EKS のクラスタには2つの…

Anket を EKS (k8s) に移行しました

タイトル通り Anket を EKS に移行しました!! Anket とは? Anket は Slack 上でアンケートをとり Slack 上、 WEB 上で確認できるサービスです。 blog.hatappi.me なぜ移行したのか? kubenetes 使ってみたかった 遅かれ早かれ kubernetes は使うことになるだ…

EKSでAWS ALB Ingress ControllerでALBつくってRoute 53にレコード作ってさらにACMでhttps!!!

最近勉強がてら AWS EKS を使ってKubernetes をさわってます! もし間違ってるところがあれば @hatappi まで教えていただけると嬉しいです。 今回はどんなことがしたかったか ALBを使いたい! 2ドメインを使ってホストベースでルーティングしたい ALBは自動…