ROXX開発者ブログ

https://techblog.roxx.co.jp/

ROXX開発者ブログ

フィード

記事のアイキャッチ画像
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…
9日前
記事のアイキャッチ画像
k6 を用いた API 負荷テストの導入とシナリオ実行の基礎
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} .table-warp > table {width: max-content;} Webサービスを提供する上で、一定の負荷やスパイク的なアクセスがあっても安定して応答できるかどうかは非常に重要です。その確認に欠かせないのが「負荷テスト」です。 今回は、開発者フレンドリーで扱いやすいパフォーマンステストツール k6 を使って、API に対する負荷テストを実施する方法をご紹介します。 k6 とは k6 は、JavaScript ベースで負荷テストが書ける …
18日前
記事のアイキャッチ画像
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…
1ヶ月前
記事のアイキャッチ画像
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…
1ヶ月前
記事のアイキャッチ画像
Tidy First? を読んでみた
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // Tidy とは「整頓する」という意味。 コードを書く際に、いきなりシステムの振る舞いを変えるような大きな変更をするのではなく、まずは周辺を整えるような小さなリファクタリングから始めようというのが本書の大筋になります。 以前、著者ケント・ベックさんの XP 本を読んだことがあり、今回新刊が出たということで前情報なしに購入しましたが、冒頭から引き込まれたので、要旨をまとめてみました。 本書について Tidy First? ケント・ベック (著) https://amzn.asia/d/0YrvP74 第I部 整頓 ガード節 if 文によるネストした条件分岐…
1ヶ月前
記事のアイキャッチ画像
Go における Adapter パターン - インターフェースの適用と統一
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} ソフトウェア開発では、異なるインターフェースを持つコンポーネント同士を統一的に扱いたい場面があります。そのような場合に役立つのが Adapter(アダプター)パターン です。 本記事では、Adapter パターンの基本概念を理解しつつ、Go 言語での具体的な実装方法を紹介します。 Adapter パターン Adapter パターンは、「あるインターフェースを、別のインターフェースに適用させる」ためのデザインパターンです。既存のコードを変更せずに、新しいイ…
2ヶ月前
記事のアイキャッチ画像
ALBで簡単にメンテナンスモードを実装する
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} はじめに サービス運用の中で、計画的なメンテナンスや障害対応時に「メンテナンスモード」を導入することは重要です。本記事では、AWSのアプリケーションロードバランサー(ALB)を活用して、簡単にメンテナンスモードを実装する方法を紹介します。 ALBのリスナールールとターゲットグループを活用し、柔軟かつ迅速にモード切替を実現する方法について解説します。 実装方法 1. メンテナンスモード用のリスナールールを追加 まず、メンテナンスモードを実現するためのルールをALBのリスナーに追加します。…
2ヶ月前
記事のアイキャッチ画像
NotebookLMの実践レビュー
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} NotebookLMとは NotebookLM(Notebook Language Model)は、Googleが提供するAIアシスタントツールで、指定したソースに基づいて質問に回答したり、情報を整理する支援を行います。特に、セキュリティや業務関連の質問回答を効率化する場面で活用されています。 https://notebooklm.google.com/ 使った経緯 社内で、セキュリティチェックシートへの回答が求められる際、効率化のためにNotebookLMを導入しました。これまでスプ…
2ヶ月前
記事のアイキャッチ画像
Go学習ロードマップを完走!141時間かけて学んだこと
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} Go の理解を深めるために roadmap.sh を利用し学習したので紹介します。 roadmap.sh とは roadmap.sh は、開発者向けの学習ロードマップを提供するオープンソースプロジェクトです。 フロントエンド、バックエンド、DevOps、データエンジニアリング、AI/ML など、さまざまな分野で必要なスキルを視覚的なロードマップとして整理し、学習の指針を示しています。 ユーザーはロードマップを参考にしながら、自分に必要なスキルを順序立てて…
3ヶ月前
記事のアイキャッチ画像
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…
3ヶ月前
記事のアイキャッチ画像
GitHub ActionsとECSタスク定義の循環依存を解消した話
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} ECSタスク定義とECRリポジトリの設定で苦戦したため、その解決の記録を共有します。 起こった問題 インフラ側 ECSタスク定義を作成する際、指定するECRリポジトリが空の場合、タスク定義の作成が失敗する問題が発生しました。 このため、事前にリポジトリに最低1つのDockerイメージをプッシュする必要がありました。 アプリ側 GitHub Actionsでは、ECSタスク定義のイメージURI(ECRリポジトリ)を参照しますが、タスク定義が存在しない場合にイメージをプッシュする処理が失敗…
3ヶ月前
記事のアイキャッチ画像
スクラム入門
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // この記事はスクラム開発について学ぶために読んだ SCRUM BOOT CAMP の読書メモと感想です。 本について SCRUM BOOT CAMP THE BOOK【増補改訂版】 スクラムチームではじめるアジャイル開発 西村 直人, 永瀬 美穂, 吉羽 龍太郎 (著) https://amzn.asia/d/1fo7IBF ソフトウェアを作る上で本当に重要なことは何か? できあがったソフトウェアを実際に活用することで顧客や利用者の課題を解決したり、お金を稼いだりする、つまり成果を上げること。 ソフトウェアを作ること自体は目的ではなく、成果を上げるための…
3ヶ月前
記事のアイキャッチ画像
Laravel Docker イメージサイズ削減に挑戦!~実践と効果~
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} Dockerイメージサイズを削減することは、プロジェクトの効率化やコスト削減において非常に重要な取り組みです。特に、Laravelのようなフレームワークを使ったプロジェクトでは、サイズが膨らみがちで、ビルドやデプロイの速度が遅くなることがあります。 今回、私は約400MBのイメージを約200MBまで削減することに成功しました。その過程で得た知見や具体的な手法を、実例を交えてご紹介します。 イメージサイズ削減のメリット Dockerイメージのサイズを小さくすることには、以下のようなメリッ…
3ヶ月前
記事のアイキャッチ画像
Go における Builder パターン - 構造体生成の整理と制御
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} Go では、構造体を利用してデータを管理することが一般的ですが、オプションの多い構造体の初期化や、変更を避けたいオブジェクトの生成には工夫が必要です。 本記事では、柔軟かつ一貫性のあるオブジェクトの生成を可能にする Builder パターンについて、その基本的な実装方法と適用例を紹介します。 Builder パターン Builder パターンは、複雑なオブジェクトの生成を簡潔にし、可読性を向上させるためのデザインパターンです。特に オプションの多い構造体…
3ヶ月前
記事のアイキャッチ画像
ALPS, ASD でセマンティクス重視のドキュメントを作成する
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // ソフトウェア設計をする際に以下のような課題が発生する場合があります。 ドキュメント化のコストと、管理コストの増加 システムが複雑化するにつれて、コードの理解が難しくなる 一貫性のない命名規則 これらの課題を解決するために、今回は ALPS という情報設計手法を学習しました。 ALPS とは ALPS QuickStart によると、以下のように説明されています。 Application-Level Profile Semantics (ALPS)は、アプリケーションレベルのセマンティクス(語句の意味や構造)を表現するフォーマットです。JSON、HTML…
4ヶ月前
記事のアイキャッチ画像
GraphQL + gRPC + Go で作るバックエンド環境
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} GraphQL サーバと gRPC サーバを Go で実装し、それらを連携させた簡単なローカル環境を構築しました。この記事では、その手順と体験をシェアしていきます。 全体アーキテクチャの概要 全体のアーキテクチャは以下のような構成になります。 フロントエンド(クライアント)からのリクエストは、GraphQL サーバのエンドポイントに送信されます。 GraphQL サーバは受け取ったクエリを解析し、必要なデータを取得するために内部で gRPC クライアント…
5ヶ月前
記事のアイキャッチ画像
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 パターンは、関数を使ってオプションの設定を定義し、適用するデザイン…
5ヶ月前
記事のアイキャッチ画像
XP入門3
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // 前回までの振り返り 第1章~第16章は実践的な内容で、XP (エクストリームプログラミング)における開発手法や考え方について学びました。 XP入門 XP入門2 今回の内容 今回は17~25章を読み進め、XP の哲学や歴史的な背景について学びました。 その中でも印象的だった章についてまとめていきます。 エクストリームプログラミング / ケント・ベック 著 テイラー主義とソフトウェア 世界初の生産技術者である、フレドリック・テイラーという人物について。 工場の生産性を飛躍的に向上させる、科学的管理法を提唱した。 これが「テイラー主義」と呼ばれており、技術的…
7ヶ月前
記事のアイキャッチ画像
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 のクエリといえば、長らく同じ記法で歴史を刻んできた古に伝わる呪文ですが、今回の「パイプ構文」は、それに一石を投じる新しい書…
7ヶ月前
記事のアイキャッチ画像
XP入門2
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // 前回の振り返り 簡単に前回を振り返ると、XP (エクストリームプログラミング) は、アジャイル開発の手法の一つです。 XP において「価値」「原則」「プラクティス」は重要な概念であり、それぞれの要素が連携してソフトウェア開発を効率化します。 前回の記事はこちら 今回の内容 今回は9~16章を読み進めました。 その中で印象的だった、導出プラクティス、チーム全体、制約理論と時間の重要性についてまとめていきます。 エクストリームプログラミング / ケント・ベック 著 導出プラクティス 導出プラクティスは主要プラクティスを補強し、より効果的な開発を可能にするプ…
8ヶ月前
記事のアイキャッチ画像
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…
8ヶ月前
記事のアイキャッチ画像
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…
8ヶ月前
記事のアイキャッチ画像
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…
8ヶ月前
記事のアイキャッチ画像
Vercel へのビルド&デプロイをローカル環境から行う
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} Vercel は、モダンなウェブアプリケーションの開発、デプロイ、ホスティングを簡単かつ効率的に行うためのクラウドプラットフォームです。AWS Amplify, Firebase Hosting, Netlify, Heroku あたりと同じ位置づけのイメージ。 基本的には、Vercel と Github を連携させるだけで、開発ブランチプッシュやプルリクエスト作成時にプレビュー環境を構築してくれたり、デフォルトブランチにマージしたら本番環境へデプロイし…
9ヶ月前
記事のアイキャッチ画像
XP入門
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // はじめに 今年の6月からスクラムマスターの役割を担うことになりました。 しかし、私自身現在の会社に勤めるまでアジャイル開発の経験が全くなかったので、理解を深めるために XP について学ぶことにしました。 この記事はケント・ベック氏によって著された「エクストリームプログラミング」の7章までの読書メモと感想です。 XP とは XP (エクストリームプログラミング)は、アジャイル開発の手法の一つです。 エクストリームは日本語で「極限」という意味で、柔軟な変更や継続的な成長により開発プラクティスを極限まで洗練させ、品質の高いソフトウェアを効率的に開発することを…
9ヶ月前
記事のアイキャッチ画像
地方在住エンジニアが上京して変わったこと:技術イベント参加を通じて得た経験
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} はじめに 私は、新潟に住みながらフルリモートでエンジニアとして働いていました。その理由の一つは、男子新体操の練習を続けるためです。しかし、2022年の冬頃からエンジニアのイベントに参加したいという気持ちが高まっていました。地方にいると、なかなかその機会を得るのは難しく、実際に参加しないまま終わってしまうことが多かったのです。このままでは一生イベントに行かないままで終わってしまうと思い、関東に拠点を移してみることにしました。そして、いくつかの技術イベントに参加してみることにしました。 こ…
9ヶ月前
記事のアイキャッチ画像
【ローカルで動作確認】Functions Framework を用いた Cloud Functions 開発
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} Functions Framework を用いた Cloud Functions 開発 Google Cloud Functions は、サーバーレスコンピューティングの強力なソリューションです。Functions Framework を使用することで、開発者はローカル環境で Cloud Functions を効率的に開発、テスト、デバッグすることができます。本記事では、Functions Framework を用いた Cloud Functions 開…
10ヶ月前
記事のアイキャッチ画像
Looker Studio で Cloud Billing データ(料金・コスト)を可視化する
ROXX開発者ブログ
この記事は個人ブログと同じ内容です www.ritolab.com // .table-warp {overflow-x: scroll;} GCP コスト管理の重要性と可視化の必要性 クラウドコンピューティングの普及に伴い、多くの企業が Google Cloud Platform (GCP) を利用しています。しかし、クラウドサービスの利用が拡大するにつれて、コスト管理の重要性も増しています。効果的なコスト管理は、ビジネスの収益性と持続可能性に直接影響を与える重要な要素です。 GCP の課金システムは柔軟で詳細ですが、その複雑さゆえに、実際の使用状況と費用を把握することが困難な場合があります…
10ヶ月前
記事のアイキャッチ画像
IntelliJ + DevContainer + Zenn CLI でブログ執筆環境を構築する
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // はじめに この記事では、IntelliJ IDEA と DevContainer, Zenn CLI を利用してブログ執筆環境を構築する方法をご紹介します。 DevContainer とは 以下が参考になりました。 Devcontainer(Remote Container) いいぞという話 ~開発環境を整える~ Devcontainer とは、 Dockerコンテナを開発環境とし作成することで、開発環境に必要なライブラリやランタイムのバージョン、Extension をコンテナ内に閉じ込めその中で完結させることができます。 Devcontainer っ…
1年前
記事のアイキャッチ画像
男子新体操とはエンジニアリングである
ROXX開発者ブログ
この記事は個人ブログと同じ内容です // .table-warp {overflow-x: scroll;} はじめに 私はエンジニアであり、男子新体操というスポーツをやっており、プライベートの時間に練習し、大会に出場してたりします。 私は個人競技をやっており、飽き性なため、4種目の演技を毎年作り変えています。 ※一般的には1つの演技を作ったら2~3年、長い人は7年ほど同じ演技をします エンジニアを仕事としてやっていくうちに、男子新体操での演技作りと似ている部分が多いと、かなり前から感じていたので、面白いと思ってこの記事を書いてみました。 男子新体操とは 団体 youtu.be 個人 yout…
1年前