ROXX開発者ブログ
https://techblog.roxx.co.jp/
ROXX開発者ブログ
フィード

【3日で開発】Google AI StudioでAIにアプリを作らせてわかったこと
2

ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} ⏱ どれくらいで作れたの? 今回のアプリはGoogle AI Studioとやり取りしながら3日で開発しました。アイデア出しから実装、3D表示、デプロイまでをAIと対話しながら進めたプロセスは非常に学びが多く、「AIにアプリを作らせるとはどういうことか?」を実感できました。 🙋♂️ 推奨する読者層 AIでアプリを作ってみたい人 デザインよりも機能を優先してプロトタイピングを素早く回したい人 AIとの協働開発に興味があるエンジニア 🧪 作ったもの:男子新体操やダンスの隊形を可視化できる…
4日前

BigQuery の自動メタデータ生成機能を試す(プレビュー版)
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} .table-warp > table {width: max-content;} 2025 年 4 月 9 ~ 11 日に開催された Google Cloud Next '25 にて、BigQuery に関する新機能も多く発表されました。 その中の、BigQuery ナレッジ エンジン の機能の 1 つとして「自動メタデータ生成」があり、こちらが気になったため、現在はまだプレビュー提供ですが、利用してみました。 自動メタデータ生成(Automated …
22日前

PostgreSQL Row-Level Security 入門 : 行単位でデータアクセスを制御する方法
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // はじめに 「このデータはあのユーザーには見せたくない」「マルチテナントアプリでユーザーには自分の会社のデータだけ表示したい」 データベースを運用していると、こんな悩みが出てくることはありませんか? PostgreSQL の行レベルセキュリティ (Row Level Security, RLS) は、そんな課題を解決するための機能です。 行レベルセキュリティ (RLS) とは? 行レベルセキュリティ (RLS) とは、データベースのテーブルに対して、どの行をどのユーザーが表示・操作できるかを細かく制御する仕組みです。 例えば、以下のようなケースで非常に有…
1ヶ月前

最近のインフラの学びまとめ
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} 最近インフラ関連のことで学んだり、初めて知ったことをまとめました。 ECSサービス間の通信 サービスコネクト 同じECSサービス間でのみ通信する場合に使用する。 呼び出す側の場合は「クライアント側のみ」、呼び出すかつ呼び出される側は「クライアントとサーバー」。 CloudMapの名前空間に「APIのみ」で作成される。 terraformではaws_service_discovery_http_namespaceリソースとなる。 サービス検出(サービスディスカバリ) ECSサービスだけで…
1ヶ月前

for文を減らして読みやすく。Goのmapsパッケージを使ったmap操作の整理術
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} .table-warp > table {width: max-content;} Go の map 型を扱うとき、キーだけを取り出したり、値だけを集めたり、2 つの map を比較したりと、さまざまな操作が必要になる場面があります。 そんなときに役立つのが、標準ライブラリの maps パッケージです。 本記事では、map 操作にありがちな for ループの繰り返しを減らし、より簡潔で読みやすいコードを書くための maps パッケージの活用方法を紹介しま…
2ヶ月前

ECS FargateでGoogleCloudとのWorkloadIdentity連携の際のハマった話
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} はじめに Google CloudとWorkload Identityで連携されているECS Fargateで動いているアプリからGoogle Drive APIを使おうとしたら以下のエラーが出ました。 Post \"https://www.googleapis.com/drive/v3/files/1234/copy?alt=json&prettyPrint=false&supportsAllDrives=true\": Get \"http://169.254.169.254/la…
2ヶ月前

k6 を用いた API 負荷テストの導入とシナリオ実行の基礎
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} .table-warp > table {width: max-content;} Webサービスを提供する上で、一定の負荷やスパイク的なアクセスがあっても安定して応答できるかどうかは非常に重要です。その確認に欠かせないのが「負荷テスト」です。 今回は、開発者フレンドリーで扱いやすいパフォーマンステストツール k6 を使って、API に対する負荷テストを実施する方法をご紹介します。 k6 とは k6 は、JavaScript ベースで負荷テストが書ける …
2ヶ月前

