0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

draw.ioって結局どこまで描けるの?AWS構成図からER図・UMLまで一通り描いてみた

0
Posted at

はじめに

この記事の対象読者はこんな人です。

  • 図を描くたびにツールを使い分けていて、いいかげん一本に寄せたい人
  • 「draw.ioって構成図のツールでしょ?」くらいの認識で止まっている人
  • 有料の作図ツールを契約しているけど、無料で代替できないか気になっている人

自分は普段インフラ関係の管理を最近しており、
AWSの構成図もデータのER図も、業務フローの説明図も、ぜんぶ別々のツールで描いていた時期がありました。Visioは会社のライセンス、ER図は別のWebサービス、ちょっとしたフローはスライドの図形機能で……という感じです。これ、地味にしんどいんです。ツールごとに見た目も操作も違うので、頭の切り替えコストがかかる。

それが、draw.io一本にまとめてみたら想像以上にカバー範囲が広かった。
今回は「draw.ioで実際どこまで描けるのか」を、業務でよく使う4種類の図を実際に描いて確かめます。
各図は .drawio のソースも置いておくので、開いてそのまま流用してもらってOKです。

そもそもdraw.ioって何

知っている人も多いはずなので手短にいきます。draw.io(正式には diagrams.net)は、ブラウザだけで使える無料の作図ツールです。アカウント登録もいりません。公式サイトを開けば、その場で描き始められます。

特徴を業務目線で挙げると、こんなところが効きます。

  • 無料かつオープンソース。商用利用も特に縛りなし
  • デスクトップ版は完全オフラインで動く。図のデータが外部に一切送られないので、社外秘の構成図を扱うときに安心できる(公式ブログでも「ネットから隔離されている」と明言されています)
  • AWS・Azure・GCP・Kubernetes・Cisco・UML・BPMNなど、10,000以上の公式シェイプが最初から入っている

セキュリティ面はけっこう大事で、自分はインフラ構成図を扱う都合上、クラウドにアップしたくない図はデスクトップ版で描いています。ネットを切っても普通に動くのは、地味だけど効くポイントなんです。

そして個人的に一番気に入っているのが、.drawioファイルの中身がただのXMLであること。図形(ノード)と矢印(エッジ)をテキストで持っているだけなので、Gitで差分が見えるし、後から機械的にいじることもできる。この「テキストである」性質は、記事の後半でもう一度効いてきます。

では、ここからが本題です。実際に4種類描いていきます。

図種① クラウド構成図(AWS公式アイコンで3層構成)

まずは王道のクラウド構成図から。draw.ioの強みがいちばん分かりやすいのがここです。

左側のシェイプ検索で「aws」と打つと、AWSの公式アイコンがずらっと出てきます。それをキャンバスに置いて矢印でつなぐだけ。定番の3層Webアプリ(ユーザー → CloudFront → ALB → ECS → RDS)を、ALB以降をVPCの枠で囲って描いてみました。

image.png

ポイントは、アイコンが「それっぽい四角」じゃなく、AWSの公式アイコンそのものだということ。サービスのカテゴリ色(ネットワークは紫、コンピュートはオレンジ、データベースは青)もそのまま再現されます。提案資料や社内のレビューに出しても、見た人が一目で「あ、CloudFrontね」と分かる。ここが手描き図やお絵描きツールとの決定的な差なんです。

VPCのような「グループ枠」も専用のシェイプがあって、中にアイコンを放り込むと枠ごと動かせます。サブネットを足したり、AZで分けたりも同じ要領。Azureを使うなら「azure」、GCPなら「gcp」で検索すれば、同じノリでそれぞれの公式アイコンが出てきます。

アイコンが見当たらないときは、左下の「シェイプの詳細...」から AWS や Azure のシェイプライブラリを有効化してください。デフォルトだと一部のライブラリがオフになっていることがあります。自分は最初これに気づかず「AWSアイコン少なくない?」と勘違いしていました。

図種② フローチャート & BPMN(業務フロー・承認フロー)

次は、エンジニア以外にも見せる機会が多い業務フロー。経費精算の承認フローを例にしてみます。

image.png

長方形が処理、ひし形が分岐、角丸が開始・終了——という、いわゆるフローチャートの基本記号がそのまま使えます。「上長が承認?」のひし形から「はい/いいえ」で枝分かれして、否認なら申請に差し戻すループまで描けています。

