Slide 1

Slide 1 text

サーバシステムを無理なくコンテナ移行する際に 伝えたい4つのポイント 2025年03月27日 NRIネットコム株式会社 NTシステム事業二部 尾澤 公亮 NRIネットコム TECH AND DESIGN STUDY #60

Slide 2

Slide 2 text

1 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy コンテナ導入におけるトレードオフがより発生している と思います コンテナは有益な技術要素

Slide 3

Slide 3 text

2 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 旨みを生かして 無理なく 移行したい どうせコンテナ移行するなら

Slide 4

Slide 4 text

3 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ポイントは4つ ①マイクロサービス化は無理なく計画的に ②まずはデリバリーパイプラインから固める ③CI/CDはアプリ/インフラ両方の観点で組み上げる ④テストは信頼性を軸に実施

Slide 5

Slide 5 text

4 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ◼インフラエンジニア、クラウドアーキテクト ◼AWS、コンテナを中心とした、 Webシステム設計/開発/運用/保守 ◼ex.: ECS, EKS, Codeシリーズ 尾澤 公亮(KOSUKE OZAWA)

Slide 6

Slide 6 text

5 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy コンテナ移行を進める上での心構え

Slide 7

Slide 7 text

6 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy コンテナ移行を進める上での心構え マイクロサービス 疎結合 CI/CD コンテナ間通信 Docker Kubernetes

Slide 8

Slide 8 text

7 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ナウでヤングな言葉がいっぱい マイクロサービス 疎結合 CI/CD コンテナ間通信 Docker Kubernetes

Slide 9

Slide 9 text

8 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy できることからやりましょう ようは「リフトアンドシフト」 まずはコンテナにのせることを目標に →知見がたまってきたらより良い方向に

Slide 10

Slide 10 text

9 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy アプリとインフラの関係 アプリのことはちょっと... 正直コンテナとか よくわかんない...

Slide 11

Slide 11 text

10 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 歩み寄りが大事 アプリ、 ちゃんと動くかな? (OSライブラリ依存、 実行権限等の考慮) ちょっと 無理させてないかしら? (CPU,Memory消費量、 イメージサイズの考慮)

Slide 12

Slide 12 text

11 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 歩み寄りが大事 アプリ、 ちゃんと動くかな? (OSライブラリ依存、 実行権限等の考慮) 少し越境してみる ちょっと 無理させてないかしら? (CPU,Memory消費量、 イメージサイズの考慮)

Slide 13

Slide 13 text

12 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ①マイクロサービス化は無理なく計画的に

Slide 14

Slide 14 text

13 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy マイクロサービス化とは

Slide 15

Slide 15 text

14 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy マイクロサービス化とは

Slide 16

Slide 16 text

15 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy マイクロサービス化とは 機能ごとにサービスとして分割 → スケーリングの柔軟性、 ライフサイクルの分割

Slide 17

Slide 17 text

16 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 機能ごとにサービス化する→コンポーネントの増加と結合の複雑さが増す

Slide 18

Slide 18 text

17 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 機能ごとにサービス化する→コンポーネントの増加と結合の複雑さが増す

Slide 19

Slide 19 text

18 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 実際使いそうなツールに置き換えるとこんな感じ

Slide 20

Slide 20 text

19 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 最低限アプリ機能はわける

Slide 21

Slide 21 text

20 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 最低限アプリ機能はわける アプリの使われ方で分ける Nginx、エージェント類は サイドカーコンテナ として配置

Slide 22

Slide 22 text

21 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ②まずはデリバリーパイプラインから固める

Slide 23

Slide 23 text

22 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy CI/CDとは

Slide 24

Slide 24 text

23 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy CI/CDとは

Slide 25

Slide 25 text

24 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 実際のところ

Slide 26

Slide 26 text

25 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 実際のところ 外部レポジトリとの接続ポリシー イベント通知、監査ログの取得 サイドカー用レポ等 複数レポジトリによる運用 CIで何をテストする? イメージ戦略は? レポートツールの有無 アーティファクトの取り扱い デプロイ戦略は? 複数サービスある場合は? 再起動のみしたい場合は? デプロイタイミングは? 毎回デプロイ/特定タイミングのみ?

Slide 27

Slide 27 text

26 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 先にデプロイだけ自動化しておく

Slide 28

Slide 28 text

27 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 先にデプロイだけ自動化しておく

Slide 29

Slide 29 text

