ECシステム開発チーム、M5Stackのミラーサイト構築でやったこと
こんにちは、採用広報担当の平山です。
スイッチサイエンスのシステムエンジニアたちは、自社ECサイトの開発に従事する傍ら、多岐にわたる業務に取り組んでいます。そんな彼らの活動の中で、今週は「M5Stackのサイトが見られない!」というユーザー様のSNS投稿を受け、急遽始まったミラーサイト構築について紹介します。
M5Stack側でもこの問題に対応中ですが、冗長化のために当社側でもミラーを作って維持する方針で進めることにしました。昨日配信のプレスリリースも併せてご覧ください。
以下、ECシステム開発チームのエンジニア鈴木によるまとめです。
元のサイト:https://docs.m5stack.com
ミラーしたサイト:https://docs.m5stack.switch-science.com
- X(旧ツイッター)でM5Stackのサイトが見れない場合があるとの投稿があり。不確かだが、OCNがプロバイダだとそうなることがあるらしい。(10月22日)
- 当社内で「ミラーサイト」を立てたらどうかという人がいて、ECシステムチームに具体的な指示がきた。(10月24日)
- M5StackのメンバーとWeChatでやりとりしてサイトを構成するファイルをもらった。(10月26日)
- サイトはNuxtでできていて、できればgenerateコマンドで静的なファイルの生成をして、それをAWS S3に置くなどができれば楽だったが、静的ファイル生成は成功しない状態だった。その代わり試行錯誤したところDockerで立ち上げることができた。(10月27日)
- 普段AWSを使っているので、このDockerコンテナをECRとECSを使ってサービスを立ちあげようと考えて、CDKで書いて試していたが、うまくいかず半日ほど費やしてしまった。(10月30日)
- 「なるはや」と言われていたので、立ち上げの手間が少なさそうなGoogleのCloud Runに載せてみたところ動いた。(10月30日)
- そこでとりあえずGithubにリポジトリを作り、Cloud Buildでデプロイするように設定した。(10月31日)
- 本家サイトの更新をミラーサイトにも反映していくために、M5Stackが使っているGitLabのリポジトリを当社が取得する方法を検討。
- 様々な選択肢があったが、最終的には当社のGitHub Actionsのワークフローが定期的(現在は3時間おきに)M5StackのGitlabのコードを取得する方法にしようと考えて、M5Stackからリポジトリの読み込み権限をもらった。(11月7日)
- M5Stack側のコードは、Dockerで起動するために、当社で作成したパッチを適用する必要があるので、そうしたことはワークフローで行ってから、リポジトリにpushするようにした。
- Githubにpushされると、それがGoogle Cloud Buildのトリガーとなって、Dockerのビルド、レジストリへのイメージのpush、Cloud Runへのデプロイを行うようになっている。
- 以上で、とりあえず定期的なコンテンツの更新が行われるミラーサイトが立ち上がった。(11月10日)
- 今回は色々知らないことが多く、30時間ぐらいは費やしたように思う。
システムエンジニア募集中です!
興味のある方はぜひカジュアル面談へ!お待ちしています。