ブックマーク / zenn.dev/levtech (17)

  • データベーススペシャリスト試験を受けてきたよ

    これはなに ども、レバテック開発部のもりたです。 今日、IPAのデータベーススペシャリスト試験を受けてきました。この一ヶ月、試験対策を頑張っており、Zennを書く時間もあんまりなかったので、解放感とともに受験ログみたいなのを書きたいと思います。 書くことと前提 書くのは以下のことです。 準備したこと スケジュール 利用した書籍・記事 当日 当日やったこと 試験の感想 試験後 なお前提として、もりたはITエンジニアとしては10年目、RDBを使い始めて3年くらいのWebエンジニアです。 当日までに準備したこと スケジュール 全体的な学習:2023年9月〜 まず自分はここがイレギュラーだと思うのですが、2023年の9月くらいからずっとデータベース周りの勉強をやっていました。こちらの記事に書いた書籍を中心に読んでおり、データベーススペシャリスト試験の対策という観点で役に立ったかなあと思うのは以下の

    データベーススペシャリスト試験を受けてきたよ
    toshikish
    toshikish 2024/10/15
  • 初めてのSREから3年半でやったことの振り返り

    レバテック開発部DevOps推進グループSREチームの蒲生です。 このたびレバテックを退職することになりました。 今までやってきたことを振り返ることで、お前普段なんもやってなかったやろと思っている方への説明とまだまだやらなアカンことあるけど許してねって気持ちを吐き出したいなと思います。 初めてSREとして働き始めてからレバテック事業でのSREチーム結成、活動していくまでで「やってよかったな」と思ったことを紹介していきます。(僕個人ではなくチームでの取り組み) 「こうしておけばよかったな」という懺悔も混ぜておきます。 1. 監視体制作り 初めてのSREだったので定石通り、こちらのピラミッド通りにプラクティスを実践しました。 (O’Reilly Site Reliability Engineeringより) 簡単な状況 監視設定はCloudWatch CDKでリソースのCPUやメモリ、スレッド

    初めてのSREから3年半でやったことの振り返り
    toshikish
    toshikish 2024/10/02
  • 画面遷移に順序があるUIの保守性を向上させる「順序ありオブジェクト指向UI」の提案

    はじめに UIを設計するときにオブジェクト指向UIは大きな効果を発揮することがあります。一方で、オブジェクト指向UIの考えをそのまま適用できないけれども、タスク指向UIと呼ぶのも微妙な画面があります。 例えば、ECサイトの購入プロセスです。よくあるECサイトの購入プロセスは以下の図のような構成です。これだけだと簡単そうですが、実際のECサイトの購入プロセスはある画面をスキップしたりしなかったりという制御があり、なかなかに複雑なものです。 今回の記事は画面遷移に順序があるがタスク指向UIと呼ぶのも微妙な、複雑な画面遷移を持つ画面にオブジェクト指向UIの考えを導入することで画面遷移制御を簡単にする手法を提案します。 対象読者 画面遷移の制御の保守性を向上させたいITエンジニア この記事の概要 複雑な画面遷移を持つUIに対して、オブジェクト指向UIの考え方を導入することで、制御フローをシンプルに

    画面遷移に順序があるUIの保守性を向上させる「順序ありオブジェクト指向UI」の提案
    toshikish
    toshikish 2024/09/13
  • スロークエリログをどう使えばいいのかって疑問、全て解決

    これはなに ども、レバテック開発部のもりたです。 今回はMySQLでのスロークエリログについて調査してまとめました。 スロークエリログといえば古くからパフォーマンスチューニングの力強い味方といったふうに語られることも多いですが、最近はクラウドで使える便利なツールも生まれています。この記事ではスロークエリログの一般的な使い方を紹介するとともに、他のツールとの比較や、どんな場面でスロークエリログが役に立つのか、また役に立たない場合はどんなツールを利用することができるのかについてまとめました。 足りないところなどあればおおいにマサカリ投げていただけると幸いです。 記事の流れ 記事の流れ この記事はそこそこ長いので、初めに記事の流れを解説します。適宜読み飛ばしてください。 なぜスロークエリログなのか ここではそもそもスロークエリログをなぜ確認したいのかみたいなところを説明します スロークエリログの

    スロークエリログをどう使えばいいのかって疑問、全て解決
    toshikish
    toshikish 2024/09/08
  • 君たちの知らないAPIデザインパターンの話をしよう

    このように、REST の設計原則に従って API を構築することで、ほとんどの API 設計は直感的に、かつ問題なく行うことができます。 デザインパターンの紹介 ここからが題です。大抵の場合、上の例で示したような API 設計で十分です。 ただ、複雑な要件では、上のような典型的な API 設計のみでは良いAPIを設計するための4つの特性を満たせないことがあり、そのような場合のためにデザインパターンが有効です。 カスタムメソッド 概要 カスタムメソッドは、標準的な CRUD 操作(作成、読み取り、更新、削除)では対応できない特定の操作が必要になる場合に便利です。例えば、メールの送信や即時の文書翻訳など、通常の create や update メソッドでは処理が難しい操作がこれに該当します。 参考までに、以下に Google が出しているカスタムメソッドの記事を示します。 実装例 以下は、カ

    君たちの知らないAPIデザインパターンの話をしよう
    toshikish
    toshikish 2024/07/24
  • AWS RDS/Auroraでモニタリング&チューニングを始めるための資料11選

    これはなに ども、レバテック開発部のもりたです。 もりたはデータベースが好きなんですが、最近は特にAWS RDS/Auroraでのモニタリングとパフォーマンスチューニングについて興味があります。ただ、これらのうちモニタリングは扱っている話題が若干ローレベルであまりピンとこず、またチューニングもどこから手をつければいいのかわかりませんでした。 この記事では、もりたがモニタリング&チューニングを学習する上で役に立った書籍やWeb上の資料をロードマップ形式で紹介していきます。対象読者はDBのモニタリングとチューニングをやりたいけどどこから手をつければいいか分かんないなとなっている人、ゴールはそんな人がモニタリング&チューニングの第一歩を踏み出せることです。 スコープ 今回扱うもの、扱わないものは以下の通りです。 扱う モニタリング&チューニングの概要 モニタリングの前提知識 チューニングの前提知

    AWS RDS/Auroraでモニタリング&チューニングを始めるための資料11選
    toshikish
    toshikish 2024/07/20
  • OAuthの仕組みを説明してHonoで実装してみる

    はじめに はじめまして!レバテック開発部でレバテックプラットフォーム開発チームに所属している塚原です。 直近に認証・認可周りの改修を予定しているため、チーム内で認証・認可の基礎からOAuth・OpenID Connectの仕組みを学ぶ勉強会を実施しました。今回はそこで学んだことのうち、認証・認可の基礎とOAuthの仕組みをまとめます。また、WebフレームワークとしてHono、JavaScriptランタイムとしてBunを使って、OAuthクライアントを実装してみます。 対象読者 認証と認可の違いってなんだっけ...?という人 Basic認証やDigest認証てなんだっけ...?という人 OAuthはライブラリ使って実装してるから仕組みよくわかっていない...という人 OAuthのクライアントの実装って何をすればいいんだっけ...?という人 認証・認可の基礎 2024/7/18 追記 こちらで

    OAuthの仕組みを説明してHonoで実装してみる
    toshikish
    toshikish 2024/07/17
  • システムで扱うステータスの分解と変換

    初めに レバテック開発部の今井です。 ソフトウェア開発において、データの状態管理は非常に重要です。注文の状態、ユーザーの認証状態、プロジェクトの進行状態など、多岐にわたる状況で、適切な状態管理が求められます。しかし、ビジネス要件の変化や新機能の追加に伴い、状態管理が複雑化し、保守が難しくなることがあります。 この記事では、データの状態管理を簡単にするためにMECEを初めとした方法で分析を提案します。これによって、柔軟で効率的なシステム設計が可能になることを目指します。 TL;DR MECEの原則を使ってenum型ステータスを分解する方法を解説する MECEによる分解から一次情報と二次情報という区分を提案し、分析の高度化を目指す 一次情報と二次情報の区分とシステム間のデータ連係の関係性について考察する 対象読者 システムの保守性・拡張性に興味関心のあるエンジニア enumをMECEに分解する

    システムで扱うステータスの分解と変換
    toshikish
    toshikish 2024/06/29
  • Datadog→New Relicの移行を決めた際のADRを公開します!

    はじめに レバテック開発部、SREチームに所属している金澤です。 弊社開発部では、Datadogで行っていた監視からNewrelicを用いたオブザーバビリティへの移行を行う決定をしました。 そして、なぜオブザーバビリティを採用したのか、DatadogからNewrelicへ移行したのかといった意思決定をADRとして記録し、社内に展開しています。 今回はこのADRの内容を公開します! ※記事はNewrelic、Datadogを肯定、否定するものではございません。 ADR コンテキスト 事業軸 レバテックの事業戦略は事業ポートフォリオ構想に従っている 既存の事業を拡大させながら新規サービスを生み出し続ける 事業ポートフォリオ構想 開発軸 事業領域の大きさ、深さが拡大し必要なドメイン知識が肥大化 スケーラビリティとアジリティの担保が困難になってきた バグ、障害の発生 レビュー工数の増加 新規参画

    Datadog→New Relicの移行を決めた際のADRを公開します!
    toshikish
    toshikish 2024/06/07
  • サブクエリの書き方を2万文字弱かけてすべて解説する

    これはなに ども、レバテック開発部のもりたです。 今回はSQLのサブクエリについてまとめます。仕事でクエリを書く際、サブクエリは頻出の構文だと思うんですが、同時にサブクエリの書き方を完全に理解しているよという人は案外少ないのではないでしょうか?[1] 実際、MySQLの公式ドキュメントを見ると12ページくらいを割かれており、意外と奥深いのがサブクエリです。使いこなせると便利ですし、何よりちょっとSQLのコツみたいなのがわかって面白いよ、ということで記事にしてみました。 前提 この記事は以下の前提を含んでいます。 環境 MySQL8.0系 読者の知識 なんとなくサブクエリが書ける けど相関サブクエリとかになると「あーっ」つってGoogle meetを閉じてしまうくらいのレベル感 記事のボリューム 18,000文字 おれの卒論が20,000文字だった マサカリ 間違ってたら投げてくれ〜〜 それ

    サブクエリの書き方を2万文字弱かけてすべて解説する
    toshikish
    toshikish 2024/05/02
  • スロークエリを改善したらECSの負荷が爆下がりした話(TypeORM)

    TL;DR TypeORMで発生していたスロークエリを改善 スロークエリを改善したらECSの負荷も減少 はじめに スロークエリを改善したら、ECSコンテナ側の負荷も下がってなんでだろ?と思ったので記事にしようと思います。 環境 TypeORM v0.3.20 Node.js v18.x バックエンドインフラ ECS on Fargate => Amazon Aurora MySQL 負荷改善の前と後 まずはどのくらい改善したのかを示します。 この時ECSコンテナ8台動いてました。(4vCPU 8GBMem) 改善前 改善後 改善前と改善後は一日前の同じ時間帯のものです。 ちゃんと動いてるのか不安になるくらい下がってました笑 どのような対応をしたのか スロークエリの出ていたクエリでMySQLの実行計画を確認しました。 TypeALL,index, Using Filesort等はなかったので

    スロークエリを改善したらECSの負荷が爆下がりした話(TypeORM)
    toshikish
    toshikish 2024/04/06
  • 荒廃したテックブログの再生

    これは『2023年度を数字で振り返る「技術広報LT大会」』の登壇内容について、 口頭で話したことを補足しつつ、その他話せなかったこと含めてドキュメントにまとめたものです。 LT大会は楽しいですね、各社の発表も有益情報が多かったので、また行こうと思います。 TL;DR テックブログの投稿数が94倍、PV数が39倍に。 まずは、定石に則りアンチパターンを潰す。 自社の風土に合わせてローカライズしてアウトプットを継続する工夫を。 書きたいものを書いてもらった上で、「できる限り読まれる努力」は運営の責任。 当ドキュメントは色々私が書いてますが、全て編集長がやったことです。 荒廃したテックブログの再生 荒廃してました! レバテック開発部としては、年2しかテックブログを書いていませんでした。 荒廃の定義にもよりますが、私はこれを荒廃と見てました。 技術広報を促進していくタイミングで、まずはここから

    荒廃したテックブログの再生
    toshikish
    toshikish 2024/03/29
  • クエリチューニングを簡単に試せるハンズオン環境「SeekQueryLab」を作ったよ

    これはなに ども、レバテック開発部のもりたです。 クエリチューニングを学ぶとき、環境を作るのがとにかく面倒なんですが、そこんところをショートカットしてクエリチューニングの練習ができる環境を作りました。今回はそのご紹介です。 なお対象はMySQLです。 概要 こちらのリポジトリをクローンしてローカルのDockerで動かせます。 立ち上げ方等はREADMEにも書いてありますが、コンテナを立ち上げるとテーブルデータが入った状態で立ち上がります。改善可能なクエリが40くらい用意してあるので、それのチューニングをして楽しいな、みたいな使い方を想定しています。書籍などでクエリチューニングの仕方自体は学んだんだけど、試す環境がないなあという方向けです。 動機と狙い なんのために作ったのかということも整理しておきたいんですが、RDB周りの勉強をしていて、ハンズオン系教材が少ないなと感じたのが発端です。W

    クエリチューニングを簡単に試せるハンズオン環境「SeekQueryLab」を作ったよ
    toshikish
    toshikish 2024/03/20
  • TiDBにおけるパフォーマンス検証の進め方とつまづきポイント

    TL;DR TiDBにおけるパフォーマンス検証をどうやって行ったか パフォーマンス検証を行ったときにつまづいた問題とその対応策 TiDBの仕様やアーキテクチャなどの話はありません 前提 対象のDBAmazon Auroraで稼働中 DBエンジンはMySQL TiDBに移行できないかPoCを実施 DB周りにいろんな課題があり、TiDBで解決できないか検証 TiDB Cloudで検証 番運用を想定してTiDB Dedicatedを利用 先にお伝えしたいこと TiDB導入したいとか言う前に、今使っているRDBで発生しているスロークエリとかIndex設計を見直した方が良いです笑 理由はこの記事を見てもらえるとわかると思いますw パフォーマンス検証の進め方 1. パフォーマンス検証に利用するクエリを洗い出す 観点としては以下の2つ 実行される頻度が高いSQL 実行速度が遅いSQL(スロークエリ)

    TiDBにおけるパフォーマンス検証の進め方とつまづきポイント
    toshikish
    toshikish 2024/03/11
  • データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)

    これはなに ども、レバテック開発部のもりたです。最近めっちゃ元気!! 今回は『データベースについて勉強したいあなたに送る技術書17冊(+11冊1講義7link)』として、もりたがここ半年くらいでわーっと集めたデータベース周りの書籍(とか)を紹介していきます。アプリケーションって結局はデータベースみたいなところがあると思うんですが、おれは長いことデータベースをどう学んだら良いのか分かりませんでした。同じような気持ちを抱えているITエンジニアの人もいると思うので、学習ロードマップと合わせて紹介していきます。 なお具体的な対象読者は業務でなんとなくSQL書いてるけど、ウィンドウ関数とか言われると分からんな……くらいの人です。 扱う領域と扱わない領域 扱う領域としてはだいたい以下 再入門 SQL 内部構造 論理設計 周辺知識 データベース理論 その他高度なもの モデリング、NoSQL、分散データ

    データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)
    toshikish
    toshikish 2024/02/12
  • 愛してやまないAWSで展開するセキュリティ対策戦略

    TL;DR セキュリティー対策には予防的統制と発見的統制の 2 つの観点が欠かせない AWS が提供するセキュリティーサービスが予防的・発見的統制にどう寄与するかを解説 セキュリティー対策は、リスクの特定と可視化、リスク分析と優先度付け、施策費用の算出、経営層への報告とサポートの獲得で進めるべし セキュリティーは、単に技術やツールを導入するだけではなく、組織全体の意識や文化、そして継続的な改善が求められる はじめに レバテック開発部レバテックプラットフォーム開発チームに所属している内藤です。 普段は、バックエンドの設計や実装、さらにインフラの構築まで幅広く担当しています。 最近、私は弊社開発部を代表して(色々な方面から怒られそう笑)、AWS セキュリティインシデント擬似体験 GameDay に参加する機会に恵まれました。このイベントでは、セキュリティインシデントへの対応方法や予防策など、実

    愛してやまないAWSで展開するセキュリティ対策戦略
    toshikish
    toshikish 2024/02/09
  • Next.js + Hono + AWS でイベント駆動なプロフィール交換アプリを開発!

    TL;DR スマホでQRコードを読み込むプロフィール交換アプリを開発した。 イベントソーシングだったり Hono だったり、気になる技術を試せた。 アプリのレスポンスが速く、懇親会も盛り上がったのでよかった! はじめに レバテック開発部で基盤システムグループに所属している瀬尾です。 普段はマイクロサービスのつらみを味わったりしています。 昨年末に弊社で大規模な懇親会があり、そこでの交流を増やす目的として、互いの QR コードを読み取りプロフィールを交換するアプリを作りました。 この記事では、そのアプリをどんな技術でどのように開発していったかをご紹介しようと思います! 技術スタック 言語 Typescript GoLambdaで使用) フロントエンド Node.js Next.js, TailwindCSS バックエンド Bun Hono, Prisma イベントソーシング インフラ AW

    Next.js + Hono + AWS でイベント駆動なプロフィール交換アプリを開発!
    toshikish
    toshikish 2024/02/03
  • 1