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
クラウドネイティブ化への第一歩/excitech-20211018
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
27
AWSへの移行 1年間の軌跡
_ht_mn_
0
28
Other Decks in Technology
See All in Technology
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
160
LayerXにおけるセキュリティ管理の現在地と次の一手
tosho
0
250
Bucharest Tech Week 2026 - Guardians of the Cloud-Native Galaxy
edeandrea
PRO
0
120
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
180
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
2k
【Cyber-sec+】経営層を"動かす"ための考え方
hssh2_bin
0
200
【2026年版】 ベクトル検索とEmbedding最前線
mocobeta
16
4.4k
AI-DLCを “そのまま導入しなかった”話 ~組織に合わせてアジャストした 私たちの実践共有~
hiroramos4
PRO
0
210
失敗を資産に変えるClaude Code
shinyasaita
0
720
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
3
570
Flow 不死:AI 時代 DevOps 的不變本質
cheng_wei_chen
2
330
GitHub Copilot app最速の発信の裏側
tomokusaba
1
190
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
150
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
WCS-LA-2024
lcolladotor
0
650
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
400
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Side Projects
sachag
455
43k
Abbi's Birthday
coloredviolet
2
8.1k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
390
Design in an AI World
tapps
1
250
Optimising Largest Contentful Paint
csswizardry
37
3.7k
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!