Share
Embed
「北欧、暮らしの道具店」を支えるインフラ技術
2023年11月7日(火)に開催されたWomen Developers Summit2023で登壇させていただいた発表資料になります。
Nagisa Yata
November 12, 2023
Transcript
31 slides
-
矢田和沙(ヤタナギサ) 自己紹介 株式会社クラシコム システムプラットフォーム部 テクノロジーグループ エンジニア 2017年 ヤフー株式会社(現LINEヤフー株式会社)に 新卒で入社 2020年7月
株式会社クラシコムに中途入社 フロントエンド・バックエンド・インフラと「北欧、 暮らしの道具店」まわりの開発をしています ほぼ毎日猫に邪魔をされながら仕事中です 02 © Kurashicom Inc. -
03 サービス展開 「フィットする暮らし、つくろう。」をミッションに、 D2C 世界中のセレクト商品とオリジナル開発商品を販売 • 定価販売率95%超える ブランドソリューション ナショナルブランドのマーケティングを支援 •
お取り組みは200ブランド以上 コンテンツパブリッシャー 多様なコンテンツでお客さまとの繋がりを強める • YouTube動画再生数は1億回を突破 • 商品開発からプロモーションまで、ブランディ ングの全フェーズをサポートするメニュー提供 • ポッドキャストやドラマ、プレイリストなど 様々なコンテンツを配信 • オリジナルアパレルが5年で8.5倍売上 EC運営に加え、BtoBサービス展開や多岐に渡るコンテンツ配信など、 ユニークな事業展開を行っています。 © Kurashicom Inc. 北欧、暮らしの道具店を運営しています。 -
04 事業の特徴 独自の世界観(ライフカルチャー)を強みに お客さまとつながるプラットフォームを目指しています。 北欧、暮らしの道具店のエンゲージメントチャネルのアカウント数は680万を 超えます。※2023年7月現在 ポッドキャスト 再生 累計 1500
万 LINE 登録 88 万 YouTube 登録 57 万 YouTube 再生回数 再生 累計 1 億 Instagram フォロワー 140 万 公式アプリ DL 300 万 事業展開の土台にあるのは、独自のライフカルチャーです。 世界観を軸にしたお客さまとの信頼構築のユニークさが評価され、2021年度 ポーター賞を受賞。 © Kurashicom Inc. -
6 テクノロジーGの紹介 働き方の特徴 • 残業を当たり前にしない働き方 全社員の平均残業時間は月に合計3.7H(2023年7月現在) • リモートメイン、月2回のオフィスデー • 年2回
リアル全社会議(オンラインは月2回) チームメンバー 開発合宿 2チーム体制 • ストアチーム:アプリ・Webでのお買い物やコンテンツ体験など 主にお客さまが利用するサービスの開発・運営を担当 • ロジチーム:受発注や物流・経理など、主にスタッフの業務を可 能にするサービスの開発・運用を担当 • SRE:2チーム横断で、インフラ・SRE領域を担当 © Kurashicom Inc. -
07 会社概要 社員数 2023年7月に実施した全体会議 2022年8月上場 87名 沿革 2006年9月 2007年9月 2010年11月
2013年6月 2015年6月 2016年4月 2019年11月 2020年4月 2022年8月 2023年6月 クラシコム創業 北欧、暮らしの道具店 創業 独自のバイイングシステム稼働開始 初のエンジニア入社。システム開発自社内製化へ オリジナルブランド「KURASHI&Trips PUBLISHING」誕生 ECシステムをASPから自社開発へ切り替え 初スマホアプリ・iOSアプリ公開 Androidアプリ公開 東京証券取引所グロース市場へ新規上場(証券コード:7110) オリジナルスマホアプリ300万DL突破 (2023年7月末) エンジニア:7名 © Kurashicom Inc. -
アジェンダ 1. クラシコムでのインフラの遷移 旧構造からどのように変更してきたか どのような点がよくなったか 2. 初めてのインフラ 転職してからのインフラ開発について 3. TV放映対策
カンブリア宮殿・THE TIME,に取り上げていただいた際にサーバーが落ちなかった対応方法について 08 © Kurashicom Inc. -
現在の構成 • 複数のアプリケーションが統合された状態 • AWSのリソースはTerraformのソースコードで管理 ◦ 反映はペア作業 Terraformの コードを変更 Pull
Request Approve Approve Approve 11 © Kurashicom Inc. -
コーポレートサイトの現在の構成 • ECSに移行 • Terraformのソースコードで管理し、PRで確認 Terraformの コードを変更 Pull Request Approve
Approve Approve 13 © Kurashicom Inc. -
AWSアカウントについて • クラシコムでは現在右記のAWSアカウントを利用 しています • 習熟度が上がったり開発に必要になったりすると 権限が払い出される方式です • マスター •
ユーザー管理 • 監査 • バックアップ • ログアーカイブ • 社内ツール • 分析環境 • サンドボックス • ステージング • 本番 17 © Kurashicom Inc. -
初心者が入っても安心して開発できる環境 • 適切な権限設定 ◦ AWSアカウントの分割 ◦ GitHubのCODEOWNERS設定 • コードベースでの管理 ◦
ドキュメントの作成・探すことの手間の軽減 ◦ 複数の目での確認 • CIでのミスを防ぐ体制 ◦ Trivyでのsecurity的に問題のある設定がないかの確認 ◦ Terraform plan内容の確認 ▪ tfcmtを利用してPRにコメントをつけています ◦ Lintを通す 18 © Kurashicom Inc. -
TV放映が決まったときに気になること • リクエストにロードバランサーやサーバーが耐えられるか ◦ 機会損失 ◦ お客様にがっかりされる ◦ エンジニアとして悔しい ◦
サーバーの台数は? ◦ データベースは耐えられる? • 注文の増加? ◦ リクエストは来るがすぐに注文が入るわけではない ◦ トランザクションは大丈夫? 23 © Kurashicom Inc. -
準備したこと • やったこと ◦ ECSのタスク数を増やす • やっていないこと ◦ Aurora, OpenSearchなどのDBのインスタン
スタイプ変更 ◦ ALBの暖気申請 resource "aws_appautoscaling_target" “app" { service_namespace = "ecs" max_capacity = x min_capacity = y resource_id = "xxx" scalable_dimension = "ecs:service:DesiredCount" lifecycle { ignore_changes = [min_capacity] } } 24 © Kurashicom Inc. -
Amazon Relational Database Service (Amazon RDS) リクエストが増えるときに考えること 北欧、暮らしの道具店 コーポレートサイト ロードバランサーは
耐えられるかな タスクは リクエストを 捌き切れるかな DBは処理できるかな 26 © Kurashicom Inc. -
Amazon Relational Database Service (Amazon RDS) 対応内容 北欧、暮らしの道具店 コーポレートサイト 別の機会に
ALBは問題に ならなかったので 暖気しない 負荷試験で確認済み ・xxx rpsまでは現在のタスク数で悪化せず処理可能な こと ・タスク数を増やせばその分比例してリクエストを処理 可能なこと -> 想定されるリクエスト数に耐えられるようECSのタス クを増やすようにする CloudFrontで キャッシュしているので 問題にならないはず ・テレビ放映中に一度に注文が殺到するわ けではない ・今回想定していたリクエストまでは負荷 試験で今のインスタンスタイプで処理可能 とわかっている 27 © Kurashicom Inc. -
クラシコムがより信頼されるため • インシデントを予防する • 「北欧、暮らしの道具店」の世界観を守る • セキュリティインシデント、予期せぬダウンタイムを起こさない • 少人数でも管理できる環境にする •
1人に依存しないようにする • 管理できる範囲のシステムを構築する 28 © Kurashicom Inc. -
まとめ • クラシコムでは2020年から2021年にかけてアプリケーション統合とECS化・インフラ構成の変更を行いました ◦ インフラ開発の初心者が入っても開発しながら勉強ができる環境になりました ◦ テレビ放映のようなリクエストが急増する場合にPullRequest1本作成・反映するだけで対応できるようになりました • サービスの信頼を支えるためのインフラを構築したいと思っています ◦
少人数のチームでも管理し切れる環境 ◦ 事業の成長を支えられる状態 29 © Kurashicom Inc.