Upgrade to Pro — share decks privately, control downloads, hide ads and more …

サーバシステムを無理なくコンテナ移行する際に伝えたい4つのポイント/Container_H...

k-ozawa
March 27, 2025

 サーバシステムを無理なくコンテナ移行する際に伝えたい4つのポイント/Container_Happy_Migration_Method

k-ozawa

March 27, 2025
Tweet

More Decks by k-ozawa

Other Decks in Technology

Transcript

  1. 2 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 旨みを生かして

    無理なく 移行したい どうせコンテナ移行するなら
  2. 3 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ポイントは4つ

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

    ◼AWS、コンテナを中心とした、 Webシステム設計/開発/運用/保守 ◼ex.: ECS, EKS, Codeシリーズ 尾澤 公亮(KOSUKE OZAWA)
  4. 6 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy コンテナ移行を進める上での心構え

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

    マイクロサービス 疎結合 CI/CD コンテナ間通信 Docker Kubernetes
  6. 8 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy できることからやりましょう

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

    アプリのことはちょっと... 正直コンテナとか よくわかんない...
  8. 10 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 歩み寄りが大事

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

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

    機能ごとにサービスとして分割 → スケーリングの柔軟性、 ライフサイクルの分割
  11. 20 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 最低限アプリ機能はわける

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

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

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

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

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

    → 環境の標準化、静的解析、E2E → 開発工数への注力、安定したコード・動作品質 CIはアプリ品質の肝
  17. 35 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy CI/CDとしての機能・非機能面はインフラ観点の出番

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

    • キャッシュの活用 • (ローカル/S3) • テストレポート • バッチビルド • スケール調整 • イメージの軽量化 • BuildKit • SOCI Lazy Loading • イメージ署名 アプリがやりたいことを実現するために、 できる施策をうつ →このための引き出しを増やしておく
  19. 39 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy テストどう進めるか問題

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

    • OS設定 • MW設定 • サービス起動レベル • ユーザ/グループ • NTP/Locale etc.… • 起動したらOK?
  21. 42 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy 大事なのは「サービスを提供できるかどうか」

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

    • Healthyかどうか • 起動に時間がかかりすぎていないか • 停止→起動を繰り返していないか • Latencyは許容できるか • CPU/Memory消費は妥当か • 必要な情報をログ出力しているか 安定的に稼動できるかどうか → 信頼性
  23. 45 Copyright(C) NRI Netcom, Ltd. All rights reserved. #nncstudy ◼無理なく移行するポイントは4つ

    ⚫ ①マイクロサービス化は無理なく計画的に • → 最低限アプリの使われ方で分ける、それ以外はサイドカーコンテナで動かす ⚫ ②まずはデリバリーパイプラインから固める • → ソースからビルド、デプロイだけならCodePipeline単体でも可能、これをうまく使う ⚫ ③CI/CDはアプリ/インフラ両方の観点で組み上げる • → CIは品質の肝、アプリがやりたいことを実現するために引き出しは増やしておく ⚫ ④テストは信頼性を軸に実施 • → 安定的に稼働できるかどうかの観点を持つ まとめ
  24. 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/ 参考文献