2023年11月7日(火)に開催されたWomen Developers Summit2023で登壇させていただいた発表資料になります。
「北欧、暮らしの道具店」矢田和沙2023.11.07Women developers summit 2023を支えるインフラ技術
View Slide
矢田和沙(ヤタナギサ)自己紹介株式会社クラシコムシステムプラットフォーム部テクノロジーグループ エンジニア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万公式アプリDL300万事業展開の土台にあるのは、独自のライフカルチャーです。世界観を軸にしたお客さまとの信頼構築のユニークさが評価され、2021年度ポーター賞を受賞。© Kurashicom Inc.
05成長の歩み17期連続で増収増益を達成。公式アプリ経由の売上比率が65%に成長。(2023年6月時点)公式アプリは3年で300万ダウンロード突破公式アプリ経由の売上比率の推移売上高・経常利益の推移© 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.
クラシコムのインフラの遷移
以前のインフラ構成●マネジメントコンソールから変更●ペアで反映作業●アプリケーションが分かれているため複数の変更010© Kurashicom Inc.
現在の構成●複数のアプリケーションが統合された状態●AWSのリソースはTerraformのソースコードで管理○反映はペア作業Terraformのコードを変更PullRequestApprove Approve Approve11© Kurashicom Inc.
● Elastic Beanstalk上で動作● マネジメントコンソールからの操作以前のコーポレートサイトの構成Corporate12© Kurashicom Inc.
コーポレートサイトの現在の構成●ECSに移行●Terraformのソースコードで管理し、PRで確認Terraformのコードを変更PullRequestApprove Approve Approve13© Kurashicom Inc.
よくなったところECS移行インフラリソースのコードベースでの管理•属人化の解消•変更が容易になった•管理するAWSリソースが減ったので対応が楽になった14© Kurashicom Inc.
初めてのインフラ
転職してインフラ業務を始めました●最初はOpsWorksだったりElastic Beanstalkだったりでペアで画面共有しながらだったため、作業が覚えられる自信がなかった●Terraformでのソースコード管理ができるようになったため、安心して作業ができた16© Kurashicom Inc.
AWSアカウントについて●クラシコムでは現在右記のAWSアカウントを利用しています●習熟度が上がったり開発に必要になったりすると権限が払い出される方式です• マスター• ユーザー管理• 監査• バックアップ• ログアーカイブ• 社内ツール• 分析環境• サンドボックス• ステージング• 本番17© Kurashicom Inc.
初心者が入っても安心して開発できる環境●適切な権限設定○ AWSアカウントの分割○ GitHubのCODEOWNERS設定●コードベースでの管理○ ドキュメントの作成・探すことの手間の軽減○ 複数の目での確認●CIでのミスを防ぐ体制○ Trivyでのsecurity的に問題のある設定がないかの確認○ Terraform plan内容の確認■ tfcmtを利用してPRにコメントをつけています○ Lintを通す18© Kurashicom Inc.
TV放映対策
TV放映中のリクエスト量放映開始 放映終了時間20© Kurashicom Inc.通常時の15倍
サーバー落ちませんでした
TV放映の効果● カンブリア宮殿放映後1時間でアプリダウンロード数 8,600超● 送料無料キャンペーンも合わせて実施22© Kurashicom Inc.
TV放映が決まったときに気になること● リクエストにロードバランサーやサーバーが耐えられるか○機会損失○お客様にがっかりされる○エンジニアとして悔しい○サーバーの台数は?○データベースは耐えられる?● 注文の増加?○リクエストは来るがすぐに注文が入るわけではない○トランザクションは大丈夫?23© Kurashicom Inc.
準備したこと●やったこと○ ECSのタスク数を増やす●やっていないこと○ Aurora, OpenSearchなどのDBのインスタンスタイプ変更○ ALBの暖気申請resource "aws_appautoscaling_target" “app" {service_namespace = "ecs"max_capacity = xmin_capacity = yresource_id = "xxx"scalable_dimension = "ecs:service:DesiredCount"lifecycle {ignore_changes = [min_capacity]}}24© Kurashicom Inc.
現在の構成Amazon Relational DatabaseService (Amazon RDS)北欧、暮らしの道具店 コーポレートサイト25© Kurashicom Inc.
Amazon Relational DatabaseService (Amazon RDS)リクエストが増えるときに考えること北欧、暮らしの道具店 コーポレートサイトロードバランサーは耐えられるかなタスクはリクエストを捌き切れるかなDBは処理できるかな26© Kurashicom Inc.
Amazon Relational DatabaseService (Amazon RDS)対応内容北欧、暮らしの道具店 コーポレートサイト別の機会にALBは問題にならなかったので暖気しない負荷試験で確認済み・xxx rpsまでは現在のタスク数で悪化せず処理可能なこと・タスク数を増やせばその分比例してリクエストを処理可能なこと-> 想定されるリクエスト数に耐えられるようECSのタスクを増やすようにするCloudFrontでキャッシュしているので問題にならないはず・テレビ放映中に一度に注文が殺到するわけではない・今回想定していたリクエストまでは負荷試験で今のインスタンスタイプで処理可能とわかっている27© Kurashicom Inc.
クラシコムがより信頼されるため●インシデントを予防する●「北欧、暮らしの道具店」の世界観を守る●セキュリティインシデント、予期せぬダウンタイムを起こさない●少人数でも管理できる環境にする●1人に依存しないようにする●管理できる範囲のシステムを構築する28© Kurashicom Inc.
まとめ●クラシコムでは2020年から2021年にかけてアプリケーション統合とECS化・インフラ構成の変更を行いました○インフラ開発の初心者が入っても開発しながら勉強ができる環境になりました○テレビ放映のようなリクエストが急増する場合にPullRequest1本作成・反映するだけで対応できるようになりました●サービスの信頼を支えるためのインフラを構築したいと思っています○少人数のチームでも管理し切れる環境○事業の成長を支えられる状態29© Kurashicom Inc.
アンケートにご回答いただいた方には本日の資料をメールでお送りします。ぜひご回答ください
採用情報 カジュアル面談を実施中クラシコムではエンジニアを募集していますKurashicom Tech Bloghttps://www.wantedly.com/projects/1391500https://note.com/kurashicom_tech/