2024/06/20 GMOペパボ
AWS CDKを日々使う中で溜まった知見を書き出しています。記事を追加するごとにここも更新していきます。 以下はベストプラクティス的な話です: CDK Tips: コンストラクトで構造化しよう すべてのリソースをスタックのコンストラクターにベタ書きしないほうが良いこともある話 CDK Tips: スタックの分け方について スタックは不必要に分ける必要ないですという話 Construct IDはパスカルケースで命名するのが良い コンストラクトを定義するときの命名規則の話 以下はより発展した使い方の考察です: CDK Tips: cdk synthを高速化する CDKの合成処理が遅いときに速くするための話 AWS CDK Tips: ID=Defaultの使い方 コンストラクトで構造化する記事で紹介した、コンストラクトIDを Default に設定した際の挙動を解説 L2 Constructか
はじめに SREチームの大木( @2357gi )です。 ECS Serviceのオートスケーリングやバッチなど、ECS Taskの起動停止が頻繁に行われる環境でAWS Configを有効にしていると、AWS Configのコストが無邪気に跳ね上がってしまうことがあります。 インターネット上では特定のリソースを対象外にすることによりコストを抑える手法が多くの記事として見かけますが、対象外にするとAWS Config側で「リソースタイムラインの表示」ができなくなったり、Security hubで使用する情報の記録を行うことができなくなってしまいます。 そこで、特定のリソースを「記録から除外」するのではなく、「日時記録に設定」することにより前述した懸念点を解消しつつ、コスト削減をすることができたので紹介します。 経緯 我々のプロダクトでもサービスのスケールや機能拡大に伴い AWS Config
Digitization部 Bill One Entry*1グループの秋山です。 はじめに Domain Modeling Made Functionalというスゴ本 補講:Make Illegal States Unrepresentable バックエンドの処理を抽象化する 手続き型プログラミングの典型例 課題1:制約のないエラーハンドリング 課題2:低い可読性 課題3:エラーハンドリングの低い網羅性 Railway Oriented Programming TypeScriptで型安全にエラーハンドリングする ステップ1:サブ関数の出力はResult型で表現する ステップ2:サブ関数にResult型を入力できるようにする ステップ3:サブ関数を連結する ステップ4:網羅的にエラーハンドリングする おわりに 付録 TypeScriptの全文サンプル はじめに エラーハンドリングは重要な処
TypeScriptを用いた開発では、その型システムを活かしてランタイムエラーを事前に防いだり、実装漏れを防いだりとコードの安全性の向上を図ることができます。 本記事では、個人的に知ったおかげでコードの安全性が増した!と感じたtipsをまとめました。 ※ なお、linterを用いたコードの安全性向上も非常に有効ですが、この記事では主にTypeScriptの型システムに焦点を当てています。 tips集 配列周りのtips まずは配列を扱う際に役立つ、tipsを紹介します。 配列からUnion型を作成する ↓のように(typeof array)[number]で配列の全要素を持つUnion型を作成できます。 const fruits = ["apple", "banana", "lemon"] as const; type Fruit = (typeof fruits)[number]; //
こんにちは。サイボウズの生産性向上チームの @korosuke613 です。 依存関係更新のプルリクエストを作ってくれる Renovate ですが、設定が難しいですよね。 Renovate の設定ファイルである Renovate config 変更時に、その変更が想定通りとなっているかどうかを確認する方法はいまいち公式ドキュメントに載っていません(載ってないはず)。その謎を解明するため、我々調査隊は Renovate の奥地へと向かった──────── というわけで今回は、Renovate config を動作確認する方法の調査をしたので、過程と結果を記します。 TL;DR 最終的なコマンド: LOG_LEVEL=debug RENOVATE_CONFIG_FILE=<Renovate config ファイル名> renovate --token <GitHubのパーソナルアクセストークン
はじめまして、2021年11月に食べログFE(フロントエンド)チームにジョインした遠藤です。 Next.jsを採用した新規プロジェクトに参画し、Sentryの導入を行いました。本記事ではSentryを導入した際の課題と解決策について記載していきます。 1. はじめに「Sentryとは何か?」、「食べログでSentryを選定した理由」などにご興味がある方はまず下記の記事を読んでみてください。 Sentryは便利ですが以前はアプリケーションに導入するにはいくつかのファイルを作成して、エラーやパフォーマンスをトラッキングするのに様々な設定を行う必要がありました。 そこでSentryが簡単にセットアップができるように@sentry/nextjsでwizardを提供してくれています。 wizardはコマンドを実行するだけでSentryに必要なファイルを自動で生成し、設定までしてくれる便利な代物です。
Blog 201905 ノートPCに入れたLinuxデスクトップで、元々入ってたOEM版のWindows10のライセンスを使って仮想マシンを作成する 元々はWindowsが入ってたノートパソコンにLinuxを入れて使っている場合、元々入ってたWindowsを仮想マシンなどで使いたいといった場合がある。 Windows 7とかだとPCに貼ってあるシールのライセンスを使えばとりあえず利用できたのだけど、Windows 10の場合はOEMライセンスとしてインストールされているので、ライセンスシールが貼ってなかったりする。 で、なんか方法無いのかなと調べてみたところ、どうやら仮想マシンのハードウェア情報を一部いじれば実現できそうだということがわかった。 I just bought a new laptop. The first thing I did was take out the unboot
2020年02月02日(日)2021年11月19日(金)KVMWindowsサーバCentOS 8 KVM上にWindows10をインストールしてみた Linuc Level3 304の勉強の絡みもあり、KVMでWindows10の仮想化をしてみました。 同様の内容が書かれているサイトは多数ありますが、ホスト側がCLIのみでWindows10用のゲスト作成があまりないこと、有ってもそのままでは出来なかったことから、メモを残しておきます。 Windowsのドライバにはパフォーマンス向上ため、virtioを使用しています。 ■物理サーバ環境 OS CentOS 8 CPU Intel Celeron N3150 4C/4T 1.60GHz (TB:2.08GHz) VT-x メモリ 8GB (4GB x2) DDR3-1866 (PC3-14900) 準備編 Windows10 イメージ準備
Windows 環境を Beelink EQ12 に移行したので、余った MINISFORUM DeskMini DMAF5 に Manjaro Linux をインストールしてみた。 インストールメディアの作成 USB メモリーでインストールメディアを作成した。作業した環境はメイン環境の macOS である。 ### USB メモリーのパスを確認 diskutil list ### USB メモリーのアンマウント diskutil unmountDisk /dev/disk4 ### ISOファイルを USB メモリーに書き込み sudo dd if=manjaro-gnome-22.1.3-230529-linux61.iso of=/dev/disk4
はじめにタイトルは若干煽りですが、TS 5.0 でBundlerという設定値が追加されたため、Nodeを使う場面はほぼ無くなったと思います。 今回は Node.js と TypeScript のモジュール解決の仕組みについて、moduleResolutionというオプションの観点から解説します。 この記事を書くにあたって実際に動作確認は行っていますが、もしも間違っているところがあればご指摘いただけると幸いです。 なお、 Node.js LTS v18、TypeScript v5.0 時点での情報です。 今後のバージョンアップにて変更がある可能性があります。 TL;DR"moduleResolution": "Node"は使わないほうがいい おそらく求めているものはBundler tsc をビルドツールとして使用している場合はNode16 / NodeNextがベスト Nodeを使う場合でも
近年の Node.js は API のサーバとしてはもちろん、Nuxt.js や Next.js といった SSR や BFF などフロントエンドのためのバックエンド言語としての人気が高まっています。 フロントエンドエンジニアがコンテキストスイッチ少なくバックエンドの整備ができることは非常に大きな利点です。 ですが、フロントエンド(ブラウザ側)とバックエンド(サーバ側)ではパフォーマンスチューニングで見るべき点が大きく違います。 しかし Node.js アプリケーションのパフォーマンスイシューの見つけ方などがまとまっている資料は少ないです。 そこで、本記事ではフロントエンドエンジニアが Node.js でパフォーマンスイシューを見つけ、改善するため自分が普段パフォーマンスチューニングを依頼されているときにみている基礎的なポイトをまとめていきます。 1. 計測ステップlink Node.js
AWS IAM Identity Center において一時的なアクセス許可を与える仕組みを提供する Temporary Elevated Access Management (TEAM) ソリューションを試してみた AWS IAM Identity Center で一時的なアクセス許可を与える仕組みを提供するソリューション Temporary Elevated Access Management (TEAM) が aws-samples で公開されました。例えば、特定の AWS アカウントへの AdministratorAccess 権限のアクセスを利用者が申請し、上長が承認する、といった運用を実現できます。 AWS のブログでも TEAM の使い方が紹介されています。 本ブログでは TEAM ソリューションをデプロイし、AWS アカウントへの一時的なアクセスの申請と承認を試してみます。
はじめに Steam で遊びたいと思ったゲームでも、Windows版があるが Mac版がないものが結構多いんですよね。そこでWineskinServerを使えば、MacでもWindows版のゲームが遊べるのか試してみました。 ※Mac版Steamはインストール済み、かつSteamアカウント作成済みです。 下記サイトでWineskinServerを使用して動作しているので大丈夫でしょう。 【2023/10/28追記】 エンジン「WS11WineCX64bit23.5.0_D3DMetal-v1.0」にした場合、遊戯王マスターデュエルを起動時に下記エラーが出ます。redditの情報ではD3DMetalが有効だと駄目なようです。 自分の場合、下記の方法で遊戯王マスターデュエルを起動させることが出来ました。 アプリケーションフォルダの「Wineskin Winery.app」をダブルクリックして、
Apple Silicon Mac(M1、M2) で Lima を使った Linux VMs with Rosetta 上で intel x86-64のdocker container イメージを実行する DockercontainerLimaRosettaAppleSilicon はじめに M2 Macも発売され、そろそろintel Macで開発している方々も少数派となってきているのではないでしょうか。 M1、M2といったApple Silicon MacのCPUはARMアーキテクチャを採用している一方、多くの開発ではプロダクション環境はx86-64 (amd64)であり、Docker周りの環境構築に一工夫必要な場合も多いのではないでしょうか。また、Docker Desktopの有償化に伴い、所属している組織によっては開発環境のコンテナセットアップの方法を見直しているところもあるかと思い
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く