🐕

「第39回ITインフラ集会」LT登壇報告

2024/12/09に公開

こんにちは。
狭い部屋に無理やりベースステーションを設置してトラッキングがおかしくなりがちなambrサーバーサイドエンジニアの回路(@qazx7412)です。

先日VRChatで行われた「第39回ITインフラ集会」にLTで登壇をしたのでその報告記事となります。

概要

ITインフラ集会はVRChatのグループにて隔週土曜日に開催されているITインフラに関して発表、雑談をする集会です。
オンプレからクラウド、業務から趣味まで幅広い内容でLT、交流等を行っています。

LT

当日22:30より下記のスライドでLTを行いました。
内容は表題の通り、ambrでの今までのプロダクトにおけるAWS CDKの活用に関してお話をさせていただきました。

スライド

質疑応答

当日LTでいくつか質問があり下記のような回答をしました。

1. スライド中に出てきた jsii.String とは?

これはこんな感じのやつですね。

awscdk.Fn_ImportValue(jsii.String("hoge")),

GoのAWS謹製ライブラリは軒並み引数がポインタになっています。
そのため手でテキストを組み立てたり雑にbool値を渡したりする場合、ポインタの変換が必要になります。
その対応のための変換で使用するライブラリがjsiiです。
これはCDKだけでなくSDKなどでも頻出するものになりますね。

2. CDKは誰が(どこで)実行しているのか?

これに対する回答は、まず「リリースを担当するメンバーがGithub Actionsを手動実行する」が回答になります。
また開発環境に関してだけは別途「毎朝自動実行でGithub Actionsによって実行している」というのもあります。
ambrのGithub Actionsでは下記のように各環境ごとにworkflow_dispatch設定してあり、環境情報ごとに手動で実行できるようにしてあります。

name: DEPLOY_HOGE
run-name: Deploy ${{ github.event.inputs.environment || 'dev (default)' }}

on:
  schedule:
    - cron: "0 21 * * 0-4" # JST: 0 6 * * 0-4(平日のみ)
  workflow_dispatch:
    inputs:
      environment:
        description: "Environment to run against"
        type: environment
        required: true

そして(ここまでの話で自明ではありますが)cdkコマンドの実行はGithub Actions上のubuntuで実行しています。

jobs:
  deploy:
    name: Deploy
    runs-on: ubuntu-latest

3. cdkコマンドのnode依存に関して

これはLT終了後の雑談でした話になります。
cdkコマンドはnodeに依存しているので実行するのにはnode.jsを用意する必要があります。
Github Actions上では下記のように都度npmでセットアップしています。

      - name: setup node.js
        uses: actions/setup-node@v4

      - name: install cli
        run: npm i -g aws-cdk

感想

実のところ対外的な場での登壇は今まで経験がなく、元来の性格もあり内容が受け入れてもらえるかやそもそもちゃんと通しでLTができるかなど不安になることが多くとても緊張をしていました。
いざ当日になると皆さんに好意的な反響をいただけてとても嬉しかったです。
また皆様機会があればまたごがあればよろしくお願いします。

ambr Tech Blog

Discussion