28 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 先にデプロイだけ自動化しておく Source Artifactから Buildステップでイメージビルド/ ECR Pushまでを CodePipeline単体で実現 ※2024/11のアップデート

Slide 30

Slide 30 text

29 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 先にデプロイだけ自動化しておく Source Artifactから Buildステップでイメージビルド/ ECR Pushまでを CodePipeline単体で実現 ※2024/11のアップデート ソースからイメージビルド→デプロイだけなら これでなんとかなる →おいおい理想に近づけるでもOK

Slide 31

Slide 31 text

30 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ③CI/CDはアプリ/インフラ両方の観点で組み上げ

Slide 32

Slide 32 text

31 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy CI/CDによって得られるメリット

Slide 33

Slide 33 text

32 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy デリバリーの自動化 → 環境の標準化、静的解析、E2E → 開発工数への注力、安定したコード・動作品質 CI/CDによって得られるメリット

Slide 34

Slide 34 text

33 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy デリバリーの自動化 → 環境の標準化、静的解析、E2E → 開発工数への注力、安定したコード・動作品質 CIはアプリ品質の肝

Slide 35

Slide 35 text

34 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy CI/CDとしての機能・非機能面はインフラ観点の出番

Slide 36

Slide 36 text

35 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy CI/CDとしての機能・非機能面はインフラ観点の出番 • キャッシュの活用 • (ローカル/S3) • テストレポート • バッチビルド • スケール調整 • イメージの軽量化 • BuildKit • SOCI Lazy Loading • イメージ署名

Slide 37

Slide 37 text

36 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy CI/CDとしての機能・非機能面はインフラ観点の出番 • キャッシュの活用 • (ローカル/S3) • テストレポート • バッチビルド • スケール調整 • イメージの軽量化 • BuildKit • SOCI Lazy Loading • イメージ署名 アプリがやりたいことを実現するために、 できる施策をうつ →このための引き出しを増やしておく

Slide 38

Slide 38 text

37 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ④テストは信頼性を軸に実施

Slide 39

Slide 39 text

38 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy テストどう進めるか問題

Slide 40

Slide 40 text

39 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy テストどう進めるか問題 • OS設定 • MW設定 • サービス起動レベル • ユーザ/グループ • NTP/Locale etc.…

Slide 41

Slide 41 text

40 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy テストどう進めるか問題 • OS設定 • MW設定 • サービス起動レベル • ユーザ/グループ • NTP/Locale etc.… • 起動したらOK?

Slide 42

Slide 42 text

41 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 大事なのは「サービスを提供できるかどうか」

Slide 43

Slide 43 text

42 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 大事なのは「サービスを提供できるかどうか」 • Healthyかどうか • 起動に時間がかかりすぎていないか • 停止→起動を繰り返していないか • Latencyは許容できるか • CPU/Memory消費は妥当か • 必要な情報をログ出力しているか

Slide 44

Slide 44 text

43 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 大事なのは「サービスを提供できるかどうか」 • Healthyかどうか • 起動に時間がかかりすぎていないか • 停止→起動を繰り返していないか • Latencyは許容できるか • CPU/Memory消費は妥当か • 必要な情報をログ出力しているか 安定的に稼動できるかどうか → 信頼性

Slide 45

Slide 45 text

44 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy まとめ

Slide 46

Slide 46 text

45 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ◼無理なく移行するポイントは4つ ⚫ ①マイクロサービス化は無理なく計画的に • → 最低限アプリの使われ方で分ける、それ以外はサイドカーコンテナで動かす ⚫ ②まずはデリバリーパイプラインから固める • → ソースからビルド、デプロイだけならCodePipeline単体でも可能、これをうまく使う ⚫ ③CI/CDはアプリ/インフラ両方の観点で組み上げる • → CIは品質の肝、アプリがやりたいことを実現するために引き出しは増やしておく ⚫ ④テストは信頼性を軸に実施 • → 安定的に稼働できるかどうかの観点を持つ まとめ

Slide 47

Slide 47 text

46 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ◼ ECRBuildAndPublish build action reference ⚫ https://docs.aws.amazon.com/codepipeline/latest/userguide/action-reference-ECRBuildAndPublish.html ◼ AWS CodePipeline が ECR イメージの公開と AWS InspectorScan を新しいアクションとしてサポート開始 ⚫ https://aws.amazon.com/jp/about-aws/whats-new/2024/11/aws-codepipeline-publishing-ecr-image-aws-inspectorscan-actions/ 参考文献

Slide 48

Slide 48 text

No content