すきま風

勉強したことのメモとか

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

Spring Boot の bootBuildImage で custom runImageを利用する

以前、↓みたいな記事を書きました。 Cloud Native Buildpacksのrun:base-cnb に curlを入れたい - 秋の魔法使い Spring Bootのコードを読んで研究したところ、もっと一般的な解決方法に気づいたので記事にしておきます。 (普通にリファレンスにも書いてあっ…

aws Fargate × golangでIAM Database認証をする

仕事で必要になったのでサンプルを書きました。FargateでIAM Database認証をしているサンプルをネット上で見つけることができなかったことと、awsに掲載されているコードのコピペでは動かなかったので2日くらいハマっていました。誰かの助けになればと思いま…

Spring Boot 2.4.0 でMultiple Propertyファイルを適用させる

Spring Boot 2.4になって、application.ymlの書き方がちょっと変わったのでメモ。色々便利になったようなのですが、k8sとか使っていないのであんまり恩恵がない 基本設定をapplication-base.ymlに記述し、環境ごとの差異をそれぞれのapplication-xxx.ymlに…

goroutineを使ってdatabaseに並列でInsertするサンプル

databaseにgoroutineで並行にinsertするサンプルプログラムです。仕事で必要になって実験しました。 database 接続 sql.Open() を使ってDB Instanceを取得します。DB Instanceは並行安全で、このInstanceがConnection Poolを管理するので Singletonにしてア…

ポンコツ宣言

産業医面談を経て、自分のストレスがかなり高まっていることを認識したので、上司に、心がポンコツになったので今後の仕事内容はポンコツになります、とポンコツ宣言をしました。上司の心配そうな顔の影に「何いってんだこいつ?」感がほんの少しでているよ…

雑記

会社のストレスチェックを受けたところ数値が高すぎるから産業医面談を受けろと督促が来てしまった 😔 ところでストレスを感じずに仕事をしているプログラマっているのですかね 🤔

雑記

仕事の話 社会人である以上、話したくない人間とコミュニケーションを取らないといけない場面というものは往々にしてある。ある程度は仕方ないと諦めているが、できるだけそういう会話の機会は減らしたいと思っている。特に、自分と比較して、頭の回りが極め…

Multi Module ProjectのSpring Boot × Kotlin Applicationにdetektを導入する

仕事で使うことになったので勉強しました 前回の記事 に適用します。 point ktlintはdetekt-formattingを利用する。そのためにmaven kotlinx repositoryを追加する multi moduleすべてを見るようにinput files を設定する checkでdetektも走るようにする bu…

Multi Module ProjectのSpring Boot × Kotlin ApplicationにgRPCを導入する

Clean Architecture (Multi Module Project) のSpring BootでgRPCを使えるようにします。 仕事で使いそうなので勉強しました。本当はGoで作りたかったけど、誰も賛同してくれなかった。人望/Zero 😉

Goでsliceを2次元sliceに変換する

2年に1回くらい必要になってその都度考えてしまうロジック。年々書ききるのに時間がかかるようになってきた 😔 func main() { slice := make([]int, 150) for i := 0; i < 150; i++ { slice[i] = i } results := split(&slice, 100) fmt.Printf("results size …

Cloud Native Buildpacksのrun:base-cnb に curlを入れたい

はじめに この記事内容は古いので、こちらを参考にしてください。 Spring Boot の bootBuildImage で custom runImageを利用する - 秋の魔法使い 以下、せっかく書いたので残しておくもの AWSのECSでサービスディスカバリを構築する場合、 タスク定義にhealt…

goでfile splitterを実装する あるいは AWS ECSによるbatch fan-out

仕事で↓の画像みたいな仕組みを作りました。 fan-out S3にアップロードしたcsv fileをLambdaで複数ファイルに分割して再度アップロードし、それぞれのs3 eventを別のLambdaで補足して、分割したファイルごとにFargateによるバッチ処理を起動してDynamoDBにデ…

雑記

めちゃんこどちゃくそはちゃめちゃに今の仕事が嫌になって勢いでwantedlyに登録してGoで検索かけたらたくさん会社が出てきて吐きそうになった

AWS Fargate 1.4.0 にUpdateしたらVPCPeeringで通信できなくなった

※ 詳細な調査をしていないので、参考情報程度にしてください アプリケーションをFargate 1.4.0にアップデートしたらVPCPeering接続しているVPCとの通信で落ちるようになったのでネットワークに関するアップデート情報を調べた Fargate 1.4.0 から Jumbo Fra…

Lambdaをどう管理する?

Terraformでインフラコードを管理しているとLambdaの管理は割と悩ましい問題になる。 Terraformで管理したいのはインフラコードであってアプリケーションコードではないのだが、 TerraformでLambdaのresourceを定義するためにはアプリケーションコードが必要…

雑記

高い技術力を持つ同僚エンジニアが次々と会社を去っていくこととなり、コロナ禍における不景気の中でも実力がある人間には全く関係なく次の職場が決まるものなのだなあとひたすら尊敬している。しかも、みんながみんな異口同音に、別のことにチャレンジした…

雑記

シオランの生誕の災厄を読み終わった。とてもおもしろかった (こなみかん) ところで、シオランといえば反出生主義者の1人として有名 (らしい)。普通に生活しているとこのような反社会的な思想に触るきっかけはあんまりないのだが、自分は中勘助の提婆達多を…

雑記

我が家のiMac 2011君が遂ににっちもさっちもいかない状態になってしまったので給付金を使ってPC環境を新しくしました。 PC mac mini 買いました。SSD最高に早くて快適。メモリはなんだかんだで8Gで十分だと判断してそのまま。 Display LG 27UL550-W を買いま…

golangでRedisの参照と更新をする

golangを勉強することにしました。頑張るぞ 初回は A Tour of Go すら読んでいない状態で、勢いと感性のままにRedis Access をするCLI を作ります。 json fileからデータを読み込んでEntityを作成する redigoを使ってRedis参照と更新ができる Interface を作…

雑記 (ポエム調)

チームビルディングとかマネージャー論とか、強いチームを作る的なブログを見るたびに違和感を覚えるのが どの記事も、実際にチームを構成しているメンバーの能力や性格についての言及が少ない、あるいは一切無いことだ。 自分が知りたいのは、優秀な人間の…

Docker Container の軽量化 あるいはAWS ECS Taskの起動速度改善

以前の記事 でPHP ApplicationのDockerfileを書きましたが Apacheモジュールバージョンではなく fpmで運用したくなったので書き直します。 また、せっかくなのでdebian baseとalpine baseを用意して サイズの比較と、実際にAWS ECSでの起動速度をカジュアル…

雑記

上司が退職してしまった。優秀な人なのでいつか辞めるだろうな、とは思っていたけど。 今までは上司が前面に立っていてくれたおかげで自分はただのエンジニアとして開発だけしていればよかったが、 今後はベンダーとかと打ち合わせしたりする機会が増えそう…

Spring Boot の Web Applicationで Shift_Jis (あるいはUTF-8以外) のリクエストを受け取る

方法 application.properties以下のように設定する spring.http.encoding.force=false または spring.http.encoding.force-request=false 解説 Spring MVCはCharacterEncodingFilterでHttpServletRequest, HttpServletResponseのCharacterEncodingをoverride…

AWS Fargate × Firelens (Fluentd) でGoogle BigQueryとCloudWatch LogsにLogを連携する

記事の要点 Fargateで起動しているApplication LogをBigQueryとCloudWatch Logsに連携する Table Createをしたいので、Fluent-bitではなくFluentdを利用する Fluentd用のDockerfile, custom.conf を実装する

雑記

どうでもいい仕事の話 3月からずっと自宅勤務です。土日に自分の仕事をこなして、平日はダラダラとコードレビューとかに使う業務パターンが完全に定着しました。 自分にとってコードレビューはかなり精神の負荷の高い作業で、例えば↓みたいな感じで心が乱高…

serverless-artilleryでIP制限のあるAPIの負荷テストを行う

仕事で負荷テストツールの選定をしているので、得た知見をブログに書いていこうと思います。 ちなみに、今まで負荷テストは人任せで、ツールはほとんど触ったことがありませんでした serverless-artillery serverless-artillery は負荷テストツールのArtill…

Terraformでターゲット追跡スケーリングポリシーのAuto Scalingを実装する

AWSメモ記事でゲス。 AWSのECSにおけるオートスケールは、EC2インスタンスのオートスケールと、インスタンス内のコンテナのオートスケールのコンテキストがありますが、 これはFARGATEでの運用を考えて書いたものなのでコンテナをターゲットにしています。参…

PHP (CodeIgniter), Apache のProductをDocker Imageにする

業務でPHPアプリケーションを保守することになったのでとりまコンテナ化しました。 fpm × nginxで作りたかったけど業務上Apache縛りがあったのでモジュール版を使います。 2020/06/12 追記: fpm versionも書きました ソフトウェアバージョン software versio…

Cloud Native Buildpacksのpack CLIでSpring BootのFat Jarを起動するDocker Imageを作成する。 あるいはSpring Boot 2.3.0.M1 のlayeredをエミュレートする

この記事の内容 pack CLIでLayer ArchitectのSpring Boot ApplicationのDocker Imageを作成する 上記の目的のために、Spring Boot 2.3.0.M1のlayered()をエミュレートしたshell scriptを書く 実用性皆無のネタ記事です 😑

ぼくのかんがえたさいきょうのJib

現時点で考えたさいきょうのJib設定をメモしておきます。1週間の勉強での結論なのですぐに変わりそうですが コード内の、どうすっかなーみたいなコメントでお察しください。 Jibの記事は一旦これで終了にする予定です。 いままでの記事と同じく、multi-pro…