Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
新卒がアプリを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
IHV like なユースケースへのOpenID Connect 関連仕様の適用事例
optim
0
540
製品の問い合わせ負荷をLLMで解消したい 〜RAGで作る「自社を知っている」チャットボット〜
optim
0
40
AI エージェントシステムの開発を AI で加速させたい!
optim
0
42
既存プロダクトのRSpec カバレッジを 40% から100% にした話
optim
1
93
最近やってよかったデザインシステム運用改善3選
optim
1
350
<install>要素は何ができて、何を変えるのか
optim
1
310
CIでリグレッションテストを実行し継続的に品質を担保する
optim
1
340
Tanstack Startを触ってみての感動
optim
1
330
移行のつらさは誰が引き受けるのか── Vue.js と Next.js を比べて見えたこと
optim
2
330
Other Decks in Technology
See All in Technology
Tab5をRubyで動くパソコンにする
kishima
2
310
2026-09-10 【Snowflake World Tour Tokyo 2026】dbt Core と Snowflake で実現する多層的なデータガバナンス / Multi-Layered Data Governance Powered by dbt Core and Snowflake
civitaspo
0
310
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
300
あるけみー式LTスライド作成術
alchemy1115
1
170
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
3
2k
Code4Lib JAPANカンファレンス2026 開会挨拶 / Code4Lib JAPAN Conference 2026: Opening Remarks
ykiyota
0
330
Amazon S3 Tablesに全部任せてみた結果——コンパクション/スナップショット管理は本当に手放せるか
shigeruoda
1
460
HRC_Frontend_Conference_Fukuoka_2026.pdf
ts020
0
400
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
350
AIオーケストレーションを活用した 開発ワークフローの設計と実践
bqnq
0
130
「図書館」という名前のままでいいのか -Code4Lib JAPANカンファレンス2026 アンカンファレンス報告- / Code4Lib JAPAN Conference 2026: Unconference Report
ykiyota
0
160
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
300
Featured
See All Featured
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
520
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Raft: Consensus for Rubyists
vanstee
141
7.7k
Claude Code のすすめ
schroneko
67
230k
YesSQL, Process and Tooling at Scale
rocio
174
15k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
490
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
440
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
590
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
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