子どものためのプログラミング道場を支えるさくらのクラウド 〜「さくらの夕べ CoderDojoナイト」レポート〜

はじめに
さくらのナレッジ編集部の法林です。
さくらインターネットはさまざまなITコミュニティの活動を支援しています。その一環として、子どものためのプログラミング道場であるCoderDojoに対して、各道場が使用するサーバ群のインフラとして「さくらのクラウド」を提供しています。
そこで当社は自社イベント「さくらの夕べ」にて、CoderDojoの活動、ならびに当社が行っている支援活動を紹介することにしました。それが一般社団法人CoderDojo Japanとの共催で開催した「さくらの夕べ CoderDojoナイト」です。イベントではCoderDojo Japanならびに各道場でどのようにサーバを利用しているかをご発表いただきました。その模様をレポートします。なお今回のイベントはZoomとYouTubeを使ったオンラインイベントとして実施しました。
CoderDojo Japanから各道場へのサーバ提供
最初の発表者はCoderDojo Japanの代表理事を務めている安川要平さんです。安川さんは当社からCoderDojo Japanに提供しているさくらのクラウドの管理者でもあります。今回の発表では、さくらのクラウドを使って各道場が使用するサーバを提供・管理する仕組みを中心にお話しいただきました。
はじめにCoderDojoの紹介がありました。CoderDojoは子供のためのプログラミング道場です。Dojo(道場)という名前が付いていますが発祥はアイルランドで、そこから世界各国に活動が広がっています。日本では2012年から活動が始まりました。現在では国内だけで200箇所以上に道場があり、年間イベント数も1000回を超える規模に発展しています。
このような発展を鑑みて、2016年には公式の日本法人としてCoderDojo Japanを設立し、企業との提携にも取り組み始めました。こちらも現在では25社以上との連携を実施しています。提携の形は企業によってさまざまですが、さくらインターネットは各道場が使用するサーバの無償提供という形で提携しています。この提携は2017年から行っているもので、さくらインターネットからCoderDojo Japanにさくらのクラウドを提供し、CoderDojo Japanが各道場からの要請に応じてサーバを作成して引き渡しています。
このサーバの作成作業が、道場が増えるとかなり煩雑になります。そこでサーバ提供作業を簡略化するために、安川さんは宮内隆行さん(Geolonia CEO)とともにDojoPaaSというシステムを開発し運用しています。
DojoPaasを使ったサーバ利用申請およびサーバ作成の手順を簡単に説明します。
- プルリクエストを送ってサーバ利用を申請
DojoPaasのGitHubリポジトリに、申請に必要な情報を記入するCSVファイルがあります。このファイルに対して自分たちが使いたいサーバの情報を追記し、プルリクエストを送ることでサーバ利用を申請します。記入する情報は、サーバ名、道場名、サーバの用途、サーバにSSHで接続するための公開鍵です。なお、申請者がプルリクエストを作成する際は、プルリクエストテンプレートを使ってさくらのクラウドの約款や利用規約を表示し、申請者はこれに同意する必要がある仕組みになっています。 - サーバの作成
リポジトリ管理者がプルリクエストをマージすると、GitHub Actionsによって申請データを処理するスクリプトが実行され、さくらのクラウドのAPIを使ってサーバが自動的に作成されます。作成されたサーバの情報はサーバ一覧のCSVファイルに記録されます。サーバのOSはUbuntuを使用しているようです。 - サーバにSSHで接続
申請者はサーバ一覧から自分が申請したサーバを探し、当該サーバのIPアドレスに対してSSHで接続します。サーバには申請時に記入したSSH公開鍵が登録されているので、申請者が秘密鍵を持っていればSSHでログインできます。
イベントではDojoPaaSのデモもしていただきました。サーバプランの設定、サーバ作成時に動作するスタートアップスクリプトの解説、プルリクエスト送信後に約款に同意する場面などを見せていただきました。
このような仕組みを構築したおかげで、管理者側の作業時間としては2分程度でサーバ作成と提供ができているとのことです。多くの道場にサーバを提供するために非常に効率化された仕組みを構築されていることに感心しました。
CoderDojo名護での利用
2番目の発表者はCoderDojo名護の運営者である安藤元気さんです。安藤さんは2018年にCoderDojo宜野湾に参加したのがきっかけで、沖縄本島の北部地域にも道場を作りたいと思いCoderDojo名護を立ち上げました。コロナ禍の時代はオンラインで開催していた時期もありますが、現在は平均して月2回程度、地元の公共施設などで開催しています。
CoderDojoは子どもたちがやりたいことを大人がサポートする形式のため、イベントで取り扱う内容は多岐にわたりますが、CoderDojo名護に参加している子どもたちが使っているツールとしては、Scratch、toio、micro:bit、3Dプリンタ(Tinkercad)、マインクラフトなどがあります。その他にも、ロボットサッカーをやったり、ドローンを操作するプログラムを書いたり、Vtuber体験、動画編集、プログラミング関連書籍の読書会など、本当にさまざまなことをやっています。
CoderDojo名護におけるサーバ利用は、2018年に道場を立ち上げた後、すぐにDojoPaaSを使った利用申請をしてサーバの提供を受けました。サーバの用途としては、まずCoderDojo名護のウェブサイトに使っています。2024年にはウェブサイトの常時SSL化の設定も行いました。また同時期に、グーグルが提供しているSite KitというWordPressのプラグインを導入し、ウェブサイトへのアクセス動向などを計測できるようにしました。アクセス動向を見ていると意外な検索キーワードでウェブサイトを訪問していることがわかったりします。例えばブラウザ上で音楽を作るBeepBoxというサービスをCoderDojo名護のイベントで取り上げたことがあるのですが、その記事を検索して閲覧しているログがあり、こういうのもニーズがあるのだと思ったそうです。現在はCoderDojo名護に加えてCoderDojo恩納@OIST(沖縄科学技術大学院大学)も立ち上げており、こちらの活動の様子も同じウェブサイトで見ることができます。
ちなみに安藤さんはIT関係の仕事をしているわけではなく、システム管理の専門的な知識も持ち合わせていません。そのためサーバ提供時には安川さんにサポートしてもらったほか、常時SSL化の際は生成AIに相談しながら作業を進めたそうです。ITを専門としない人にもこうしてサーバを使ってもらえていることをうれしく思いました。
CoderDojo青梅での利用
最後の発表者はCoderDojo青梅を運営している鹿野市郎さんです。鹿野さんは電機メーカーでの勤務と並行して非常に多くの個人活動を行っており、CoderDojo青梅以外にも子ども向けのプログラミング講師やDatadogアンバサダー、IBMチャンピオンなどの肩書を持っています。
CoderDojo青梅は2021年から活動を開始し、「プログラミングを遊びながら学ぼう!」をテーマに運営しています。現在アクティブに活動しているメンターは6人です。イベントは毎月3回実施しています。そのうち1回はオンラインで開催しており、ここには遠方や海外からの参加者もいるそうです。残りの2回は日曜日の午前と午後に分けて会場で実施しています。参加者の年齢層で多いのは小学校高学年から中学校あたり、参加者数は徐々に増えてきていて現在は1日の累計で50-60人程度(メンターや保護者を含む)とのことです。
イベントで取り上げている題材は、Scratch、Minecraft、Raspberry Piを使った電子工作などです。特にScratchは初級者向けに毎回テーマを変えて実施していて、プログラミングだけでなく自然法則なども合わせて学べるようになっています。
CoderDojo青梅が設立された2021年はまだコロナ禍の時代で、第1回イベントからの数回はZoomにて行われていました。パンデミック対応として教育機関向けにはZoomミーティングの時間制限が解除されていたのを利用したものですが、この特別対応は2022年6月末で終了してしまいました。代替手段としてJitsi MeetのSaaSやGather Townなども利用しましたが同様に人数などの制限があって活動に支障をきたしていました。
ここで活用されたのがさくらのクラウドです。さくらのクラウド上にUbuntuのサーバを作成し、Jitsi Meetのコンテナ版をインストールして運用し始めました。こうすれば時間制限も人数制限もなく利用することができます。このJitsi Meetは現在もCoderDojo青梅のオンライン開催で利用されています。ただし各道場に提供されるサーバは1コア・メモリ1GBのためJitsi Meetを使うにはやや性能不足で、ときどき落ちることがあったため、Datadogを用いた監視やモニタリングを行うことで安定運用の助けとしています。
2つ目の活用例はマインクラフトです。CoderDojo青梅の通常開催では商用ゲームは使わないことにしているのですが、ときどき開催する特別回では子どもたちがやりたいゲームなどをやっていて、その中でマインクラフトで遊ぶことがあります。その際に、誰と誰が遊んでいるかの見守り、部外者の入室制限、遊びすぎの抑制などを目的として、CoderDojo Japanから提供されたサーバ上にマインクラフトをインストールして利用しました。しかしJisti Meetで会話しながらマインクラフトを動かすとサーバの性能が不足していてきちんと動かなかったので、現在はご自身で4コア・4GBメモリのサーバを契約して運用しています。
そして3つ目の活用事例がNode-REDです。CoderDojo青梅ではRaspberry Piを使った電子工作にも取り組んでいます。ノートPCからRaspberry PiにSSHでログインし、Pythonを使ってキャタピラやモーターを備えたロボットをリモート操作します。また、サーボモーターの追加やWi-Fiアクセスポイント化などの改造も楽しみます。コマンドラインだけでは操作画面が味気ないため、Node-REDを使ってWebブラウザ上で操作計器のダッシュボードを作成することを小中学生が学んでいます。現在はプログラミング教材用途にNode-REDのサーバをさくらのクラウドで運用していますが、将来的には子どもたち1人ずつにNode-REDを提供し(サーバ1台でもポート番号を個別にすれば人数分のNode-REDを用意することは可能)、そこでWebアプリを作ることも構想しているようです。
この他に、CoderDojo青梅の活動記録を残すサイトはさくらのレンタルサーバを独自に借りて運用しています。鹿野さんはCoderDojo以外にも多数の活動をしていますが、さくらのレンタルサーバでは複数ドメインのウェブサイトを並行運用できるので、とても役立っているとのことです。
さくらのクラウドをさまざまな用途に使っていただいていることがわかり、とてもうれしく思いました。また、中学生ぐらいでもPythonプログラミングやアプリの制作を行うなど、子どもたちの無限の可能性を感じさせる発表でした。
おわりに
発表終了後は参加者の皆さんを交えて質疑応答を行いました。道場を運営していて楽しいことは何か、常時SSL化においてAIにどのような形で相談したのか、毎月のイベントで取り上げるテーマはどのように決めているのか、サーバを使って何かを作る子どももいるのか、CoderDojoにおけるユースケースの統計は取っているか、サーバのセキュリティ対策で気をつけていることはあるか、などの質問がありました。
またイベント終了後はZoomにて懇談の時間を設け、参加者の皆さんも一緒になって今後のクラウド活用について話し合いました。現状では各道場一律に1コア・メモリ1GBでサーバを提供していますが、最近のアプリケーションは全体的に要求スペックが高くなっているのでリソースの配分は再考の余地がある、CoderDojo Japanの開発チームは安川さんを筆頭にRubyユーザが多いがさくらのクラウドのSDKはRubyに対応しておらず、自作して対応しているが事業者側で提供してくれるとうれしいといった話がありました。またチャンピオン(道場運営者)もITのスキルレベルはさまざまなので、DojoConのような全国大会の場を使ってハンズオンや勉強会を実施したらどうかという意見も出ました。このような議論の中から新たなアイデアが生まれ、さくらのクラウドをより良い形で活用いただき、ITやプログラミングを楽しむ子どもたちがさらに多く生まれてくれることを願っています。
今回のイベントの様子をご覧になりたい方は、YouTubeにアーカイブが残っていますのでご覧ください。特に今回はCoderDojo Japanのご協力により、各セッションを切り出した再生リストを作っていただきました。ありがとうございます!
それではまた次回のイベントでお会いしましょう!