OKITでデザインしたシステム構成をResource Managerと連携してOCI上に構築してみた
- OCI Designer Toolkit (OKIT) の使い方メモ〜その2
- OKITを利用してリファレンス・アーキテクチャをデザインする
- OKITとResource Managerを連携してデザインされたシステムを構築する
はじめに
OCI Designer Toolkit (OKIT)は、ブラウザベースのシステム・アーキテクチャ設計ツール (オープンソース) で、Oracle Cloud Infrastructure (OCI) 上のアーキテクチャ設計・プロトタイピングをグラフィカルなインターフェースで直感的に行うことができます。本記事ではOKITとResource Managerを連携し、OKIT上にデザインされたリファレンス・アーキテクチャをOCI上に構築します。OKITのインストール方法については前回の記事を参照ください。
OKITリファレンス・アーキテクチャの利用
検証環境 (クライアント)
- macOS 10.15.7 Catalina
- Docker Engine 19.03.13
- Oracle Cloud Infrastructure Designer and Visualisation Toolkit 0.13.0
OKITリファレンス・アーキテクチャの展開
OKITコンテナが稼働しているクライアントのブラウザから、下記URLでOKITにアクセスします。
http://localhost/okit/designer
OKITのメニューを開きReference ArchitectureからHA Web Applicationを選択してください。
リファレンス・アーキテクチャには、各アーティファクトが配置され、各種プロパティが事前定義済のシステム・アーキテクチャが用意されています。HA Web Applicationを選択するるとPrivate Subnetに配置された2台のWebアプリケーション、Database Cloud Service (DBCS) インスタンス (Database System)、Public Subnetに配置されたPublic Load Balancerと踏台サーバ (bastion) が配備された、代表的なWebシステム・アーキテクチャがキャンバスに表示されます。
もし、参考になるようにシステム・アーキテクチャがリファレンス・アーキテクチャにない場合はパレットからアーティファクトを選択、キャンバス上に配置し新規にアーキテクチャをデザインすることも可能です。そのときOCI Designer Toolkit Usage Guide - Examplesが参考になります。(英語ドキュメントですがキャンバスのスクリーンショットを見れば視覚的に理解できるはずです)
OKITリファレンス・アーキテクチャの編集
リファレンス・アーキテクチャをキャンバスに展開した状態で、画面の右側に表示される検証 (Valodate) パネルを開くと、未設定のプロパティ項目や適切でない設定を洗い出すことができます。
今回の場合はDatabase Systemのhawebdbインスタンスに公開鍵が登録されていないエラー(修正必須)、Compute Serviceの各インスタンスに公開鍵が登録されていないと警告(修正任意 : 構築後でも登録可能)メッセージが表示されています。キャンバス上の該当するアーティファクトをクリックしプロパティ (Properties) パネルを表示し、Authorized Keysにインスタンスへのアクセスに利用するSSHキーペアの公開鍵の内容をコピー&ペーストして値を登録します。その際にShape等の設定も確認し、適宜修正してください。また、Single ADのリージョンへの展開を予定している場合には、Availability Domainの値をAvailability Domain 1
に変更し、適切なFault Domainに変更してください。
Database Systemの場合は、さらの選択項目が多いです。上記Availability DomainやFault Domain、Shapeに加えて、Oracle Databaseのバージョン(Version)、エディション (Database Edition), ライセンスタイプ (License Model) 等を忘れずに確認ください。
プロパティの編集が終わりましたら、再度Validateパネルを表示し、エラーと警告が全て消えていることを確認します。
OKITからOCI利用料金の見積りを取得
Validateパネル下のCost Estimateパネルを開くとキャンバス上に展開されているアーキテクチャをOCI上に展開した際の月額費用を算出し、確認することができます。(設定ミスなどで思わぬ出費を防ぐ意味でも次のステップに進む前に確認することを推奨します)
また、Download BoMボタンから利用するサービス名と数量、稼働時間、月額費用が記載された部品リストをダウンロードできます。
構成や課金金額の管理、部門長への申請に便利な機能です。
OKITとResource Managerの連携
それではいよいよOKITとOracle Cloud Infrastructure Resource Managerと連携してデザインしたシステム・アーキテクチャをOCI上に展開したいと思います。OKITメインメニューよりResource Managerを選択してください。Export To Resource Managerダイアログの各設定項目を確認します。
Connection Profileにはconfigファイルの設定プロファイル、Regionにはシステムを展開するリージョン、Compartmentにはシステムを展開するコンパートメント名、Create/UpdateはResource Managerスタックを新規作成/既存スタックの更新どちらの操作を行うか、Stack NameにはResource Managerスタック名、Plan/ApplyはResource ManagerスタックをPlan (Terraformスクリプトの登録・検証を行ってシステムを構成可能な状態にする)するかApply (Plan後、システムを実際に構築する)するか設定・選択を行います。今回はとりあえずPlanを選択してCreate Stackをクリックします。
その後、OCIダッシュボードにログインし、OCIダッシュボードメニューから、ソリューションおよびプラットフォーム、リソース・マネージャーにアクセスし、OKITから作成したスタックが存在しているか確認してください。スタックの詳細を表示すると画面下部に現在実行中のジョブを確認することができます。
ジョブの進捗を見守るためにジョブ名をクリックし、ジョブの詳細画面に行くと・・・
・・・
・・・
次項でResource Managerのログを確認し、Terraformスクリプトを修正します。
(OKIT Version 0.13.0で確認) Terraformスクリプトの修正
Resource Manager内、ジョブの詳細画面よりジョブのエラーメッセージを確認するとoci_database_db_system
リソース作成する際のfault_domains
の値が不正だと怒られています。
Terraformのドキュメントを確認すると、fault_domains = "['FAULT-DOMAIN-1']"
ではなく、fault_domains = ["FAULT-DOMAIN-1"]
が正しい記述の様です。
ジョブの詳細画面、画面上部中央の Terraform構成のダウンロードボタンをクリックして構成ファイルをダウンロードします。ダウンロードしたzipファイルを解答し、main.tf
ファイルを修正します。実際の修正箇所は下記をご確認ください。
# ------ Create Database System
resource "oci_database_db_system" "Hawebdb" {
#Required
availability_domain = data.oci_identity_availability_domains.AvailabilityDomains.availability_domains["1" - 1]["name"]
compartment_id = var.compartment_ocid
database_edition = "STANDARD_EDITION"
db_home {
#Required
database {
#Required
admin_password = "DevOps_123#"
#Optional
db_name = "aTFdb"
db_workload = "OLTP"
}
#Optional
db_version = "18.0.0.0"
display_name = "hawebdb"
}
hostname = "hawebdb1"
shape = "VM.Standard2.1"
ssh_public_keys = ["ssh-rsa 省略"]
subnet_id = local.Ha_Web_Db_Sn_id
#Optional
data_storage_size_in_gb = "256"
db_system_options {
#Optional
storage_management = "LVM"
}
display_name = "hawebdb"
fault_domains = ["FAULT-DOMAIN-1"]
license_model = "LICENSE_INCLUDED"
node_count = "1"
}
main.tf
ファイルを修正後、Resource Managerスタックに再アップロードします。
スタックの詳細画面上部中央左よりのスタックの編集ボタンより、スタックの編集ウィザードを開始します。main.tf
ファイルを修正したフォルダをそのままアップロードし次へ、変数はそのままで変更の保存を行ってください。
スタックの詳細画面上部中央のTerraformアクションセレクタより、計画を実行します。今回は、下記のように問題なくPlanジョブが完了しました。
Resource ManagerスタックのApply
スタックの詳細画面上部中央のTerraformアクションセレクタより、適用を実行します。下記のようにApplyジョブが完了することを確認してください。
Resource ManagerスタックのApplyが終了するとNetworkリソース、Conputeインスタンス、DBCSインスタンスが作成されていることが確認できていると思います。Bastionインスタンス経由で各サーバにアクセスし、OSおよびアプリケーションの設定を行ってください。
まとめ
前回と今回の記事でOCI Designer Toolkit (OKIT) のインストールとOCIアカウントとの連携、Resource Managerと連携しデザインしたアーキテクチャを実際に構築できることを確認しました。Microsoft Visioの様なデザインツールをイメージして利用すると柔軟性に欠ける部分もありますが、複数のOCIリソースをシングルページで設定できることで作業効率の改善ができます。また、デザインしたアーキテクチャからTerraformやAnsibleのスクリプトを生成してくれるのでInfrastructure as Codeの入門としても心強いツールです。
関連情報
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分で環境構築をする
Author And Source
この問題について(OKITでデザインしたシステム構成をResource Managerと連携してOCI上に構築してみた), 我々は、より多くの情報をここで見つけました https://qiita.com/orakurara/items/951dfd35324bdbb0b172著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .