みなさんどうもこんにちは、ForteFibreインフラ班のマンゴーです。

この度、さくらインターネットさまより、内部・外部向けのサービス提供のためのVPS(仮想サーバ)をご支援頂きました。本記事では、ご支援いただいたサーバの用途や構築管理の工夫について書いていこうと思います。

さくらインターネット株式会社について

さくらインターネットは、日本国内に多数のデータセンターを保有する企業として、レンタルサーバからクラウド基盤まで幅広い製品を提供しています。近年では、国内事業者としては初のガバメントクラウドへの参入に向けた動きを進めるなど、日本のクラウド市場・情報インフラ市場における存在感を一層高めています。

さくらインターネット公式Webサイト / さくらインターネット 採用情報

はじめに

「ロボコンにおけるサーバーの活用」と言うと、具体的に何を?となってしまう方が多いかと思います。そこで、本記事では、ロボコンに限らずものづくりを行う団体に有用な情報となるよう、実際の使用例を交えて紹介します。また、別の記事として、技術的な工夫点についても詳しく書いていこうと思います。

まず、サーバーを提供いただいたさくらインターネット株式会社様、この度はご支援のほどありがとうございます。今回ご支援いただいたのは、Linux(Ubuntu)用VPSおよびWindows用VPSの2台となります。

ロボコンにおける主な用途

部員向けで使用してもらう主な用途はおよそ次のようなものです。

CAD・図面の共有

ロボコンの成果物となるロボットの設計図(CADファイル)を保管・管理する、最も重要な用途です。部では、これらの管理についてAutodesk Vaultを採用しています。Autodesk製品のファイルであれば、製品の外部に移動しなくても履歴管理が可能である点、複数人での作業で競合が生じない点を評価し採用しています。その他、WebブラウザやスマホアプリからCADのデータを見ることが可能な点も便利です。

Autodesk Vaultは、サーバーアプリケーションを自分でホストする必要性があり、そのためにMicrosoft Windows ServerおよびSQL Serverが要求されます。こちらのホストのため、ご支援いただいたさくらのVPS for Windows Serverを活用しています。

採用の背景

過去に用いていたツールにおいて、主な問題となったのが、複数人で同じファイルを編集した場合に発生する競合でした。CADのデータは一般にバイナリであるため、上書きか破棄の2択でしか対処できません。また、ツールによっては上書きした後のロールバックが難しい・できないこともありました。このことを背景として、「誤って上書きしたらめんどくさい」などと、CADのデータを共有する心理的なハードルが上がってしまう事象が生じていました。

これらの問題に対して、Visual Studio Codeに存在する「バージョン管理」タブのようなツールが存在すれば解決策になるのではないかと考え、いくつかのツールを探した結果、選定されたのがVaultです。Vaultは、クラウドサービスやSaaSではないため、Windows Serverの管理という負担を抱えることになってしまいますが、主な作業であるCADデータの管理を円滑に行うためであれば仕方ないと考え導入しています。

ブログ

このブログも、対外向けのコミュニケーションツールの1つとして提供しています。WordPressによって支えられています。10年前から複数のサーバを式年遷宮しながら提供しているため、一部謎のプラグインなどが存在していましたが、今回の移行時にそれらを調査し、適切に置き換えるなどの対応をしています。

ローコード・ワークフローシステム

部内でのちょっとした自動化を簡易に行うため、n8nを導入しています。n8nは、ノードベースのローコードツールで、Webhookやメール・フォームなどをトリガーに、GoogleやGitHub・Slackのような各種API(外部サービスとの連携機能)を呼び出して作業をすることができます。以下のような、多様な用途に活用しています。

  • ロボコンの大会運営とのメールの連絡を即時に通知する
  • 不要になったSlackチャンネルを一括削除する
  • 毎日朝に今日のスケジュールを通知する
  • 部内向けのシステムのアカウント作成

このようなツールはSaaSとしての提供が多いですが、利用回数の制限がある、連携対象が限られるなどの理由で、Linuxサーバ上に自身でホストしています。

パスワードマネージャー

複数人で使用するアカウントのパスワードを安全に共有するため、VaultWardenを採用しています。SNSアカウントから環境構築のために使用する鍵まで、閲覧できる範囲を指定しつつ安全に保管しています。

メンバー管理のシステム

大学公認団体として活動を行う中で、入部・退部(入部・退部手続き)や名簿の提出といった手続きは頻繁に発生します。特に、部内専用のWikiやレポジトリ、共有ストレージについては、オフボーディングの際にアカウントの削除・無効化が要求されています。

しかしながら、GitHubアカウントやメールアドレスなどは、氏名がそのまま入っているわけではないため、退部した人の氏名からアカウントと特定するにはある程度の労力を要します(不可能な場合もあります)。これを解決するため、各種サービスのアカウントを部員の情報と紐づけ、可能なら自動で招待や無効化など行う仕組みを整備しています。副産物として、大学に提出する書類についても自動で生成することができるような機能も開発中です。

これらの課題解決には、前述のワークフローシステムn8nや、IDプロバイダーであるauthentik、さらにSlackbotなども活用しています。これについて詳細に記述すると記事が長くなるため、また別の機会に書かせていただきます。

サーバの構築と運用

これらの複数のサービスと、その前提となるデータベース・ストレージなどを構築・運用する上でも、持続可能になるよう工夫をしています。これは、構築したメンバーが卒業するなどしても、手順を後から知ることを可能にするためです。また、サーバーを移動する、実験用サーバーを構築するなどのケースでも、簡単に対応ができるようにすることも目的としています。

具体的には、AnsibleとTerraformによる自動での環境構築、Borgmaticによるバックアップ作成が挙げられます。Ansible・Terraformは再現可能な環境構築を行うためのツールであり、対象とするサーバ・APIを指定するだけで環境構築を行うことができます。Borgmaticは高度な設定が可能なバックアップツールで、誤操作を含めた万が一に備えたバックアップを作成してくれます。

最後に

このように複数のサービスを運用しているのは、学生の団体としては珍しいものかもしれません。この記事が読者の皆様・読者の所属している団体の方々にとって有用なものであれば幸いです。今後も、部員にとって有用となるサービスの導入を進めていこうと考えています。その際にはまた記事にして報告させていただきます。

また、今回サーバーをご提供いただきましたさくらインターネット株式会社の皆様には、部員一同を代表しまして、厚く御礼を申し上げます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です