【ベータ版】【小ネタ】Mermaidで構成図が書けるようになりました

記事タイトルとURLをコピーする

こんにちは。
DevOpsが好きなアプリケーションサービス部の兼安です。

MermaidでAWSの構成図が書けるようになったとのことで、それを試してみました。

前提条件と注意点

本記事で述べている機能は、記事執筆時点(2024-09-17)ではベータ版です。
Mermaidの今後の開発状況によっては変更がある可能性があります。

Mermaidとは

Mermaidは、Markdown記法でグラフを描画するためのライブラリです。
Mermaidを使うことで、フローチャートやクラス図をシンプルな記法で描画することができます。

mermaid.js.org

Mermaidで書いたコードは、Visual Studio Codeなどのエディタや、GitHub上でプレビューすることができます。

Mermaidで構成図を書けるようになりました

mermaid.js.org

そんなMermaidですが、構成図が書けるようになりました。
図の種類を示す記述にarchitecture-betaが増えて、これを使うことで構成図を書くことができます。
betaという名前がついている通り、ベータ版の機能です。

上記ページにある通り、こんな感じで書くことができます。

```mermaid
architecture-beta

    group aws(cloud)[AWS]
    group vpc(cloud)[VPC] in aws
    group public_subnet(cloud)[Public Subnet] in vpc
    group private_subnet1(cloud)[Private Subnet1] in vpc
    group private_subnet2(cloud)[Private Subnet2] in vpc
    group db_subnet(cloud)[DB Subnet] in vpc

    service load_balancer(server)[LoadBalancer] in public_subnet
    service web_server1(server)[Web Server 1] in private_subnet1
    service web_server2(server)[Web Server 2] in private_subnet2
    service db_server(server)[DB Server] in db_subnet

    load_balancer:B -- T:web_server1
    load_balancer:B -- T:web_server2
    web_server1:B -- T:db_server
    web_server2:B -- T:db_server

```

このコードをVisual Studio Codeでプレビューすると、このように表示されます。

Mermaidで書いた構成図をVisual Studio Codeでプレビュー

Visual Studio CodeとGitHubでこのコードをプレビューすると、構成図が表示されることを確認できました。
とても便利です。

一方で、現状ではサブネットをまたいだ表現はやり方を見つけることができませんでした。
また、アイコンの種類も限定されています。

AWSのアイコンはデフォルトでは出ない

Mermaidの公式ページにもある通り、AWSのアイコンはデフォルトでは表示されませんでした。
AWSのアイコンを使ったサンプルコードをVisual Studio Codeのプレビューで見ると、下記のように?マークが表示されます。

```mermaid
architecture-beta
    group api(logos:aws-lambda)[API]

    service db(logos:aws-aurora)[Database] in api
    service disk1(logos:aws-glacier)[Storage] in api
    service disk2(logos:aws-s3)[Storage] in api
    service server(logos:aws-ec2)[Server] in api

    db:L -- R:server
    disk1:T -- B:server
    disk2:T -- B:db
```

AWSのアイコンはプレビューすると?の表示になる

現状、別途インストールするなどの対応が必要ですが、今後のアップデートでデフォルトで表示されるようになるかもしれません。

新たな選択肢が生まれました

Mermaidで構成図が書けるようになったことで、新たな選択肢が生まれました。
完全にコードで構成図を書くことができれば、開発効率がさらに上がる気がします。
まだ発展途上の機能ですが、今後の進化が楽しみです!

兼安 聡(執筆記事の一覧)

アプリケーションサービス部 DS3課所属
2024 Japan AWS Top Engineers (Database)
2024 Japan AWS All Certifications Engineers
認定スクラムマスター
広島在住です。今日も明日も修行中です。