Workload Identity連携でAWSからGoogle Cloudにセキュアにアクセスする
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} はじめに GoogleCloudのWorkload Identityでの連携をAWSのLambdaを使用し、S3のファイルをGoogle CloudのCloud Storageにアップロードする方法を解説します。本記事では、Workload Identityを利用して、IAMロールとGoogle Cloudのサービスアカウントを紐付けることで、安全にアクセスできる環境を構築します。 lambdaではPythonを使用します。また、Terraformを使用します。 Workload Id…
3ヶ月前

TerraformでSecurity Command CenterのアラートをSlackに通知する
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} Security Command Center(SCC)とは Google CloudのSecurity Command Center(SCC)は、クラウド環境のセキュリティリスクの可視化・検出・管理を行うためのセキュリティ管理ツールです。 主な機能: • 脆弱性の検出(IAMの設定ミス、不正アクセス、脆弱なVMなど) • 脅威の監視(マルウェアや異常なネットワークトラフィックの検出) • コンプライアンス管理(PCI DSS、ISO 27001 などの基準への適合確認) Google…
3ヶ月前

Tidy First? を読んでみた
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // Tidy とは「整頓する」という意味。 コードを書く際に、いきなりシステムの振る舞いを変えるような大きな変更をするのではなく、まずは周辺を整えるような小さなリファクタリングから始めようというのが本書の大筋になります。 以前、著者ケント・ベックさんの XP 本を読んだことがあり、今回新刊が出たということで前情報なしに購入しましたが、冒頭から引き込まれたので、要旨をまとめてみました。 本書について Tidy First? ケント・ベック (著) https://amzn.asia/d/0YrvP74 第I部 整頓 ガード節 if 文によるネストした条件分岐…
3ヶ月前

Go における Adapter パターン - インターフェースの適用と統一
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} ソフトウェア開発では、異なるインターフェースを持つコンポーネント同士を統一的に扱いたい場面があります。そのような場合に役立つのが Adapter(アダプター)パターン です。 本記事では、Adapter パターンの基本概念を理解しつつ、Go 言語での具体的な実装方法を紹介します。 Adapter パターン Adapter パターンは、「あるインターフェースを、別のインターフェースに適用させる」ためのデザインパターンです。既存のコードを変更せずに、新しいイ…
3ヶ月前

ALBで簡単にメンテナンスモードを実装する
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} はじめに サービス運用の中で、計画的なメンテナンスや障害対応時に「メンテナンスモード」を導入することは重要です。本記事では、AWSのアプリケーションロードバランサー(ALB)を活用して、簡単にメンテナンスモードを実装する方法を紹介します。 ALBのリスナールールとターゲットグループを活用し、柔軟かつ迅速にモード切替を実現する方法について解説します。 実装方法 1. メンテナンスモード用のリスナールールを追加 まず、メンテナンスモードを実現するためのルールをALBのリスナーに追加します。…
4ヶ月前

NotebookLMの実践レビュー
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} NotebookLMとは NotebookLM(Notebook Language Model)は、Googleが提供するAIアシスタントツールで、指定したソースに基づいて質問に回答したり、情報を整理する支援を行います。特に、セキュリティや業務関連の質問回答を効率化する場面で活用されています。 https://notebooklm.google.com/ 使った経緯 社内で、セキュリティチェックシートへの回答が求められる際、効率化のためにNotebookLMを導入しました。これまでスプ…
4ヶ月前

Go学習ロードマップを完走!141時間かけて学んだこと
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} Go の理解を深めるために roadmap.sh を利用し学習したので紹介します。 roadmap.sh とは roadmap.sh は、開発者向けの学習ロードマップを提供するオープンソースプロジェクトです。 フロントエンド、バックエンド、DevOps、データエンジニアリング、AI/ML など、さまざまな分野で必要なスキルを視覚的なロードマップとして整理し、学習の指針を示しています。 ユーザーはロードマップを参考にしながら、自分に必要なスキルを順序立てて…
4ヶ月前

AWSのEC2にPHP+Nginx+phpMyAdminの環境を構築する
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // はじめに 本記事では、EC2上で Nginx と PHP、および phpMyAdmin をインストールし、MySQL データベースとの接続を行う手順を紹介します。実際にコマンドを実行しながら、各設定の意味や注意点も含めて解説します。 環境 OS: Amazon Linux 2023 yumのアップデート はじめに、Linuxのパッケージ管理ツール yum を使って、システムのアップデートを行います。 $ sudo yum -y update 1. Nginxのインストール Nginxをインストールします。 $ sudo yum -y install n…
4ヶ月前

