Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
「北欧、暮らしの道具店」を支えるインフラ技術
Search
Nagisa Yata
November 12, 2023
Technology
2
1.7k
「北欧、暮らしの道具店」を支えるインフラ技術
2023年11月7日(火)に開催されたWomen Developers Summit2023で登壇させていただいた発表資料になります。
Nagisa Yata
November 12, 2023
Tweet
Share
Other Decks in Technology
See All in Technology
kargoの魅力について伝える
magisystem0408
0
200
第3回Snowflake女子会_LT登壇資料(合成データ)_Taro_CCCMK
tarotaro0129
0
180
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
160
5分でわかるDuckDB
chanyou0311
10
3.2k
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
170
フロントエンド設計にモブ設計を導入してみた / 20241212_cloudsign_TechFrontMeetup
bengo4com
0
1.9k
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
160
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
190
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
1
290
ずっと昔に Star をつけたはずの思い出せない GitHub リポジトリを見つけたい!
rokuosan
0
150
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
110
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
440
Featured
See All Featured
How GitHub (no longer) Works
holman
311
140k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Done Done
chrislema
181
16k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
Building Applications with DynamoDB
mza
91
6.1k
Agile that works and the tools we love
rasmusluckow
328
21k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Code Reviewing Like a Champion
maltzj
520
39k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
Unsuck your backbone
ammeep
669
57k
Designing Experiences People Love
moore
138
23k
Transcript
「北欧、暮らしの道具店」 矢田和沙 2023.11.07 Women developers summit 2023 を支えるインフラ技術
矢田和沙(ヤタナギサ) 自己紹介 株式会社クラシコム システムプラットフォーム部 テクノロジーグループ エンジニア 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.
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の コードを変更 Pull
Request Approve Approve Approve 11 © Kurashicom Inc.
• Elastic Beanstalk上で動作 • マネジメントコンソールからの操作 以前のコーポレートサイトの構成 Corporate 12 © Kurashicom
Inc.
コーポレートサイトの現在の構成 • ECSに移行 • Terraformのソースコードで管理し、PRで確認 Terraformの コードを変更 Pull Request Approve
Approve Approve 13 © 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 = 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) 北欧、暮らしの道具店 コーポレートサイト 25
© 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.
アンケートにご回答いただ いた方には本日の資料を メールでお送りします。 ぜひご回答ください
採用情報 カジュアル面談を実施中 クラシコムでは エンジニアを募集しています Kurashicom Tech Blog https://www.wantedly.com/projects/1391500 https://note.com/kurashicom_tech/