年中アイス

いろいろつらつら

homebrew tapのformulaファイルの置き場所

前回のエントリで、goreleaserとgithub actionsを使ったhomebrewのformulaファイルの自動生成と登録について書き、既存のツールを3つ移行しました。しかし、その度にpersonal access tokenを発行して、リポジトリのSecretsに登録するという作業が地味地味と…

GoReleaser+GithubActionsを使って、releaseファイルのアップロードとhomebrew対応を自動で行う

先日、rnzooに機能を追加して、久しぶりにリリースをしようとしたら、色々動かなくなっててハマりました。しばらくやってなかったので、Rubyのバージョンアップや、hubコマンドの再設定などが必要でした。だいぶオレオレリリーススクリプトになっていたので…

CloudWatchLogsからAthena向けにS3にデータを保存する時に改行を追加してあげないといけない

AWS

前回は、自分のミスでハマった話でしたが、その後、別の仕様にハマったのでそのメモです。以下あたりを参考に、CloudWatchLogsのログをAthenaで解析する流れを検証していました。 CloudWatchLogs -(Subscription Filter)->Firehose -(delivery stream)-> S3 …

CloudWatch LogsからKinesis Firehoseに送る時にはまったエラー

AWS

ECSコンテナのログをCloudWatch Logsに出力しており、そこからS3に保存しようとした時に、Kinesis Firehoseを使って行える例があったので試してみました。その時にしょうもないミスではまったのでメモです。 この例をもとに試していましたが、Firehose --(de…

RDSの証明書を更新したら、Lambda(node.js)から接続できなくなった

AWS

2020/02/05までに、RDS系の証明書を2015から2019に更新するようにアナウンスが出ています。*1 そんな中、RDSの証明書更新してから、Lambda(node.js)から接続できなくなったと相談を受けました。確実にクライアント側の証明書を更新してないからと思いました…

Python3.8+ansible2.8.6は動かなかった

Python2系がほぼ年内*1で終わってしまうので、そろそろPythonのバージョンと、ansibleのバージョンを上げようと、pyenv+venvで別環境作って試してみてました。とりあえず最新にしてみようと、Python3.8とansible 2.8.6を入れて、playbook実行してみたら、以…

t3.smallとt3.mediumのCPU creditが同じだった

AWS

t3インスタンスのCPU creditを使い切ってしまうことがあり、そういやt2より良くなったようなと思って、再度調べてみたら驚きの仕様が! ※2020/02/20 少し文章の構成を直しました。 インスタンスタイプ、サイズごとのCPU creditの回復量と蓄積可能量 https://…

iPhone 11 Pro 1週間とセットアップメモ

1週間ほど使ってみて 前回買ったエントリ書きましたが、その後1週間使っての雑感と移行セットアップを簡単にメモ。 物体として やっぱりでかい、重い。大きさよりは重さの方がよりくる感じ。前に買ったandroidと大きさは変わらないけど、それぞれ持つと、iPh…

iPhone 11 Pro購入

長らくiPhone7を使ってきましたが、バッテリーの持ちが悪くなってきたことと、超広角に惹かれてiPhone 11 Proを購入しました。発表直後はあんまりかなーと思っていたんですが、超広角が13mm相当と思ったより広角で、子供の写真撮るのに良さそうでした。写真…

ローカルとAWS ECS上のマイクロサービスをSSH経由でつなぐmogura

マイクロサービス開発向けに、moguraというツールを開発しています。Twitterではちょいちょいリリースを呟いて、細かいバージョンアップを行っています。一旦落ち着いたので、moguraが何を解決するためのツールで、何をしてくれるのか紹介します。 背景と課…

突然SIMが使えなくなったので再発行した(無事解決)

先日、急にSIMエラーというダイアログが表示された後、モバイル回線(4G LTE)が使えなくなりました。端末とSIMは以下の通り。 iPhone7 SIMフリー OCN mobile one SMS付データSIM 使えなくなるとiPhone左上のdocomoなどキャリア名が表示されているところが、不…

GoでSSH port forwarding

今までPort Forwardingはbashrcに書いて呼び出していましたが、量が多い時など手間が多くなっていたので、Goで呼び出せるようにしようと調べてみました。ちょうど同時期にGoで実装している方がいたので、参考にしてサンプル実装を作ってみました。 go-memo/s…

LINEのLive Photo投稿をOFFにする

今月2018/11の後半ごろに、妻からLINEの写真の拡大表示時にダウンロードが発生するようになって面倒だという指摘をもらいました。 投稿写真にLiveという文字が入るようになったので、気づいてはいたのですが、Live Photo(iOSの写真の機能で、シャッター前後…

Kindle Paperwhite 2018購入しましたが…

新しいkindleを購入しました。ちょうど4年前ぐらいにvoyageを買ったんですが、最近、容量不足と若干バッテリーがへたり気味かなと思い、買い替えを検討していたところに、ちょうど発表されたので予約しました。購入理由は、容量がvoyageの8倍、おまけで防水…

韓国でSIMを購入してiPhoneを使う

韓国で現地SIMを買って、iPhone7 SIMフリー版に入れて過ごしたので、諸々メモです。 今回の要件は、以下です。 滞在期間が不定(これは十分には満たせませんでしたが) 普段使っているiPhoneを使いたい バッテリーの管理や通信の利便性を考慮してSIM自体を手に…

ECSのコンテナ間でNLBを経由した通信がつながらないことがある

gRPCで作った複数のサービスを、同じECS Cluster上で動かし、他のサービスを呼び出している時に、通信できなくなったことがあったので、その原因のメモです。 直接的な原因は、「NLBは、接続元と接続先が同一のIPへの通信ができない」という仕様に意図せず該…

hakoへのプルリク その2

前回に引き続きcontainer health checkの対応をプルリクしました。 github.com 設定追加するだけだし、簡単だーと思ってましたが、何箇所か指摘頂いたので、備忘録。 簡単かなーと思ってましたが、危うく変な挙動を仕込むところでした。 設定値はオプション…

Goでファイルの特定位置から読む

bashで組んでたログの検知スクリプトを、メンテナンス性と拡張性考えてGoで書き直すことにしました。 ファイルを定期的にtailして一定行数読み込んで処理する方式を取っていましたが、最後に読んだとこから後にしたいと調べていたら、Mackerelが似たようなこ…

elasticsearch bulkAPIで地味にはまる

elasticsearch 6.3が出たので、データ突っ込んで試してみるかと、index作ってデータを投入することに。 curl叩きながら、確認を進めてましたが、BulkAPIを使って、データを入れるときに、以下のようなエラーが出ました。 {"error":"ActionRequestValidationE…

hakoに機能追加

ECSを本格利用し始め、デプロイの管理にhakoを使うことにしました。最近ECSに機能追加があり、hako未対応のものを使いたくなったこともあり、hakoに追加してみることにしました。 作った機能 いくつか機能を追加して、プルリク投げてマージされたもの、プル…

API Gateway+LambdaのSlack通知APIをCloudFormationで作る

以前、三編に分けて、SlackへPostするWebAPIを、API Gateway+Lambda+node.jsで作りました。 AWS API Gateway+LambdaでSlackにメッセージをPOSTする(前編) - 年中アイス AWS API Gateway+LambdaでSlackにメッセージをPOSTする(中編) - 年中アイス AWS API Gat…

GoでJSONの数字/数値を扱う

JSONはデータの表現形式です。表現はできますが、項目があるかや、型が何であるかを検査する仕組みはありません。*1 そのため、システムや実装が分かれている場合に、数値を期待しているが、JSONの表現上、数値か数字かがずれていることが起き得ます。どうい…

Amazon echo (Alexa) がやってきた

スマートスピーカーが盛り上がってきてますが、Amazon echoの招待メールが来て、ポチって届きました。前の日にだいぶ購買欲落ちたってツイートしてたら、その翌日に招待メール来ました。招待メールから4日以内に注文しないと、購入権がなくなるので、注文し…

CircleCI 2.0でGoのテスト触ってみた

CI周りを触ってみている中で、Dockerイメージが動くようになったという、CircleCI 2.0が気になったので触ってみました。ちなみに1.0も触ったことはないです。参考で見たページだと、2.0はBeta版の時期もありましたが、今は正式にリリースされています。 circ…

docker for macのホストを指すドメイン名

手元のMacで開発をしていて、コンテナからホスト上で動作しているサーバに繋ぐ必要がありました。単純にlocalhostを使うとコンテナ自体を指してしまうので、それでは通信できません。ホストのIPをいちいち指定するのもなーと思っていたんですが、docker for …

格安Android(g06+)買ってみた

持っているガラケーのバッテリー寿命が来て、5分も通話すれば落ちるぐらいになってしまいました。*1もう一度ガラケーに変えるという手もあるんですが、契約もめんどいので、MNPして格安SIMに電話番号も移そうかなと検討しています。それで今回移行する端末候…

GoでJSON文字列を整形し直す

Goで、JSONを返すWebAPIを呼んだ時、普通は結果をプログラムで使うので、対応する構造体を用意して、json.Unmarshal()などで変換します。 しかし、JSONをそのまま整形だけして出力したい場合があります。例えば、WebAPIを呼んで、そのレスポンスを見せるだけ…

Apexでlambda slack POSTにGoを使う

以前のエントリで、Lambda Node.js 4.3を使ってSlackにPostしていました。 reiki4040.hatenablog.com 普段Javascriptは書かないので、Goで書いてApexでデプロイする版を試しました。 ApexはLambdaのコードを管理(?)、デプロイするツールで、PythonやNode.js…

AWS CodeBuildでGoプロジェクトをビルドする

AWS TokyoリージョンにもCodeBuild等のCodeシリーズ(?)一式揃い、使ってみようということで、まずはCodeBuildを試してみました。 公式にGoのサンプルはあるんですが、他のライブラリ使ってないhello worldなので、CodeBuildの説明だけという感じでした。vend…

DeploymentとServiceをyamlファイルで定義する

kubectlコマンドとオプションでnginxをminikube上で動かしました。 今回は、コマンドで起動内容を指定するのではなく、定義ファイルを使って動かすようにします。定義ファイルにすることでgitで管理できるようになります。 コマンドの振り返り 以下のように…