インフィニットループ 広報ブログ

2022年12月22日 (木)

著者 : vjsigsig

【2022年12月】『ゼロから学ぶWebサーバー構築1dayインターン』を開催しました

こんにちは!vjsigsigです(`・ω・´)ゞ

2022年12月12日(月)『ゼロから学ぶWebサーバー構築1dayインターン 〜サーバーアプリを知らないけど、1dayインターンでサーバー構築知識を知ってアプリを動かす体験をしたらサーバーエンジニアになっていた件〜』を開催しました!

毎年ご好評の8月開催5dayサーバーサイドインターンではガチャの抽選ロジックを実装頂いておりましたが、今回はガチャ抽選ロジック作成部分をスキップし、サーバー初期構築体験に課題を絞りました。
アプリ側の改修については既に実装されているガチャロジックを使って10連ガチャを組み上げるという簡略化した課題を用意。
また、学習コストが比較的高めなGitを廃止しツールの使い方に振り回される事無く実装に集中する事で1dayでの完結を実現しました。

夏インターンとの大きな違い

  • AWS EC2のホストと秘密鍵を参加者に貸し出す方式に変更しました
    • この変更により環境構築に使用する時間を大幅に節約する事ができました。
  • SSHクライアントは VSCodeRemote - SSH プラグインを使用する事で構築後のアプリ改修もVSCode上で一括で行う方式を取り入れました。
  • Gitを使用した開発フローを撤廃しました。
    • 思い切った刷新ですが、例年のインターンではブランチの扱いやコンフリクトの解消など、インターンシップ内容の本質では無い問題で多くの時間を使用していたため、撤廃に踏み切りました。

進行

夏インターンと同様、SlackZoom の両ツールを使用した講義形式のハンズオンとなりました。
現在進行中の報告やヘルプをSlack上でソースコード展開&Zoomでの口頭相談を相互に行う形式となります。
スタンダードなゲーム開発スタイルを体験頂き、自分が就職後会社でどのように過ごすのか。ざっくりとイメージ出来たのでは無いかと思います。

サーバー初期構築

手順書をブラウザから参照し、順々に進行する事で初期構築が完了する設計としました。
貸し出したEC2インスタンスに対してSSHで接続し、コマンドラインで進行します。
講師の解説と手順書のTIPSによって、コピペ作業だけでは無く自分が今どういう事を行っているのかを把握しながら構築する事が出来ました。

  • timedatectlコマンドを使用したタイムゾーン設定
    • UTC -> Asia/Tokyo へ変更
  • yumコマンドを使用したパッケージアップデート
  • Apacheを使ったWebサーバー構築
    • アプリ自体はDockerを使用するため、デモンストレーションのみで使用
    • ブラウザからページの閲覧を確認次第、デーモンをstop
  • amazon-linux-extrasコマンドを使用したDocker導入
  • usermodコマンドを使用してユーザーグループ変更
    • ログインユーザーをdockerグループに所属する事でdockerコマンド実行に管理者権限を不要とする
  • その他

アプリ改修

10連ガチャ実装

夏インターンとは異なり、既にガチャの抽選ロジックと単発ガチャは実装されています。
単発ガチャの実装をヒントに、10連ガチャ用のAPI及び処理の実装を体験しました。
難関なポイントは10連ガチャ自体のロジックでは無く、PHPというバックエンドを経験していないと馴染みの無い言語の構文でした。
ただ、皆さん既にOOP言語は経験済みのため既存のコードを参考に比較的スムーズに実装出来ていたのでは無いかと思います。

オリジナルカード実装


単純なコーディングだけでは無く、データベースとの連携が必要となる改修です。
今回1名の参加者がオリジナルカード実装まで到達し、かわよいカードを追加して頂きました!

ごん…おまえだったのか。いつもくりをくれたのは…

その他

インターン開催中数名の参加者がVALORANTのお話で盛り上がり、インターン開催後にDiscordを立ち上げ対戦で盛り上がったとの事…!
現在もそのDiscord上ではゲームのお話や就活の情報交換に利用されているそうです。
学校以外でのこういった繋がりは自分の地域以外の情報もインプットできますし、何より楽しいはず。大切にしたいですね!

反省点

AWS EC2にて構築したインスタンスが弱く、実習中何度かサーバーが落ちる参加者が発生し、そのたびにインスタンスの再起動を行いました。
参加者の方にはご不便をおかけしました。次回開催時は余裕を持ったスペックにて用意します。

最後に

1dayという短い期間でのインターンでしたので物足りなく感じた方や満足できる結果を残せなかった方もいらっしゃったかと思いますが、全体的には好評を頂きました。
運営側としてもこのインターンを機会にサーバーサイドに改めて興味を持って頂けた事と、エンジニアとして現場で働くというイメージを持ち帰って頂けたと感じており、大変嬉しく思います。

今後開催を予定している春インターンでは反省点を活かし、より楽しいインターンとなるようブラッシュアップしていきます!
1月中に公式サイトやツイッターにて告知を予定しています。お楽しみに!