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
プロダクトの成長に伴うAWSの利用サービスとアーキテクチャの変遷
Search
Tomoki Kawajiri
August 26, 2022
Technology
840
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
プロダクトの成長に伴うAWSの利用サービスとアーキテクチャの変遷
https://aws-startup-community.connpass.com/event/247548/
Tomoki Kawajiri
August 26, 2022
More Decks by Tomoki Kawajiri
See All by Tomoki Kawajiri
フレームワークのソースコードから知識を深める
weistom
0
850
Other Decks in Technology
See All in Technology
完全自律ロボットを作りたくて、先に開発を自律させた話(ROS Japan UG #63 LT)
rryz09
0
440
キャリアの中で本を作る / Making a Book During Your Career
ak1210
0
130
金融の未来を考える / Thinking About the Future of Finance
ks91
PRO
0
180
知らん間に、回ってる
ming_ayami
0
390
アカウントが増えてからでは遅い? ~ マルチアカウント統制の勘所 ~
kenichinakamura
0
220
Docker Desktop不要の時代が来る? WSL標準の「wslc」で Linuxコンテナを動かしてみた.
ueponx
0
900
クラウド上のデータ復旧で見落としがちな制約: 医療系 SaaS の BCP 設計から得た教訓
kakehashi
PRO
0
3.2k
なぜ私たちのSREプラクティスはなかなか機能しないのか 〜システムより先に組織を見る〜 / Why our SRE practices aren't really working
vtryo
3
3.4k
[2026-07-15] AI Ready なはずだったアーキテクチャと、見えてきた課題・次に目指す状態
wxyzzz
4
2.2k
脱金融のフューチャー・デザイン / Future Design Beyond Finance
ks91
PRO
0
140
オブザーバビリティ、本当に活用できてる? 〜API連携×生成AIで成熟度を自動評価〜
dmmsre
1
2.7k
証券システムを10年Scalaで作り続けるということ - 関数型まつり2026
krrrr38
3
830
Featured
See All Featured
Amusing Abliteration
ianozsvald
1
220
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
390
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
460
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
650
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Navigating Team Friction
lara
192
16k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
460
Transcript
プロダクトの成長に伴うAWSの 利用サービスとアーキテクチャの変遷 株式会社おてつたび 川尻智樹
株式会社おてつたび リードエンジニア 川尻 智樹 前職の楽天のアクセラレーションプログラムを きっかけに代表の永岡と出会い、創業当初から プロダクト開発全般に携わる。 現在は Rails と
React、楽天時代はバックエンド メインで Java や Python で開発
Our Vision 日本各地にある本当にいい人、いいもの、い い地域がしっかり評価される世界を創る
短期的・季節的な人手不足で困っている地域の方々と、地域に 興味がある方が出会えるマッチングプラットフォーム おてつたび 登録ユーザー数は2.3万人、 受入先は全国47都道府県 700事業者に拡大
サービス規模拡大の中での取り組み アクセス数増加への 対応 スケーリング パフォーマンス向上 コストの最適化 プロダクト規模拡大 によるボトルネック の解消 利用サービスの増加で
上がったコストの最適 化
インスタンスのオートスケーリング プロダクトローンチ 〜 オートスケーリングの導入
プロダクトローンチ EC2 x 2 と RDS の構成 • ALB と
EC2 x 2 のターゲットグ ループ • ALB には AWS Certificate Manager が発行した証明書を バインド
• EC2 インスタンスは 2 台 ◦ 負荷分散とリスクヘッジのため • データベースは RDS
を利用 ◦ データは一番の資産なので(当たり前ですが)バックアップも可能な RDS でデータ管理 • CloudFront でコンテンツ配信 ◦ CDN による高速配信に加え、アクセスの分散にもつながる
運用を開始してから見えてきた課題 • 突発的なアクセス増加への対応 ◦ TV放映など、メディア露出した時のアクセス数の増加にも耐えうる 体制の構築 • プロダクト規模への対応 ◦ プロダクトの数が増えたこと、プロダクトの規模が大きくなるにつれ
EC2 インスタンスの負荷が高まる
EC2 オートスケーリング • EC2 インスタンスを自動的に追加または削除 することができる ◦ 指定の時間にスケジューリングすることで 予期されるアクセス数増加への体制の構 築
◦ 条件を指定することで一時的な増加にも 対応できる 出典:Amazon EC2 Auto Scaling(需要に合わせてコンピューティング 性能を拡張)| AWS
Application Load Balancer 出典:Application Load Balancer とは? - Elastic Load
Balancing トラフィックを複数のターゲットに分散させる • Listener ごとにルールを指定して アクセスを分散 • ヘルスチェックで有効なインスタン スへアクセスする • モニタリングでトラフィックやインス タンスの状態を監視
None
パフォーマンスの向上 ボトルネックの解消への取り組み
背景 • DB のパフォーマンス悪化 ◦ クエリの数が増えることで CPU 使用率が高まり、アクセススピード が悪化 •
他のプロダクトも影響を受ける ◦ DB の負荷が高まることで他のプロダクトのパフォーマンスも同時に 悪化
取り組み 1 - リードレプリカ プライマリと読み取り専用のレプリカ インスタンスに分ける 出典:Amazon RDS リードレプリカ |
クラウドリレーショナルデータベー ス | アマゾン ウェブ サービス • 読み取りのクエリ(SELECT 文)はレプリ カに投げることでプライマリのパフォー マンスと耐久性向上 • レプリカを増やすことで他プロダクトが 影響を受けなくなる
取り組み 2 - ElastiCache でデータキャッシュ フルマネージドのインメモリキャッシングサービス Redis にデータをキャッシュして DB の負荷軽減とパフォーマンスの向上
• マスターデータなど変更性が低いレコードや取得回数が多いレ コードを一定時間キャッシュ ◦ DB へのアクセスがなくなり負荷軽減 ◦ データを早く取得できるので、アプリケーションのパフォー マンスも向上
取り組み 2 - ElastiCache Redis • プライマリと読み取り専用のレプリカのエンドポイントを使い分ける ◦ 読み取りが多い場合にレプリカを分散させることで負荷を軽減できる 出典:Replication:
Redis (Cluster Mode Disabled) vs. Redis (Cluster Mode Enabled) - Amazon ElastiCache for Redis
取り組み 3 - ALB ターゲットグループを複数管理 出典:Elastic Load Balancing(複数のターゲットにわたる着信トラフィックの分 配)| AWS
アプリケーションへのトラフィックを複数のターゲットに分けることでアクセスの負荷分散 • グループを増やすことでアクセス を分散 • パスベースのルーティングで特定 のアクセスのみ分けることが可能
コスト最適化 利用サービスやインスタンスが増えたことで 上がったコストの最適化 RDS ElastiCache EC2 インスタンス
EC2 リザーブドインスタンス インスタンスタイプ(t3.medium など)とインスタンス数、期間を指定して購入すると、期 間内は料金がオンデマンドインスタンスに比べて最大 72 % も安く利用できる • 踏み台サーバーや
Cron Job 実行のサーバーなど、インスタンスタイプが固定で必 要なインスタンス用に購入すると良い ◦ アクセスの大幅な増減があまり発生しないプロダクトのインスタンスに使用す ることもおすすめ
EC2 スポットインスタンス AWS クラウド内で使用されていない EC2 キャパシティーを利用して、インスタンスを起 動する。オンデマンド料金に比べ最大 90 %割引 需要と供給の変動で利用できるキャパシティーも変わるので、キャパシティーがなくなる
と突然インスタンスは終了する 終了した場合の対応を構築することで運用は可能 出典:Amazon EC2 だけじゃない⼊ 最⼊のコス ト効率を⼊に⼊れるための スポットインスタンス 使いこなし術
EC2 のインスタンスサイズの調整 インスタンスサイズが異なる複数グループを使用することで料金を抑える。 例えば、small サイズのインスタンスのターゲットグループで通常時は運用して、アクセ スが増えるタイミングで medium サイズのグループに切り替えてトラフィックを受けること で、コストを必要最小限に抑えることができる。
EC2 のインスタンスサイズの最適化 モニタリングでトラフィック数や CPU 使用率を参考にすることもできるが、 Jmeter などを使用して負荷テストを行い、限界値を知ることで最適なサイズを知る必要 がある アプリケーション規模が大きくなるとトラフィックは同じでも、インスタンスのメモリや CPU
使用率は高まるので、アプリケーションが起動した状態での限界を知ることがベスト
RDS インスタンスサイズの調整 リードレプリカのインスタンスサイズも必要なタイミングで切り替えることでコストを抑え る。
RDS リードレプリカの分散 読み込み要求を複数の Amazon RDS リードレプリカに分散させる方 法を教えてください。 Route53 に CNAME
で加重レコードを登録して、指定のレプリカへ転送することで複数 のレプリカへ分散させる
None
まとめ EC2 • EC2 オートスケーリングでインスタンスの自動調整 ◦ 条件を登録して自動化 ◦ スケジューリングで予期されるトラフィック増加へ対応する •
ALB でトラフィックの分散 ◦ ターゲットグループの切り替えでインスタンスサイズの調整 ◦ モニタリングで状況把握
まとめ RDS • RDS リードレプリカで負荷分散 • Route 53 に CNAME
で加重レコードを登録することで複数のレプリカを利用 ElastiCache • キャッシュすることで DB への負荷軽減 • アプリケーションのパフォーマンスの加速 • レプリカによる負荷分散
おすすめ • テクニカルサポート ◦ 設定の方法から課題のソリューション提案まで、幅広いサポートをもら えるので、積極的に利用することをおすすめします • スタートアップ支援プログラム ◦ スタートアップ企業への補助プログラムもあるので、申請することをお
すすめします ◦ クレジットの範囲内で利用料が割引
今後の取り組み
コンテナ化 Elastic Container Registry(ECR) と Elastic Container Service(ECS) でコン テナを使用したアプリケーション起動
• ECR にイメージ(ソースコード)を プッシュ • ECS が ECR からプルしてアプリ ケーションを起動
コンテナ化のメリット 運用工数・コストの削減とスピードアップ • デプロイスピードの向上 • コンテナでカプセル化されるので、OS や言語などのバージョンアップ 対応の工数を削減 • 環境要因によるトラブル削減
インスタンス変更の自動化 Amazon CLI を使用した自動化。Lambda で実行することも可能 ちょっとした対応の積み重ねもコストになるので、自動化することで効率化 できる • ALB ターゲットグループの切り替え
• RDS リードレプリカの作成と削除 などなど
エンジニアを募集しています おてつたびでは、新しい旅の形を一緒に作っていく仲間を募集中です! まずはカジュアルにお話ししましょう! • iOS アプリエンジニア • Webフルスタックエンジニア Wantedly 会社概要
Meety
テックブログと SNS の紹介 Zenn Twitter @tomoki_kawajiri 開発チームでテックブログの発信を行っています。 興味ある方は是非フォローお願いします!