ECS FargateでGoogleCloudとのWorkloadIdentity連携の際のハマった話

この記事は個人ブログと同じ内容です はじめに Google CloudとWorkload Identityで連携されているECS Fargateで動いているアプリからGoogle Drive APIを使おうとしたら以下のエラーが出ました。 Post \"https://www.googleapis.com/drive/v3/files/1234/copy…

k6 を用いた API 負荷テストの導入とシナリオ実行の基礎

この記事は個人ブログと同じ内容です www.ritolab.com Webサービスを提供する上で、一定の負荷やスパイク的なアクセスがあっても安定して応答できるかどうかは非常に重要です。その確認に欠かせないのが「負荷テスト」です。 今回は、開発者フレンドリーで扱…

Workload Identity連携でAWSからGoogle Cloudにセキュアにアクセスする

この記事は個人ブログと同じ内容です はじめに GoogleCloudのWorkload Identityでの連携をAWSのLambdaを使用し、S3のファイルをGoogle CloudのCloud Storageにアップロードする方法を解説します。本記事では、Workload Identityを利用して、IAMロールとGoogl…

TerraformでSecurity Command CenterのアラートをSlackに通知する

この記事は個人ブログと同じ内容です Security Command Center(SCC)とは Google CloudのSecurity Command Center(SCC)は、クラウド環境のセキュリティリスクの可視化・検出・管理を行うためのセキュリティ管理ツールです。 主な機能: • 脆弱性の検出(IAM…

Tidy First? を読んでみた

この記事は個人ブログと同じ内容です Tidy とは「整頓する」という意味。 コードを書く際に、いきなりシステムの振る舞いを変えるような大きな変更をするのではなく、まずは周辺を整えるような小さなリファクタリングから始めようというのが本書の大筋になり…

Go における Adapter パターン - インターフェースの適用と統一

この記事は個人ブログと同じ内容です www.ritolab.com ソフトウェア開発では、異なるインターフェースを持つコンポーネント同士を統一的に扱いたい場面があります。そのような場合に役立つのが Adapter(アダプター)パターン です。 本記事では、Adapter パ…

ALBで簡単にメンテナンスモードを実装する

この記事は個人ブログと同じ内容です はじめに サービス運用の中で、計画的なメンテナンスや障害対応時に「メンテナンスモード」を導入することは重要です。本記事では、AWSのアプリケーションロードバランサー(ALB)を活用して、簡単にメンテナンスモード…

NotebookLMの実践レビュー

この記事は個人ブログと同じ内容です NotebookLMとは NotebookLM(Notebook Language Model)は、Googleが提供するAIアシスタントツールで、指定したソースに基づいて質問に回答したり、情報を整理する支援を行います。特に、セキュリティや業務関連の質問回…

Go学習ロードマップを完走!141時間かけて学んだこと

この記事は個人ブログと同じ内容です www.ritolab.com Go の理解を深めるために roadmap.sh を利用し学習したので紹介します。 roadmap.sh とは roadmap.sh は、開発者向けの学習ロードマップを提供するオープンソースプロジェクトです。 フロントエンド、バ…

AWSのEC2にPHP+Nginx+phpMyAdminの環境を構築する

この記事は個人ブログと同じ内容です はじめに 本記事では、EC2上で Nginx と PHP、および phpMyAdmin をインストールし、MySQL データベースとの接続を行う手順を紹介します。実際にコマンドを実行しながら、各設定の意味や注意点も含めて解説します。 環境…

GitHub ActionsとECSタスク定義の循環依存を解消した話

この記事は個人ブログと同じ内容です ECSタスク定義とECRリポジトリの設定で苦戦したため、その解決の記録を共有します。 起こった問題 インフラ側 ECSタスク定義を作成する際、指定するECRリポジトリが空の場合、タスク定義の作成が失敗する問題が発生しま…

スクラム入門

この記事は個人ブログと同じ内容です この記事はスクラム開発について学ぶために読んだ SCRUM BOOT CAMP の読書メモと感想です。 本について SCRUM BOOT CAMP THE BOOK【増補改訂版】 スクラムチームではじめるアジャイル開発 西村 直人, 永瀬 美穂, 吉羽 龍…

Laravel Docker イメージサイズ削減に挑戦!~実践と効果~

この記事は個人ブログと同じ内容です Dockerイメージサイズを削減することは、プロジェクトの効率化やコスト削減において非常に重要な取り組みです。特に、Laravelのようなフレームワークを使ったプロジェクトでは、サイズが膨らみがちで、ビルドやデプロイ…

Go における Builder パターン - 構造体生成の整理と制御

この記事は個人ブログと同じ内容です www.ritolab.com Go では、構造体を利用してデータを管理することが一般的ですが、オプションの多い構造体の初期化や、変更を避けたいオブジェクトの生成には工夫が必要です。 本記事では、柔軟かつ一貫性のあるオブジェ…

ALPS, ASD でセマンティクス重視のドキュメントを作成する

この記事は個人ブログと同じ内容です ソフトウェア設計をする際に以下のような課題が発生する場合があります。 ドキュメント化のコストと、管理コストの増加 システムが複雑化するにつれて、コードの理解が難しくなる 一貫性のない命名規則 これらの課題を解…

GraphQL + gRPC + Go で作るバックエンド環境

この記事は個人ブログと同じ内容です www.ritolab.com GraphQL サーバと gRPC サーバを Go で実装し、それらを連携させた簡単なローカル環境を構築しました。この記事では、その手順と体験をシェアしていきます。 全体アーキテクチャの概要 全体のアーキテク…

Go 言語における Functional Option Pattern をラーメン屋で理解する

この記事は個人ブログと同じ内容です www.ritolab.com Functional Option Pattern は、Go 言語でよく使用される設計パターンの 1 つです。このパターンを使用することで、柔軟で拡張性の高い API 設計が可能になります。この記事では、Functional Option Pat…

XP入門3

この記事は個人ブログと同じ内容です 前回までの振り返り 第1章~第16章は実践的な内容で、XP (エクストリームプログラミング)における開発手法や考え方について学びました。 XP入門 XP入門2 今回の内容 今回は17~25章を読み進め、XP の哲学や歴史的な背景に…

BigQuery パイプ構文を試す - 直感的で読みやすい新しいSQLクエリの書き方

この記事は個人ブログと同じ内容です www.ritolab.com 2024 年 10 月 9 日の Google Cloud Blog にて、BigQuery と Cloud Logging における「パイプ構文」導入の記事がアップされました。 Introducing pipe syntax in BigQuery and Cloud Logging | Google C…

XP入門2

この記事は個人ブログと同じ内容です 前回の振り返り 簡単に前回を振り返ると、XP (エクストリームプログラミング) は、アジャイル開発の手法の一つです。 XP において「価値」「原則」「プラクティス」は重要な概念であり、それぞれの要素が連携してソフト…

Workload Identity 連携で GithubActions から GCP リソースをデプロイする

この記事は個人ブログと同じ内容です www.ritolab.com GCP 外のアプリケーションから GCP リソースを操作する場合に、サービスアカウントキーを用いずに安全にリソースへアクセスできる Workload Identity 連携を用いて、Github Actions から GCP リソースの…

AWS セッションマネージャーでEC2に接続できない時の対処法

この記事は個人ブログと同じ内容です はじめに プライベートサブネットにあるEC2インスタンスに、VPCエンドポイント経由でAWS Systems Manager(SSM)を使って接続する際、かなり苦戦したので、その対処法についてこの記事でまとめます。 SSMで接続できない…

AWSのプライベートサブネットにあるEC2にSession Managerを使ってセキュアにアクセスする

この記事は個人ブログと同じ内容です Session Managerについて Session ManagerはAWS Systems Managerの一部であり、安全にEC2インスタンスなどに接続するためのツールです。Session Managerを使用すれば、SSHキーやパブリックIPを割り当てることなく、AWSの…

Vercel へのビルド&デプロイをローカル環境から行う

この記事は個人ブログと同じ内容です www.ritolab.com Vercel は、モダンなウェブアプリケーションの開発、デプロイ、ホスティングを簡単かつ効率的に行うためのクラウドプラットフォームです。AWS Amplify, Firebase Hosting, Netlify, Heroku あたりと同じ…

XP入門

この記事は個人ブログと同じ内容です はじめに 今年の6月からスクラムマスターの役割を担うことになりました。 しかし、私自身現在の会社に勤めるまでアジャイル開発の経験が全くなかったので、理解を深めるために XP について学ぶことにしました。 この記事…

地方在住エンジニアが上京して変わったこと:技術イベント参加を通じて得た経験

この記事は個人ブログと同じ内容です はじめに 私は、新潟に住みながらフルリモートでエンジニアとして働いていました。その理由の一つは、男子新体操の練習を続けるためです。しかし、2022年の冬頃からエンジニアのイベントに参加したいという気持ちが高ま…

【ローカルで動作確認】Functions Framework を用いた Cloud Functions 開発

この記事は個人ブログと同じ内容です www.ritolab.com Functions Framework を用いた Cloud Functions 開発 Google Cloud Functions は、サーバーレスコンピューティングの強力なソリューションです。Functions Framework を使用することで、開発者はローカ…

Looker Studio で Cloud Billing データ(料金・コスト)を可視化する

この記事は個人ブログと同じ内容です www.ritolab.com GCP コスト管理の重要性と可視化の必要性 クラウドコンピューティングの普及に伴い、多くの企業が Google Cloud Platform (GCP) を利用しています。しかし、クラウドサービスの利用が拡大するにつれて、…

IntelliJ + DevContainer + Zenn CLI でブログ執筆環境を構築する

この記事は個人ブログと同じ内容です はじめに この記事では、IntelliJ IDEA と DevContainer, Zenn CLI を利用してブログ執筆環境を構築する方法をご紹介します。 DevContainer とは 以下が参考になりました。 Devcontainer(Remote Container) いいぞという…

男子新体操とはエンジニアリングである

この記事は個人ブログと同じ内容です はじめに 私はエンジニアであり、男子新体操というスポーツをやっており、プライベートの時間に練習し、大会に出場してたりします。 私は個人競技をやっており、飽き性なため、4種目の演技を毎年作り変えています。 ※一…