Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OCI技術資料 : リソース・マネージャ(Resource Manager)概要

OCI技術資料 : リソース・マネージャ(Resource Manager)概要

OCIの技術説明資料 リソース・マネージャ(Resource Manager)の概要編 (Level 100) です。

Oracle Cloud Infrastructure リソース・マネージャ(Resource Manager)は、Terraform実行エンジンがOCI上に実装されたIaCを実現するOracleマネージドサービスで、OCIリソースのデプロイメントと操作を自動化できます。

2023/04/1 新規作成

#oci #OCI #Resource Manager #Terraform

More Decks by Oracle Cloud Infrastructure ソリューション・エンジニア

Other Decks in Technology

Transcript

  1. • Infrastructure as Codeはサーバーやネットワークなどのインフラ構成をプログラムのようなコードで記述し、そのコード を用いてインフラ構成の管理やプロビジョニングの自動化を行うこと • オンプレミスからクラウド、マルチクラウドやコンテナ化と、ITインフラの変遷が進んでく中で、ITインフラやサーバの構成の 変更の頻度は多くなった • 構成の変更にかかる手間などを解決するための手段の一つがIaC

    • コードやインフラの設定を記載、それを実行することで自動的に構成の変更などが可能になる “IaC”とは Copyright © 2023, Oracle and/or its affiliates 3 Infrastructure as Code Subnet B VCN Subnet A Virtual Machine Virtual Machine Load Balancer Database System variable "compartment_ocid" {} variable "region" {} provider "oci" { region = "${var.region}" } resource "oci_core_virtual_network" "vcn1" { cidr_block = "10.0.0.0/16" dns_label = "vcn1" compartment_id = "${var.compartment_ocid}" display_name = "vcn1" } … プロビジョニング
  2. 大規模かつ変更が多いシステムを簡単に運用できる Terraformの特徴 • Repeatability(再現性) コードで記述されているので、何度でも再利用可能 • Idempotency(冪等性) コードを何度実行しても同じ結果を得られる • Agility(機敏性)

    変更からプロビジョニングまで迅速な開発サイクルを回せる • Auditability(監査性) コードの変更を追跡できる お客様が得られるメリット • 生産性の向上 変更にかかる工数を減らし、スピーディに反映 • リスクの軽減 変更箇所を事前に確認でき、人的ミスを軽減 • 統合性の向上 複数のチームが協力して共通のインフラストラクチャを構築 • 複雑性の軽減 複数のリソースを集中管理し、環境の標準化を推進 • コンプライアンスの向上 変更の追跡ができ、ガバナンスを強化 IaCのメリット Copyright © 2023, Oracle and/or its affiliates 5
  3. 6 Terraform – 基本機能 Terraform は以下の基本的なリソース管理の機能を提供する(CRUD操作に近い) 機能 内容 コマンド リソースの作成

    • 設定ファイルに基づいて、依存関係を考慮して リソースを作成する • 作成可能なリソースは Provider に依存する $ terraform apply リソースの更新 • 設定ファイルに基づいてリソースの変更(例えば、リソース名の変 更等)を行う • 変更不可の場合には、リソースを削除のうえ作成するという挙 動になる $ terraform apply リソースの削除 • オプション指定なしの場合には全削除、依存関係を考慮して 削除する • オプション指定で特定のリソースのみ削除も可能 $ terraform destroy リソースの状態確認 • 現在のリソースの状態を確認する $ terraform show リソースの依存関係確認 • 各リソースの依存関係を確認する $ terraform graph Copyright © 2023, Oracle and/or its affiliates
  4. 7 Terraform – アーキテクチャ Terraform Core Provider Terraform Plugins Provisioners

    Client Library GO 言語 HTTP(S) Cloud *.tf JSON 設定ファイル OR State ファイル .tfstat e ① 管理するリソースの状態を State ファイル(terraform.tfstate) で管理 ②Terraform は 設定ファイルを読み込んで、 state ファイルとの状態を比較し、 どのリソースに対してどの順序でアクションを起こすか決定 ③実際のリソースに対するアクションは、REST API をラップした Provider で実 行される ④実行後にリソースの状態が State ファイルに保存される ① ④ ② ③ Copyright © 2023, Oracle and/or its affiliates
  5. OCIリソースのデプロイメントと操作を自動化するOracleマネージドサービス(無償) Terraform-as-a-Service • Terraform実行エンジンがOCI上に実装 • HCL(HashiCorp Configuration Language) で記述されたTerraformの標準ファイルを使用 •

    状態(State)をOCI上で集中管理 OCIネイティブに統合 • OCIの全てのリソースに対するCRUD処理 • OCIコンソール、API、IAM、AuditなどのOCI標準機 能が利用可能 • OCIのリソースとのインタラクション機能 (Discovery/ドリフト検出) リソースマネージャとは Copyright © 2023, Oracle and/or its affiliates 8 Resource Manager
  6. 9 スタンドアロンTerraform vs. OCI Resource Manager スタンドアロン Terraform の課題を解消するためのソリューションが OCI

    Resource Manager State ファイルの管理方法 terraform 実行ユーザ の管理方法 複数環境の管理方法 課題 OCI RM • RMが管理するため、 ユーザは意識する必要なし • 誰がどのような操作でリソースの stateを変化させたかを追うことも 可能 • OCI の IAM と完全に統合され ているため、誰がどのような 権限でリソースに関する操作を 行うことができるかを管理可能 • Stack. と呼ばれる単位で 複数の Terraform 設定ファイルを 一括管理可能 Copyright © 2023, Oracle and/or its affiliates
  7. スタック • OCI リソースのまとまり • 構成情報をTerraform設定ファイル(.tf)で 保持 ジョブ • スタックに対する操作

    : Plan, Apply, Destroy Stateファイル • 状態を保持するファイル (.tfstate) • Resource Manager では状態ファイルを 自動的に生成して更新 • ファイルの手動編集は不可 • スタック毎の状態ロックをサポート OCI Resource Manager の基本構造 Copyright © 2023, Oracle and/or its affiliates 10 ジョブ 1 ジョブ2 ジョブ3 State ファイル Destroy Apply Plan ログ スタック1 スタック2 … .tf ファイル Resource Manager
  8. Terraform構成: HCL言語で定義された.tfファイル .tfファイルにOCIのリソースを記述する リソースマネージャの構成要素:Terraform構成/スタック Copyright © 2023, Oracle and/or its

    affiliates 11 … resource oci_core_vcn this { dns_label = var.vcn_dns_label cidr_block = var.vcn_cidr compartment_id = var.compartment_ocid display_name = var.vcn_display_name } resource oci_core_internet_gateway this { compartment_id = var.compartment_ocid vcn_id = oci_core_vcn.this.id } … スタック: OCIのリソースがまとまった一連のTerraform構成 通常はフォルダやzipファイルでまとめられる 例:インスタンスをプロビジョニングする時のスタック .tfファイル スタック provider.tf :認証情報のファイル output.tf :出力情報に関するファイル compute.tf :コンピュートに関するファイル availability-domains.tf :ADに関するファイル tf-compute
  9. 計画・適用・破棄 計画(Plan):インフラストラクチャの変更の表示 現在の状態ファイル(Stateファイル)と設定ファイルを比 較して、変更があれば表示させる 例:VCN1からVCN2に名前を変更 リソースマネージャの構成要素:ジョブ Copyright © 2023, Oracle

    and/or its affiliates 12 Old 設定ファイル New設定ファイル Old Stateファイル ①更新 ②計画(plan) # oci_core_vcn.this will be updated in-place ~ resource "oci_core_vcn" "this" { … defined_tags = {} ~ display_name = "VCN1"" -> ""VCN2" dns_label = "vcn" freeform_tags = {} } + リソースが作成されることを示します。 - リソースが破棄されることを示します。 ~ リソースがインプレースで更新されることを示します。 -/+ リソースが破棄および再作成されることを示します。 変更部分はログに出力される VCN1 Subnet A Virtual Machine Virtual Machine Load Balanc er スタック ③比較して差分表示 "VCN1" -> "VCN2"
  10. 計画・適用・破棄 適用(apply): スタックの変更計画に基づいてインフラストラクチャの変更 を実際に適用します Stateファイルも新しいものに書き換えられます。 破棄(destroy): スタックにあるインフラストラクチャを削除します。 スタックのジョブ履歴および状態は、破棄ジョブの実行後 も残ります。 リソースマネージャの構成要素:ジョブ

    Copyright © 2023, Oracle and/or its affiliates 13 New設定ファイル Old Stateファイル New Stateファイル ②更新 "VCN1" -> "VCN2" Subnet A Virtual Machine Virtual Machine Load Balanc er スタック VCN2 Subnet A Virtual Machine Virtual Machine Load Balanc er スタック New Stateファイル 更新 空の Stateファイル "VCN1" -> "VCN2" ①適用(apply) ③ログに出力
  11. 14 OCI Resource Manager 基本の実行フロー – Terraformに類似 ① スタックを作成し Terraform構成ファイルを登録

    https://docs.cloud.oracle.com/iaas/Content/ResourceManager/Concepts/resourcemanager.htm#workflow ② Plan を実行して 変更されるリソースを確認 ①' 問題や変更があれば Terraform 構成ファイルを編集し スタックを更新 ③ Apply を実行 ④ Stateと実行ログを確認 ⑤ Destroy を実行し 作成したリソースを破棄 Copyright © 2023, Oracle and/or its affiliates
  12. デプロイされたリソースをTerraform 構成、状態ファイルとしてキャプチャする機能 • 手動管理インフラストラクチャからResource Manager制御インフラストラクチャに移行 • HCL構文を使用して Oracle Cloud Infrastructure

    リソースを表す方法の学習 • 別のテナンシーまたはコンパートメントで既存のインフラストラクチャを複製または再構築 テナンシやコンパートメントにあるリソースからスタックを生成 スタックの作成:リソース・ディスカバリー機能 Copyright © 2023, Oracle and/or its affiliates 18 testVCN1 Subnet A Virtual Machine Virtual Machine Load Balanc er Compartment スタック provider.tf var.tf load_balancer.tf compute.tf discovery_file コンパートメント内のリソースを スタックへ
  13. 障害が発生した時や手動で変更した時に生じる差分を表示 Resource Manager が最後に実行した状態(=state ファイルの情報) と、OCIの実際のリソースの状況の差分 = 構成ドリフト を検出する機能 レポートに出力可能で、差分は色付きで表示される

    ドリフト検出 Copyright © 2023, Oracle and/or its affiliates 19 testVCN1 Subnet A Virtual Machine Virtual Machine Load Balanc er testVCN1 Subnet B Virtual Machine Virtual Machine Load Balanc er 実際の構成 Stateファイルの構成
  14. 過去に適用したジョブのスタック構成をロールバックすることが可能 スタックのロールバック Copyright © 2023, Oracle and/or its affiliates 20

    「計画ロールバック」と「適用ロールバック」が表示されることで、ロールバックしていることを判断できる
  15. Oracle Cloud Infrastructure マニュアル (日本語 / 英語) • https://docs.cloud.oracle.com/iaas/api/ -

    APIリファレンス • https://docs.cloud.oracle.com/ja-jp/iaas/Content/General/Reference/aqswhitepapers.htm - テクニカ ル・ホワイト・ペーパー • https://docs.cloud.oracle.com/iaas/releasenotes/ - リリースノート • https://docs.cloud.oracle.com/ja-jp/iaas/Content/knownissues.htm - 既知の問題(Known Issues) • https://docs.cloud.oracle.com/ja-jp/iaas/Content/General/Reference/graphicsfordiagrams.htm - OCIアイコン・ダイアグラム集(PPT、SVG、Visio用) ※ 日本語版は翻訳のタイムラグのため情報が古い場合があります。最新情報は英語版をご確認ください Oracle Cloud Infrastructure マニュアル・ドキュメント Copyright © 2023, Oracle and/or its affiliates 23
  16. Oracle Cloud Infrastructure 活用資料集 • https://oracle-japan.github.io/ocidocs/ チュートリアル - Oracle Cloud

    Infrastructureを使ってみよう • https://oracle-japan.github.io/ocitutorials/ Oracle Cloud ウェビナーシリーズ • https://www.oracle.com/goto/ocws-jp Oracle 主催 セミナー、ハンズオン・ワークショップ • https://www.oracle.com/search/events/_/N-2bu/ Oracle Cloud Infrastructure – General Forum (英語) • https://cloudcustomerconnect.oracle.com/resources/9c8fa8f96f/summary Oracle Cloud Infrastructure トレーニング・技術フォーラム Copyright © 2023, Oracle and/or its affiliates 24
  17. Our mission is to help people see data in new

    ways, discover insights, unlock endless possibilities.