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
新卒がアプリをEKSにデプロイした話 / sre-newcomer-deploy-app-to...
Search
OPTiM
December 02, 2021
Technology
470
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
新卒がアプリをEKSにデプロイした話 / sre-newcomer-deploy-app-to-eks
OPTiM
December 02, 2021
More Decks by OPTiM
See All by OPTiM
製品の問い合わせ負荷をLLMで解消したい 〜RAGで作る「自社を知っている」チャットボット〜
optim
0
30
AI エージェントシステムの開発を AI で加速させたい!
optim
0
32
既存プロダクトのRSpec カバレッジを 40% から100% にした話
optim
1
73
最近やってよかったデザインシステム運用改善3選
optim
1
120
<install>要素は何ができて、何を変えるのか
optim
1
93
CIでリグレッションテストを実行し継続的に品質を担保する
optim
1
120
Tanstack Startを触ってみての感動
optim
1
110
移行のつらさは誰が引き受けるのか── Vue.js と Next.js を比べて見えたこと
optim
2
120
Athenaが遅すぎるので Next.js 16の Cache Componentsで倒してみた
optim
1
180
Other Decks in Technology
See All in Technology
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
650
Model Studio CLI × Token Plan
maigo999
0
190
Genie Codeハンズオン応用編
taka_aki
0
120
強化学習「理論」入門
enakai00
3
3.6k
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
150
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
410
私がブラウザを自作したくなった理由
supurazako
1
260
PLATEAU で バーチャル花火大会
tatsuya1970
0
170
関東Kaggler会発表資料
takoi
1
250
Reference-Free Image Quality Assessment for Virtual Try-On via Human Feedback
zozotech
PRO
0
610
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
19k
AI-DLC実践録_フルサイクル開発への挑戦
miyuc
0
250
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
56k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
How to build a perfect <img>
jonoalderson
1
5.9k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Paper Plane (Part 1)
katiecoart
PRO
1
10k
Statistics for Hackers
jakevdp
799
230k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
210
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
350
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Prompt Engineering for Job Search
mfonobong
0
410
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
300
Transcript
Copyright © OPTiM Corp. All Right Reserved. 新卒がアプリをEKSにデプロイした話 発表日:2021.11.29 株式会社オプティム
技術統括本部 SREユニット 岡田
Copyright © OPTiM Corp. All Right Reserved. 2 岡田
神奈川県生まれ 東北大学・大学院 • 工学研究科土木工学 出身 • リモートセンシング技術を用いた浸水建物把握 21新卒 • 入社後は3ヶ月間、IT人財教育プログラム(IT研修)に参加 • グループでチャットアプリを開発 SREチーム • 社内サービスの品質管理・改善を担当 趣味は野球・料理(リュウジのバズレシピ) 自己紹介
Copyright © OPTiM Corp. All Right Reserved. 3 IT研修の中身と成果
配属後に行ったこと チャットアプリをEKSへデプロイ TerraformでRDS構築 アプリケーションのHelm化 おわりに 目次
Copyright © OPTiM Corp. All Right Reserved. 4 IT研修の中身と成果 非情報系出身たちによるアプリ開発と、配属まで
Copyright © OPTiM Corp. All Right Reserved. 5 概要
• 対象者は非情報(工学)系出身者 • 目標 • オプティムで定義しているエンジニアの スキルレベルに到達すること、あるいは そのポテンシャルを獲得すること • 講義と実習(プログラミング研修)を3か月間行う • 2021年度は個人開発・チーム開発を実施 IT研修とは
Copyright © OPTiM Corp. All Right Reserved. 6 個人開発
• ブロック崩しゲーム • メモ帳・Todoリスト • JavaScript チーム開発 • チャットアプリ • Go / Vue.js / SQL Boiler / PostgreSQL • Webサーバをlocalhostに構築 • Gitlabで共同開発 • Redmineでタスク管理 IT研修の中身と成果 okada
Copyright © OPTiM Corp. All Right Reserved. 7 配属後に活きたこと
• プログラミング・開発の基礎 • Dockerを使ったコンテナ管理 • チケットベースでのタスク管理 配属後にわからなかったこと • AWS…? • Kubernetes…? • Terraform…? • とにかく、SREで日常的に使用するツールが全く分かりませんでした IT研修の中身と成果
Copyright © OPTiM Corp. All Right Reserved. 8 配属後に行ったこと SREで使用するツールにまずは触れてみる
Copyright © OPTiM Corp. All Right Reserved. 9 SREチームで頻繁に触れる技術スタックの理解を深める
• IT研修で作成したチャットアプリをEKSにデプロイする • TerraformでRDSを構築する • デプロイしたチャットアプリをHelm化する -> 運用の観点から、再利用性を高くした構成管理を心がけた 配属後に行ったこと 論理構成図 • 次ページへ
Copyright © OPTiM Corp. All Right Reserved. 10 論理構成図
配属後に行ったこと
Copyright © OPTiM Corp. All Right Reserved. 11 チャットアプリをEKSへデプロイ 効率的なコンテナの一括管理
Copyright © OPTiM Corp. All Right Reserved. 12 EKSを使用する目的
• コンテナの一括管理を効率よく行うため • 信頼性を高める・可用性を高める・スケーラブルにするためにKubernetesが広く使われている • 他のAWSサービスとの統合が簡単 • ALB/ECR/RDSなどのAWSのサービスとすぐに統合できる 設定した内容 • Manifestの作成 • Deployment(Front, Back)/Service(Front, Back)/Ingress(Front)/Job(DB Migration) • 研修時にdocker-compose.yamlや.envファイルで設定した環境変数も設定 • Dockerfileを作成し、ECRに追加 • Frontのコンテナは起動時にyarn serve, Backのコンテナは起動時に実行 チャットアプリをEKSへデプロイ kubectl apply –f frontend-deployment.yaml docker build -> docker push
Copyright © OPTiM Corp. All Right Reserved. 13 論理構成図
チャットアプリをEKSへデプロイ 変更箇所
Copyright © OPTiM Corp. All Right Reserved. 14 TerraformでRDS構築 再利用性の高いDB構築・構成管理
Copyright © OPTiM Corp. All Right Reserved. 15 RDSを使用する目的
• 可用性とスケーラビリティが高いDBを構築するため • PodでのDB運用時には、Podを再作成した時にデータを消失する構成だった • RDSならデータの冗長化・バックアップなど永続化にかんする 責任をAWSに任せられる Terraformを使用する目的 • 同じ構成を素早く構築可能な、再利用性が高い構成管理を行うため • バージョンの管理を行なって履歴を追跡可能にしたり、災害時の復旧が可能になる • 環境差分を.tfvarsファイルで管理すれば、同じ構成の環境を簡単に構築できる 設定した内容 • Aurora PostgreSQLを管理するための環境変数をterraform.tfvarsに書き出し • 低コスト・速度が十分・耐久性が高いことからAurora PostgreSQLを選択 • ルートモジュールから、今回のチャットアプリ用Aurora PostgreSQLのサブモジュールを参照するよう な構成を適用 TerraformでRDS構築 terraform apply
Copyright © OPTiM Corp. All Right Reserved. 16 論理構成図
TerraformでRDS構築 変更箇所
Copyright © OPTiM Corp. All Right Reserved. 17 アプリケーションのHelm化 アプリケーション管理を簡単に
Copyright © OPTiM Corp. All Right Reserved. 18 Helmを使う目的
• デプロイしたアプリケーションの管理を簡単にするため • 内容の更新を、設定ファイル(Chart)として管理する • パラメータを切り出したvalues.yamlとKubernetes manifestをHelm chartとしてパッケージ ングすることで、アプリケーション構成の再利用が可能になる 設定した内容 • Helmの構成を作成、内部のtemplatesディレクトリに、Manifestsを追加 • values.yamlにデフォルトパラメータを記述 values.yamlの中をみて、変更を加えればアプリケーションの更新ができるようになった アプリケーションのHelm化 helm create helm install
Copyright © OPTiM Corp. All Right Reserved. 19 論理構成図
TerraformでRDS構築 変更箇所
Copyright © OPTiM Corp. All Right Reserved. 20 おわりに 入社半年で学んだこと
Copyright © OPTiM Corp. All Right Reserved. 21 IT研修で作ったチャットアプリ
• 信頼性・可用性・スケーラビリティの高いサービスへと更新することができた • RDSの変更 -> terraform.tfvarsファイルを更新 • EKSの設定を変更 -> values.yamlを参考にしてパラメータを書き換え • チャットアプリ自体(Front / Back)の変更 -> ECRにDocker imageをpush, これを参照するように変更 • WebサーバをlocalhostではなくAWSで構築したため、複数人が同時にアクセス可能に IT研修 ~ SRE配属後の半年間で学んだこと • 可能な限りヒューマンエラーを取り除くこと • 環境構築はコマンド1つで再現できるようにする • 面倒な管理はマネージドサービスに任せること • 全てを自社サービスでやっていては限界がある • プログラミングは開発だけではない • 効率化するという運用の面白さをどんどん感じていきたい おわりに 本日お話しした内容は 弊社TECH BLOGでも公開しております!
Copyright © OPTiM Corp. All Right Reserved. 22