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

Rails でカレンダーチャート(いわゆる Github の草) を描画する

Rubygem: rails_charts から Apache ECharts を使用する 核となるのは JavaScript のライブラリ Apache ECharts です。このライブラリを利用して Canvas API ベースの 2D グラフィックを描画することができます。各言語でのラッパーライブラリが存在し、Rail…

Notion の Engineering Wiki テンプレートを使ってチームの情報共有を効率化する

Engineering Wiki のテンプレートが優秀 Notion が標準で提供しているテンプレートを物色したところ、Engineering Wiki がとても良かったので紹介します。 タグによるドキュメントの集約ができるので目的のドキュメントに到達しやすい ドキュメントをタグご…

AWS EventBridge でメトリクスとイベントの両ターゲットを対象にした通知フローを構築する

メトリクスに応じた処理とイベントに応じた処理を SNS to Chatbot の通知フローのレールに集約する ここ数ヶ月 AWS EventBridge を利用した通知フローの改善を通して AWS Observability について、その全体像の理解が深まりました。このエントリでは AWS Eve…

docker buildx でマルチプラットフォームのイメージを作成する その2

MacOS Ventura で buildx を利用して amd64 と arm64 のイメージを作成する docker buildx でマルチプラットフォームのイメージを作成する - blog.ayakumo.net で紹介した buildx を利用して amd64 と arm64 のイメージを作成していきます。環境は以下になり…

asciinema と agg: ターミナルセッションの記録と共有

百聞は一見に一見にしかず? AWS EC2 のコスト計算 API を Rust で作成した - blog.ayakumo.net で紹介したツールの README を作成するにあたり asciinema と agg*1 を使用しています。ターミナルセッションを GIF にすることで、ツールの動作や実行環境が読…

AWS EC2 のコスト計算 API を Rust で作成した

AWS EC2 のコスト計算をターミナルで行う AWS EC2 のコスト計算を行う API を Rust で作成しました。フレームワークは Actix Web を使用しています。 github.com 以下の特徴とターミナルで JSON を加工できる点で、AWS 公式の オンデマンドインスタンス料金 …

Amazon Linux 2023 用の user_data.txt を作成する

AL2023 with Ruby, Python, Node.js, and Rust EC2 環境を AL2023(Amazon Linux 2023) に切り替えるべく準備を進めています。AL2025 がリリースされる 2025年まで の 2 年間のベースとする予定です。 まずは作って壊せるスタンドアロンの開発環境(workstatio…

docker buildx でマルチプラットフォームのイメージを作成する

いつのまにかビルド時にランタイム時のターゲットプラットフォームを選択できるようになっていた 昨今は ARM 系(graviton) の EC2 を使用することが多いので、これは助かります。:-) ➜ cat Dockerfile # syntax=docker/dockerfile:1 FROM alpine:3.16 RUN ap…

フォームの入力を一部記憶してユーザーの入力作業を省力化する

英語レッスンで知らない単語がひとつ以上出てきた場合 Rails で個人用の英単語帳アプリを開発しています。開発環境は Rails 7.0.4 + Ruby 3.2.2 です。 オンライン英会話レッスンではインターネットの記事を教材にすることが多いです。その場合、同記事中に…

Ec2 Instance Connect にはリージョンごとの特定の IP 範囲からの接続をセキュリティグループで許可する必要がある

aws

AWS Management Console からブラウザベースのターミナルで EC2 に接続する AWS Management Console 内から任意の EC2 インスタンスに SSH する機能が EC2 Instance Connect です。CloudShell 同様、ブラウザベースのターミナルで接続することになります。EC…

ゲストユーザ用のデータを実データから用意する

SignUp 以前のユーザーに、実際に「動いている様子」を体感してもらう Rails で個人用の英単語帳アプリを開発しています。開発環境は Rails 7.0.4 + Ruby 3.2.2 です。 ごくごく限られた知り合いに実際にアプリを触ってもらってフィードバックをもらうために…

docker buildx build を使用して Rails の master.key をコンテナイメージから除外する

master.key とは Rails の master.key とは認証情報を暗号化する時に使用されるキーファイルです。rails credentials:edit で認証情報を credentials.yml.enc に暗号化(ENCrypt) して保存する時に使用されます。認証機能に Firebase authentication を利用し…

AWS AppRunner で Rails アプリを動かす場合のベストプラクティス

aws

AppRunner から割り当てられるドメインと DNS rebinding atttacks AppRunner にアプリをデプロイした場合、アプリに割り当てられるドメインは ランダム文字列.リージョン.awsapprunner.com になります。このドメインは Rails の DNS rebinding attacks を防…