サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
tmokmss.hatenablog.com
ワタミチートシート以来、久々のカンペ記事。 AWS SDK JavaScript v3がリリースされて久しいが、移行は進んでいるだろうか? LambdaのNode.js v18ランタイムではv3 SDKのみビルトインされているなど、そろそろ移行を進めないとまずい状況も増えてきている。 私自身は未だにv3のSDKでS3のファイルをダウンロード/アップロードする操作に慣れないので、この記事にそれらのサンプルコードをまとめる。 事前準備 以降のコードに必要なライブラリは、基本的に以下の一つだけでOK。 npm install @aws-sdk/client-s3 コード S3頻出のパターンとして、以下5つがあるだろう: メモリ上のデータをS3にアップロード ファイルシステム上のデータをS3にアップロード メモリ上にS3のデータをダウンロード ファイルシステム上にS3のデータをダウンロード S3上
昨今Infrastructure from Code (IfC)という概念をよく耳にします。先日もAWSのGregor Hohpeが関連する記事を書いていました。 architectelevator.com この記事では、Infrastructure from Codeとはなにか簡単に紹介し、具体的にどのようなツールがあるか網羅的にまとめます。 Infrastructure from Codeとはなにか Infrastructure from Code (IfC) とは、その名の通り、Infrastructure as Code (IaC) に関連する概念です。IaCとの根本的な違いは、IaCは開発者がインフラを明示的に意識して構成を記述するのに対し、IfCでは開発者がインフラをできるだけ意識しないよう抽象化を試みていることです。これにより、差別化に繋がらない重労働ができる限り排除された高
昨今LLMの台頭により、テキストをベクトル化して類似文書の検索に利用する手法が流行っています。 今回はAWSでこの検索を実現するための一方法として、SQLiteのプラグインであるsqlite-vssをAWS Lambda上で使う方法をまとめます。 github.com 意外とハマりどころや特有の考慮事項が多いので、必見です! アーキテクチャ LambdaでSQLite?と思った方のため、このアーキテクチャの要点をまとめます。 このアーキテクチャのメリットは、完全なサーバーレスでベクトル検索を実行できる点です。OpenSearchやPostgres (pgvector)、Redisなどのインスタンスを管理する必要はありません。サーバーレスの利点はもはや言うまでもないでしょう。 また、SQLiteを使うため、ベクトルだけでなく他のリレーショナルなデータをあわせて格納できる点も便利でしょう。例え
AWS CDK TIpsシリーズの記事。 タイトルの通り、AWS CDKのNodejsFunctionを使う時に依存関係を解決する方法が数パターンあるので比較してみる。 例 今回は、以下のTypeScriptのLambdaをデプロイするケースを考える。 // よくあるAPI GatewayのLambda Authorizer import { APIGatewayRequestAuthorizerHandler } from 'aws-lambda'; import { verify, decode } from 'jsonwebtoken'; export const handler: APIGatewayRequestAuthorizerHandler = async (event, context) => { const token = event.headers?.Authoriz
GraphQLサーバーを開発する際は、まず schema-first か code-first かを決めることになるでしょう。前者はまず graphql.schema を手書きし、そこから言語固有のコードを生成する方法です。後者は言語固有のコードを書いてから、 graphql.schema を生成する方法です。 今回2つのどちらが良いかは議論しませんが、後者の code-first & TypeScriptでGraphQL開発をする場合、ライブラリの選択肢がいくつかあります。この記事では、それらのライブラリの特徴をまとめます。特に以下の観点で比較します: Prismaとの連携: 私がTypeScriptでウェブ開発するときはORMのPrismaをよく使います。GraphQLと組み合わせる上では、型定義の重複やN+1問題を回避するため、ライブラリ間の連携は重要です。 開発の活発さ: 将来的に
AWS CDK TIpsシリーズの記事です。 AWS CDKのスタック、まとめてますか?分けてますか?分けている方はどういう基準で分けていますか? この議論は人によって割と意見の分かれることも多く、最高の飲み会ネタになるでしょう。今日は私見も交えながら、CDKのスタック分割法についてまとめてみたいと思います。 自己紹介 私見を語る上で自己紹介は必要だと思うので、私自身のCDK経験を簡潔に: CDKは2020年の頭に出会い、以下のようにかれこれ3年ほど使っています。 前職ではそれなり規模のmBaaSをCDKを使ってAWSに移行・運用していました 現職では大小様々な規模のプロトタイプ開発にCDKを使っています。数えるとこれまで15個くらいシステムのプロトタイプを作ったようです。 現職のサイドプロジェクトとして、グローバル規模の社内システムの開発運用もCDKでやってました (お手伝い程度)。AW
これは AWS LambdaとServerless Advent Calendar 2022 の記事です。 Next.jsをホスティングする手段の一つとして、Standaloneモードで動かす方法があります。 コンテナ1個で動かせるため非常にお手軽な選択肢で、GCPのCloud RunやAWSのApp Runnerなどで動かす例を見ることも多いです。 この記事では、AWS Lambda + API Gatewayのサーバーレス鉄板構成でNext.js standaloneモードを公開する方法を紹介します。巷ではあまり見かけない構成だったので、新しい選択肢となることに期待したいです。この構成は趣味運用でできる限り費用を抑えたい方にもオススメです。 方法 具体的な方法はCloud RunなどでNext.jsを動かす従来の方法とほぼ同じです。Lambdaで動かすための面倒な工夫やコードの変更はそ
はじめに 最近AWSのサーバーレスサービスで作るWebサービスの雛形を公開してみた*1。小規模サービスならかなり安く (ほぼ無料になるケースも多そう) で運用できるので、割と良い選択になる場面も多いと考えている。今日はその布教記事。 github.com 全体構成 全体の構成は下図のとおり。特徴としては以下が挙げられる: CDNでフロントエンド (React SPA) の静的ファイルを配信 バックエンドAPIは API Gateway + Lambda (Express.js) データベースはDynamoDB (詳細は後述) ユーザー登録が必要なサービスのため、Eメール認証も付けている ありがちな非同期ジョブ、cronジョブ実行の仕組みも用意 AWS CDKで一発デプロイ こういう構成を趣味サービスで採ることのおそらく一番のデメリットは、学習コストだろう (VMを使った構成とはかなり違うの
ISUCON12予選に参加しました!結果、スコア自体は予選ボーダー通過していましたが追試で失格でした 😭😭😭 チームいすもなで参加 もなちゃんすまん… 通過した気満々で参加記事書いてましたが、供養のため投稿します。 なお過去にはISUCON9, 11に参加していずれも上位30~50%tileくらいに留まったので、今回はその反省も踏まえつつ準備しました。 今回の方針 Go使う 大きな変化はこれです。ISUCONで使う言語は実質RubyとGoの二択だと思ってます (他の言語はISUCON向けの情報が充実してない印象) が、これまでは業務でGoを使ったことがないのでRubyを選択してました。ただしRubyは以下のつらみが見過ごせませんでした: 諸々のツール (profilerなど) が古く使いづらい unicorn/pumaの設定などチューニング項目も増える 静的解析が弱いゆえにデプロイし
はじめに DynamoDBを使っていると、とかくテーブルは1つにまとめるべきという声や、複数テーブルからシングルテーブル設計に移行したという事例を耳にすることがあります。 しかし、その理由を聞いてみると、性能のためだったり管理を簡単にするためだったり、人により異なる印象です。 NoSQLにおける非正規化してデータをもつプラクティスは理解しつつ、その域を超えて全く無関係なItemを1テーブルにまとめる場合もあるようです。 私自身このトピックについて混乱していた中で、先日 The What, Why, and When of Single-Table Design with DynamoDB というブログを見つけました。 それを読んだ上で考えると、割と理解が整理できたので、この記事にまとめてみます。 なお私はDynamoDBの運用経験がまだ十分にあるわけではないので、勘違いや考慮漏れなどあるか
数少ない読者へ愛を込めて 「MariaDB にコントリビュートした話」ってタイトルでブログ書いてください✋— N. Yanagisawa (@NayutaYanagisaw) May 19, 2022 MariaDBに初めてコントリビュートした時の作業記録をまとめる。Issue自体は一番簡単なものを渡してもらったので、最も初歩的なことはじめの参考程度にご覧ください。 開発環境の用意 初めに開発環境を整える。MariaDBのビルドは重いとよく話に聞いていたので、手元のMacでは心もとない。仕事柄使いやすいEC2を採用。オレゴンに c5.2xlarge を建てた。 ↓を参考にすればよいが、今回はAmazon Linux 2上で動かしたいので、UbuntuではなくCentOS向けの手順を使う。 nayuta-yanagisawa.hatenablog.com sshログインしたら、これを打てばO
定義 プログラムに変更Xを加えるとき、類似の機能A,B,Cの実装を確認し、その共通部分から、変更Xに必要な実装を導くことがあります。 この一連の作業を、この記事では帰納的プログラミングと呼びます。 帰納(きのう、英: Induction、希: επαγωγή(エパゴーゲー))とは、個別的・特殊的な事例から一般的・普遍的な規則・法則を見出そうとする論理的推論の方法のこと。 出典: Wikipedia 帰納的プログラミングの例 このコミット は帰納的プログラミングにより作成されました。 github.com 帰納する際は、次のコミットを参考にしています。 MDEV-28007 Deprecate Spider plugin variables regarding statistics per… · MariaDB/server@f31642e · GitHub MDEV-28297 Depre
このページを最初にブックマークしてみませんか?
『tmokmss.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く