59 posts by issei_m
Rails 8.0 が出たのでアップグレードした
November 15, 2024
posted by issei_m
先日、Rails 8.0 がリリースされ、直近で担当している Rails アプリのバージョンをアップグレードしたので手順等を簡単にまとめます。まずは Rails アップグレードをする際に普段やっている事と、 Rails ...
AWS CDK の個人的に良かったプラクティス
October 22, 2024
posted by issei_m
これまでにいくつかのプロジェクトで AWS CDK を使ってきて、個人的に良かったと思うプラクティスをまとめたいと思います。公式でベストプラクティスに関するドキュメントやブログが提供されているので、基本的にはそれに従いつ ...
CloudWatch Logs + Spark SQL で Rails ActiveJob の実行時間を集計してみた
July 17, 2024
posted by issei_m
Rails には主にバックグラウンドで処理を実行できる ActiveJob と言う機能がありますが、先日とあるプロジェクトで、各ジョブの実行時間を集計する必要がありました。幸いデフォルトで ActiveJob はジョブの ...
Rails プロジェクトの webpack を Vite に移行した
June 12, 2024
posted by issei_m
ある Rails プロジェクトで、これまで webpack 5 でアセットをビルドしていましたが、今回 Vite に移行しました。移行に伴う経験や学びを紹介します。 移行の動機 個人的に Web UI の規模が小さいこと ...
GitHub の Pull request は Squash and merge にしてみている
January 10, 2024
posted by issei_m
皆様、あけましておめでとうございます。今年もよろしくお願いいたします。 新年1発目の記事は、表題にある最近取り組んでいるプロジェクトの GitHub 運用について書きます。 GitHub ではリポジトリの設定で、Pull ...
AWS CDK の権限周りについて考えてみた
September 12, 2023
posted by issei_m
AWS CDK でデプロイ等の業務を行う際に必要なアクセス権限を調べた所、よく考えられていてセキュリティリスクを抑える様に設計されている反面、デフォルトでは最悪 AdministratorAccess にエスカレーション ...
[Rails] Active Admin で純粋な webpack を使用する際に行ったこと
August 04, 2023
posted by issei_m
皆さん、お久しぶりです。最近新しいプロジェクトで Rails を使っているのですが、そこで採用した Active Admin と、純粋な webpack の連携に少しコツが必要だったので今回はその紹介をします。 Acti ...
Kinesis Data Firehose の PutRecordBatch のリトライ方法
April 18, 2023
posted by issei_m
AWS の Kinesis Data Firehose の PutRecordBatch を使うにあたって、失敗したレコードのリトライに関する日本語の記事があまり多くなかったので今回書いてみました。 使用する言語は Go ...
AWS Fargate を使ってスプラトゥーン3の戦績を stat.ink に定期保存できるようにした
November 30, 2022
posted by issei_m
こんにちは。スプラトゥーン3が9月に発売を迎えてはや3ヶ月弱が経ち、いよいよ新シーズンである Chill Season が幕を開けようとしています。 さて、私は以前以下のような記事を書きました。 AWS Lambdaを使 ...
DynamoDB でロックを実装する
September 30, 2022
posted by issei_m
バッチジョブとかを実装する場合、多くのケースでは冪等性を持たせる事が多いと思いますが、中にはジョブの性質上、一定期間内に1度しか起動してはならない場合もあったりします。 (具体的なケースの例はまた別の機会に書きます)1度 ...
docker run/exec 時にキャリッジリターンが混じる件の解決方法
August 30, 2022
posted by issei_m
小ネタです。実際には私の実行オプションの指定に問題があっただけなのですが、同じ様な事象で困ってる人に届く様、タイトルはこのままにしておきます。 結論 docker run or docker exec ...
[Rails] ActiveRecord のスコープはレコード作成時に値をセットしてくれる
August 09, 2022
posted by issei_m
久しぶりの投稿です。私は Rails を数年業務で使っているのですが、実は最近タイトルの件を知り、ベテランの Rails ユーザーにとっては初歩的な内容 (機能自体も rdoc に書いてある) なので記事にするか悩みまし ...
[AWS] EventBridge Rules による ECS Scheduled Task はエラー時リトライできない
May 18, 2022
posted by issei_m
なので Step Functions を使いましょうと言うお話です。 ある ECS で動いているバッチジョブの定期実行に EventBridge Rules を使って実装していたのですが、ある時ジョブがほぼ一定の頻度で失 ...
Goroutines と Channels を使ってジョブを並行化した時のメモ
March 18, 2022
posted by issei_m
先日、Go で書かれたとあるバッチジョブのパフォーマンス改善として処理の並行化をするにあたり、今回初めて使った Goroutines, Channels で色々とハマりどころがあったので備忘録用にここにまとめておきます。 ...
JMeter gRPC Request で gRPC リクエストを送る方法とハマった点
January 17, 2022
posted by issei_m
遅くなりましたが皆様あけましておめでとうございます。今年もどうぞ宜しくお願い致します。 さて、今回とあるプロジェクトで gRPC の API サーバーへの負荷試験をする事になったのですが、以前、中の人が記事を書いた通り、 ...
Docker による AWS Lambda 関数コンテナイメージ化のすすめ
December 06, 2021
posted by issei_m
皆さん Lambda 関数は書いてますか?? Lambda と言えば現在では多数の言語でのランタイムをサポートしていますが、その中でもコンテナイメージを使った開発が個人的には楽だと感じていて日々使っているので紹介していき ...
Scala のテストライブラリのバージョン互換の件で苦労した話
November 18, 2021
posted by issei_m
とある Spark のプロジェクトのテストに新たに spark-testing-base を追加しようとしたらバージョン互換の件でうまく動かず、一旦解決したと思ったら今度は既存のテストが動作しなくなっ ...
Vagrant で Linux での最新の Docker 環境を構築
October 18, 2021
posted by issei_m
私は普段、 Docker を使った開発では macOS で Docker Desktop for Mac を使う事が多いのですが、今回とあるプロジェクトで Linux を使っているメンバーが、 Linux 固有で発生する ...
Go の interface は構造体の利用側が定義すると言う話
October 04, 2021
posted by issei_m
Go を業務で使い始めてそろそろ 1 年が経ちました。Go には、これまで私が使ってきた Scala や PHP とは違う特性がいくつかあるのですが、その中でもユニークだったのが表題の件です。これは、 Go 本体の Wi ...
CloudWatch Logs を S3 にエクスポートする際オブジェクトのイベント通知が発生しない場合がある
August 25, 2021
posted by issei_m
CloudWatch Logs にはログを S3 にエクスポートする機能があるのですが、この機能を使ってログを S3 にアップロードした際、S3 バケットの s3:ObjectCreated:PUT ...
aws-vault を使って AWS IAM のクレデンシャルを安全に管理する
June 16, 2021
posted by issei_m
最近、ローカルの開発 PC 上での AWS IAM のクレデンシャルの管理に aws-vault を使い始めてみた所、結構良さそうだったので紹介します。 ローカルでの IAM のクレデンシャル管理について AWS 上のコ ...
Spark 2.x で null を含む JSON を書き出す方法
May 27, 2021
posted by issei_m
Spark 2.x では、 DataFrame を JSON に書き出す際、値が null のデータは失われます。 次のコードを見てみましょう: 定義した Person の age  ...
[GitHub Actions] Secrets や書き込み権限が必要な Workflow を Dependabot からも使えるようにする
April 30, 2021
posted by issei_m
先月、とある GitHub リポジトリで使っている Dependabot が送ってくる Pull request の CI が軒並み落ちるようになり、状況を見てみるとどうやらリポジトリの Secrets がうまく Wor ...
SparkでDataFrameの内容を単一のファイルに保存する
February 01, 2021
posted by issei_m
Sparkで処理したDataFrameをファイルとしてディスクに書き出す際、通常ファイルはパーティションの数分作成されます。 上記の df はパーティション数が3つなので、 /tmp/spa ...
IAM で MFA を強制する方法と CLI での認証方法
October 20, 2020
posted by issei_m
今関わっているとあるプロジェクトでは、利用している AWS のリソースを操作するすべてのユーザーに対して MFA (多要素認証) を設定する事を義務付けています。 MFA 自体は AWS に限らず、多数の Web サービ ...
AKS上のKubernetesの秘匿情報をAzure Key Vaultで管理する方法
September 15, 2020
posted by issei_m
最近AKSでKubernetesを管理しているのですが、SecretオブジェクトをAzure Key Vaultで管理したくなり、調べた所、Azure Key Vault Provider for Secrets Sto ...
docker-compose.ymlのサービス名にアンダースコアを使うと正しいインターネットホスト名ではなくなる
August 25, 2020
posted by issei_m
以前こんな記事を書きました。 AWS CLI v2の公式Dockerイメージが出たみたいなので使ってみた ご存知の通りDocker Composeでは、以下の様にしてサービス (≒コンテナ) に名前をつける事ができ、これ ...
Scalaのコレクションで遅延処理を行う
August 17, 2020
posted by issei_m
皆様おはようございます。梅雨もとっくに過ぎ、すっかり夏らしい空模様となりました。埼玉は毎日気温が高くて死にそうです・・・。 さて今回はScalaのコレクションネタです。結論から先に書くと、Scalaのコレクション処理 ( ...
24時間稼働でないKinesisストリームの運用で手こずった点
May 21, 2020
posted by issei_m
前回に引き続き、Kinesisネタです。今回は、前回紹介したとあるコンシューマアプリケーションの運用で、タイトルにもある通り24時間稼働ではないユースケースでの運用で少しハマった点があるので書き記します。 ダウンタイムに ...
Scala + Kinesis Client LibraryでKinesisコンシューマーアプリケーションを作る
May 14, 2020
posted by issei_m
ここ最近のプロジェクトでKinesisのコンシューマーアプリケーションをScalaで開発・メンテしていたので、何回かに分けてノウハウをメモしておきます。 今回はScalaでKinesis Client Libraryを使 ...
JAVA_TOOL_OPTIONS環境変数でAWS Lambda関数のシステムプロパティを設定する
April 16, 2020
posted by issei_m
最近AWS Lambdaをよく使う事があり、色々知見が溜まってきました。今回はAWS Lambdaに直接関係がないトピックですが、JavaアプリケーションをLambdaで動かす時にシステムプロパティの値を変更したくなり、 ...
AWS CLI v2の公式Dockerイメージが出たみたいなので使ってみた
April 01, 2020
posted by issei_m
既に使っている方も多くいると思いますが、先月AWS CLI v2が正式リリースされました。このバージョンではバイナリが各メジャーなOS毎に用意されていて、Pythonのインストールが不要になったので、v1の頃より使いやす ...
AWS LambdaのJavaランタイムでミドルウェアのコネクションのリークでハマった件
March 03, 2020
posted by issei_m
今回はAWS LambdaでJava 8ランタイムを使った際に、Redis等のミドルウェアとのコネクションの管理関連でハマった点を備忘録として残しておきます。AWS Lambdaを使う上では抑えておくべき点である基本的な ...
parquet-toolsでApache Parquet形式のファイルをローカルでお手軽に確認する
February 21, 2020
posted by issei_m
こんにちは、皆さんお久しぶりです。最後のエントリからだいぶ期間が空いてしまいましたが、これからちょくちょくまた書いていきますので宜しくお願いします。 さて今回ですが、小ネタになってしまい恐縮ですが、タイトルの通りApac ...
Google Wifiを1ヶ月使ってやめた話と乗り換え先
November 18, 2019
posted by issei_m
※この記事は、先月新しく発表されたGoogle Nest Wifiではなく、旧モデルであるGoogle Wifiの話となります。予めご了承下さい。 こんにちは。こちらには2回目の投稿になります。 ここ1ヶ月程、自宅の無線 ...
(Scala) List[Option[A]]#flattenで起きる事
November 01, 2019
posted by issei_m
先日、kojiがOption(scala)の実用的な使い方 − データのマージ処理と言うナイスな記事を書いてくれたので、ScalaのOptionを包括した List#flatten についてもう少し掘 ...
Rails 6からActiveRecordのAssociationはscopingの影響を受けなくなっている件と対処法
September 26, 2019
posted by issei_m
こんにちは。日本ではすっかり秋の空が近づいてきました。個人的に夏は暑さが苦手であまり好きではないのですが、終わってしまうとなると毎年どこか寂しい気持ちになります。一方で、秋はご飯が美味しいので食べる事が好きな僕にとっては ...
(小ネタ)GitHubDarkを使ってGitHubをダークモードなUIにする
August 16, 2019
posted by issei_m
こんにちは。暑い日が続いていますが皆さんいかがお過ごしでしょうか?僕が住んでいるさいたまーでは連日の猛暑で外に出る気力も起きません。(因みに弊社はフルリモートなので外に出る事はあまりありません。採用も行っているので、興味 ...
PostgreSQLなRDSでIAM Database Authenticationを使ってみた
August 02, 2019
posted by issei_m
最近、とあるPostgreSQLなRDS(Auroraでない)を運用しているのですが、普通にRailsから使っているのとは別に、Lambdaからも接続する要件があり、表題のIAM Database Authenticat ...
Elasticsearch for Apache Hadoopを使ってSparkからAmazon ESにデータと連携してみた
June 17, 2019
posted by issei_m
今とあるプロジェクトで、Amazon EMRを使って少し大きめなボリュームのデータ処理をしているのですが、その中のあるデータの中身をWebフォームからニアリアルタイムでフィルタリングしたいと言う要望があり、その基盤として ...
(小ネタ)md5sumを使ってリモートにあるファイルとのチェックサムを検証するワンライナー
May 31, 2019
posted by issei_m
先に結論から書きます。 SSH接続した先にあるファイルとローカルファイルを比較する AWS S3上にあるファイルとローカルファイルを比較する ※S3の場合は、コンテンツをローカルにDLしてから計算している関係で、ファイル ...
macOSでVirtualBoxがインストールできない時の対処法
May 16, 2019
posted by issei_m
ここ最近プロジェクトではほぼDockerを使うようになり、Vagrantはあまり使わなくなりました。それに伴い、VirtualBoxの使用頻度も3〜4年くらい前に比べると格段と減った気がします。 そんなある日、とあるプロ ...
RubyMine 2019.1でRailsをdocker exec経由で起動可能になったがバグあって使い物にならない件
April 15, 2019
posted by issei_m
こんにちは。皆さんは普段どのような開発環境を使っていますか?僕はJetBrainsのIDEが好きなので、All Products Licenseを購入して各プロジェクトごとに適したIDEを愛用しており、RubyではRub ...
Bug in the Ansible’s s3_sync module `file_change_strategy` not working and workaround for it
March 29, 2019
posted by issei_m
I’ve described the actual workaround in the very bottom. If you are hasty just jump to: Workaround As of ...
Ansibleのs3_syncモジュールのfile_change_strategy: date_sizeのバグと対処法
March 22, 2019
posted by issei_m
対処法については一番最後に書いてありますので、面倒な方は読み飛ばして下さい: 対処法 このバグは当エントリ執筆時点の2019年3月22日現在確認ができています。また、現段階でAnsible本体にIssueとPull Re ...
AWS CLIで標準入出力でS3オブジェクトを操作する方法
March 07, 2019
posted by issei_m
標準入力からアップロード 標準出力へダウンロード ご覧の通り、 -を引数として渡すとそれぞれ標準入出力が使われます。既に周知かと思いますが、僕は知りませんでした。普段からちょっとしたファイルの操作をする時に、いちいち物理 ...
ECSの機能でSSMのParameter Storeに格納した機密情報をTaskDefinitionに埋め込む
March 06, 2019
posted by issei_m
こんにちは!今回は去年AWSで公開された、SSM (System Manager) のParameter Storeに格納した機密な情報(DBのパスワード等)を、直接ECSのTaskDefinitionに指定できる機能が ...
OpenSSLを使った安全なファイルの転送を検証してみる
February 18, 2019
posted by issei_m
こんにちは!今年もあと残すところ11ヶ月を切ってしまいました。時間が経つのは早いですね・・・。さて、今回はOpenSSLを使って表題の件を検証をしてみたいと思います。 先日、とあるファイル共有サービスのログイン情報を含む ...
Using .gitattributes in package distribution in GitHub
January 30, 2019
posted by issei_m
Hi there, how’s it going? This is the second time to write the entry in English for me. Anyway, do you know or ...
AWS Lambdaを使ってスプラトゥーン2の戦績をstat.inkに定期保存できるようにした
January 09, 2019
posted by issei_m
皆さん新年あけましておめでとうございます。今年もよろしくお願いします。新年と言うわけで、1発目の投稿は少しカジュアルな感じで行こうと思い、表題のネタを取り上げるに至りました。 スプラトゥーン2とは? 多分名前くらいは皆さ ...
RSpecのletの遅延評価を利用してよりコンテクスチュアルなSpecを書く
December 28, 2018
posted by issei_m
皆さんこんにちは。もう今年も残すところわずか3日となりました。早いものです。 さて、年末感のかけらもないネタですが、今回はRSpecのletについて、最近自分の中で1つの理解が得られた(気がする)ので書いてみようと思いま ...
PHPのコレクションライブラリ Knapsack を使ってみる
December 07, 2018
posted by issei_m
今日は僕が普段中規模以上のPJで使っている、PHPのコレクションライブラリ Knapsack の紹介をします。 特徴 Knapsackの主な特徴は、 コレクション操作用の高階関数が豊富 イミュータブル 全てが遅延評価 i ...
S3のGETリクエストでRangeヘッダーを使う
November 15, 2018
posted by issei_m
久しぶりの投稿です。 先日とあるプロジェクトで、Amazon S3に保存されているCSVファイルをデータベースにインポートする機能をPHPで作りました。 PHPではCSVを fopen と言う関数を使う事で、ストリームか ...
Rails 5.2のcredentialsを使うとDeviseからエラーが発生する問題と応急処置
August 08, 2018
posted by issei_m
※この問題はDevise 4.4.3以下で起きます。次期バージョンである4.5.0では修正されました。 発生した問題 とあるプロジェクトをRails 5.2で作っているのですが、Deviseを導入していくつかの設定を行っ ...
How to check the public (outbound) IP on CLI
July 18, 2018
posted by issei_m
Simply, you just hit: $ curl ipinfo.io/ip 18.179.199.139 Enjoy 👍
1Passwordの二要素認証機能を試してみる
July 14, 2018
posted by issei_m
皆さんこんにちは。梅雨も明け、一気に夏模様となりましたね。熱中症等に気をつけて過ごしていきたい所です。 さて、今回は1Passwordの二要素認証ついて書いてみたいと思います。 1Passwordとは このブログの読者に ...
Amazon EKSが一般公開されたので使ってみた
June 25, 2018
posted by issei_m
皆さんこんにちは。先日、ついにAWSのAmazon EKSが一般公開されましたね。現時点ではまだオレゴンとバージニア北部でしか使えませんが、今回は検証の為、ユーザーズガイドに沿って実際にクラスタを作成し、ゲストブックアプ ...
DockerでAWS Lambda用のNode.jsネイティブモジュールをビルドする
June 06, 2018
posted by issei_m
先日、AWS LambdaのNode.jsでiconvを使うのが大変だった件と言う記事を書きましたが、その後すぐ、AWSがAmazon Linux用の公式Dockerイメージを公開している事を知りました。 そこで、前回は ...
AWS LambdaのNode.jsでiconvを使うのが大変だった件
May 17, 2018
posted by issei_m
皆さんこんにちは。関東地方では梅雨入りもまだと言うのに、暑い日が続いていますがいかがおすごしでしょうか。 私は暑いのが苦手なので、ついに先日、今年初の冷房を使い始めました。笑 さて、最近、AWS Lambdaでiconv ...