業務フローって、口で説明すると「えーっと、承認されなかったら申請者に戻って……」と毎回ぐだるんですよね。これを一枚の図にしておくと、説明が一瞬で終わる。あなたも、同じ業務フローを口頭で何度も説明していませんか? 自分はこれをやりがちで、図にしてからは「これ見て」で済むようになりました。

もっと厳密に業務プロセスを表現したいなら、draw.ioは BPMN 2.0 という業務フロー専用の記法にも対応しています。スイムレーン(担当者ごとの横帯)でレーンを分けて、誰が何をやるかを明示できる。公式のBPMNドキュメントに記号の一覧があるので、ちゃんとした業務設計書を作るならこちらを覗いてみてください。今回のサンプルは普通のフローチャートですが、レーンを足すだけでBPMNに寄せられます。

図種③ ER図 / DBスキーマ(テーブル定義とリレーション)

データ系の人にいちばん刺さるのがこれだと思います。ER図、つまりテーブル定義とリレーションの図です。

ECサイトのよくある構成(users / orders / products / order_items)で描いてみました。

image.png

draw.ioには「テーブル」のシェイプがあって、ヘッダーにテーブル名、行にカラムを並べられます。主キー(PK)と外部キー(FK)も行ごとに書ける。FKだけ色を変えておくと、どのカラムが他テーブルを参照しているか一目で追えます。

