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

OpenShift.Run2023_create-aro-with-terraform

Taiki Ishii
January 27, 2023

 OpenShift.Run2023_create-aro-with-terraform

OpenShift.Run2023

Session [Azure Red Hat OpenShift を Terraform でコード化!]

Taiki Ishii

January 27, 2023
Tweet

Other Decks in Technology

Transcript

  1. © COPYRIGHT 2023 FIXER Inc.
    Azure Red Hat OpenShift を
    Terraform でコード化!
    株式会社FIXER 石井汰樹

    View Slide

  2. © COPYRIGHT 2023 FIXER Inc.
    2
    ⚫ 自己紹介
    ⚫ Infrastructure as Codeとは?
    ⚫ Azure Red Hat OpenShiftをTerraformでコード化!
    ⚫ AROをTerraformでコード化するときに大変だったこと
    目次

    View Slide

  3. © COPYRIGHT 2023 FIXER Inc.
    3
    ⚫ 石井 汰樹(いしい たいき)と申します
    ⚫ 2000年生まれの滋賀出身のクラウドインフラエンジニアです
    (西暦の下2桁と自分の年齢が同じなので、年齢を忘れてもすぐ思い出せます)
    ⚫ インフラ(クラウド)に触り始めて2年くらいです
    ⚫ クラウドは9.9割Azure0.1割AWSの割合で触ってます
    ⚫ コンテナやKubernetes周りの部分をよく触ってます
    ⚫ OpenShiftに触り始めて1年くらいです
    自己紹介

    View Slide

  4. © COPYRIGHT 2023 FIXER Inc.
    4
    Infrastructure as Code とは?
    IaC (Infrastructure as Code) は、手動のプロセスではなく、コードを使
    用してインフラストラクチャの管理とプロビジョニングを行うこと
    を言います。
    出典: IaC (Infrastructure as Code) とは | Red Hat
    https://www.redhat.com/ja/topics/automation/what-is-infrastructure-as-code-iac
    IaC
    Not IaC
    コードを調整して流すだ
    けで完了😄
    手順書に従って、
    人間が手で作っていく

    View Slide

  5. © COPYRIGHT 2023 FIXER Inc.
    5
    IaC にあるメリットとデメリットを個人の主観で書いてみました。
    ■メリット
    ➢ 同じインフラ構成を容易に複製できる
    ➢ 似たようなインフラ構成も少しの修正で作成できる
    ➢ 作業時のダブルチェックが不要
    ➢ 作業時の待ち時間に別のことができる
    ➢ 作業時にミスが減る
    ■デメリット
    ➢ コーディングスキルや専門知識が必要になる
    ➢ コードを介さずにインフラを変更することができない
    ➢ 手で構築するときには見えなかった詰まるポイントがある
    Infrastructure as Code とは?

    View Slide

  6. © COPYRIGHT 2023 FIXER Inc.
    6
    Infrastructure as Code とは?



    進行度

    ① ③
    Not IaCの場合とIaCの場合のコストと進行度のイメージを
    グラフ化してみました。
    進行度がどの段階なのかを下記に記述しています。
    Not IaC IaC
    ①まで 手順書の作成期間 コードの作成期間
    ①から②まで レビュー期間 レビュー期間
    ②から③まで 開発環境構築 開発環境構築
    ③以降 本番環境構築 本番環境構築
    ポイント①
    IaCだと設定行為を実装
    するのにコストがかかる
    ポイント②
    手順書だと作業ミスによ
    る手戻りコストがかかる

    View Slide

  7. © COPYRIGHT 2023 FIXER Inc.
    7
    簡単な用語解説
    Azure ・・・ Microsoft が提供するクラウドプラットフォーム
    Azure Red Hat OpenShift (ARO) ・・・ Azure 上で提供される OpenShift
    Terraform ・・・ オープンソースのIaCソフトウェアツール
    本セッションではコードの詳細は割愛しているので、「Terraformのコードを見たい」という人は
    Terraformのコードの全文と解説が弊社ブログにあります。
    https://tech-blog.cloud-config.jp/2022-12-15-create-aro-with-terraform
    Azure Red Hat OpenShiftをTerraformでコード化!

    View Slide

  8. © COPYRIGHT 2023 FIXER Inc.
    8
    今回構築するAROはMicrosoft公式のチュートリアルで作成されるものと
    ほぼ同じものを作成します。
    https://learn.microsoft.com/ja-jp/azure/openshift/tutorial-create-cluster
    上記のリンク内のクラスターを作成するという部分が
    今回コード化がされている部分です。
    右記の画像はチュートリアル全体をキャプチャしたもので、
    今回コード化したのは赤枠で囲った部分になります。
    (次スライドで拡大した画像を表示します)
    Azure Red Hat OpenShiftをTerraformでコード化!
    チュートリアルやってみた
    記事も書いてます
    https://tech-blog.cloud-
    config.jp/2021-12-28-
    tutorial-aro-cluster

    View Slide

  9. © COPYRIGHT 2023 FIXER Inc.
    9
    先ほどのスライドの赤枠で囲った部分を
    拡大したものが右の画像になります。
    Azure CLIというコマンドラインツールであれば、
    右記のコマンドを実行して待つだけで簡単なんですが
    該当の部分を作成するのに数時間程度かかりました。
    Azure Red Hat OpenShiftをTerraformでコード化!

    View Slide

  10. © COPYRIGHT 2023 FIXER Inc.
    10
    大変だったポイント
    1. 自動的にされている処理を明示的にコード化する必要がある
    今回沼にはまっていた部分です。(該当コードへのリンク)
    原因はARO用に用意されているリソースプロバイダーサービスプリンシパルに
    ネットワーク共同作成者権限がなかったことでした。
    仮想ネットワークのIAMを確認してたら見慣れない名前のアプリがあったので、ようやく気付けました。
    2. デバッグに時間がかかる
    コードを実行してエラーが出るまでに5分くらい待つ必要があるので、
    何度も試しているとあっという間に時間が溶けます。
    3. 単純に書く分量が多い
    AROは多くのパラメータを持つリソースなので、コード内の変数が多く処理も長くなってしまいます。
    コードを再利用しやすいように実装を頑張って工夫していくと、こちらも時間が溶けていきます。
    AROをTerraformでコード化するときに大変だったこと

    View Slide

  11. © COPYRIGHT 2023 FIXER Inc.
    11
    ご清聴ありがとうございました。

    View Slide

  12. © COPYRIGHT 2023 FIXER Inc.

    View Slide