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

IBM Cloud PLUS #6 Infra-as-Code 実践編

noggy33
June 02, 2023

IBM Cloud PLUS #6 Infra-as-Code 実践編

IBM Cloud Plus シリーズ は、IBM Cloud の初学者の方向けにクラウド活用に欠かせないサービスをピックアップして、実際の操作を交えつつ基本的な知識や便利な使い方を習熟いただくための講座です。

第6回のテーマは、IBM Cloud の 実践的な Infrastructure as Code の活用方法 です。 このセッションを通じて、IBM Cloudにおける Infrastructure as Code の実践に必要な 基礎知識 や 具体的な活用方法などについてご紹介したいと思います。

noggy33

June 02, 2023
Tweet

More Decks by noggy33

Other Decks in Technology

Transcript

  1. 2 © 2023 IBM Corporation 本⽇のアジェンダ Ø 今回は、IBM Cloud Schematicsをテーマとして取り上げます。

    Ø IBM Cloud Schematics を利⽤してInfra-as-Codeを実践するために必要な知識と操作⽅法をご紹 介します。 タイムテーブル 内容 14:00-14:05 オープニング 14:05-14:15 1. Infra-as-Code の基礎知識 14:15-14:35 2. Schematics の概要 14:35-14:55 3. Schematics の利⽤⽅法 14:55-15:00 まとめ&クロージング 本⽇のアジェンダ ※進捗状況により予定より早く終了する場合があります
  2. 3 © 2023 IBM Corporation IBM Cloud とは 企業の“Journey to

    Cloud”を⽀えるのがIBM Cloudです。基幹系システムを安⼼して稼働させるため のサービス群として、以下の特徴あるサービスを提供しています。 業界屈指のベアメタル・サービスの提供 とデータセンター間⾼速プライベート 回線の無償利⽤ 次世代ハイパースケール VPC Gen 2 (VSIで最⼤ 80Gbps, BMSで 最⼤100Gbps) 企業向け Kubernetes 基盤 1,000社, 16,000クラスター実績 170種類以上のサービスを提供 Watson, IoT, Blockchain Power Architecture を 東京/⼤阪リージョンから提供 VMware on IBM Cloud 2,000社を超える実績 コンテナ化された IBMソフトウェア IBM Cloud Paks 環境保護への取り組み 業界唯⼀のIBM Z環境、 FIPS 140-2 Level 4 認定の 鍵管理サービス SAP 認定のSAP on VMware 構成を 提供するパブリッククラウド IBM Cloud のサービスが オンプレ、エッジ環境でも利⽤可能 世界初⾦融サービス向け パブリッククラウド 分散クラウド IBM Cloud Satellite
  3. Infrastructure as Code (IaC) IaCの概要とメリット Infrastructure as code (IaC)とは、可読性の⾼い定義ファイルを使⽤して、ITサービスのインフラストラクチャをプロビジョニ ングし、管理するプロセスのことです。

    IaCの特徴 • ソリューションやユースケースのレベルで、インフラをコードとして定義 • ソリューションやベスト・プラクティスを体系化・標準化 • 可読性の⾼いコードによって、作成されるインフラの構成や作成⽅法を把握 • インフラのプロビジョニング・プロセスを⾃動化することで、再現性、再利⽤性を向上 • 複数のチームで、ソリューションのリソースを共同で管理 IaC Value • スピード : 完成度の⾼いインフラを素早くセットアップできます。 • ⼀貫性 : 宣⾔型のコードを⽤いることで、同じ構成が作成されることが保証されます。 • 説明可能 : IaCの定義ファイルはソース・コード管理ツールで管理されており、変更を完全に追跡できます。 • 効率性 : 簡単にサンドボックス環境を構築できるため、他の環境に影響を与えずに、新しい取り組みを⾏えます。 • コストの削減:コード化することで属⼈性を削減し、繰り返し作業や作業ミスによるコストを削減できます。
  4. Infrastructure as Code (IaC) IaCのイメージ </> Infra Code Infra Code

    Develop Storage Production インフラ エンジニア ソースコード 管理ツール 構成管理 ツール インフラエンジニアは、ライフサイクル全般を通して、ソースコード管理ツールや構成管理ツールによってコードを介した 環境の構築や変更などの管理を⾏うことになります。
  5. Infrastructure as Code (IaC) IaCのベストプラクティス 仕様を外部⽂書化しない インフラの仕様に関する外部⽂書は、不正確で最新の状態が分からなくなりがちです。外部⽂書化の習慣をやめ、常に正確 で利⽤可能な設定ファイル⾃体に仕様を記述するようにします。 構成ドリフトを避ける 全ての変更はコードを実⾏することによって適⽤します。緊急の場合にも、⼿動で環境を変更するとコードと実際の環境に

    構成ドリフトと呼ばれるズレが⽣じます。⼿作業を許容するとコードが陳腐化するため、構成ドリフトが⽣じる余地を徹底 的に排除するようにします。 ⾃動テストを徹底する ⼿作業による環境構築と⽐較した場合のコード化の価値の 1 つは、コードをテストできることです。IaC テストツールを使 ⽤して、本番環境に移⾏する前に、構成にエラーや⽭盾がないことを確認します。 すべてのバージョンを管理する 新しい変更が展開されるときは、古いバージョンをソースコントロールによって安全に利⽤できるようにしておきます。こ れにより、新しい展開で予期せぬ問題が発⽣した場合に、チームは以前のバージョンにアクセスして、再ロードすることが できます。
  6. IBM Cloud Schematics の概要 Value • Latest IaC tech =>

    Terraform v1.3, Kubernetes Helm Charts, Cloud Pak, Ansible provider • Strength of IBM Cloud => Terraform ライフサイクルを管理するフルマネージドサービス • Neutral Technology => TerraformやAnsibleなどのオープンソーステクノロジーに基づいたサービ スで、さまざまなクラウドインフラのモジュールを利⽤可能 Schimatics はクラウドインフラを定義し、管理するためのIBM Cloud のマネージド・サービスです。複数の環境を、効率的に、 自動的に、構築・管理することができます。 IBM Cloud Schematics とは ※Schematicsのワークスペースなどのリソースは、北⽶やヨーロッパなど⼀部のロケーションに作成されます。実際に作成するIBM Cloudのリソースは、 Schematicsのロケーションに関係なく作成することができます。
  7. • API, CLI, and UI が可能 • 完全にマネージドで、チーム利⽤を前提とした実装 (監査証跡や操作履歴も取得可) •

    IAMとの完全な統合 • IBM Cloud Toolchainsとの統合 • IBM Cloud マルチリージョンでのフル HA をサポート • IBM Cloudによるサポート • IBMが作成・厳選したすぐに利⽤できるテンプレート • IBM Cloudに最適化・標準化された⾃動化 Schematicsの優位性(vs Terraform)
  8. Schematicsの優位性(vs Ansible) 11 Ansible Tower のような操作感 • インベントリー • クレデンシャル

    • 通知 Resource Provisioning • IBM Cloud ⽤のAnsible モジュールを利⽤可能 Resource Operations • ⼊⼒不要のシングルアクションで操作可能 • 仮想サーバーの起動/停⽌ • 仮想サーバーやDBなどのバックアップ • ユーザーが定義したアクション • ⼿動実⾏だけでなく、スケジュール実⾏も可能
  9. IBM Cloud Schematics の概要 IBM Cloud Schematics のユースケース ユース・ケース 説明

    関連技術 クラウド・インフラストラク チャーのデプロイ Terraform 構成を使⽤して、クラウド環境を素早くスピンアップします。 必要な クラウド・リソースを指定し、 Schematics ワークスペース を使⽤して、 IBM Cloud リソースをプロビジョン、更新、スケーリング、および削除します。 • Terraform 構成管理 Ansible プレイブックを使⽤した Schematics アクション でアプリケーション・ ランタイム環境をビルド、更新、およびスケーリングします。 Ansible を使⽤し て、 運⽤作業を⾃動化することもできます。 • Ansible ソフトウェア・デプロイメン ト ソフトウェア・カタログのテンプレートを使⽤して、 IBM Cloud Kubernetes Service または Red Hat OpenShift on IBM Cloud クラスター、あるいは他の IBM Cloud リソースに IBM およびサード・パーティー・ソフトウェアをインス トールします。 • Terraform • Ansible • Helm • OnenShift Operator ⼤規模環境のデプロイ Schematics Blueprintsを使⽤して、⼤規模な環境をデプロイおよび管理しま す。 再使⽤可能な Terraform ベースの⾃動化モジュールから作成された、⼤規 模で複雑なアプリケーション・インフラストラクチャーのライフサイクルを管理 します。 バージョン・テンプレートおよびモジュールを再利⽤します。 • Terraform
  10. IBM Cloud Schematics の概要 Schematics ワークスペース Schematics ワークスペースは、Terraform をサービス機能として提供します。これにより、 IBM

    Cloud リソースの プロビジョニ ングと構成の管理 が⾃動化され、複雑な複数階層型クラウド環境が迅速に構築、複製、拡張されます。 Terraform を使⽤すると、構成ファイルによってインフラストラクチャーが定義されます。これにより、構成の編集、共有、およ び再利⽤も容易になります。 ワークスペースを使⽤したインフラストラクチャーおよびサービスのデプロイ • Terraform の remote-state 管理機能により、チームの作業およびワークスペースの共有操作が可能になります。組み込み状態のロックにより、同じ 状態ファイルに対する同時操作が防⽌されます。 • ワークスペースはチーム⽤に設計されています。 Terraform テンプレートを Git リポジトリに保管することで、組織でコラボレーション、レビュー、 監査を⾏えます。 • ワークスペースは ドリフト検出をサポートしており、デプロイされたインフラストラクチャーの構成が、テンプレート構成で定義されている必要な 状態と異なる場合に検出します。
  11. IBM Cloud Schematics の概要 Schematics アクション Schematics アクションは、 IBM Cloud

    環境の構成と管理を⾃動化し、複雑な複数階層アプリケーションをクラウド・インフラス トラクチャーにデプロイするための Ansible-as-a-Service 機能を提供します。 Ansible は、YAML 構⽂を使⽤して単⼀のホストまたはホストのグループに対して実⾏する必要のあるタスクを記述し、それらの タスクを Ansible Playbook に保管します。 構成管理および Ansible • Schematics アクションは、クラウド環境の構成、操作、および管理を⾃動化し、複数階層のアプリケーション・ワークロードをクラウドにデプロイ するように設計されています。 • Ansible は、エージェントレスで動作します。 代わりに、Ansible は SSH 鍵を使⽤してパブリック・ネットワークを介してコンピュート・ホストに セキュアに接続します。 • Ansible モジュールには「べき等性」があり、必要な場合にのみリソースが変更されるため、同じ Playbook または操作を複数回実⾏した場合に同じ 結果が返されます。
  12. IBM Cloud Schematics の概要 Schematics Blueprint (β機能) Schematics Blueprints は、⼤規模で複雑なクラウド環境の作成とライフサイクル管理に

    Infrastructure as Code (IaC) プラクティ ス をもたらします。 Blueprints は、複数の環境にわたって運⽤を管理し、クラウド環境の初期作成から保守と運⽤、割り当てら れたすべてのリソースの最終的な廃⽌とクリーンアップに⾄るまで、コードによるクラウド環境の管理を拡張します。 Blueprints を使⽤したモジュラー⼤規模環境のデプロイ • Schematics Blueprint を使⽤すると、再使⽤可能な明確に定義された Terraform ⾃動化コードのモジュールを使⽤して、複雑なクラウド環境を定義 およびデプロイできます。 • ブループリント・テンプレートは、実装に必要なモジュール、インフラストラクチャー・トポロジー、およびモジュール間の関係を指定して、インフ ラストラクチャー・アーキテクチャーを決定します。 • モジュラー・アプローチにより、⼤規模な環境の保守と更新の作業も容易になります。 ブループリント操作は、コード変更ではなく、モジュール・ バージョンの構成を通じて、要求に応じて環境を更新します。 【特徴】 •モジュラー構成: Terraform で作成された再使⽤可能な IBM Cloud ⾃動化モジュールのエコシステムからインフラを構築します。 •スケーラビリティー: ⼤規模で複雑なアプリ・アーキのコンポーネントとして個別のモジュラー環境をリンクすることで、環境をスケーリングします。 •再利⽤可能性: テンプレートおよびモジュールを環境やパイプライン、およびチームで共有し、再利⽤できます。 •ライフサイクル: 最初の作成から、保守および運⽤から最終的な廃⽌まで管理します。
  13. IBM Cloud Schematics の概要 Schematicsの運⽤⽀援機能 Schematics は、IBM Cloudの他のサービスと統合することで、運⽤性を向上できます。 サービス 説明

    関連技術 ロギング IBM Cloud Log Analysis と統合することで、ロギング・データやイベントの保 管、検索、分析、モニター、およびアラートを⾏うことができます。 この機能では、ダッシュボードを介して Schematics ワークスペースのアラー ト、ライブ・ログ、カスタム・ビューを利⽤できます。 • IBM Cloud Log Analysis モニタリング IBM Cloud Monitoring と統合することで、IBM Cloud Schematics ワークス ペースの正常性をモニターできます。 この機能では、ダッシュボードを介して Schematics ワークスペースのアラー ト、ライブ・ログ、カスタム・ビューを利⽤できます。 • IBM Cloud Monitoring アクティビティ ・トラッキング IBM Cloud Activity Tracker と統合することで、IBM Cloudを管理するための監 視、コンプライアンス、および運⽤とリスクの監査を⾏えます。 監査追加 UI を使⽤して、 Schematics ワークスペース・インスタンスのイベン トおよびアクセス監査ログの監査証跡を⽣成および保守できます。 • IBM Cloud Activity Tracker 鍵管理 IBM Key Protect などと統合することで、IBM Cloud のリソース、サービス、 およびアプリケーションで使⽤される暗号鍵のライフサイクルを管理できます。 BYOKやKYOKによる暗号鍵を使⽤して、Schematics に保管されているデータ を暗号化して保護することができます。 • IBM Key Protect
  14. IBM Cloud Schematics の概要 Schematicsの責任分担 分類 IBM お客様 リソースのプロ ビジョニングと

    管理 • IBM Cloud においてリソースのプロビジョニングと管理を⾃動化するための ⼀連のツール (IBM Cloud Schematics コンソール、CLI、API など) を提供し ます。 • サンプルの Terraform テンプレートを提供および保守します。 • Terraform テンプレートで記述されている必要な状態を実現するために必要な アクションを判別するための Terraform 状態ファイル (terraform.tfstate) を 作成、更新、管理します。 • 独⾃の Terraform テンプレートや提供されているサンプル・テンプレートを 使⽤して、必要なリソースを構成します。 • ソース・リポジトリー構造を設計し、ご使⽤の Terraform テンプレート⽤の ソース・リポジトリーをセットアップおよび管理します。 • テンプレートで使⽤される IBM Cloud リソースについて理解します。(可⽤ 性、価格設定、制限や、セキュリティー、⾼可⽤性、ロギング、モニタリン グをセットアップするためのツールなど) • ⾼可⽤性および回復⼒を確保できる⽅法でリソースを設計およびプロビジョ ンします。例えば、マルチゾーン・クラスター、マルチリージョン VPC など を使⽤します。 • 提供されているツールを使⽤して、IBM Cloud リソースを プロビジョン、 変更、または削除します。 • IBM Log Analysis や Monitoring などを使⽤して、リソースのアクティビ ティーを追跡し、リソースの正常性をモニタリングするために、リソースの ロギングとモニタリングをセットアップします。 セキュリティー • ワークスペースをロックしたりワークスペースに対する変更を無効にしたりす るツールを提供します。 • サンプル・テンプレートと IBM Cloud カタログ内のテンプレートに、セキュ リティー更新とバージョン更新を⾃動的に適⽤します。 • 作動可能な IBM Cloud Schematics コンポーネント (Terraform ⽤の IBM Cloud Provider プラグイン、Terraform CLI バージョン、および他のサポート 対象プロバイダーとプロビジョニング・エンジンなど) を更新します。 • リソース関連アクションに関する Schematics ログ情報にアクセスできるよう にします。 • 転送中および保存時のワークスペース・データを暗号化します。 • ID およびアクセス管理 (IAM) を使⽤して、Schematics ワークスペースおよ び関連 IBM Cloud リソースへのアクセスを管理します。 • ご使⽤の Terraform テンプレートのアクセス制御、セキュリティー設定、コ ラボレーション、バージョン管理など、ソース・リポジトリーを保護します。 • リソース・オファリングで提供されているセキュリティー機能を使⽤して、 作成する IBM Cloud リソースを保護します。 • IBM Cloud リソースで提供されているツールを使⽤して、セキュリティー・ パッチ、アクセス制御、暗号化をリソースに適⽤します。 ⾼可⽤性、バッ クアップ、災害 復旧 • 複数の IBM Cloud リージョンにまたがってワークスペース・データをバック アップします。 • 24 時間以内に、複製されたリージョンのワークスペース・データを復旧しま す。 • 作動可能な IBM Cloud Schematics コンポーネントを復旧します。 • ⾼可⽤性および回復⼒を確保できる⽅法でリソースを設計およびプロビジョ ンします。例えば、マルチゾーン・クラスター、マルチリージョン VPC など を使⽤します。 • リソースとワークロード・データに関するバックアップおよび復旧の戦略を セットアップします。
  15. IBM Cloud Schematics の利⽤⽅法 Schematics の実⾏環境 IBM Cloud Toolchain Schematics

    リソース・グループ ワークスペース アクション ジョブ ジョブ リソース 定義 コンフィグ 定義 </> インフラ エンジニア VPC Web DB Block Storage Nginx MySQL ①リソース作成 ②構成変更
  16. Terraform main.tf provider.tf variables.tf README.md インフラ定義を記述する ファイル 対象のクラウドなどの情報 を記述するファイル(リー ジョンなどもここに記述)

    変数を記述するファイル (ワークスペース上でオー バーライドできる) Readmeファイル data "ibm_resource_group" "group" { name = "${var.resource_group_name}" } /*resource "ibm_cd_toolchain" "cd_toolchain_instance" { description = "A sample toolchain to test the API" name = "TestToolchainV2" resource_group_id = "${data.ibm_resource_group.group.id}" }*/ resource "ibm_is_vpc" "vpc" { name = "${var.vpc_name}" resource_group = "${data.ibm_resource_group.group.id}" tags = ["tag1","tag2"] } Terraformの定義ファイルは、HCLという書式で記述します。Terraformには、クラウドプロバイダーに応じ たライブラリーが⽤意されており、リソースを宣⾔的に定義することができます。
  17. Ansible site.yml roles/ group_vars/ inventory/ Playbookの本体 Playbookから呼び出す taskなどを格納 変数の定義を格納 インベントリー関連情報を

    格納 --- - name: deploy and configure the webservers and application hosts: all remote_user: root roles: - web - name: deploy MySQL and configure the databases hosts: all remote_user: root roles: - db - name: Verify Installation hosts: all tasks: - name: Query index page for application uri: url: http://localhost/index.php return_content: yes register: Output - name: Display Index page content ansible.builtin.debug: var: Output README.md Readmeファイル Ansibleの定義ファイルは、YAMLで記述します。 Ansibleは宣⾔的にも使えますが、⼿続的な処理も⾏ えるため、さまざまな処理を柔軟に実装できます。
  18. 26 © 2023 IBM Corporation 本⽇のまとめ Ø IaC を活⽤することで、インフラ構築・運⽤のスピードアップやコスト削減が可能 Ø

    特に、Cloud環境は、IaCとの相性が良い Ø IaCを採⽤するときには、ベストプラクティスに即して活⽤するべき Ø IBM Cloud では、Schematicsを利⽤することで、簡単に IaC を実践することができる Ø Schematics では、Terraform や Ansible などのオープンソーステクノロジーを利⽤可能 Ø インフラ・リソースを定義する場合は、ワークスペース(Terraform)を利⽤ Ø インフラの構成管理(ミドルウェアの設定など)を⾏う場合は、アクション(Ansible)を利⽤ Ø Blueprint (ベータ) を使うと、モジュール化したコードを組み合わせて、インフラを定義できる Ø Schematics は、IBM Cloud の運⽤管理サービスと統合できる(ロギング、モニタリングなど)
  19. 過去の講義のリプレイ 28 過去の講座のリプレイを公開しています。Self Studyなどにご活⽤ください。 © 2023 IBM Corporation IBM Cloud

    101 • IBM Cloud 101 - #1 IBM Cloud コンソールを攻略しよう • IBM Cloud 101 - #2 IBM Cloud の IAM をワカる • IBM Cloud 101 - #3 IaaS / クラシック・インフラストラクチャを知る • IBM Cloud 101 - #4 Virtual Private Cloud (VPC) を知る • IBM Cloud 101 - #5 ネットワークを知る • IBM Cloud 101 - #6 IBM Cloud 管理の基本 (契約⽀払いサポートなど) IBM Cloud Plus • IBM Cloud PLUS - #1 Code Engine⼊⾨ • IBM Cloud PLUS - #2 Object Storageの勘所 • IBM Cloud PLUS - #3 IBM PowerVS ⼊⾨と最新情報 • IBM Cloud PLUS - #4 VPC設計の勘所 • IBM Cloud PLUS -#5 バックアップ関連サービス