リレーションの線も、ただの矢印じゃなく「1対多(1:N)」を表すカラスの足(crow's foot)記法が使えます。usersに対してordersが多、ordersに対してorder_itemsが多、という多対多の中間テーブル構造も、線を引くだけで表現できる。自分はデータ基盤の設計レビューでこのER図をよく出すんですが、テーブル定義のExcelを延々と見せるより、この一枚のほうが圧倒的に伝わります。

本格的にDB設計をやるなら、SQLのDDLからER図を逆生成する拡張や、draw.io自体のテーブル機能だけでもけっこう戦えます。ただ、テーブルが30個を超えるような大規模スキーマだと手で並べるのはしんどくなるので、そこは専用のDB設計ツールと使い分けるのが現実的です。

図種④ UML / シーケンス図(処理の流れを時系列で)

最後はUML。クラス図・ユースケース図・シーケンス図あたりが揃っていますが、自分がいちばん使うシーケンス図でいきます。

ログイン認証の流れ(ユーザー → ブラウザ → APIサーバー → DB)を時系列で描いたのがこれです。

image.png

縦の点線が各登場人物の「ライフライン」、その上を走る矢印がメッセージのやり取りです。縦に伸びている細い箱が「活性区間」で、そのオブジェクトが処理している時間を表します。戻りの矢印を点線にするのもUMLの作法どおり。

シーケンス図って、API設計のレビューや障害の原因説明でめちゃくちゃ役に立つんです。「どこでトークンを発行して、どのタイミングでDBを引いているか」を文章で書くと長くなるけど、この図なら上から下に目で追うだけで分かる。draw.ioにはシーケンス図用のシェイプが一式そろっているので、ライフラインを並べてメッセージをつないでいけば組み上がります。

ここまでで、クラウド構成図・フローチャート・ER図・UMLと、毛色の違う4種類を全部draw.io一本で描けました。「構成図のツール」という認識だと、ER図やシーケンス図まで描けるのは意外だったんじゃないでしょうか。

描いた図を「資産」にする(中身がXMLだから効くこと)

ここからは、描いた図を「描きっぱなしにしない」話です。

draw.ioは書き出し(エクスポート)が強くて、PNG・SVG・PDF・JPEG・HTML、そしてVisioの.vsdx形式まで出せます。資料に貼るならPNG、Webに載せて拡大しても綺麗にしたいならSVG、印刷用ならPDF、と使い分けられる。逆方向、つまり VisioやLucidchart、Gliffyからの取り込み にも対応しているので、有料ツールからの引っ越し先としても現実的です。

そして個人的に推したいのが、PNGに書き出すときの 「図のコピーを含める」 オプション。これを使うと、PNG画像の中に元の.drawioデータが埋め込まれます。つまり「ただの画像」に見えるPNGを、あとからdraw.ioにドラッグするだけで再び編集状態に戻せる。画像なのに編集できる、という一見矛盾したことができるんです。

さらに、ConfluenceやGoogle Drive、Microsoft 365とも連携できます(公式のツール紹介に対応表があります)。Confluenceのページに図を埋め込んで、その場で編集する、みたいな運用もできる。図が「ドキュメントに貼られた画像」から「いつでも直せる生きた図」になるわけです。

冒頭で触れた「中身がただのXML」というのが、ここで効いてきます。テキストだからGitでバージョン管理できるし、差分も追える。図を成果物じゃなく、コードと同じ「資産」として扱えるのが、自分がdraw.ioに寄せた一番の理由です。

Mermaidから乗り換える人へ

エンジニアだと「図はMermaidで書いてる」という人も多いと思います。自分もそうでした。テキストで構造をサッと書けるのは最高なんですが、Mermaidの図はそっけないので、ビジネス側に見せる資料には少し物足りない。

うれしいことに、draw.ioは Mermaid記法の取り込み に対応しています。「配置」メニューから「挿入 → Mermaid」を選んで、Mermaidのコードを貼り付けると、draw.ioの編集可能な図に変換してくれる。普段はMermaidでサッと構造を書いて、清書や見栄えの調整が必要なときだけdraw.ioに持ち込む、という分業ができます。

「設計はMermaid、製図はdraw.io」と役割を分けると、それぞれのいいとこ取りができます。テキストで考えて、ビジュアルで仕上げる。この流れがハマると、図を作るのが一気に楽になりました。

ハマったポイント / draw.ioの向き・不向き

万能みたいに書いてきましたが、実際に使い込むと向き・不向きもあります。正直に残しておきます。

1つ目は 大きい図ほど手作業の配置がしんどい こと。ノードが増えてくると、矢印が交差したりアイコンが重なったりする。自分は「配置 → レイアウト」の自動整列にいったん任せて、そこから微調整する流れに落ち着きました。それでも数十ノードを超えると、専用ツール(DB設計ならDBeaverやDBスキーマ専用ツールなど)のほうが速いこともあります。

2つ目は シェイプライブラリが多すぎて最初は迷子になる こと。10,000以上あると言いましたが、裏を返すと目的のアイコンを探すのに慣れがいる。検索ボックスを使えばだいたい一発ですが、AWSの新しいサービスだと名前が微妙に違って出てこないことがありました(根本原因は、サービス名とシェイプ名がずれているケースがあるためです)。

3つ目は リアルタイム共同編集が本職ではない こと。GoogleスライドやLucidchartのような「複数人で同時にワイワイ編集」は、draw.io単体だとやや弱い。ConfluenceやDrive連携で補えますが、チームで同時に触りまくる前提なら、そこは割り切りが必要です。

社外秘の構成図を扱うときは、ブラウザ版だとデータがどこを経由するか気になる人もいると思います。そういう図はデスクトップ版(完全オフライン)で描くのが無難です。ホスト名やアカウントIDなどの具体値は、そもそも図に入れずダミーにしておくと安心。社内のデータ取り扱いポリシーは必ず確認してください。

AIに描かせる発展編

ここまでは「自分の手でdraw.ioを操作する」話でした。でも、.drawioの中身がただのXMLだという話を思い出してください。テキストということは——そう、生成AIに書かせることもできます。

実は自分は、このAWS構成図を「Claudeに.drawioのXMLで出して」と頼んで作る、という運用もしています。手で並べる代わりに、日本語で指示すると編集可能な.drawioが返ってくる。しかも「ここにWAFを足して」と会話で差分修正までできる。この話は別記事に詳しく書いたので、興味があればどうぞ。

「自分で描く基礎」を押さえたうえでAIに任せると、どこが変なのか・どう直せばいいのかが分かる。だからまずは、この記事のように一度自分の手で描いてみるのがおすすめです。

まとめ

  • draw.ioは無料・OSS・オフライン対応で、クラウド構成図からER図・UMLまで業務の図はだいたい一本でまかなえる
  • 10,000以上の公式シェイプで、AWS/Azure/GCPのアイコンが正確に出るのが強い
  • 中身がXMLなので、PNG/SVG/PDF書き出し・Visio取り込み・Git管理・AI生成まで「資産」として扱える
  • MermaidやVisioからの乗り換え先としても現実的。設計はMermaid、製図はdraw.ioの分業がハマる

自分はツールをdraw.ioに寄せてから、「どの図をどのツールで描くんだっけ」と悩む時間がまるごと消えました。あなたは今、図を何種類のツールで描いていますか? もし3つ以上に散らばっているなら、一度draw.io一本に寄せてみると、思ったより快適かもしれません。もっといい使い方があれば、コメントで教えてください。

参考リンク

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?