golangでgracefull restartする

概要 シグナルとGracefull Shutdownを用いて、ホットデプロイ(Gracefull Restart)を行う仕組みを理解する Gracefull Restartを実現するための仕組みに、Server::Starterというperlで書かれたソフトがあるらしいが、今回はその[Go版](https://github.com/lestrrat/go-server- ...

log-analysis

ログ解析とはなにか簡単に調べてみた。 おもにログ収集、ログ集積、ログ解析の3つの要素から構成されることが多い。 具体的には以下の通り。 ログ収集 Fluentd Logstash Apache Flume ログ集積 要はstoreのようなもの。 Elasticsearch スケーラビリティに優れた全文検索エンジン。 ...

GithubActionsでecsUpdate

はじめに Dockerイメージを更新したらタスクのリビジョンを上げて、ECSのタスクを自動で更新したい ECSで単一のタスク(webServer)を動かすサービスをupdateしたいだけなのでaws-cliのインターフェースを用いる ecsの操作に特化したecs-cliもあるが、今回は使用しない やることはaws-cli v2 をインストールして一連のアップデートを行う ...

golang-img-s3upload.md

はじめに サーバーで画像を圧縮して、そのデータをos.Createでファイルを作成してJPEGエンコードし、S3に画像をアップロードしようとしたら0バイトでアップロードされていた。 Go S3uploader エラーハンドリングは省く。 以下はS3アップロードのコード。UploadInput{}のBody((io.Reader)にデータを詰め込むだけ ` ...

Go + WebsocketでGoroutineをさわる

はじめに GoにちょっとだけなれてきたのでGoroutineとかチャネルとかについて勉強しようと思った。 ついでにWebsocketも知らなかったのでまとめて勉強した。 作るもの クライアントとサーバーをWebsocketで通信し、データを送信すると接続しているクライアントすべてにそのメッセージをリアルタイムに表示させるWebApp インターフェースはjson ...

ActionsでGoのバイナリをバージョニングして自動リリースする

概要 Githubでリリース機能を使ったことがなかったので試しにつかってみた。 ソフトウェアのバージョン管理はセマンティックバージョニングでおこなう。 具体的には、v1.0.3みたいな感じにする。 「ドット」を挟んで以下のような意味。 (メジャーバージョン).(マイナーバージョン).(パッチバージョン) さて、本題の流れは以下のようになる バージョンアップする ...

neovim-and-vim-plug-setting

deinからvim-plugへ移行 deinでvimプラグインをマネージしてたけど、vim-plugに移行しようかな refs http://txtbokwrm.hatenablog.com/entry/2018/08/06/165041 ...

Makefileで「$」をescapeする

TL;DR Makefileで $をエスケープするには$$のようにする なんかMakefileでコマンドが正常に出力されなかった ls -l | grep ^d | awk '{print $9}' 現在のパス中のディレクトリのみを一覧を出力する上記のコマンドをMakefileに記述したところ下記のように出力された。 **output ...

MacBook Pro (Retina, 13-inch, Early 2015)に外付けSSDをアタッチしてVirtualBoxを動かしたが、アカンかった

なにがしたかったか vscode-remote-containerで作業しているのだが、docker-for-macはファイルマウントに問題があって、動作が重くイライラしていたので、Ubuntuでの開発にはなれていたし、Ubuntu上でやろうと思い立った (https://scrapbox.io/ruby-jp/macOS%E3%81%A7Docker%E3%81%8C%E ...