こんにちは。GMOインターネットの桑原です。北九州の小倉に拠点を構えるGMO kitaQにて、北九州市のご後援、また株式会社ハックツ様、高専キャリア教育研究所様のご協力のもと、インフラハッカソン「DevSecOpsThon デブセックオプスソン at GMO kitaQ」を開催しました。3日間のオフラインイベントで、ITエンジニアを目指す全国の学生を対象としています。運営を担当した桑原が当日の白熱した様子を以下にレポートします。
開催目的
GMO kitaQは2022年2月に拡張移転オープンしました。多目的コミュニケーションスペース「GMO Yours」を北九州のエンジニアが集い成長する場とすべく、そのオープニング記念として開催しました。
GMO Yours
開催期間
2022/4/29(金)-2022/5/1(日)の3日間※GW期間中に開催
コンテンツ概要
物理からサーバを構築、wordpress公開に至る各種設定、そして運用までをハッカソンスタイルで行っていただきます。自社開発を強みとしている弊社では上記全ての工程を業務として行っており、普段の業務をゲーム感覚で競い合うコンテンツにしてみました。各工程に課題を設け、チームで競い合い技術力を高めていただきます。
課題ごとに得点があり、3日間を通して総得点が最も高いチームが優勝です。なお、得点は課題を時間内にクリアした基礎点に加え、クリアした順位も追加点として加算されます。
ちなみに優勝賞金はなんと10万円!
3日間のスケジュール
参加学生
計29名(※60名以上の応募から厳正なる抽選で決定)九州地方が1/3。南は沖縄、北は東北まで1チーム4~5名の計7チームで構成
1日目
まずは物理サーバの構築からスタートです。各チームにお渡ししたサーバはディスク、メモリ、拡張NICが外された状態です。必要なパーツを受け取り、装着しなければなりません。開始のゴングと同時に会場前方に置いたパーツボックスに我先にとダッシュしてきた学生たちに圧倒されたことを今でも鮮明に覚えています。
実際、弊社エンジニアも運用中に故障したパーツを自ら交換することがあります。物理サーバを意識しなくても仮想で使える時代だからこそ、その裏側に触れて理解してもらいたく本課題を用意しました。
必要なパーツを受け取る学生たち。不良品が紛れているかもしれない・・・
絶妙な態勢でパーツを装着中
サーバ構築後はOSをisoからインストールします。今回はサーバの管理画面からPCに保存したisoをリモートアタッチしてインストールしました。その後はSSHセキュア化、Firewallの設定です。
この一連の構築・設定をステップに分け制限時間内を設けてチャレンジいただきました。時間内に完了できなかったチームには、メンターが入り説明しながら一緒に課題をこなしました。
メンターと一緒にOS設定中
1日目終了時のスコア。接戦です。
2日目
DNSでドメインを名前解決できるようにし、そのドメインでwordpressを公開します。ここはみなさんお手のものでしたでしょうか?サクサク課題をクリアしていきます。
2日目は快晴だったのでテラスでランチ
午後からはいよいよ運用(チューニング)フェーズに突入です。運用フェーズでは、サービスを運用する我々がよく遭遇する問題や事業オーナーからのリクエストをシナリオ形式で課題にしています。この日は
複数のドメインを1つのサーバで運用する
見知らぬIPからSSHトライの形跡あり→ブロックしましょう
等の課題に挑んでいただきました。ここは運営側の反省点なのですが、1日目にSSHセキュア化の中でSSHのポート番号を変更してくれたチームは、そもそも見知らぬIPからのSSHトライのログすら出ていないという状態になってしまいました。先を見据えての対処は素晴らしいですが、課題としては出し方に工夫が必要でした。次のイベントにブラッシュアップさせていただきます。
ログ調査中
3日目(最終日)
いよいよ最終日となりました。午前は運用(チューニング)の続き、午後はプレゼン大会と懇親会というスケジュールになっています。早速、
DDoS攻撃に気づき、それを防御する
人気サイトになりアクセス増加→負荷を軽減しましょう
等の課題にチャレンジです。アクセス負荷減少の課題では裏で運営がベンチマークツールを使って大量のアクセスを発生させています。レスポンスタイムを最も短縮できたチームが高得点ゲットです。DDoSではないため、無下にIPをブロックするはサービス品質低下につながり、手段としてはよろしくありません。
今回、画像や動画を埋め込んだサイトを構築いただいているため、nginxのリバースプロキシでキャッシュを有効化するのが効果的な手段となります。また、使用したwordpressのバージョンが低ければ最新化して画像の遅延読み込みを有効にしたり、同時アクセス数を制限するのも対処としてあるでしょう。
今回はリバースプロキシを構築できたチームが最もレスポンスを改善していました。時間制限がある中で、手あたり次第チューニングした結果、むしろレスポンスが悪化するチームがあり、悔しくも面白い一番盛り上がる課題となりました。
運用パートの解説をする弊社エンジニアの竹本
運用パートの解説をする弊社エンジニアの小島
プレゼン大会
最後の課題はチーム対抗のプレゼン大会です。プレゼンももちろん得点対象です。各チーム、経験したことの報告だけではなく、その機能や対処を選択した理由を添えてまとめてくれていて、非常に説得力のある発表でした。
チームBの発表
チームFのDDoS課題で行った対処
得点結果発表
北九州初のインフラハッカソン、見事栄冠に輝いたのは・・・
最終スコアの結果
チームF!
同じ大学の先輩後輩同士で構成されたチームで、課題解決力もチームの連携もお見事でした。優勝賞金10万円は4人で山分けです。使い道を尋ねてみると、なんと所属しているサークルの後輩たちにサーバをプレゼントするとのこと!賞金の正しい使い道を逆に教えていただき、感心してしまいました。
優勝したチームFと記念写真をパチリ
懇親会
最後にお疲れさまーってことで飲食しながら楽しく懇親会を行いました。チーム関係なく3日間の戦いを労い、どう課題をクリアしたかのトークで盛り上がっておりました。弊社エンジニアも輪に入って課題の対処法を明かしたり、学生の進路の悩みに親身に相談に乗って互いの交流を深めました。
懇親会の様子
最後に
イベント終了後に学生たちにアンケートを取りました。
満足度: 4.64 ※5点満点
難易度: 3.86 ※5点満点
概ね高評価、程よい塩梅の課題にできたかなと感じております。中でも難しかったのは物理構築との回答が半数以上を占めていたのは意外でした。
これまでハードに触れる機会が少なかったからという理由もありますが、今回用意した機器が10年以上前のパイセンマシンで構築時にパーツ故障が多発し、切り分けと交換が大変だったという理由も多く見られました。ある意味よい経験にはなったと思いますが、運営側は用意したサーバが全てなくなるんじゃないかという不安がずっとありました。次回はより安定したマシンを準備できるよう努力いたします。
なお、本イベントをキッカケにサーバ構築運用に興味を持ち、即スマホで購入をポチッた学生が数名いらっしゃったのは、運営としてこの上ない喜びでした。目的としていたエンジニアが成長する場を提供できたと感じております。
また、セキュリティやネットワーク構築も企画に盛り込んでほしい、という意見も多数いただきました。近い将来(秋ごろ?)、ご希望に叶えた形で再びハッカソンを開催したいと考えております。学生の皆様、またkitaQでお会いしましょう!