職務経歴書
基本情報
| 項目名 | 内容 |
|---|---|
| 名前 | 阿賀 郁弥 |
| 生年月 | 1995 年 8 月 |
| 居住地 | 大阪府 |
| 最終学歴 | 高等学校卒 |
| 資格 | 普通自動車第一種運転免許 |
| - | AWS Certified Cloud Practitioner |
| - | AWS Certified Solutions Architect - Associate |
スキル
言語
PHP・JavaScript・TypeScript・Terraform
フレームワーク・ライブラリ
Laravel・Nuxt.js・Cypress・React.js・Express・jQuery
RDS
MySQL・PostgreSQL
クラウド
AWS
CloudFront・S3・Aurora・RDS・CloudWatch・Cognito・ECR・ECS・EC2・Fargate・IAM
Lambda・Backup・EventBridge・Batch・SQS・API Gateway
SaaS/PaaS
GitHub・GitHub Actions・CircleCI・Backlog
その他
Datadog・Docker・Vagrant
職務経歴詳細
自社開発企業
【雇用形態】
- 正社員
【在籍期間】
- 2022/06/01 ~ 2025/07/31
SRE チーム
【期間】
- 2023/08 ~ 2025/07
【チーム編成】
- リーダー 1 人
- メンバー 1 ~ 3 人
【役割】
- メンバーを経てリーダー
【言語・フレームワーク】
- Terraform・Node.js
【ツール】
- AWS・Git・Github・GitHub Actions・Datadog・CircleCI・Ansible・Backlog
【チーム概要】
自社サービスの全ての AWS 運用を担当
SRE としてサービスの信頼性、可用性、パフォーマンスの最大化を目的としたチーム
モニタリングの仕組みを強化することで、障害の早期検知・防止も担当する
【チームの特徴】
AWS のアップデートに迅速に追従しながら、サービスの信頼性を観測・改善する活動を中心に行う。
AWS を活用した新規インフラ構築を担当し、堅牢でスケーラブルな基盤を提供。
さらに、アプリケーションチームと連携し、モニタリングを活用してシステムやプロセスの継続的改善を推進。
運用効率を向上させるとともに、ユーザーにとって安定したサービス体験を実現する。
【チームでの役割】
メンバーとして具体的なタスクは次のとおり。
- AWS RDS/Aurora MySQL 5.6 から 8.0 へのバージョンアップ
- B/G デプロイを採用することで、安全かつ確実にサービスのバージョンアップ作業を実施
- アプリケーションチームでの経験を活かし、担当サービスの内容を深く理解した上で、バージョンアップ作業から動作確認までを一貫して担当
- 退職や引き継ぎ不足により属人化していたサービスの知見を積極的に収集・整理を実施
- チーム全体で知見を共有することで属人化を解消し、業務知識の向上とチーム全体のパフォーマンス向上に貢献した
- S3 と CloudFront を活用した静的サービスのインフラ設計・実装
- S3 と CloudFront を組み合わせたクラウドインフラ設計・実装を担当し、高速かつ信頼性とコストパフォーマンスの高い静的サービスの提供を実現
- クラウドインフラは Terraform を活用して IaC(Infrastructure as Code)として管理
- コードベースでの管理により、インフラの再現性や変更管理の効率化を実現し、信頼性の高いインフラ運用をサポート
- フロントエンドに S3、バックエンドに Lambda を採用し、リアルタイム売上状況を表示するアプリケーションのクラウドインフラ設計・実装を担当
- クラウドインフラ設計をアプリケーションチームに共有し、アプリケーション側の設計や技術的な提案を積極的に実施することでチーム間の連携を強化
- チームの垣根を超えて提案と共有し、プロジェクトを主導することで、リリースまで事実上のプロジェクトリーダーとして活躍し、スムーズな進行を支援
- リリース後には Lambda のエラー検知を設定し、リリースプロセスの自動化を実現するため、GitHub Actions を用いた S3 へのデプロイフローを構築し運用効率の向上に貢献
- アプリケーションエラー通知の改善
- 既存のエラー通知システムでは、アプリケーションエラーが Slack に大量に通知される状況が発生し、「エラー通知疲れ」を引き起こしていた
- 同時に、通知が過剰に送信されることで「オオカミ少年化」が進行し、重大なエラー通知を見逃すリスクが高まっていた
- そのため、エラー通知の洗い出しを実施し、アプリケーションチームと連携して本当に必要な通知について再検討
- 不要なエラー通知を削除し、閾値を調整することでエラー通知疲れを大幅に改善
- また、重要なエラーのみが通知されるようにすることで、チーム全体で「オオカミ少年化」の改善を達成し、通知の有効性を高めた
- 合わせて調査時に発生していた 2 つのエラーについては自身でアプリケーションの改修も実施した
リーダーとして具体的なタスクは次のとおり。
- SLA/SLO の導入
- SRE として、葬儀仲介サービスの LP サイトにおいて信頼性が数値化されておらず、可観測性が不足していることに懸念を持っていた
- そのため、サービスのパフォーマンスや可用性を数値で管理し、信頼性の向上を目指して SLA(サービスレベル契約)および SLO(サービスレベル指標)の導入を提案・実施した
- マーケティング部と連携し、CUJ(クリティカルユーザージャーニー)を定義することで、葬儀仲介サービスの LP サイトにおけるユーザーの重要な動線を明確化しサイトの責務や提供すべき価値を整理
- 上長である課長や部長に対して、SLA/SLO の重要性と導入目的、そしてそれによるメリットを説明し、理解を得ることに成功
- Datadog を活用して、重要なページに外形監視を設定し、SLI の収集を実施
- これをもとに、SLA/SLO を適切に設定し、サービスの可用性やパフォーマンスを数値化して管理・運用することに成功
- AWS コスト最適化
- コンピューティングリソースのスペック見直しや、ログの削減、不要バックアップの削除など基本的なところから実施
- 検証環境を業務時間外は停止することで、無駄なリソースの使用を削減
- さらにリザーブドインスタンス契約の見直し、CloudFront Security Savings Bundle の導入なども実施
- リソース使用状況を最適化することで、効率的なリソース配分と無駄の削減を実現し、 6 人月で月々の利用料金のうち 1/6 を削減
- ビルド & デプロイフローの最適化
- CircleCI を使用したビルドや環境へのデプロイ処理に時間がかかっていた
- アプリケーションチームやデザイナーチームにヒアリングし現状の問題点を共有し問題解決の合意を形成
- ビルドジョブを並列化することで実行時間を短縮
- Dockerfile の不要なコマンドやビルドコンテキストを削減
- Docker イメージビルドの際にしか必要のない処理を特定し調整することによりコンテナ起動時の無駄を削減
- ビルド成果物の S3 アップロード処理を並列化
- ヒアリング時に要望として挙がっていたワークフロー上でアクションが必要になった際の Chatwork 通知処理を実装
- 各環境へのビルド & デプロイ処理時間を3割強削減した
- システムリプレイス検証
- 属人化とレガシー化が進行しているサービスに対し、システムリプレイスを提案
- アプリケーションの問題点として、リポジトリが分散しすぎていること、設計書やドキュメントの不足、使用技術のレガシー化が進んでいる点を挙げる
- インフラ面では、古い EC2 を使用しているためコスト効率が悪く、将来的な乗せ換えやスペックアップが困難な状態になっていた
- リプレイス後のインフラ主軸として、AWS Batch が適切であったため、技術的な検証を実施
- 現状の問題を詳細に洗い出し、リプレイス後のクラウドインフラ設計を実施
- 新しいインフラ設計案とともに運用担当者に共有し、今後のスムーズな移行に向けて準備を整えた
- 外部顧問と共に、SRE チームの役割と責務を明確化する作業を実施し、チームの方向性を定め、今後の活動基盤を強化
- SRE チームの戦略的な活動計画として、ロードマップを作成し、目標達成に向けた具体的な施策と優先事項を整理して上長に共有
- SRE 活動に必要な予算を作成することでリソースの適切な配分を決定し、予算計画を基に必要な投資を確保
アプリケーション開発・運用チーム
【期間】
- 2022/06 ~ 2023/07
【チーム編成】
- リーダー 1 人
- メンバー 3 ~ 4 人
【役割】
- メンバー
【言語・フレームワーク】
- Nuxt.js・TypeScript・Laravel・Cypress・TypeScript
【ツール】
- Git・Github・Zenhub・Backlog
【チーム概要】
葬儀仲介サービスの LP サイトをメインで運用改善
葬儀仲介サービスの LP サイトは、ユーザーが近隣の葬儀場の検索、葬儀プランの比較、資料請求などを行うためのプラットフォームを提供
【チームの特徴】
主な業務は言語やフレームワークのバージョンアップ、不具合調査、バグ修正などの保守・改善活動。
エンドツーエンドテストの実装など、サイトの信頼性を上げるための改善活動も行っていた。
新規ページ実装は別チームが担当。
【チームでの役割】
具体的なタスクは次のとおり。
- エンドツーエンドテスト実装
- 葬儀仲介サービス LP サイトに対するエンドツーエンドテスト
- KPI や SEO で重要となる項目、離脱やクレームの原因となる項目について問題をいち早くキャッチするために導入
- 毎日テストを実行し、失敗した場合は Slack に通知がされる
- 運用の課題を発見
- 軽微な HTML 変更でテスト失敗
- テストが頻繁に失敗し、都度修正が必要だった
- テストの設計と運用負荷のトレードオフ
- テストを簡潔にすると問題検出力が下がり、検出力を重視すると運用コストが増大した
- テストによる重大問題の検出実績が乏しい
- エンドツーエンドテスト文化の浸透不足
- 軽微な HTML 変更でテスト失敗
- バージョンアップ関連
- Node.js:v14 から v18 へのアップデート
- Nuxt.js:Nuxt2 から Nuxt3 への移行に向けた調査
- URL のトレイリングスラッシュ問題の解決
- パラメータ付き URL に対し、トレイリングスラッシュ(/)が正しく付与されないバグを発見
- 既存の serverMiddleware でトレイリングスラッシュ付与処理を実装していたが、パラメータ付きの URL が対象外になっていた
- 不具合の原因を特定し修正
- 修正後の処理について、テストメソッドを実装し正常動作を確認
- バグ調査・修正
- リファクタリングを実施し、コードの保守性とパフォーマンスを向上
- 他チームのヘルプとして、新規フロントエンドページの実装を担当
- 新卒メンターとしての役割
- 新卒メンバーのスキルに応じて、適切なタスクを配分
- 進捗を確認し、無理のないスケジュールを調整
- 課題に対するサポートや技術的アドバイスを提供
受託開発企業
【雇用形態】
- 正社員
【在籍期間】
- 2019/04/01 ~ 2022/5/31(3 年間)
音響機材 EC サイト受託開発・保守
【期間】
- 2019/04 ~ 2022/5
【チーム編成】
- PL 1 人
- メンバー 3 ~ 4 人
【役割】
- メンバー
【言語・フレームワーク】
- PHP(独自フレームワーク)・JavaScript・jQuery・SQL
【DB】
- PostgreSQL
【ツール】
- Git・GitLab・Redmine・Vagrant
【プロダクト概要】
音響機材を販売する WEB オンラインショップ。
ユーザーが商品一覧や詳細ページを閲覧できるほか、音響に関するニュースやブログも提供。
またサードパーティのレコメンデーションを活用したおすすめ商品表示機能も導入。
他の機能としては、ニュースやブログ、商品情報を管理する管理画面も WEB アプリケーションとして提供。
【チームの特徴・課題】
ユーザー向けページのデザインは、受託元から HTML と CSS が渡され、その上で受託先である自分たちがプログラム処理を担当。
プロジェクトリーダーが作成した独自フレームワーク用いて処理を実装。
このフレームワークは MVC 形式であるが、
既製品のフレームワークのようにドキュメントが存在しないため、チームメンバーには慣れが必要。
この状況により属人化が進んでおり、 プロジェクトリーダーが一人でレビューする状況が発生していた。
この課題を解決するために、自分が一次レビューを担当することで、プロジェクトリーダーへの負担を分散。
開発やリリースまでのスピード向上を実現した。
【チームでの役割】
保守・運用・新規機能開発を担当。
手を動かすだけの開発だけではなく、設計・実装・テスト、サブリーダーとして一次レビューも担当した。
また実装内容などで詰まったり不安が発生したりした場合、自分が相談役となりチームメンバーの心理的安全性を確保。
具体的なタスクは次のとおり。
- お問い合わせ機能の機能改善
- お問い合わせで画像を添付できるように改修
- お問い合わせはよくある、入力・確認・完了画面のページ遷移
- 画像は base64 で保持が可能なように実装
- 画像データは S3 で管理
- Q&A システムの機能改善
- 管理画面では QA カテゴリー階層的に管理できるよう実装
- ユーザー側では選択したカテゴリーが選択状態になるように jQuery で実装
- また選択されたカテゴリーに紐づく子カテゴリーがあれば、マウスホバーで追加表示されるように実装
- レコメンドシステムの移行
- 管理画面の設計・実装
- スマートフォンアプリ用に管理画面の設計・実装
- 英語化対応
- 新規メンバーアサイン時のサポート
スクレイピングシステム受託開発・保守
【期間】
- 2020/04 ~ 2022/3
【チーム編成】
- PL 1 人
- メンバー 1 人
【役割】
- メンバー
【言語・フレームワーク】
- PHP(独自フレームワーク)・PHPQuery・JavaScript・jQuery・SQL
【DB】
- PostgreSQL
【ツール】
- Git・GitLab・Redmine・Vagrant
【プロダクト概要】
Amazon や楽天など、他の EC サイトから商品情報を取得するスクレイピングシステム。
スクレイピングはバッチ処理で動作する。
管理画面も存在し、取得したい商品などの管理を行える。
チームとしては音響機材 EC サイトのメンバー 1 人と PL で構成される。
【チームでの役割】
保守・運用・新規機能開発を担当。
他社サイトから商品情報が取得できなくなっていた際の修正や、管理画面への機能追加など。
基本的に音響機材 EC サイトと並行して PL が 1 人で担当していたが、自分が他の作業に慣れていたこともあり、運用・保守作業を任される。
具体的なタスクは次のとおり。
- 管理画面の一覧ページ表示速度改善
- 一覧ページは表示されているものの、操作可能となるまで 10 秒程度かかっていた
- ユーザーから「どうにかならないか」と改善要求が挙がったため調査
- 結果、ドラッグ&ドロップ可能なフォームを jQuery を利用したライブラリで複数生成している項目があり、その処理がページ表示のネックとなっていたことを突き止める
- 改善方法として、開閉可能なアコーディオンパネルへその項目を格納
- デフォルト状態では閉じた状態にしておき、パネルを開いた際に項目の生成処理を実行させることで参照したい項目のみを処理するように改修
- 根本的な処理に対する変更ではなく、表示方法や処理順を変更しただけなので、短い工数でユーザーの要求を満たすことに成功
音楽関連 SNS 受託開発
【期間】
- 2021/12 ~ 2022/3
【チーム編成】
- PL 1 人
- メンバー 4 人
【役割】
- メンバー
【言語・フレームワーク】
- Next.js・React・Express・PHP・SQL
【DB】
- PostgreSQL
- MySQL
【ツール】
- AWS・Docker・Git・GitLab・Redmine
【プロダクト概要】
音響機材 EC サイトと連携した SNS システムの開発
【チームでの役割】
開発当初、 AWS や Docker、React 等開発に必要な全ての知識が不足していると感じたため、プライべートも利用して Udemy や参考書を活用して学習を進め、設計や実装に問題ない程度の知見を得る。
得た知見と行動が評価され、 Docker での開発環境構築や、 AWS を使用した処理の実装を任される。
具体的なタスクは次のとおり。
- サーバーレスな画像アップロード処理の構築
- AWS S3 を利用したサーバーレスでの画像アップロード処理の設計工程を任される
- 設計当初は Pre-Signed URL を検討することを提示されていましたが、正確なバリデーションを行いにくい問題が発覚したため設計を大幅に変更
- AWS Elasticache for Redis + Lamba + APIGateway を使用してのアップロード可能状態フラグ管理処理を実装
- AWS S3 + Lambda + API Gateway を使用した画像のバリデーションとアップロード処理を実装
- AWS に知見のあるメンバーが一人もいない状況下で、複数の処理とサービスを組み合わせた設計で問題を解決
- 技術選定
- 当時まだ主流ではなかった React、Next.js を採用して実装することを提案し採用される
- またアーキテクチャとしては Atomic Design を採用することを提案し採用される