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

さくらのクラウドでのcloud-initの実装と利用例の紹介 / Implementation of cloud-init in SAKURA Cloud and introduction of usage examples

Komei Nomura
December 16, 2022

さくらのクラウドでのcloud-initの実装と利用例の紹介 / Implementation of cloud-init in SAKURA Cloud and introduction of usage examples

2022/12/16 さくらテックランチ#1の発表資料になります。

connpass: https://sakura-tokyo.connpass.com/event/266667/
youtube: https://www.youtube.com/watch?v=WaKq_xz6iq4

Komei Nomura

December 16, 2022
Tweet

More Decks by Komei Nomura

Other Decks in Technology

Transcript

  1. • 名前:野村 孔命 • 所属:さくらインターネット株式会社 クラウド事業本部クラウドサービス部 • 業務: • さくらのクラウドのAPIの開発

    • お客様の⾏動ログを収集する基盤の開発 • クラウドのシステムのログを収集する基盤の開発 ⾃⼰紹介
  2. • メタデータ • クラウドプロバイダが提供するインスタンス固有の情報を記述したファイル • インスタンスID, ホスト名, ディストリビューション名, etc. •

    クラウドプロバイダが⾃動的に⽣成 • メタデータの内容をユーザデータから参照して利⽤可能 • ユーザデータ • インスタンスのセットアップ内容を記述したyamlファイル • このファイルはユーザが記述し、記述内容に基づいてセットアップが⾏われる • 様々なセットアップの記述に便利なモジュールが⽤意されている メタデータとユーザデータ
  3. NoCloudでのcloud-initの実⾏ Disk image 1 Disk image 2 ファイルシステム: ISO9660 or

    FAT ファイルシステムラベル: cidata or CIDATA /meta-data /user-data VM qemu-system-x86_64 -m 2G -nographic -drive file=./archive/ubuntu-20.04-cloudimg.img,format=qcow2 -drive file=disk2.img,if=virtio,format=raw,readonly=on ホストサーバ VM起動後、cloud-initが実⾏されセットアップが⾏われる
  4. • cloud-initは様々なクラウドサービスに対応しており、クラウドの利⽤者としては⼀般的なも のとなっている → さくらのクラウドでも提供し、利⽤者の利便性を向上させたい • パブリックアーカイブ提供の労⼒と速度の問題 • さくらのクラウドでは、お客様の⾯倒なインストール作業を減らすために、初期のインストールされ た状態のアーカイブを提供している

    • 各種ディストリビューションの新しいバージョンが公開される度に、設定を⾏うスクリプトの作成や 検証が必要となる • 結果、労⼒は増え、提供速度が遅くなっている → cloud-initを利⽤することで、パブリックアーカイブ提供の労⼒削減と速度向上を図りたい cloud-init機能の実装背景 1
  5. • cloud-initには、多様なモジュールが⽤意されており、様々なセットアップ処理を記述できる • ミドルウェアをインストールして設定ファイルを置くこともできる • 複雑なセットアップ処理をユーザデータに書いてしまうと、可読性が悪くなりメンテナンスが ⼤変になることが予想できる ユーザデータを記述する上での⽅針 ⽅針: 1.

    ユーザデータの内容は、基本的なセットアップに抑える • user/passwordの設定、ssh-keyの設定、ネットワークの設定、パッケージのインストールなど 2. 複雑なセットアップは構成管理ツールに任せる、もしくはシェルスクリプトに切り出す • 複数のミドルウェアのインストールし、それらの設定ファイルをたくさん配置するなど
  6. • ISUCON過去問題を解く環境をさくらのクラウドで構築するという記事がさくらのナ レッジに公開されています • ISUCON環境の構築には、cloud-initとAnsibleが利⽤されています • Ansibleで競技⽤VMやベンチマーク⽤VMのセットアップ処理を記述 • Ansibleの適⽤ホストに127.0.0.1を指定することで新規作成したインスタンス⾃⾝に適⽤ •

    ユーザデータでAnsibleの実⾏準備を⾏い、Ansibleの実⾏をruncmdで⾏なっている • ISUCONに興味がある⽅も是⾮記事を読んでみてください! 利⽤例1:ISUCON環境のセットアップ ISUCON過去問題の環境をさくらのクラウドで構築する:https://knowledge.sakura.ad.jp/31520/
  7. • cloud-initの概要を説明 • cloud-initの基本的な使い⽅などを説明 • NoCloudでのcloud-init実⾏の仕組みを説明 • さくらのクラウドでのcloud-initの実装を説明 • クラウドが抱えていた問題の背景を説明

    • ユーザデータのシステム間の渡し⽅やNoCloudを使ったさくらのクラウドでの実装を説明 • cloud-initの利⽤例を紹介 • ユーザデータ記述の⽅針を説明 • ISUCON環境のセットアップを紹介 • k0s環境のセットアップを紹介 まとめ