あなたの組織に最適なコンテナデプロイ方法とは?〜ECSにおけるデプロイ最新機能てんこ盛り〜

 あなたの組織に最適なコンテナデプロイ方法とは?〜ECSにおけるデプロイ最新機能てんこ盛り〜

AWSにおけるコンテナワークロード運用のデファクトスタンダードの地位を確立したECS。 デプロイ方法も進化を続け、CodeDeployとALBで連携したB/Gデプロイやカナリアリリースにも対応し、そのデプロイにおける柔軟性はEKSに勝るとも劣りません。 そんなECSですが、手段が豊富になったこともあり現状「そもそもうちの組織としてどんなデプロイ方法が最適なのか?」を選択するのが難しくなっています。 このセッションでは、ECSのデプロイ機能を紹介しつつ、マルチアカウントでの運用、リリース承認プロセス、IaCとの連携方法、GitHub Actionsも含めた最新動向を全てお伝えいたします。

C47bda32c8455a59471cd7e19c32c074?s=128

濱田孝治

July 03, 2020
Tweet

Transcript

  1. あなたの組織に最適な コンテナデプロイ⽅法とは︖ 濱⽥孝治(ハマコー) 〜ECSにおけるデプロイ最新機能てんこ盛り〜

  2. #devio2020 2 @hamako9999 ハマコー

  3. #devio2020 3 #devio2020 常にでてるよ︕

  4. #devio2020 4

  5. 5 いまこの動画をみている みなさんに伝えたいこと

  6. #devio2020 6 AWSのコンテナ開発において検討が必要な事柄 AWS上でコンテナ開発するとき検討すべき事は多岐に渡る • ネットワーク設計 • コンテナ設計 • 監視設計

    • ロギング設計 • セキュリティ設計 • デプロイ設計
  7. #devio2020 7 AWSのコンテナ開発において検討が必要な事柄 AWS上でコンテナ開発するとき検討すべき事は多岐に渡る • ネットワーク設計 • コンテナ設計 • 監視設計

    • ロギング設計 • セキュリティ設計 • デプロイ設計 最初に検討してほしい
  8. 8 なぜ優先順位が⾼いのか アプリケーション基盤の ⼀番基礎となる部分なので 将来にわたって投資対効果が⾼い 開発〜テスト〜リリース〜改善プロセスまで

  9. 9 結論 を節約 できる

  10. 10 このセッションで伝えたいこと この45分間で 将来にわたりあなたの組織の TCOを削減するヒントを つかんでください

  11. #devio2020 11 ECSデプロイを極めるまで ECSデプロイの構造を理解する ECSデプロイのアンチパターンを理解する 開発環境にデプロイしてみる 本番環境にデプロイしてみる GitHub Actionsを使ってデプロイする IaC管理するリソースとの⽭盾に⽴ち向かう

    基礎 必須 応⽤
  12. 12 みなさんのECSアプリケーションの さらなる進化を願って

  13. #devio2020 13 ECSデプロイを極めるまで ECSデプロイの構造を理解する ECSデプロイのアンチパターンを理解する 開発環境にデプロイしてみる 本番環境にデプロイしてみる GitHub Actionsを使ってデプロイする IaC管理するリソースとの⽭盾に⽴ち向かう

    基礎 必須 応⽤
  14. 14 最初に ECSの構造について振返り

  15. #devio2020 15 AWSのコンテナ関連サービスをまとめた図 データ プレーン 実際にコンテナが稼働する場所 コントロール プレーン コンテナの管理をする場所 ECS

    EKS EC2 Fargate
  16. #devio2020 16 今回喋る範囲 データ プレーン 実際にコンテナが稼働する場所 コントロール プレーン コンテナの管理をする場所 ECS

    EC2 Fargate
  17. #devio2020 タスク定義 17 ECSの構造解説(タスク定義、コンテナ定義) EC2 Fargate タスクメモリ タスクCPU or ⽣成

    コンテナ定義 イメージのURI ポートマッピング ヘルスチェック エントリポイント コマンド 作業ディレクトリ 環境変数 ログ設定 docker runで利⽤す るコマンドは⼀通り 利⽤可能
  18. #devio2020 クラスター サービス定義 サービス定義 サービス 18 ECSの構造解説(クラスター、サービス) 元ネタのタスク定義 タスクの数 デプロイ定義

    VPC、サブネット セキュリティグループ ALB(or NLB)定義 オートスケール設定 タスク タスク タスク タスク ・ ・ ・ ・ Application Load Balancer Amazon ECS タスク 定義 起動
  19. 19 そもそも ECSへのデプロイとは

  20. #devio2020 20 ECSへのデプロイ⽅法 ECS上でコンテナを実⾏する⽅法は⼤きく2つ ①タスク実⾏ • 主にFargateだと定期バッチ処理などで利⽤

  21. #devio2020 21 ECSへのデプロイ⽅法 ECS上でコンテナを実⾏する⽅法は⼤きく2つ ①タスク実⾏ • 主にFargateだと定期バッチ処理などで利⽤ ②ECSサービスの利⽤ • 常駐サービス(WebやAPIサーバなどで利⽤)

  22. #devio2020 22 ECSへのデプロイ⽅法 ECS上でコンテナを実⾏する⽅法は⼤きく2つ ①タスク実⾏ • 主にFargateだと定期バッチ処理などで利⽤ ②ECSサービスの利⽤ • 常駐サービス(WebやAPIサーバなどで利⽤)

  23. #devio2020 23 ECSへのデプロイのながれ タスク定義のイメージURIと、サービス定義のタスク定 義バージョンが変更されデプロイされる タスク定義 タスクメモリ タスクCPU コンテナ1 イメージのURI

    ポートマッピング ログ設定 コンテナ2 イメージのURI ポートマッピング ログ設定 サービス定義 ネットワーク VPC タスク定義 タスク定義バージョン オートスケール設定 新コンテナで デプロイ起動 ECR
  24. 24 ここまでで ECSデプロイの共通認識を 得ました

  25. #devio2020 25 ECSデプロイを極めるまで ECSデプロイの構造を理解する ECSデプロイのアンチパターンを理解する 開発環境にデプロイしてみる 本番環境にデプロイしてみる GitHub Actionsを使ってデプロイする IaC管理するリソースとの⽭盾に⽴ち向かう

    基礎 必須 応⽤
  26. 26 ⼀⾔ latest運⽤は やめましょう

  27. #devio2020 27 latest運⽤のメリット・デメリット メリット • デプロイにおいてタスク定義、サービス定義の更新が不要 • サービスの「新バージョンの強制デプロイ」で全て完結

  28. #devio2020 28 latest運⽤のメリット・デメリット メリット • デプロイにおいてタスク定義、サービス定義の更新が不要 • サービスの「新バージョンの強制デプロイ」で全て完結 デメリット •

    コンテナでエラー発⽣時、ソースコードとのトレーサビリ ティがとれない • どのバージョンが今本番環境で動いているのか確証がとれ ない • 適切なロールバック対処ができない
  29. #devio2020 29 推奨設定 https://dev.classmethod.jp/articles/ecr-immutable-image-tags/

  30. #devio2020 30 ECSデプロイを極めるまで ECSデプロイの構造を理解する ECSデプロイのアンチパターンを理解する 開発環境にデプロイしてみる 本番環境にデプロイしてみる GitHub Actionsを使ってデプロイする IaC管理するリソースとの⽭盾に⽴ち向かう

    基礎 必須 応⽤
  31. 31 開発環境へのデプロイ 開発環境へのデプロイで ECSデプロイの 基本的な流れをおさえましょう

  32. #devio2020 32 開発環境デプロイの構成 開発環境の前提条件 • AWSアカウントは⼀つ • デプロイ先のECSは同じ環境 • デプロイ⽅法はローリングアップデート

    • 承認ステージは無し
  33. #devio2020 33 開発環境デプロイの構成

  34. #devio2020 34 開発環境デプロイのパイプライン

  35. #devio2020 35 ビルド部分の詳細

  36. #devio2020 36 ビルド部分の構成(Buildspec.yml) build: commands: - REPOSITORY_URI=${ECR_URI} - IMAGE_TAG=${CODEBUILD_RESOLVED_SOURCE_VERSION} -

    docker build -t $REPOSITORY_URI:$IMAGE_TAG . post_build: commands: - docker push $REPOSITORY_URI:$IMAGE_TAG - echo "[{¥"name¥":¥"${CONTAINER_NAME}¥",¥"imageUri¥":¥"${REPOSITORY_U RI}:${IMAGE_TAG}¥"}]" > imagedefinitions.json artifacts: files: imagedefinitions.json
  37. #devio2020 37 ビルド部分の構成(Buildspec.yml) build: commands: - REPOSITORY_URI=${ECR_URI} - IMAGE_TAG=${CODEBUILD_RESOLVED_SOURCE_VERSION} -

    docker build -t $REPOSITORY_URI:$IMAGE_TAG . ${ECR_URI} • プッシュ先ECRのURI。CodeBuildの環境変数で⾃分で設定 ${CODEBUILD_RESOLVED_SOURCE_VERSION} • CodeBuildのソースがGitリポジトリの場合に⾃動的に設定される 環境変数 • ソースコードリポジトリのコミットIDが格納される
  38. #devio2020 38 ビルド部分の構成(Buildspec.yml) post_build: commands: - docker push $REPOSITORY_URI:$IMAGE_TAG 前段で設定したURIとイメージタグ(ソースリポジトリのコ

    ミットタグ)をつけて、ECRにプッシュ
  39. #devio2020 39 ビルド部分の構成(Buildspec.yml) - echo "[{¥"name¥":¥"${CONTAINER_NAME}¥",¥"imageUri¥":¥"${REPOSITORY_U RI}:${IMAGE_TAG}¥"}]" > imagedefinitions.json artifacts:

    files: imagedefinitions.json イメージ定義ファイル(imagedefinitions.json)の作成 ECSのタスク定義中のコンテナとECRのURIをマッピングする 情報 キー 値 例 name コンテナ名 php-container ImageURI imageUri 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/php- container:b5649704b0
  40. #devio2020 40 デプロイ部分の詳細

  41. #devio2020 41 デプロイ部分の詳細 CodePipelineのデプロイステージで以下を設定 • Action provider︓ECS • Input artifacts︓BuildArtifact

    • デプロイ対象のECSクラスター、ECSサービス • イメージ定義ファイル名 キー 値 例 name コンテナ名 php-container ImageURI imageUri 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/php- container:b5649704b0
  42. #devio2020 42 デプロイ時の挙動 デプロイ設定とイメージ定義ファイルの内容で⾚字部分 だけが更新される タスク定義 タスクメモリ タスクCPU コンテナ1 イメージのURI

    ポートマッピング ログ設定 コンテナ2 イメージのURI ポートマッピング ログ設定 サービス定義 ネットワーク VPC タスク定義 タスク定義バージョン オートスケール設定 新コンテナで ローリングデプ ロイ起動 CodePipeline
  43. #devio2020 43 全体の振返り

  44. #devio2020 44 TIPS1︓BuildKitの有効化 Buildspec.yml内で、環境変数 「DOCKER_BUILDKIT」を1に設定しよう︕ これにより、DockerのBuildKitが有効化され、ビルド の短縮化が⾒込める env: variables: DOCKER_BUILDKIT:

    "1"
  45. #devio2020 45 TIPS1︓BuildKitの有効化 https://dev.classmethod.jp/articles/codebuild-buildkit/

  46. #devio2020 46 TIPS2︓CodeBuildのローカルキャッシュ利⽤ CodeBuild内でのDockerレイヤーのローカルキャッ シュ機能を利⽤することで、ビルド時間の短縮化が⾒込 める

  47. #devio2020 47 TIPS2︓CodeBuildのローカルキャッシュ利⽤ https://dev.classmethod.jp/articles/codebuild-local-cache/

  48. #devio2020 48 リファレンス • イメージ定義ファイルのリファレンス • https://docs.aws.amazon.com/ja_jp/codepipeline/lat est/userguide/file-reference.html#pipelines-create- image-definitions •

    CodeBuildのビルド仕様に関するリファレンス • https://docs.aws.amazon.com/ja_jp/codebuild/latest /userguide/build-spec-ref.html
  49. 49 開発環境へのデプロイ 今あなたは ECSデプロイの 基本パターンを把握しました

  50. #devio2020 50 ECSデプロイを極めるまで ECSデプロイの構造を理解する ECSデプロイのアンチパターンを理解する 開発環境にデプロイしてみる 本番環境にデプロイしてみる GitHub Actionsを使ってデプロイする IaC管理するリソースとの⽭盾に⽴ち向かう

    基礎 必須 応⽤
  51. 51 本番環境へのデプロイ 本番環境へのデプロイで さらなる実践的な デプロイ⽅法を模索しましょう

  52. #devio2020 52 本番環境デプロイの構成 本番環境の前提条件 • AWSアカウントは開発環境のアカウントとわける • テスト済みのコンテナイメージを利⽤する • デプロイ⽅法としてBlue/Greenデプロイを採⽤する

    • 承認ステージを設置する
  53. #devio2020 53 本番環境デプロイの構成

  54. 54 本番環境へのデプロイ 本番環境でつかうイメージの 元ネタについて

  55. 55 別環境でのデプロイテストにおいて 流派が異なる2つの 考え⽅があります︕

  56. #devio2020 56 本番環境デプロイの構成 本番環境の前提条件 • AWSアカウントは開発環境のアカウントとわける • テスト済みのコンテナイメージを利⽤する • デプロイ⽅法としてBlue/Greenデプロイを採⽤する

    • 承認ステージを設置する ここ
  57. #devio2020 57 別の環境にコンテナをデプロイする⽅法2種 ①コードベースを同じにして再度ビルドする⽅法 • 開発環境にデプロイしたブランチから、ステージング、本 番環境⽤ブランチへマージしてプッシュ • 各環境⽤ブランチのプッシュをトリガーに対応する環境へ デプロイする⽅式

    ②テスト済みイメージを使い回す • 開発環境でテストしたイメージを使ってステージング環境、 本番環境にデプロイする
  58. #devio2020 58 別の環境にコンテナをデプロイする⽅法2種 ①コードベースを同じにして再度ビルドする⽅法 • 開発環境にデプロイしたブランチから、ステージング、本 番環境⽤ブランチへマージしてプッシュ • 各環境⽤ブランチのプッシュをトリガーに対応する環境へ デプロイする⽅式

    ②テスト済みイメージを使い回す • 開発環境でテストしたイメージを使ってステージング環境、 本番環境にデプロイする ビルドするタイミングにより異なった イメージがビルドされる可能性有
  59. #devio2020 59 Dockerfileにおけるイメージの同⼀性について Dockerfileのベースイメージは例えタグが同じでも中 ⾝が完全に同⼀という保証はない • タグの運⽤は各ベースイメージを提供している組織のポリ シーに依存 • 緊急性が⾼いセキュリティパッチなどはタグが変わらない

    場合も • そもそもlatestのみ提供のベースイメージもある FROM alpine:3.12.0
  60. #devio2020 60 別の環境にコンテナをデプロイする⽅法2種 ①コードベースを同じにして再度ビルドする⽅法 • 開発環境にデプロイしたブランチから、ステージング、本 番環境⽤ブランチへマージしてプッシュ • 各環境⽤ブランチのプッシュをトリガーに対応する環境へ デプロイする⽅式

    ②テスト済みイメージを使い回す • 開発環境でテストしたイメージを使ってステージング環境、 本番環境にデプロイする こちらの⽅法を推奨
  61. 61 本番環境へのデプロイ ECSのBlue/Greenデプロイって 実際なにがどう便利なのか︖

  62. #devio2020 62 本番環境デプロイの構成 本番環境の前提条件 • AWSアカウントは開発環境のアカウントとわける • テスト済みのコンテナイメージを利⽤する • デプロイ⽅法としてBlue/Greenデプロイを採⽤する

    • 承認ステージを設置する ここも重要な点
  63. #devio2020 63 ECS(Blue/Green)デプロイの素敵なところ① テストリスナーにより本番環境でリリース対象タスクの 動作確認が可能 • テストリスナーに任意のポート(例︓8080)を設定 • ALBのセキュリティグループでソースIPを限定 •

    本番トラフィックはオリジナル・バージョンに流しつつ、 同じデータと環境で、新バージョンの動作確認が可能
  64. #devio2020 64 ECS(Blue/Green)デプロイの素敵なところ② ルーティング切替の⽅法を柔軟に設定可能 • CodeDeployデプロイ設定で事前定義されたルーティング の切替設定を利⽤可能。またカスタム定義もOK

  65. #devio2020 65 ECS(Blue/Green)デプロイの素敵なところ③ 事故ったときの切り戻しが楽 • ロールバックがCodeDeployのコンソールから1クリック • ローリングデプロイ時のサービス定義更新、git revertし てからの再デプロイといった⼿間が不要

    事故った時ボタン 正式リリースボタン
  66. 66 本番環境へのデプロイ 各ステージの詳細の説明

  67. #devio2020 67 ソース部分の詳細

  68. #devio2020 version: 0.0 Resources: - TargetService: Type: AWS::ECS::Service Properties: TaskDefinition:

    <TASK_DEFINITION> LoadBalancerInfo: ContainerName: "sample-website" ContainerPort: 80 68 ソース部分の構成(appspec.yml) <TASK_DEFINITION> • プレースホルダ。デプロイステージで⾃動的に対象のタスク定義 のバージョンに書き換わる
  69. #devio2020 69 ソース部分の構成(taskdef.json) ECSのタスク定義 <IMAGE1_NAME> • 最初にタスク定義を登録 したのち、イメージURI をプレースホルダとして おく

    • CodePipelineの中のデ プロイステージで⾃動的 にURIが変更されタスク 定義が更新される { "executionRoleArn": "arn:aws:iam::629895769338:role/ecsTas kExecutionRole", "containerDefinitions": [ { "name": "sample-website", "image": "<IMAGE1_NAME>", "essential": true, "portMappings": [ { "hostPort": 80, "protocol": "tcp", "containerPort": 80 〜〜以下略〜〜
  70. #devio2020 70 承認部分の詳細

  71. #devio2020 71 承認部分の詳細 CodePipelineの承認ステージを利⽤して、デプロイパ イプラインを⽌める • 開発環境、ステージング環境、本番環境でアカウントをわけ る⼤きなメリットとして、権限管理が容易さがある • 承認の履歴やメッセージも残る

    • 承認プロセスはこの本番アカウントに対してアクセスするポ リシーを持った⼈のみが実施可能なため、⾃然とガバナンス が効く仕組みとなる
  72. #devio2020 72 デプロイ部分の詳細

  73. #devio2020 73 デプロイ部分の詳細 CodePipelineのデプロイステージで以下を設定 • Action provider︓ECS(Blue/Green) • 利⽤するCodeDeployのApplication Nameと

    deployment group • task def SourceArtifact︓taskdef.json • AppSpec SourceArtifact︓appspec.yaml • Input artifact︓ソースステージのECRイメージ名 • Placeholder text in task definition︓IMAGE1_NAME
  74. #devio2020 74 ECRイメージの更新トリガーにデプロイが動く︕

  75. #devio2020 75 リファレンス https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html

  76. 76 超素敵なBlue/Greenデプロイだけど ECS Blue/Greenデプロイには 制約もある

  77. #devio2020 77 必ず事前に⽬をとおしておく https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/userguide/deployment-type- bluegreen.html#deployment-type-bluegreen-considerations

  78. #devio2020 78 ECS(Blue/Green)デプロイの制約① Blue/Greenデプロイを使⽤する場合、Auto Scaling はサポートされない • Blue/Greenでのデプロイ中にスケーリングしたとき、 ルーティングができるイメージが沸かない… •

    回避策として、サービスのデプロイ前後で、Auto Scaling グループのスケーリングプロセスを停⽌〜再開させる⽅法 あり • パイプラインのデプロイ前後でCodeBuildなどで application-autoscalingのregister-scalable-target、 APIを叩く
  79. #devio2020 79 ECS(Blue/Green)デプロイの制約② キャパシティプロバイダーはサポートされない Fargate起動タイプ、またはCODE_DEPLOYデプロイ コントローラータイプのタスクは、DAEMONスケ ジューリング戦略をサポートしない

  80. 80 本番環境へのデプロイ もうあなたは ECSデプロイを思うがままに 操ることができます

  81. #devio2020 81 ECSデプロイを極めるまで ECSデプロイの構造を理解する ECSデプロイのアンチパターンを理解する 開発環境にデプロイしてみる 本番環境にデプロイしてみる GitHub Actionsを使ってデプロイする IaC管理するリソースとの⽭盾に⽴ち向かう

    基礎 必須 応⽤
  82. 82 GitHub Actionsを使ってデプロイする 最近流⾏りのGitHub Actions みなさんつかってますか︖ めっちゃ魅⼒的です︕︕

  83. #devio2020 83 ECSデプロイにおけるGitHub Actionsの魅⼒ AWS公式ActionsにECS関連のものが多い • configure-aws-credentials • AWSへアクセスするときの権限管理が簡単。最⾼ •

    amazon-ecr-login • ECRにログイン • amazon-ecs-render-task-definition • タスク定義にイメージURIを挿⼊ • amazon-ecs-deploy-task-definition • タスク定義をデプロイ
  84. #devio2020 84 amazon-ecs-render-task-definition デプロイ時に頻出するタスク定義のイメージURIの書き換えを Actionsで持っている。⾮常に便利

  85. #devio2020 85 amazon-ecs-deploy-task-definition タスク定義のデプロイ⇢サービス定義の更新が可能。また、 CodeDeployにも対応しているのでappspec.jsonを使った ECSデプロイ(Blue/Green)もできる

  86. 86 GitHub Actionsを使ってデプロイする 承認フローがなかったりするけれど 仕組みでカバーできるので ⼗分にプロダクションでも 検討の余地あり

  87. #devio2020 87 ECSデプロイを極めるまで ECSデプロイの構造を理解する ECSデプロイのアンチパターンを理解する 開発環境にデプロイしてみる 本番環境にデプロイしてみる GitHub Actionsを使ってデプロイする IaC管理するリソースとの⽭盾に⽴ち向かう

    基礎 必須 応⽤
  88. 88 IaC管理している場合 ECSのタスク定義やサービスを IaC(Infrastructure as Code)で 管理している⼈ こんな悩みありますよね︖

  89. #devio2020 89 IaCにおけるよくある事故 • CloudFormationでリソースを作る • なにかの拍⼦に誰かがWebコンソールから変更する • 次のスタック更新が正常に動かない(もしくは⼿動変 更分が巻き戻る)

    AWS CloudFormation template (JSON/YAML) Stack (リソース) Amazon EC2 変更するよ。キリッ あれ、何この差分︖ エラーになるねんけど
  90. #devio2020 90 ECSのデプロイでも同様のことがおこる • IaCで定義したサービス、タスク定義とアプリケー ションデプロイのライフサイクルは異なる • IaCのコードと整合性がとれない AWS CloudFormation

    template (JSON/YAML) Stack (リソース) ECS ⾃動デプロイやで タスク定義の イメージURI違うやん CodePipeline
  91. 91 結論 銀の弾丸はない

  92. #devio2020 92 解決案 解決案①︓IaCでの全管理を諦める 解決案②︓タスク定義はプレースホルダを利⽤して管理 し、アプリケーションデプロイサイクルにのせる 解決案③︓Terraformのlifecycleブロックを使ってリ ソース差分を無視する

  93. #devio2020 93 解決案① IaCでの全⾃動管理を諦める • 最初のプロビジョニングでのみ利⽤ • 更新はGUIを使うか変更点を⾃前で都度吸収

  94. #devio2020 94 解決案② タスク定義はプレースホルダを利⽤して管理し、アプリ ケーションデプロイサイクルにのせる • GitHub Actionsのamazon-ecs-render-task-definitionや、 CodeDeployのtaskdef.jsonを使うと、リポジトリにあるタ スク定義を元にして、デプロイサイクルのなかでイメージ

    URIを埋めることが可能 • イメージURI以外のタスク定義プロパティ(CPU、メモリ、 環境変数等)の変更も、アプリケーションデプロイと同じラ イフサイクルで本番環境にデプロイしていく
  95. #devio2020 95 解決案③ Terraformのlifecycleブロックを使ってリソース差分 を無視する • タスク定義のイメージURIや、サービスのタスクリビジョン のリソース差分を無視する設定にする • デプロイによりそれらプロパティが変わっても変更検知され

    ないし、TerraformでApplyできる︕ • CloudFormationではおそらくできない…
  96. 96 まとめ

  97. #devio2020 97 まとめ 各組織がもつポリシーやアプリケーション特性により ECSデプロイの理想の形は様々

  98. #devio2020 98 まとめ 各組織がもつポリシーやアプリケーション特性により ECSデプロイの理想の形は様々 コンテナ運⽤の原則におけるアンチパターンはある

  99. #devio2020 99 まとめ 各組織がもつポリシーやアプリケーション特性により ECSデプロイの理想の形は様々 コンテナ運⽤の原則におけるアンチパターンはある アンチパターンをさけつつ、効率良いデプロイパターン を構築するための参考にしていただければ幸いです

  100. 100 One more thing...

  101. #devio2020 101 ⾃⼰紹介 濱⽥孝治(ハマコー) •2017年9⽉⼊社(元独⽴系SIer) •AWS事業本部コンサルティング部 →New! CX事業本部 MADチーム

  102. #devio2020 102 まとめ

  103. #devio2020 103 まとめ

  104. #devio2020 104 まとめ サーバーレス コンテナ専⾨の 開発集団

  105. #devio2020 105 気になったらどうぞ クラスメソッド MAD

  106. セッション後はアンケートへのご協力をよろしくお願いします。 ご回答いただいた方には後日、資料を送付いたします。 SNS投稿にはこちらをお使いください。 #devio2020 イベントのポータルサイトはこちら https://classmethod.jp/m/devio_2020_connect/ ライブセッション録画もこちらから 視聴できます。 https://forms.gle/WeMoFinWLLzbGrA37 14:00〜14:45

    「あなたの組織に最適なコンテナデプロイ方法とは? 〜ECSにおけるデプロイ最新機能てんこ盛り〜」 のアンケートはこちらからお願いします。 Q&A Q&A