Slide 1

Slide 1 text

リソース・マネージャ概要 OCI Resource Manager Level 100 Oracle Cloud Infrastructure 技術資料 2023年4月

Slide 2

Slide 2 text

Safe harbor statement 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、 情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以 下の事項は、マテリアルやコード、機能を提供することを確約するものではないため、購買 決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリース、時期及び価格については、弊 社の裁量により決定され、変更される可能性があります。 Copyright © 2023, Oracle and/or its affiliates 2

Slide 3

Slide 3 text

• 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" } … プロビジョニング

Slide 4

Slide 4 text

マルチクラウドオーケストレーションツール TerraformはHashiCorp社が開発しているオーケストレーションツールの一つ • インフラストラクチャのライフサイクルを自動化する構成管理ツール • 主要なクラウドベンダーをはじめ、対応プロバイダー(300+)がプラグインとして用意 • 状態を記録するステート(State)ファイルを持ち、冪等性(何度実行してもOK)を保証 • リソースの依存関係をプロバイダーが定義し、ツールが処理するためユーザーは考慮不要 インフラストラクチャ分野のマルチクラウド向けオーケストレーションツールとしては現在最も優勢 Terraformとは Copyright © 2023, Oracle and/or its affiliates 4

Slide 5

Slide 5 text

大規模かつ変更が多いシステムを簡単に運用できる Terraformの特徴 • Repeatability(再現性) コードで記述されているので、何度でも再利用可能 • Idempotency(冪等性) コードを何度実行しても同じ結果を得られる • Agility(機敏性) 変更からプロビジョニングまで迅速な開発サイクルを回せる • Auditability(監査性) コードの変更を追跡できる お客様が得られるメリット • 生産性の向上 変更にかかる工数を減らし、スピーディに反映 • リスクの軽減 変更箇所を事前に確認でき、人的ミスを軽減 • 統合性の向上 複数のチームが協力して共通のインフラストラクチャを構築 • 複雑性の軽減 複数のリソースを集中管理し、環境の標準化を推進 • コンプライアンスの向上 変更の追跡ができ、ガバナンスを強化 IaCのメリット Copyright © 2023, Oracle and/or its affiliates 5

Slide 6

Slide 6 text

6 Terraform – 基本機能 Terraform は以下の基本的なリソース管理の機能を提供する(CRUD操作に近い) 機能 内容 コマンド リソースの作成 • 設定ファイルに基づいて、依存関係を考慮して リソースを作成する • 作成可能なリソースは Provider に依存する $ terraform apply リソースの更新 • 設定ファイルに基づいてリソースの変更(例えば、リソース名の変 更等)を行う • 変更不可の場合には、リソースを削除のうえ作成するという挙 動になる $ terraform apply リソースの削除 • オプション指定なしの場合には全削除、依存関係を考慮して 削除する • オプション指定で特定のリソースのみ削除も可能 $ terraform destroy リソースの状態確認 • 現在のリソースの状態を確認する $ terraform show リソースの依存関係確認 • 各リソースの依存関係を確認する $ terraform graph Copyright © 2023, Oracle and/or its affiliates

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

スタック • 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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

計画・適用・破棄 計画(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"

Slide 13

Slide 13 text

計画・適用・破棄 適用(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) ③ログに出力

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

事前に作成されたTerraform構成 一般的なシナリオで想定されるクラウド構成がテンプレートとして用意されています スタックの作成:テンプレート Copyright © 2023, Oracle and/or its affiliates 16

Slide 16

Slide 16 text

Terraform構成をリモートに格納 CI/CDを実現するために統合ソース・コード制御システムを利用可能 以下のソースコード制御システムが使用できる(2023年4月時点) • Bitbucketクラウド • Bitbucketサーバー • DevOps • GitHub • GitLab スタックの作成:ソース・コード制御システム Copyright © 2023, Oracle and/or its affiliates 17

Slide 17

Slide 17 text

デプロイされたリソースを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 コンパートメント内のリソースを スタックへ

Slide 18

Slide 18 text

障害が発生した時や手動で変更した時に生じる差分を表示 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ファイルの構成

Slide 19

Slide 19 text

過去に適用したジョブのスタック構成をロールバックすることが可能 スタックのロールバック Copyright © 2023, Oracle and/or its affiliates 20 「計画ロールバック」と「適用ロールバック」が表示されることで、ロールバックしていることを判断できる

Slide 20

Slide 20 text

このレッスンでは、次のことを学習しました • リソースマネージャはTerraformをベースとしたマネージドなOCIのツール • IaCを実現すると、インフラストラクチャのプロビジョニングを簡単に集中管理できる • GUIでプロビジョニングから破棄まで簡単に行える まとめ Copyright © 2023, Oracle and/or its affiliates 21

Slide 21

Slide 21 text

日本語マニュアル – リソースマネージャ • https://docs.oracle.com/ja-jp/iaas/Content/ResourceManager/home.htm リソースマネージャのトラブルシューティング • https://docs.oracle.com/ja-jp/iaas/Content/ResourceManager/troubleshooting.htm Terraform OCIリファレンス • https://registry.terraform.io/providers/oracle/oci/latest/docs リソースマネージャ 関連の技術情報 Copyright © 2023, Oracle and/or its affiliates 22

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

Thank you Copyright © 2023, Oracle and/or its affiliates 25

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

Our mission is to help people see data in new ways, discover insights, unlock endless possibilities.