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

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

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

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

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

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

#oci #OCI #Resource Manager #Terraform

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

Other Decks in Technology

Transcript

  1. “IaC”とは Infrastructure as Code • Infrastructure as Codeはサーバーやネットワークなどのインフラ構成をプログラムのようなコードで記述し、そのコードを用 いてインフラ構成の管理やプロビジョニングの自動化を行うこと •

    オンプレミスからクラウド、マルチクラウドやコンテナ化と、ITインフラの変遷が進んでく中で、ITインフラやサーバの構成の変 更の頻度は多くなった • 構成の変更にかかる手間などを解決するための手段の一つがIaC • コードやインフラの設定を記載、それを実行することで自動的に構成の変更などが可能になる VCN Subnet A variable "compartment_ocid" {} variable "region" {} Virtual Machine 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" } … 3 Copyright © 2026, Oracle and/or its affiliates Load Balancer Virtual Machine プロビジョニング Subnet B Database System
  2. Terraformの特徴とIaCのメリット 大規模かつ変更が多いシステムを簡単に運用できる Terraformの特徴 IaCを利用することで得られるメリット • Repeatability(再現性) • 生産性の向上 ▪ コードで記述されているので、何度でも再利用可能

    • Idempotency(冪等性) ▪ コードを何度実行しても同じ結果を得られる • Agility(機敏性) ▪ 変更からプロビジョニングまで迅速な開発サイクルを回せ る • Auditability(監査性) ▪ コードの変更を追跡できる ▪ 変更にかかる工数を減らし、スピーディに反映 • リスクの軽減 ▪ 変更箇所を事前に確認でき、人的ミスを軽減 • 統合性の向上 ▪ 複数のチームが協力して共通のインフラストラクチャを構 築 • 複雑性の軽減 ▪ 複数のリソースを集中管理し、環境の標準化を推進 • コンプライアンスの向上 ▪ 変更の追跡ができ、ガバナンスを強化 5 Copyright © 2026, Oracle and/or its affiliates
  3. Terraform – 基本機能 Terraform は以下の基本的なリソース管理の機能を提供する(CRUD操作に近い) 機能 リソースの作成 内容 設定ファイルに基づいて、依存関係を考慮して リソースを作成する

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

    設定ファイル State ファイル OR .tfstate *.tf 7 ④ JSON Copyright © 2026, Oracle and/or its affiliates GO 言語 Client Library ③ HTTP(S) ① 管理するリソースの状態を State ファイル(terraform.tfstate) で管理 ② Terraform は 設定ファイルを読み込んで、 state ファイルとの状態を比較し、 どのリソースに対してどの順序でアクションを起こすか決定 ③ 実際のリソースに対するアクションは、REST API をラップした Provider で実行さ れる ④ 実行後にリソースの状態が State ファイルに保存される
  5. OCIでのTerraformの利用パターン 一般的なTerraform実行(ローカル実行)とマネージドサービスが選択肢 一般的なTerraform実行環境で利用 OCIマネージドのTerraform実行環境で利用 or Resource Manager 8 • ローカル環境もしくは管理サーバー等で

    Terraformを実行 • OCIが提供するTerraformを実行環境 • Stateファイルはローカル保存もしくは OCIオブジェクト・ストレージなどに保存 • その他リソース・マネージャ独自の管理機能が充実 Copyright © 2026, Oracle and/or its affiliates • Stateファイルをサービス上で管理
  6. リソース・マネージャとは 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/ドリフト検出) 9 Copyright © 2026, Oracle and/or its affiliates
  7. Terraformの課題とOCIリソース・マネージャの特徴 スタンドアロン Terraform の課題を解消するためのソリューションが OCIリソース・マネージャ 課題 Stateファイル (tfstate)の 管理方法 •

    リソース・マネージャ上で管理し、 管理負荷を低減 OCI RMS 10 • 誰がどのような操作でリソースの 状態を変化させたかを追うことも可能 Copyright © 2026, Oracle and/or its affiliates Terraform実行ユーザの 管理方法 • OCIのIAMと完全に統合されている ため、誰がどのような権限で リソースに関する操作を実行できるか を管理可能 複数環境の管理方法 • スタックと呼ばれる単位で 複数のTerraform設定ファイルを 一括管理可能
  8. OCIリソース・マネージャの基本構造 スタック2 スタック1 … .tf ファイル Plan Apply Destroy ジョブ

    1 ジョブ2 ジョブ3 ジョブ • スタックに対する操作 : Plan, Apply, Destroy ログ State ファイル スタック • OCI リソースのまとまり • 構成情報をTerraform設定ファイル(.tf)で 保持 Resource Manager Stateファイル • 状態を保持するファイル (.tfstate) • リソース・マネージャでは状態ファイルを自動 的に生成して更新 - ファイルの手動編集は不可 - スタック毎の状態ロックをサポート 11 Copyright © 2026, Oracle and/or its affiliates
  9. リソース・マネージャの構成要素:Terraform構成/スタック Terraform構成: スタック: HCLで定義された.tfファイル OCIのリソースがまとまった一連のTerraform構成 .tfファイルにOCIのリソースを記述する .tfファイル 通常はフォルダやzipファイルでまとめられる 例:インスタンスをプロビジョニングする時のスタック …

    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 } … 12 Copyright © 2026, Oracle and/or its affiliates tf-compute provider.tf :認証情報のファイル availability-domains.tf :ADに関するファイル compute.tf :コンピュートに関するファイル output.tf :出力情報に関するファイル スタック
  10. リソース・マネージャの構成要素:ジョブ 計画・適用・破棄 計画(plan):インフラストラクチャの変更の表示 現在の状態ファイル(Stateファイル)と設定ファイルを比較して、変 更があれば表示させる 例:VCN1からVCN2に名前を変更 変更部分はログに出力される # oci_core_vcn.this will

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

    スタック スタック "VCN1" -> "VCN2" VCN2 Subnet A New設定ファイル New Stateファイル Old Stateファイル ①適用(apply) Virtual Machine ②更新 Load Balancer 更新 Virtual Machine 14 Copyright © 2026, Oracle and/or its affiliates "VCN1" -> "VCN2" Virtual Machine Load Balancer Virtual Machine ③ログに出力 New Stateファイル Subnet A 空の Stateファイル
  12. ジョブの同時実行について 同時に並列実行できるジョブの数はサービス制限によって規定される • 通常のジョブ:concurrent-job-count - テナンシでリージョンごとに割り当てられているジョブの同時実行数の最大値のサービス制限 • 追加のジョブ(プレミアム・ジョブ):premium-job-submission-count - 通常のジョブの制限値を超えてさらに多くの数のジョブを同時に実行したい場合に使用できる

    プレミアム・ジョブは premium-job-submission-count のサービス制限を引き上げることで有効化される(デフォルト値は0) - ユーザーはジョブ実行時に通常のジョブとプレミアム・ジョブを意識して区別する必要はなく、 concurrent-job-count の制限値を超えた分のジョブ がプレミアム・ジョブとして実行される - プレミアム・ジョブが実行されるとコンピュートの料金として課金される 実行用のシェイプはサービス側で自動選択される(例: 2026年8月時点でAshburnリージョンではA1シェイプのコアとメモリの課金が発生) プレミアム・ジョブ実行中のサービス制限 この例では21のジョブを同時に実行しており、20までのジョブが通常のジョブとして実行されて、追加で1つのジョブがプレミアム・ジョブとして実行されている。 制限の値は concurrent-job-count がUC環境のデフォルトの20、 premium-job-submission-count が3となっているので、この環境では合計で最大23のジョブを同時実行することが できる。 16 Copyright © 2026, Oracle and/or its affiliates
  13. OCI Resource Manager 基本の実行フロー – Terraformに類似 ① スタックを作成し Terraform構成ファイルを登録 ②

    Plan を実行して 変更されるリソースを確認 ①' 問題や変更があれば Terraform 構成ファイルを編集し スタックを更新 ③ Apply を実行 ④ Stateと実行ログを確認 ⑤ Destroy を実行し 作成したリソースを破棄 https://docs.cloud.oracle.com/iaas/Content/ResourceManager/Concepts/resourcemanager.htm#workflow 17 Copyright © 2026, Oracle and/or its affiliates
  14. スキーマを使用した変数の値の指定 スキーマを使用することで、コンソール上での変数の値の 入力候補や、形式に合わせた入力欄などを表示させるこ とができる。 schema.yamlを使用した場合のコンソールでの表示 schema.yaml ファイルを用意して、スキーマを変数と紐付 けることで使用できる。 schema.yamlの例 terraform/

    main.tf schema.yaml 21 Copyright © 2026, Oracle and/or its affiliates title: Sample description: ”Sample schema" schemaVersion: 1.1.0 variables instance_availability_domain: type: oci:identity:availabilitydomain:name title: "可用性ドメイン" description: "インスタンスを配置する可用性ドメインを選択します" dependsOn: compartmentId: ${compartment_id} instance_shape: type: oci:core:instanceshape:name title: "インスタンスのシェイプ" description: "コンピュート・インスタンスのシェイプ名を選択します" dependsOn: compartmentId: ${compartment_id}
  15. ドリフト検出 障害や手動での変更によって生じる差分を表示 リソース・マネージャが最後に実行した状態(=state ファイルの情報) と、OCIの実際のリソースの状況の差 分 = 構成ドリフト を検出する機能 構成ドリフトが発生しているリソースは”MODIFIED”というステータスになる

    実際の構成 Stateファイルの構成 VCN1 VCN2 Subnet Subnet Virtual Machine Load Balancer Load Balancer Virtual Machine 22 Virtual Machine Copyright © 2026, Oracle and/or its affiliates Virtual Machine Stateファイルと実際のリソースの状態を比較することができる
  16. Oracle Cloud Infrastructure 主要情報一覧 https://blogs.oracle.com/oracle4engineer/post/oci-information • OCIの主要技術情報一覧です。ご興味にあわせた情報を公開しております。 1 OCI:サービス別資料一覧 6

    Oracleアーキテクチャ・センター https://blogs.oracle.com/oracle4engineer/oci-service-material OCIの個別サービス毎の、概要資料、技術資料、チュートリアルへのリンク一覧です。 https://docs.oracle.com/ja/solutions/ クラウド環境の検討や実装に役立つように設計されたリファレンス・アーキテクチャとソリューショ ン・プレイブックのカタログを多数掲載。ダウンロード、カスタマイズ、およびデプロイできるコードま たはスクリプトも含む。解説ブログはこちら。 2 OCI活用資料集 https://oracle-japan.github.io/ocidocs/ 7 OCIを使ってみたい! という方のための技術ドキュメント集。 OCIのサービス別技術資料をはじめ、 PPTスライドを中心とした公開ドキュメントや、セミナーで使用した資料をアップロードしています。 3 チュートリアル: OCI を使ってみよう https://oracle-japan.github.io/ocitutorials/ OCIを使ってみよう! という人のためのチュートリアル集。各項ごとに画面ショットなどを交えなが らステップ・バイ・ステップで、OCIの機能についてひととおり学習することができます。 4 OCIサービスアップデート https://blogs.oracle.com/oracle4engineer/category/o4e-oci-serviceupdate 毎月公開するOCIのサービス・アップデート情報をスライドで分かり易く説明。各サービスの 詳細なアップデート情報は、各サービスのドキュメントや「OCI活用資料集」をご覧ください。 5 Oracle LiveLabs https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/home お客さまのクラウド環境ですぐに利用できる、ハンズオン・ワークショップを多数掲載。画面 キャプチャおよび実行コマンドを記載、実環境にて順を追って操作方法を学習することが可能 です。ブラウザの翻訳機能でご利用ください。 25 Copyright © 2026, Oracle and/or its affiliates OCIお客様活用事例 https://blogs.oracle.com/oracle4engineer/oci-customer-reference OCIを活用したお客様の事例のご紹介。データベースはもちろんのこと、アナリティックス、セ キュリティ、システム管理、コンテンツ管理、ブロックチェーン、チャットボットなど様々なサービスの お客様事例をご紹介します。 8 OCIセミナー情報 https://blogs.oracle.com/oracle4engineer/post/oci-seminar 今後開催予定のウェビナー(含むハンズオントレーニング)についてご案内します。 ほぼ毎週+ハンズオンを様々なテーマで開催中! 9 Oracle Code Night https://oracle-code-tokyo-dev.connpass.com/ オラクルのテクノロジーだけに限定しない、Developer(開発者)のDeveloper(開発 者)によるDeveloper(開発者)のための開発者向けコミュニティ Meetup セミナー。 ほぼ毎週 様々なテーマで開催中! 10 OCIドキュメント https://docs.cloud.oracle.com/ja-jp/iaas/Content/home.htm 各サービスの公式マニュアルです。