「Hava」でAWSのシステム構成図を自動生成する
クラスメソッドでは、メンバーズサービスの一環として、お客様が構築された環境について構成レビュー(AWSのベストプラクティスに沿った構成になっているか?)や運用作業の支援(各種作業代行)を実施させていただいております。
これらを実施する場合、まず最初にやることはお客様の環境把握なのですが、設計ドキュメントは最新の状態が反映されているとも限らないので(そもそもドキュメントがないケースもあります)、多くの場合AWSのマネージメントコンソールから実際の環境を読み解くという作業が発生します。
小規模なシステム(本番環境のみ&EC2とRDSが1台ずつなど)であれば問題ありませんが、複数環境が混在、EC2も二桁台、、ぐらいになるとシステム全体像を把握するだけでも結構な時間がかかります。
今回はそんな既存環境の構成把握に一役買ってくれるであろうWebサービス「Hava | Automated AWS Architecture Diagrams」をご紹介します。
Havaとは
「Automated AWS Architecture Diagrams」の言葉通り、すでにあるAWS環境から構成をインポートしてシステム構成図を自動生成してくれるWebサービスです。「自動生成」という言葉に甘美な響きを覚えますが、対応しているAWSサービスは以下のとおり、数は多くはありません。
- VPC(Subnet, Route Table, Security Group)
- ELB
- EC2
- RDS
- Elasticache
個人的にはRoute53、CloudFront、Redshiftとかがあるとうれしいですが、システムの全体像をつかむという目的であれば上記だけでも十分なケースは多いかと思います。
類似のサービスとしてはCloudcraftの「Cloudcraft Live」が挙げられますが、HavaはインポートしたAWS構成を構成図にまでおこしてくれるところが特徴的です。その反面Cloudcraftのようなマニュアルでの作図機能は無いので、自動生成した構成図を修正したり、AWS構成のインポートなしにゼロから構成図を作成したりはできません。
「Cloudcraft」については以下のブログエントリを参照ください。
- AWSの構成図を公式のアーキテクチャ図っぽくかける「Cloudcraft」を触ってみた | Developers.IO
- 実際のAWS構成をインポートして3D構成図が描けるCloudcraft Liveがスゴい | Developers.IO
Getting Started
では、ここからは実際のHavaの使用方法を紹介していきたいと思います。
アカウント登録
Havaを利用するにはアカウントの作成が必要です。こちらにアクセスして、「START YOUR FREE TRIAL」を選択します。 Havaは残念ながら無料プランがありませんが(料金についてはこのエントリの終盤で触れます)、サインアップすると2週間の無料トライアルが可能です。
ユーザー情報を入力して「Sing Up」します。
ログイン後、以下のような初期画面が表示されます。
AWS構成のインポート
画面左上を見ると、「Provider」が選択された状態になっており、その下に「AWS Access Key」と「AWS Secret Key」の入力欄があります。 ここにRead-Onlyの権限を持ったIAMユーザーのアクセスキーとシークレットキーを入力し「Import」を実行するとAWS構成がインポートされます。
Read-OnlyのIAMユーザーの作成方法についてはHavaのオンラインドキュメントを参照ください。
インポートが完了すると、システム構成図が自動生成されます。
システム構成の確認
作成されたシステム構成図をクリックすると、システム構成の詳細が確認できる画面が表示されます。
デフォルトの画面表示
デフォルトでは、単純にAWSのサービスアイコンが各AZやSubnetに配置された形で構成図が表示されます。この画面では月間のAWS利用料の試算額も確認できます。
タグ名の表示
「Display Names」をONにすると、各サービスアイコンの下にタグ名が表示されます。特にEC2はアイコンだけではサーバーの役割がわからないので、タグ名が表示されるのはありがたいですね。(タグがサーバーの役割を表すように設定されていれば、ですが。)
AWSサービス間の関連線の表示
「Display Connections」をONにするとAWSサービス間の関連線が表示されます。と言っても、表示されるのはELBとEC2との関連のみのようです。
個々のAWSサービスの情報
各サービスアイコンをクリックすると、そのサービスの設定情報が表示されます。例えばEC2であれば、AMI-ID、インスタンスタイプ、IPアドレスなどが確認できます。
ルートテーブル、セキュリティグループ情報
VPCの枠の中になる雲型のアイコンをクリックするとルートテーブルの情報が、鍵型のアイコンをクリックするとセキュリティグループの情報がそれぞれ表示されます。
表示されたルートテーブル名やセキュリティグループ名をクリックすると、これらの設定情報が確認できます。
インポートするAWS構成のフィルタリング
デフォルトでは、AWSアカウント上のすべてのAWS構成がインポート対象となりますが、これをAZ、リージョン、リソースID、IPアドレス、タグでフィルタリングすること(インポートするAWS構成の絞り込み)が可能です。
詳しくはHavaのオンラインドキュメントを参照ください。
CloudFormationテンプレートからのシステム構成図作成
既存のAWS環境ではなく、CloudFormationテンプレートからのシステム構成図作成も可能です。CloudFormationのテンプレートから実際に作成される環境を確認したい場合に有効かと思います。
画面右上の「CloudFormation」を選択し、「ファイルを選択」からCloudFormationのテンプレートを読み込みます。ファイルの拡張子は「*.json」にしておく必要がありますのでご注意ください。
ちなみにHavaが対応していないAWSサービスを含むCloudFormationテンプレートを読み込むと、、エラーにはならず構成図はそのリソースが取り除かれた形で作成されました。
システム構成図のエクスポート
システム構成図はPDFまたはPNG形式でエクスポート可能です。またCloudFromationのテンプレートとしてエクスポートすることも可能なので、既存環境のコピー環境を作りたい場合に有効活用できそうです。
なのですが、、残念ながらこれらの機能は無料トライアルには含まれていません。(試すまでもなく想像通りの機能、、ではあります。)
サービス利用料
Havaのサービス利用料(月額)は以下の通りです。インポートできるリソース数によりXS〜XLまでのプランがあります。
XS | S | M | L | XL |
---|---|---|---|---|
$39 | $199 | $499 | $999 | $1,999 |
20 resources | 100 resources | 250 resources | 500 resources | 1000 resources |
ちなみにHavaには複数メンバーでのコラボレーション機能があるのですが、こちらはプランによらずメンバーは無制限で作成できるようです。
まとめ
対応しているAWSサービスが少なくまたマニュアルでの構成図作成機能もないため、システム構成図作成ツールとして常用するには機能不足の感が否めませんが、冒頭で述べたように既存環境の全体像を把握するという目的には十分威力を発揮してくれそうです。
今後のサービス拡張で構成図作成ツールとしての機能が強化されることを期待したいと思います。