OKITを利用してOCI上のアーキテクチャを可視化してみた


  • OCI Designer Toolkit (OKIT) の使い方メモ〜その1
  • OKITをインストールする
  • Oracle Cloud Infrastructure (OCI) で動作中のシステム構成を可視化する

はじめに

OCI Designer Toolkit (OKIT)は、ブラウザベースのシステム・アーキテクチャ設計ツール (オープンソース) で、Oracle Cloud Infrastructure上のアーキテクチャ設計・プロトタイピングをグラフィカルなインターフェースで直感的に行うことができます。本記事ではOKITのインストールと初期設定、Oracle Cloudアカウントとの連携でOCI上で稼働するシステム構成を可視化することを行います。Oracle Cloud Infstracture Resource Managerと連携し、OKITでデザインされたものを構築する手順については次回の記事で扱います。

OKITでデザインしたシステム構成をResource Managerと連携してOCI上に構築してみた

OKITのセットアップ

検証環境 (クライアント)

  • macOS 10.15.7 Catalina
  • Docker Engine 19.03.13
  • Oracle Cloud Infrastructure Designer and Visualisation Toolkit 0.13.0

Oracle Cloud Infrastructure側の準備

OKITとOracle Cloudのアカウントを連携するためにAPI Keyの
登録、configファイルで利用する各OCIDを確認します。(注: OCI CLIを利用するための初期設定と同じです。既にOCI CLIをインストール済みの場合は、次項に進んでください)

OKIT configファイルの準備

クライアント環境に設定ファイルの格納ディレクトリ~/.ociの作成とAPI Keysに登録するSSHキーペアを作成します。

$ mkdir ~/.oci/
$ cd ~/.oci/
$ openssl genrsa -out ~/.oci/oci_api_key.pem 2048
$ openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out ~/.oci/oci_api_key_public.pem

OCIコンソールへアップロードするために公開鍵を作業用ディレクトリに移動しておきます。

~/.oci/で実行
$ mv oci_api_key_public.pem ~/app/oci_api_key_public.pem

OCIのアカウント情報を記述するconfigファイルを作成します。

~/.oci/で実行
$ touch config

configファイルの記述例は下記、key_fileにはAPI Keyに登録する公開鍵に対応する秘密鍵のPATHを、regionにはアクセスするOCIリージョンのリージョン識別子を、tenancyおよびuserにはそれぞれテナントとユーザーに対応するOCIDを、fingerprintには登録したAPI Keyのフィンガープリントをそれぞれ記述する必要があります。

~/.oci/config
[DEFAULT]
key_file=~/.oci/oci_api_key.pem
region=ap-tokyo-1
tenancy=ocid1.tenancy.oc1..[省略]
user=ocid1.user.oc1..[省略]
fingerprint=xx:xx:xx:xx:xx:xx

OCI API Keyの登録とconfigファイルに記載するOCID等の確認

API Keysへの秘密鍵の登録作業とあわせてOCIダッシュボードからconfigファイルに記述する情報を確認していきます。

OCIダッシュボード左上のハンバーガーメニュー (三本水平線アイコン) から。ガバナンスと管理メニューより、アイデンティティ > ユーザーにアクセスし、OKITに登録するIAMユーザー(oracleidentitycloudservice/[email protected]ではないユーザー)を選択し、ユーザー詳細画面に遷移します。
ユーザー詳細画面左下のリソースメニューから、APIキーを選択し、画面中央の公開キーの追加ボタンより事前に作成したSSHキーペアの公開鍵を登録します。秘密鍵の登録が終わるとフィンガープリントが表示されるのでその値をconfigファイルのfingerprintの値に転記します。また、画面中央のユーザー情報からユーザーのOCIDをコピーしてuserの値に転記してください。