GitHub ActionsとECSタスク定義の循環依存を解消した話
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} ECSタスク定義とECRリポジトリの設定で苦戦したため、その解決の記録を共有します。 起こった問題 インフラ側 ECSタスク定義を作成する際、指定するECRリポジトリが空の場合、タスク定義の作成が失敗する問題が発生しました。 このため、事前にリポジトリに最低1つのDockerイメージをプッシュする必要がありました。 アプリ側 GitHub Actionsでは、ECSタスク定義のイメージURI(ECRリポジトリ)を参照しますが、タスク定義が存在しない場合にイメージをプッシュする処理が失敗…
4ヶ月前

スクラム入門
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // この記事はスクラム開発について学ぶために読んだ SCRUM BOOT CAMP の読書メモと感想です。 本について SCRUM BOOT CAMP THE BOOK【増補改訂版】 スクラムチームではじめるアジャイル開発 西村 直人, 永瀬 美穂, 吉羽 龍太郎 (著) https://amzn.asia/d/1fo7IBF ソフトウェアを作る上で本当に重要なことは何か? できあがったソフトウェアを実際に活用することで顧客や利用者の課題を解決したり、お金を稼いだりする、つまり成果を上げること。 ソフトウェアを作ること自体は目的ではなく、成果を上げるための…
5ヶ月前

Laravel Docker イメージサイズ削減に挑戦!~実践と効果~
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} Dockerイメージサイズを削減することは、プロジェクトの効率化やコスト削減において非常に重要な取り組みです。特に、Laravelのようなフレームワークを使ったプロジェクトでは、サイズが膨らみがちで、ビルドやデプロイの速度が遅くなることがあります。 今回、私は約400MBのイメージを約200MBまで削減することに成功しました。その過程で得た知見や具体的な手法を、実例を交えてご紹介します。 イメージサイズ削減のメリット Dockerイメージのサイズを小さくすることには、以下のようなメリッ…
5ヶ月前

Go における Builder パターン - 構造体生成の整理と制御
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} Go では、構造体を利用してデータを管理することが一般的ですが、オプションの多い構造体の初期化や、変更を避けたいオブジェクトの生成には工夫が必要です。 本記事では、柔軟かつ一貫性のあるオブジェクトの生成を可能にする Builder パターンについて、その基本的な実装方法と適用例を紹介します。 Builder パターン Builder パターンは、複雑なオブジェクトの生成を簡潔にし、可読性を向上させるためのデザインパターンです。特に オプションの多い構造体…
5ヶ月前

ALPS, ASD でセマンティクス重視のドキュメントを作成する
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // ソフトウェア設計をする際に以下のような課題が発生する場合があります。 ドキュメント化のコストと、管理コストの増加 システムが複雑化するにつれて、コードの理解が難しくなる 一貫性のない命名規則 これらの課題を解決するために、今回は ALPS という情報設計手法を学習しました。 ALPS とは ALPS QuickStart によると、以下のように説明されています。 Application-Level Profile Semantics (ALPS)は、アプリケーションレベルのセマンティクス(語句の意味や構造)を表現するフォーマットです。JSON、HTML…
6ヶ月前

GraphQL + gRPC + Go で作るバックエンド環境
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} GraphQL サーバと gRPC サーバを Go で実装し、それらを連携させた簡単なローカル環境を構築しました。この記事では、その手順と体験をシェアしていきます。 全体アーキテクチャの概要 全体のアーキテクチャは以下のような構成になります。 フロントエンド(クライアント)からのリクエストは、GraphQL サーバのエンドポイントに送信されます。 GraphQL サーバは受け取ったクエリを解析し、必要なデータを取得するために内部で gRPC クライアント…
6ヶ月前

Go 言語における Functional Option Pattern をラーメン屋で理解する
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} Functional Option Pattern は、Go 言語でよく使用される設計パターンの 1 つです。このパターンを使用することで、柔軟で拡張性の高い API 設計が可能になります。この記事では、Functional Option Pattern の基本的な考え方と実装方法について解説します。 Functional Option Pattern Functional Option パターンは、関数を使ってオプションの設定を定義し、適用するデザイン…
7ヶ月前

