はじめに
今回はCloudFormationをゼロから勉強する。の番外編として、2020年9月22日に公開されたAWS Perspective
を使ってみようと思います。
AWS Perspectiveとは
AWS上の詳細なアーキテクチャー図を作成するソリューションとのことです。
AWSのサービスではないですが、同じようなコンセプトのものにDUOのCloudMapperというツールがありますが、CloudMapper
がネットワーク全体の繋がりを図示するのに対して、AWS Perspective
はリソース間の繋がりを図示するような違いがあるように思います。
使い方
AWS Perspective
はAWSのマネージドサービスではなく、ソリューションとして提供されたシステムなので、自分でCloudFormation
でシステムを展開する必要があります。
費用
AWS Perspective
はソリューションであるため、それ自体に費用は掛かりませんがCloudFormation
で各種リソースを展開するため、その分の費用が掛かります。
AWS Perspective
の実装ガイド(PDF)に記載されている以下1時間当たりの費用を見ると、合計で**$0.797**かかるそうなので、検証目的で作った人は使い終わったらすぐに消しましょう!
AWS service | 費用(1時間) |
---|---|
Amazon Neptune(db.r5.large) | $0.384 |
Amazon Elasticsearch Service(m4.large.elasticsearch) | $0.320 |
Amazon VPC | $0.002 |
NAT gateway | $0.090 |
AWS Config(Item cost=$0.003) | N/A |
Amazon ECS | $0.001 |
合計 | $0.797 |
AWS Perspective展開方法
AWS Perspectiveのページから「AWSコンソールで起動する」をクリックするとAWS Perspective
を展開するCloudFormation
スタック作成画面に進みます。
ちなみに展開されるテンプレートをデザイナー画面
で見ると以下のような構成になっています。
思った以上に様々なリソースが展開されるようです。
AWS Perspectiveスタックの作成
「AWSコンソールで起動する」をクリックして、各種パラメータ設定や以下承認のチェックを行い、スタック作成を行います。
パラメータ入力は基本的にデフォルトでOKですが、メールアドレスはメールが届くアドレスを入力してください。
作成完了まで40分程度かかるため、気長に待ちましょう。
AWS Perspectiveへのアクセス
CloudFormation
のスタック
画面より、ステータスがすべてCREATE_COMPLETE
となったら「説明」列で「AWS Perspective Cloudfront Distribution」と書かれているスタックを選択して、「出力」タブからAWS Perspective
のURLを確認してアクセスします。
AWS Perspectiveへのログイン
先ほどスタック作成時に指定したメールアドレスにユーザIDとパスワードが送られてきているはずなので、送られてきたユーザID、パスワードを入力します。
パスワード変更を要求されるため、パスワードを変更。
アカウント復旧設定を行うため、Email
を選択してVERIFY
します。
メールアドレスにコードが送られてくるため、コードを入力してSUBMIT
します。
今のアカウントの情報をインポートするか、他のアカウントの情報をインポートするかを聞かれるため、どちらか選択します。(今回は今のアカウントの情報をインポート)
各リソースの読み込みが始まるため、またしばらく待ちます。(私の環境では20分程度かかりました)
AWS Perspectiveの使用方法
AWS Perspective
は、左ペインのResources
から選択したリソースのアーキテクチャ図を表示してくれるものとなるため、適当なリソース(今回はEC2インスタンス)を選択するとリソースの図が図示されます。
また、リソースを右クリックしてFocus
を選択すると、選択したリソースに関連するリソースのみ表示され、Expand
を選択すると周りを残したまま選択したリソースに関連するリソースが表示されます。
以下は上図の一方のEC2インスタンス
を選択してFocus
した場合。
表示されているリソースのフィルタ
例えば上図で表示されているタグリソースは別に図示しなくていいかなって時にはPreferences
のFilters
からAWS::TAGS::TAG
を選択することで上図からタグ情報が消えます。
ファイルエクスポート
表示されているリソース情報を以下形式で出力できます。
- CSV
- JSON
- PNG
- Drawio
Drawio
は外部リンクとなっており、選択するとAWS Perspective
で表示されている構成図を`Drawioで編集できます。
Drawio
はちょっとした図を描くのに重宝しているので個人的にはDrawio
に対応しているのは非常にうれしいです。
AWS Perspective削除方法
CloudFormation
のスタック画面の「説明」列に「AWS Perspective Main Template」と書かれているスタックと「AWS Perspective Set Up」と書かれているスタックを削除すれば、ネストしているスタックもまとめて削除できます。
但し、S3バケットが削除できず、「AWS Perspective Set Up」と書かれているスタックの削除が一度失敗すると思うので、失敗したら再度削除を選択→S3バケットを削除するチェックを入れ、実行することで消せるはずです。
以下まとめ。
- 「aws-perspective-[アカウントID]-[Region]」スタックを削除
- 「aws-perspective」スタックを削除
- S3バケットを削除するチェックを入れて、再度「aws-perspective」スタックを削除
AWS Perspectiveの良い点・悪い点
ポチポチ1時間程度触ってみて感じた良い点・悪い点をまとめます。
詳細まで調べたりはしていないので、参考程度で。
良い点
- 簡単にアーキテクチャ図が作成できる。
- 一度アカウントをインポートしてしまえば、自動的に各リソースのステータスが反映される。
- Drawioに直接エクスポートできる。
VPC
やEC2インスタンス
は言わずもがな、CloudFormation
の繋がりまで図示されるのには感動しました!
いろいろなリソースを選択してポチポチしているだけでも時間が持っていかれます。
また、リソース状況が一定間隔で反映されるようで、例えばEC2インスタンス
を停止すれば自動的に停止マークが表示され、リソースを消せばAWS Perspective
から削除されるため、常に最新の構成が確認できるのは非常にうれしい機能です。
悪い点
- 費用が結構高め(0.797×24×30=$573.84)
- デプロイに時間がかかる。
- リソースごとの表示なのでネットワーク図の代わりとして使うのは難しい。
機能は申し分ないので悪い点でもないですが、企業で運用として継続的に回していくならともかく、ちょっと個人で使い続けるにはお金が厳しいなと・・・
ただそれだけ素晴らしいソリューションなので、毎回作って削除するようにしたとしても十分有益かと思います。
また、そもそも用途が違うのかもしれませんが、AWS Perspective
はリソースごとの繋がりを表すツールのため、いわゆるネットワーク図の代わりとして使うのは難しいと感じました。
細かい表示はできませんが、AWS全体のネットワーク図を作るのであればCloudMapper
のほうが分かりやすいかもしれません。
実際に使ったときの費用
調べたり、記事書いたりしながらだったので、デプロイされていたのは5~6時間程度だったかと思いますが、AWS Perspective
のみで言うと9ドル弱でした。
おわりに
今回は連載中の「CloudFormationをゼロから勉強する。」の番外編ということで、AWS Perspective
を紹介しました。(あまりCloudFormation
関係ないですが)
自分でリソースを動かしたりするだけでも面白いので、ぜひ皆様も試してみてください。