次にOCIダッシュボードメニューから、ガバナンスと管理管理 > テナンシ詳細にアクセスし、テナンシ情報からテナンシのOCIDをコピーしてtenancyの値に転記してください。最後にガバナンスと管理管理 > リージョン管理にアクセスし、OKITでアクセスするリージョンのリージョン識別子をコピーしてregionの値に記載してください。(東京リージョンであればap-tokyo-1、大阪リージョンであればap-osaka-1となります)


最後に完成したconfigファイルのパーミションを変更します。

~/.oci/で実行
$ chmod 600 ~/.oci/config

これでOKITをインストールする前に必要な準備作業は完了です。

OKITのインストール

OKITをインストールする任意のディレクトリに移動してGitHubリポジトリをクローンします。

$ git clone --depth 1 https://github.com/oracle/oci-designer-toolkit.git

OKITはDockerの他、Docker Compose、Vagrantに対応していますが、本記事ではDockerを利用して環境を構築します。その他のインストール方法は、OCI Designer Toolkit Installation Guideを参照ください。下記コマンドでDockerイメージをビルド、作成したテンプレートを保存するディレクトリ、configファイルが配置されたディレクトリを共有してコンテナを起動します。

$ cd oci-designer-toolkit
$ docker build --tag okit --file ./containers/docker/Dockerfile --force-rm .
$ docker run -d --rm -p 80:80 --volume ~/okit/user/templates:/okit/templates --volume ~/.oci:/root/.oci --name okit okit

コンテナが起動してきたらブラウザから下記URLでOKITにアクセスします。
http://localhost/okit/designer

OKITのインターフェース

ここまでの作業が終われば下記のOKITの画面にアクセスできていると思います。

ここで各インターフェースの要素の説明を行います。

パレット (Palette)

画面の左側のアイコンが一覧で表示されている部分をパレットと呼び、OKITが対応しているOCIのサービスとリソースがアイコン形式 (アーティファクト) で表示されています。アイコンを選択すると、それをキャンバスにドラッグすることができます。

キャンバス (Canvas)

画面の中心にあるのは、アーキテクチャ図を作成作業を行うキャンバスです。初期状態、または新規キャンバスを選択したときには、トップレベルのコンパートメントだけが表示されます。

プロパティ (Properties)

キャンバス上に展開された各アーティファクトは、OCI内でそれらを構築・実行するために必要なプロパティのセットを持っています。これらの値はTerraform / Ansibleスクリプトを生成する際に利用します。キャンパス上のアーティファクトをクリックすると、画面の右側に表示されるプロパティパネルから値を編集することができます。

メインメニュー (画面左上の三本水平線のアイコン)

メインメニューは下記。ここから新規キャンバスの作成やデザインしたアーキテクチャの保存、保存したアーキテクチャの展開、リファレンス・アーキテクチャの参照、作成済アーキテクチャのエクスポート(イメージ形式、Terraform、Ansible、Resource Manager)、Terraform Jsonからのインポートが可能になっています。

OKITを利用してOCIで稼働中のシステム構成を可視化してみる

OKITを利用することで、コンパートメント内に構築済・稼働中のサーバリソースを可視化することが可能です。OKITのメインメニューよりQueryを選択、configファイルの設定プロファイル、リージョン、構成を可視化するコンパートメントを選択してQueryを実行してください。

少々待つとキャンバスにVCN等のネットワークリソースと共に稼働中のComputeインスタンスのアーティファクトが表示されます。また、各アーティファクトをクリックすることで設定されているプロパティを確認することができます。

関連情報

oci-designer-toolkit
OCI Designer Toolkit Documentation
[ORACLE A-Team Chronicles] Introduction to OKIT the OCI Designer Toolkit
[ORACLE A-Team Chronicles] The OCI Designer Toolkit Templates Feature
[ORACLE A-Team Chronicles] OCI Designer Toolkit Resource Manager Integration
[SmartStyle社 技術ブログ] OCI Designer Toolkit(OKIT)を触ってみた
[Qiita] 【OKIT OCI Designer Toolkit】OCI 構成図作成ツールを使って、3分で環境構築をする