$30 off During Our Annual Pro Sale. View Details »

「北欧、暮らしの道具店」を支えるインフラ技術

Nagisa Yata
November 12, 2023

 「北欧、暮らしの道具店」を支えるインフラ技術

2023年11月7日(火)に開催されたWomen Developers Summit2023で登壇させていただいた発表資料になります。

Nagisa Yata

November 12, 2023
Tweet

Other Decks in Technology

Transcript

  1. 「北欧、暮らしの道具店」
    矢田和沙
    2023.11.07
    Women developers summit 2023
    を支えるインフラ技術

    View Slide

  2. 矢田和沙(ヤタナギサ)
    自己紹介
    株式会社クラシコム
    システムプラットフォーム部
    テクノロジーグループ エンジニア
    2017年 ヤフー株式会社(現LINEヤフー株式会社)に
    新卒で入社
    2020年7月 株式会社クラシコムに中途入社
    フロントエンド・バックエンド・インフラと「北欧、
    暮らしの道具店」まわりの開発をしています
    ほぼ毎日猫に邪魔をされながら仕事中です
    02
    © Kurashicom Inc.

    View Slide

  3. 03
    サービス展開
    「フィットする暮らし、つくろう。」をミッションに、
    D2C
    世界中のセレクト商品とオリジナル開発商品を販売
    • 定価販売率95%超える
    ブランドソリューション
    ナショナルブランドのマーケティングを支援
    • お取り組みは200ブランド以上
    コンテンツパブリッシャー
    多様なコンテンツでお客さまとの繋がりを強める
    • YouTube動画再生数は1億回を突破
    • 商品開発からプロモーションまで、ブランディ
    ングの全フェーズをサポートするメニュー提供
    • ポッドキャストやドラマ、プレイリストなど 
    様々なコンテンツを配信
    • オリジナルアパレルが5年で8.5倍売上
    EC運営に加え、BtoBサービス展開や多岐に渡るコンテンツ配信など、
    ユニークな事業展開を行っています。
    © Kurashicom Inc.
    北欧、暮らしの道具店を運営しています。

    View Slide

  4. 04
    事業の特徴
    独自の世界観(ライフカルチャー)を強みに
    お客さまとつながるプラットフォームを目指しています。
    北欧、暮らしの道具店のエンゲージメントチャネルのアカウント数は680万を
    超えます。※2023年7月現在
    ポッドキャスト
    再生
    累計 1500

    LINE
    登録
    88

    YouTube
    登録
    57
    万 YouTube
    再生回数
    再生
    累計 1

    Instagram
    フォロワー
    140

    公式アプリ
    DL
    300

    事業展開の土台にあるのは、独自のライフカルチャーです。
    世界観を軸にしたお客さまとの信頼構築のユニークさが評価され、2021年度
    ポーター賞を受賞。
    © Kurashicom Inc.

    View Slide

  5. 05
    成長の歩み
    17期連続で増収増益を達成。
    公式アプリ経由の売上比率が65%に成長。(2023年6月時点)
    公式アプリは3年で300万ダウンロード突破
    公式アプリ経由の売上比率の推移
    売上高・経常利益の推移
    © Kurashicom Inc.

    View Slide

  6. 6
    テクノロジーGの紹介
    働き方の特徴
    • 残業を当たり前にしない働き方
    全社員の平均残業時間は月に合計3.7H(2023年7月現在)
    • リモートメイン、月2回のオフィスデー
    • 年2回 リアル全社会議(オンラインは月2回)
    チームメンバー
    開発合宿
    2チーム体制
    • ストアチーム:アプリ・Webでのお買い物やコンテンツ体験など
    主にお客さまが利用するサービスの開発・運営を担当
    • ロジチーム:受発注や物流・経理など、主にスタッフの業務を可
    能にするサービスの開発・運用を担当
    • SRE:2チーム横断で、インフラ・SRE領域を担当
    © Kurashicom Inc.

    View Slide

  7. 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.

    View Slide

  8. アジェンダ
    1. クラシコムでのインフラの遷移
    旧構造からどのように変更してきたか
    どのような点がよくなったか
    2. 初めてのインフラ
    転職してからのインフラ開発について
    3. TV放映対策
    カンブリア宮殿・THE TIME,に取り上げていただいた際にサーバーが落ちなかった対応方法について
    08
    © Kurashicom Inc.

    View Slide

  9. クラシコムの
    インフラの遷移

    View Slide

  10. 以前のインフラ構成

    マネジメントコンソールから変更

    ペアで反映作業

    アプリケーションが分かれているため複数の変更
    010
    © Kurashicom Inc.

    View Slide

  11. 現在の構成

    複数のアプリケーションが統合された状態

    AWSのリソースはTerraformのソースコードで管理

    反映はペア作業
    Terraformの
    コードを変更
    Pull
    Request
    Approve Approve Approve
    11
    © Kurashicom Inc.

    View Slide

  12. ● Elastic Beanstalk上で動作
    ● マネジメントコンソールからの操作
    以前のコーポレートサイトの構成
    Corporate
    12
    © Kurashicom Inc.

    View Slide

  13. コーポレートサイトの現在の構成

    ECSに移行

    Terraformのソースコードで管理し、PRで確認
    Terraformの
    コードを変更
    Pull
    Request
    Approve Approve Approve
    13
    © Kurashicom Inc.

    View Slide

  14. よくなったところ
    ECS移行
    インフラリソースの
    コードベースでの管理
    •属人化の解消
    •変更が容易になった
    •管理するAWSリソースが減ったので対応が楽に
    なった
    14
    © Kurashicom Inc.

    View Slide

  15. 初めてのインフラ

    View Slide

  16. 転職してインフラ業務を始めました

    最初はOpsWorksだったりElastic Beanstalkだったりでペアで画面共有しながらだったため、作業が覚えられ
    る自信がなかった

    Terraformでのソースコード管理ができるようになったため、安心して作業ができた
    16
    © Kurashicom Inc.

    View Slide

  17. AWSアカウントについて

    クラシコムでは現在右記のAWSアカウントを利用
    しています

    習熟度が上がったり開発に必要になったりすると
    権限が払い出される方式です
    • マスター
    • ユーザー管理
    • 監査
    • バックアップ
    • ログアーカイブ
    • 社内ツール
    • 分析環境
    • サンドボックス
    • ステージング
    • 本番
    17
    © Kurashicom Inc.

    View Slide

  18. 初心者が入っても安心して開発できる環境

    適切な権限設定
    ○ AWSアカウントの分割
    ○ GitHubのCODEOWNERS設定

    コードベースでの管理
    ○ ドキュメントの作成・探すことの手間の軽減
    ○ 複数の目での確認

    CIでのミスを防ぐ体制
    ○ Trivyでのsecurity的に問題のある設定がないかの確認
    ○ Terraform plan内容の確認
    ■ tfcmtを利用してPRにコメントをつけています
    ○ Lintを通す
    18
    © Kurashicom Inc.

    View Slide

  19. TV放映対策

    View Slide

  20. TV放映中のリクエスト量
    放映開始 放映終了
    時間
    20
    © Kurashicom Inc.
    通常時の15倍

    View Slide

  21. サーバー落ちませんでした

    View Slide

  22. TV放映の効果
    ● カンブリア宮殿放映後
    1時間でアプリダウンロード数 8,600超
    ● 送料無料キャンペーンも合わせて実施
    22
    © Kurashicom Inc.

    View Slide

  23. TV放映が決まったときに気になること
    ● リクエストにロードバランサーやサーバーが耐えられるか

    機会損失

    お客様にがっかりされる

    エンジニアとして悔しい

    サーバーの台数は?

    データベースは耐えられる?
    ● 注文の増加?

    リクエストは来るがすぐに注文が入るわけではない

    トランザクションは大丈夫?
    23
    © Kurashicom Inc.

    View Slide

  24. 準備したこと

    やったこと
    ○ 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.

    View Slide

  25. 現在の構成
    Amazon Relational Database
    Service (Amazon RDS)
    北欧、暮らしの道具店 コーポレートサイト
    25
    © Kurashicom Inc.

    View Slide

  26. Amazon Relational Database
    Service (Amazon RDS)
    リクエストが増えるときに考えること
    北欧、暮らしの道具店 コーポレートサイト
    ロードバランサーは
    耐えられるかな
    タスクは
    リクエストを
    捌き切れるかな
    DBは処理できるかな
    26
    © Kurashicom Inc.

    View Slide

  27. Amazon Relational Database
    Service (Amazon RDS)
    対応内容
    北欧、暮らしの道具店 コーポレートサイト
    別の機会に
    ALBは問題に
    ならなかったので
    暖気しない
    負荷試験で確認済み
    ・xxx rpsまでは現在のタスク数で悪化せず処理可能な
    こと
    ・タスク数を増やせばその分比例してリクエストを処理
    可能なこと
    -> 想定されるリクエスト数に耐えられるようECSのタス
    クを増やすようにする
    CloudFrontで
    キャッシュしているので
    問題にならないはず
    ・テレビ放映中に一度に注文が殺到するわ
    けではない
    ・今回想定していたリクエストまでは負荷
    試験で今のインスタンスタイプで処理可能
    とわかっている
    27
    © Kurashicom Inc.

    View Slide

  28. クラシコムがより信頼されるため

    インシデントを予防する

    「北欧、暮らしの道具店」の世界観を守る

    セキュリティインシデント、予期せぬダウンタイムを起こさない

    少人数でも管理できる環境にする

    1人に依存しないようにする

    管理できる範囲のシステムを構築する
    28
    © Kurashicom Inc.

    View Slide

  29. まとめ

    クラシコムでは2020年から2021年にかけてアプリケーション統合とECS化・インフラ構成の変更を行いました

    インフラ開発の初心者が入っても開発しながら勉強ができる環境になりました

    テレビ放映のようなリクエストが急増する場合にPullRequest1本作成・反映するだけで対応できるようになりました

    サービスの信頼を支えるためのインフラを構築したいと思っています

    少人数のチームでも管理し切れる環境

    事業の成長を支えられる状態
    29
    © Kurashicom Inc.

    View Slide

  30. アンケートにご回答いただ
    いた方には本日の資料を
    メールでお送りします。
    ぜひご回答ください

    View Slide

  31. 採用情報 カジュアル面談を実施中
    クラシコムでは
    エンジニアを募集しています
    Kurashicom Tech Blog
    https://www.wantedly.com/projects/1391500
    https://note.com/kurashicom_tech/

    View Slide