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
クラウドネイティブ化への第一歩/excitech-20211018
Search
tanuki
October 18, 2021
Technology
2.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
クラウドネイティブ化への第一歩/excitech-20211018
https://excite.connpass.com/event/223563/
tanuki
October 18, 2021
More Decks by tanuki
See All by tanuki
coreutils/rm Dive Deep
_ht_mn_
0
29
AWSへの移行 1年間の軌跡
_ht_mn_
0
35
Other Decks in Technology
See All in Technology
AI時代の「技術的負債」の変質ー概念の終焉と再解釈、エージェントと共に向かう先
nwiizo
1
2.7k
beyond jj: config & tools ecosystem
indirect
0
500
AIエージェントの自己改善をどう設計するか / How to Design Self-Improvement for AI Agents
22mi
25
16k
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
26
15k
Issue 駆動でスペシャリストの意図を届ける、AI 実装のアクセシビリティ向上
thkt
0
120
HHKBエバンジェリストになる方法
941
0
110
俺の仕事は AIに奪われないし、たぶんその BIも要らない
hikaruri
0
500
事業課題から技術的負債に向き合う
sansantech
PRO
2
1.9k
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
1
2.2k
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
9
4.3k
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
4
630
Goodbye ShellScript, Hello File-based App
shunsock
0
130
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
For a Future-Friendly Web
brad_frost
183
10k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
Designing for Timeless Needs
cassininazir
1
480
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
460
Site-Speed That Sticks
csswizardry
13
1.5k
4 Signs Your Business is Dying
shpigford
187
23k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
550
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
Transcript
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. クラウドネイティブ化への第⼀歩
〜 前へ進むための新しい取り組み 〜 エキサイト株式会社 宮⻄隼⼈
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved.
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. ⾃⼰紹介
1989年 ⼭⼝県⽣まれ ⽂学部 => SIer => エキサイト 好きな⾔語 TypeScript / PHP / Python / C++ / C# 好きなAWSサービス CloudFormation / ECS / ELB 宮⻄ 隼⼈ @_ht_mn_
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. ⽬次
• マイグレーション前夜 ◦ 当時抱えていた課題は何か︖ • クラウドネイティブ化とは︖ • 課題を解決するためにやったこと ◦ コンテナ化とCI/CD整備の結果 • おわりに ◦ さらに前へ進むために
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. マイグレーション前夜
(たぶんこれだけで1時間は話せますが)
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. オンプレミスの状況を振り返る
現状構成の洗い出し • VM数 100以上 • APIエンドポイント総数 400以上 • GitHubリポジトリ数 70以上 • OracleとMySQL * 2 DBオブジェクト総数 1500以上 • 忘れ去られた外部連携仕様 多数 まぁまぁのボリュームだけど • タイムリミットは1年と2ヶ⽉ • 普段の業務も並⾏しながら作業をする • メインで担当するのは2⼈だけ
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. 「贅沢は敵だ」
限られたリソースの中で欲張りはじめる • 移⾏にかかる作業コストは最⼩限にしたい => 最⼩限のコストで、最速の完了を⽬指さなければ • 移⾏後の運⽤コストも最⼩限にしたい => 後で地獄を⾒ないためにも、今から頑張っておきたい • 将来的な拡張性も担保したい => わかるけど、ちょっと欲張り • AWSコストを削減したい => 欲張りすぎ
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. どうやって解決していくか
移⾏戦略毎に分類 考え得るいくつかの解決策 • 頑張ってリソースを投⼊する => 根本的な解決ではない︖ • クラウドのメリットを活かしたアーキテクチャに変更する => クラウドのメリットとは︖クラウドネイティブ化︖ リタイア リホスト リプラットフォーム リアーキテクチャ 不要なアプリケーションは削除 / 廃 ⽌する。 既存のアプリケーションをそのまま 移⾏する。 ⼀部をクラウドに最適化して移⾏す る。 例えば、オンプレのOracleからRDS for Oracleへの移行など。 クラウドネイティブの機能を使⽤で きるように、アプリケーションの再 設計してリビルドする。
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. クラウドのメリットを活かす︖
クラウドネイティブなアプリケーション︖
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. 「クラウドネイティブ」の定義
Cloud Native Computing Foundation(CNCF)による定義は︖
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. クラウドネイティブ技術は、パブリッククラウド、プライベートクラウ
ド、ハイブリッドクラウドなどの近代的でダイナミックな環境において、 スケーラブルなアプリケーションを構築および実⾏するための能⼒を組 織にもたらします。 このアプローチの代表例に、コンテナ、サービスメ ッシュ、マイクロサービス、イミュータブルインフラストラクチャ、お よび宣⾔型APIがあります。 これらの⼿法により、回復性、管理⼒、および可観測性のある疎結合シ ステムが実現します。 これらを堅牢な⾃動化と組み合わせることで、エ ンジニアはインパクトのある変更を最⼩限の労⼒で頻繁かつ予測どおり に⾏うことができます。 https://github.com/cncf/toc/blob/main/DEFINITION.md
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. ⼀部抜粋
スケーラブルなアプリケーションを構築および実⾏ 例えば・・・負荷の状況に合わせて⾃動でスケーリングできる 回復性、管理⼒、および可観測性のある疎結合システムが実現 例えば・・・障害発⽣時の即時復旧、⾃動回復ができる インパクトのある変更を最⼩限の労⼒で頻繁かつ予測どおりに⾏う 例えば・・・安全に、簡単に、迅速にデプロイできる
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. クラウドネイティブ化の主な要素
① コンテナ化 ② CI/CD ③ オーケストレーションと アプリケーション定義 ④ 可観測性と分析 https://github.com/cncf/trailmap
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. とりあえずやってみよう
「考えるよりも先に体が動いていた」
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. あしたのために(その1)
「コンテナ化」
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. 困っていたこと
- EC2の運⽤コスト EC2の運⽤がつらい • EBS(ストレージ)の容量枯渇 • 各種エージェントの突然死 ◦ デプロイ失敗など副作⽤が発⽣ • 構成管理していない古いインスタンス ◦ 怖くて変更を加えられない ◦ 環境毎に構成が異なるという状況が発⽣
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. 困っていたこと
- OS管理が⾯倒 サーバOSやミドルウェアの更新作業 ミドルウェアの更新や脆弱性の対応に時間が掛かりがち ⼀度変更してしまうと、元に戻すのが⼤変になってしまう
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. AWSがもたらしてくれたもの
AWS責任共有モデル 管理すべき対象は 減ったけど https://aws.amazon.com/jp/compliance/shared-responsibility-model/
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. けど、もっと楽をしたい(欲張り)
AWS責任共有モデル ここの負担も 減らしていきたい https://aws.amazon.com/jp/compliance/shared-responsibility-model/
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. ECS
on Fargateで解決 Amazon ECS 完全マネージドなオーケストレーションサービス コンテナのデプロイ、管理、スケールをECSに全て任せる AWS Fargate コンテナ向けサーバレスコンピューティング サーバやクラスタ管理をせず、アプリケーション開発に専念 ECS on Fargateなら、やりたいことが実現できそうだ︕
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. 結果
ポータビリティが向上 LinuxでもWindowsでもMacでも、環境は問わない 問題発⽣時の迅速な復旧が可能に スケールアップ/ダウン、スケールイン/アウトも⼿軽に インフラに依存しない構成 アプリケーションのデプロイと同じ感覚でインフラリソースをデプロイ
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. あしたのために(その2)
「CI/CD」
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. 困っていたこと
- 無駄が多い テストを書いてもテストをしない(怪奇現象) テストを書いた⼈が、書いたときに実⾏して終わり => 書いた本⼈にすら忘れられるので、誰もメンテしなくなる デプロイが⾯倒臭い 1. main ブランチにマージして、 2. デプロイサーバにSSHログインして、 3. rsyncコマンドやシェルスクリプトを実⾏ => ⼿順書が必須、作業者への各種権限付与も必須
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. GitHub
Actionsで⼀⽯⼆⿃ テストもデプロイの設定も アプリケーションのリポジトリで管理 AWS公式アクションを活⽤ 安⼼と信頼の公式アクション Blue/Greenにも対応(CodeDeployを利⽤)
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. Blue/Greenデプロイについて(おさらい)
① デプロイ前の状態 => お客様も管理者も、Blue Targetのア プリケーションにアクセス ② Green Targetに最新のアプリケーショ ンをデプロイ => Test ListenerのターゲットをGreen Targetに切り替え ③ Green Targetの正常性を確認後 => Production Listenerのターゲットを Green Targetに切り替え
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. GitHub
Actionsがより安全に使える︖ OIDC連携で、IAMユーザが不要に︕︖ ※10⽉現在はまだβ版 https://github.com/github/roadmap/issues/249
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. 結果
デプロイまでのスピードが向上 mainブランチにマージすれば9割終了 (Blue/Greenのターゲット切替え作業のみ⼿動) 誰でも簡単にデプロイできる 必要なのはGitHubアカウントだけ 余計な権限付与をしなくてもOK
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. あさってのために
道はまだまだ続いている
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. 困っていたこと
- ログの調査・分析 ⽞⼈にしかできないログ分析 • オンプレVMにSSHでログイン ◦ HA構成の場合は各VMにログイン ◦ screenやtmuxなどターミナルマルチプレクサを駆使 • findして、xargsして、sedして、awkして・・・ ◦ シェル芸は必須科⽬ ◦ 職⼈芸のようなワンライナー地獄
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. FireLensとFluent
Bitの利活⽤ App => FireLens => Fluent Bit サイドカーのFluent Bitコンテナに、アプリケーションからログを転送 アプリケーション側は、標準出⼒することだけを意識すれば良い
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. Firehoseでデータを収集
誰でもデータを分析できる環境へ Fluent BitはKinesis Data Firehoseにデータを集約させる FirehoseはAOSSやS3に転送し、適切で⼿段でデータ分析をおこなう
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. おわりに
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. なぜ前へ進むのか
• 前へ進まないと⾒えない景⾊がある ◦ コンテナの本番運⽤ ◦ サーバレス ◦ CI/CD • リスクは⼤きいけど、ベネフィットも⼤きい ◦ 本来の⽬的はビジネスを成⻑させること ◦ 社会の変化に、システムも追随する必要がある • 臆せず、前へ進もう
Copyright © 2021 Excite Japan Co.,Ltd. All Rights Reserved. Thank
you!