XP入門3
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // 前回までの振り返り 第1章~第16章は実践的な内容で、XP (エクストリームプログラミング)における開発手法や考え方について学びました。 XP入門 XP入門2 今回の内容 今回は17~25章を読み進め、XP の哲学や歴史的な背景について学びました。 その中でも印象的だった章についてまとめていきます。 エクストリームプログラミング / ケント・ベック 著 テイラー主義とソフトウェア 世界初の生産技術者である、フレドリック・テイラーという人物について。 工場の生産性を飛躍的に向上させる、科学的管理法を提唱した。 これが「テイラー主義」と呼ばれており、技術的…
8ヶ月前

BigQuery パイプ構文を試す - 直感的で読みやすい新しいSQLクエリの書き方
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} 2024 年 10 月 9 日の Google Cloud Blog にて、BigQuery と Cloud Logging における「パイプ構文」導入の記事がアップされました。 Introducing pipe syntax in BigQuery and Cloud Logging | Google Cloud Blog SQL のクエリといえば、長らく同じ記法で歴史を刻んできた古に伝わる呪文ですが、今回の「パイプ構文」は、それに一石を投じる新しい書…
8ヶ月前

XP入門2
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // 前回の振り返り 簡単に前回を振り返ると、XP (エクストリームプログラミング) は、アジャイル開発の手法の一つです。 XP において「価値」「原則」「プラクティス」は重要な概念であり、それぞれの要素が連携してソフトウェア開発を効率化します。 前回の記事はこちら 今回の内容 今回は9~16章を読み進めました。 その中で印象的だった、導出プラクティス、チーム全体、制約理論と時間の重要性についてまとめていきます。 エクストリームプログラミング / ケント・ベック 著 導出プラクティス 導出プラクティスは主要プラクティスを補強し、より効果的な開発を可能にするプ…
9ヶ月前

Workload Identity 連携で GithubActions から GCP リソースをデプロイする
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} GCP 外のアプリケーションから GCP リソースを操作する場合に、サービスアカウントキーを用いずに安全にリソースへアクセスできる Workload Identity 連携を用いて、Github Actions から GCP リソースのデプロイを行います。 Workload Identity 連携:簡単で安全な Google Cloud アクセス Workload Identity 連携は、Google Cloud外のアプリケーションが安全かつ簡単にGo…
10ヶ月前

AWS セッションマネージャーでEC2に接続できない時の対処法
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // <![CDATA[ if (location.href.match(/entry/)) { const canonicalUrl = 'https://zenn.dev/ota_rg/articles/4d32b5691eada9'; let canonical = document.querySelector("link[rel='canonical']"); if (canonical) { canonical.setAttribute('href', canonicalUrl); } else { canonical = document.cre…
10ヶ月前

AWSのプライベートサブネットにあるEC2にSession Managerを使ってセキュアにアクセスする
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // <![CDATA[ if (location.href.match(/entry/)) { const canonicalUrl = 'https://zenn.dev/ota_rg/articles/59eac8ad278c78'; let canonical = document.querySelector("link[rel='canonical']"); if (canonical) { canonical.setAttribute('href', canonicalUrl); } else { canonical = document.cre…
10ヶ月前

Vercel へのビルド&デプロイをローカル環境から行う
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} Vercel は、モダンなウェブアプリケーションの開発、デプロイ、ホスティングを簡単かつ効率的に行うためのクラウドプラットフォームです。AWS Amplify, Firebase Hosting, Netlify, Heroku あたりと同じ位置づけのイメージ。 基本的には、Vercel と Github を連携させるだけで、開発ブランチプッシュやプルリクエスト作成時にプレビュー環境を構築してくれたり、デフォルトブランチにマージしたら本番環境へデプロイし…
10ヶ月前

XP入門
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // はじめに 今年の6月からスクラムマスターの役割を担うことになりました。 しかし、私自身現在の会社に勤めるまでアジャイル開発の経験が全くなかったので、理解を深めるために XP について学ぶことにしました。 この記事はケント・ベック氏によって著された「エクストリームプログラミング」の7章までの読書メモと感想です。 XP とは XP (エクストリームプログラミング)は、アジャイル開発の手法の一つです。 エクストリームは日本語で「極限」という意味で、柔軟な変更や継続的な成長により開発プラクティスを極限まで洗練させ、品質の高いソフトウェアを効率的に開発することを…
1年前