2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【リモートワーク歴9年】ホワイトボード+マグネットの感覚でAWSアーキテクチャ図が作れるWebツールを開発した話

Last updated at Posted at 2025-05-28

はじめに

リモートワークを始めて9年、100%フルリモートになってから5年が経ちました。以前はオフィスのホワイトボードにAWSアイコンのマグネットを貼ってアーキテクチャについて議論していましたが、オンラインではそれが難しくなりました。

既存のツールは多機能すぎたりAWSに特化していなかったりと、気軽な議論には向きませんでした。

そこで、ホワイトボードの感覚で直感的にAWSアーキテクチャ図を作成・共有できるWebアプリケーション「otak-aws」を開発しました。ブラウザ上で簡単にドラッグ&ドロップ操作ができます。

作ったもの

image.png

otak-aws - AWSアーキテクチャボード

実際の動作はこちらで確認できます。

主な機能

「otak-aws」では左サイドバーからAWSのサービスやコンテナをキャンバスにドラッグ&ドロップで配置できます。サービス間の関係やデータの流れもクリックだけで簡単に表現可能です。またVPCやサブネットなどのリソースの階層構造をコンテナのネスト機能で直感的に整理できます。図の詳細や全体像を確認したい場合はズーム機能が役立ちます。

長時間作業でも快適なダークモードも備えています。

作成した図はEraser.io形式やMermaid flowchart形式でエクスポート可能で、再利用が簡単です。インポート機能も充実しており、既存データの編集も容易です。URL共有機能ではLZ-String圧縮アルゴリズムを利用し、手軽にチーム内で共有できます。ただし、大きな図はブラウザのURL長制限を考慮する必要があります。

Undo機能やグリッドスナップ機能で操作性を向上させ、高度な設計にはAdvanced Modeを用意して多様なAWSサービスに対応しています。

技術構成と工夫点

フロントエンドにはReact・TypeScript・Viteを採用し、UIの整備にはTailwind CSSを用いました。アイコン統一のためにLucide Reactを使用し、データ圧縮はLZ-Stringを採用しました。テストにはVitestを使い品質を保ち、GitHub Pagesで公開しています。

URLの長さ制限問題に対してはデータ圧縮技術を活用しました。ドラッグ&ドロップ時の座標計算はズームやスクロール位置に対応した統一的な関数で精度を向上しました。多数のアイコン表示時の動作が重くならないようReact.memoやuseMemoで最適化を図りました。

今後の展開

AWSサービスアイコンの拡充や、カスタマイズ可能なテーマ機能、テンプレート機能を導入予定です。PNG・SVG形式での画像エクスポート機能も計画しています。

デモ:https://tsuyoshi-otake.github.io/otak-aws/

GitHub:https://github.com/tsuyoshi-otake/otak-aws

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?