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

Repro_Tech_Meetup__1_Docker.pdf

 Repro_Tech_Meetup__1_Docker.pdf

4e59ed159ecf71ef3981cfb65a62617e?s=128

Tatsuya Touma

July 27, 2018
Tweet

Transcript

  1. Repro とECS Repro とECS の今と昔 の今と昔 Repro Tech Meetup #1

    Docker 2018-07-27 當間竜也@kei_q #reprotech
  2. 発表の趣旨 発表の趣旨 話すこと 話すこと ECS の変化と自社に取り込んだ機能を時系列で紹介 当時の状況や課題 検証・活用した技術と現状 話さないこと 話さないこと

    docker そのものの技術 container 運用 各技術の詳細 未来の話
  3. 弊社紹介 弊社紹介 repro.io

  4. 自己紹介 自己紹介 當間 竜也 @kei_q 2016 年11 月入社 入社後障害一次対応とリリース担当 その後インフラ中心

    今は権限周りや開発の支援
  5. ECS について ECS について Amazon Elastic Container Service コンテナ管理サービス 2015-04

    ECS 初登場 Amazon EC2 Container Service is Now Generally Available
  6. task de nition container やその関連の設計図 task task de nition の実体化されたも

    の service 特定の数のtask を同時に実行、管 理するサービス container instance cluster に登録されているEC2 instance cluster task を配置できるcontainer instance のグループ ECS 概要 ECS 概要 https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html
  7. None
  8. ruby/go でのwebapp uentd batch 処理 並列テスト環境 検証環境 社内ツール oneshot task

    ほかにもいろいろ clusters : 27 services : 100 tasks : たくさん containers : task の 倍以上 Repro でのECS 利用状況 Repro でのECS 利用状況 2016-06 弊社でECS の利用開始
  9. 今と昔 今と昔 2016-06 ~ 2018-07 topics 2016-07-13 Task IAM Role

    2016-08-11 ApplicationLB 2016-08-15 ECR Tokyo Region 2016-12-29 Task Placement Policy 2017-06-07 Scheduled Tasks 2017-09-07 NetworkLB 2017-11-14 awsvpc network mode 2018-04-09 c5/m5 instance 2018-06-12 DAEMON SET 2018-07-04 Fargate Tokyo Region
  10. ECS task の権限分離 ECS task の権限分離 昔: Instance Pro le

    昔: Instance Pro le 権限がごった煮 instance の管理権限 + task の起動権限 + task 自体 に必要な権限 今: Task IAM Role 今: Task IAM Role 直接task にrole を割り当てられるように 2016-07-13~ Help Secure Container-Enabled Applications with IAM Roles for ECS Tasks
  11. InstancePro le で実行 必要以上の権限が行 使できてしまう task IAM Role で実行 自身のtask

    に必要な 権限だけがある Task IAM Role Task IAM Role
  12. None
  13. port の動的割当による衝突回避 port の動的割当による衝突回避 昔: ClassicLB 昔: ClassicLB port が衝突しないように注意して設計・運用

    今: ApplicationLB 今: ApplicationLB dynamic port mapping でport の衝突回避 2016-08-11~ https://aws.amazon.com/jp/blogs/aws/new-aws-application-load-balancer/
  14. ClassicLB port は固定 同一のcontainer instance ではport が 衝突 ApplicationLB 異なるport

    もOK 同一port を使用する task が同居できる Dynamic Port Mapping Dynamic Port Mapping
  15. 自前のdocker registry からの開放 自前のdocker registry からの開放 昔: 自前のdocker registry 昔:

    自前のdocker registry EC2 のinstance を立てて自前で管理 今: ECR(Amazon Elastic Container Registry) 今: ECR(Amazon Elastic Container Registry) 自前のprivate registory を管理しなくてよくなった 2016-08-15~ Tokyo Region は2016-08-15 に利用可能に push 時にawslabs のcredential helper を利用
  16. task の柔軟な配置によるcluster の整理 task の柔軟な配置によるcluster の整理 昔: Cluster を細かく分離 昔:

    Cluster を細かく分離 task の起動を分けるためにcluster 単位で分離 instance の種類ごとにcluster を分けて運用してい た 今: task 配置戦略でtask を配置 今: task 配置戦略でtask を配置 配置制約によってtask がどのcontainer instance に 配置されるか制御 2016-12-29~
  17. task placement policy の図 task placement policy の図 https://aws.amazon.com/jp/blogs/compute/introducing-amazon-ecs-task-placement-policies/

  18. 定期実行タスクのdocker 化 定期実行タスクのdocker 化 昔: 秘伝のタレ化したinstance 上で動くCron 昔: 秘伝のタレ化したinstance 上で動くCron

    docker 化されてないinstance にdeploy して動作 今: Scheduled Tasks 今: Scheduled Tasks 一定時間ごとにECS のtask を定期実行 定期実行する処理の環境が明確に 2017-06-07~ Amazon ECS Now Supports Time and Event-Based Task Scheduling
  19. uentd cluster のload balancing uentd cluster のload balancing 昔: Route53

    で複数DNS record 登録 昔: Route53 で複数DNS record 登録 task の起動・終了時にDNS record を更新 le bu er の関係でservice を使わずtask を管理 今: NLB 今: NLB task placement policy でdeploy 改善したので合わ せてNLB を利用するように 2017-09-07~ New Network Load Balancer – E ortless Scaling to Millions of Requests per Second | AWS News Blog NLB で uentd のforward パケットを分散させてみた - Qiita
  20. ECS task ごとのnetwork interface ECS task ごとのnetwork interface 昔: bridge/host

    network mode 昔: bridge/host network mode コンテナインスタンスのnetwork interface に依存 今: awsvpc network mode 今: awsvpc network mode task ごとにENI がattach される port の衝突回避, security group の分離 検証中 2017-11-14~ Amazon ECS Introduces Task Networking for Containers
  21. 新しいinstance type によるコスト低下と性能向上 新しいinstance type によるコスト低下と性能向上 昔: 当時使えるinstance を用途に合わせて利用 昔:

    当時使えるinstance を用途に合わせて利用 コンピューティング最適化やメモリ最適化インスタ ンスなど c4, r4, m4, t2, etc... 今: container instance にc5/m5 instance の使用 今: container instance にc5/m5 instance の使用 性能が向上し単価が安価に 2018-04-09~ (c5/m5 instance) Amazon EC2 C5 Instances Are Now Available in Seoul and Tokyo Regions
  22. デーモンタスク起動の自動化 デーモンタスク起動の自動化 昔: UserData によるdatadog-agent task の起動 昔: UserData によるdatadog-agent

    task の起動 instance の起動時にtask を起動するscript を仕込む 必要がある 今: DaemonSet によるtask の起動・維持 今: DaemonSet によるtask の起動・維持 ECS 側でcontainer instance の数に合わせてtask を 維持してくれる 2018-06-12~ Amazon ECS Adds Daemon Scheduling
  23. container instance からの開放 container instance からの開放 昔: container instance 上でのtask

    の起動 昔: container instance 上でのtask の起動 container instance の管理 ecs-agent やdocker, その他yum update や security group, IAM など 今: fargate 検証中 今: fargate 検証中 一部社内用のツールで試験中 2018-07-04~ AWS Fargate 東京リージョン サービス開始のお知らせ | Amazon Web Services ブログ
  24. fargate fargate pros container instance からの開放 cons 性能が厳しい コストが厳しい awslogs

    driver しかつかえない 本番環境で実運用している方ぜひお話させてください
  25. おさらい おさらい 今回出てきたECS 関係のtopics 2016-07-13 Task IAM Role 2016-08-11 ApplicationLB

    2016-08-15 ECR Tokyo Region 2016-12-29 Task Placement Policy 2017-06-07 Scheduled Tasks 2017-09-07 NetworkLB 2017-11-14 awsvpc network mode 2018-04-09 c5/m5 instance 2018-06-12 DAEMON SET 2018-07-04 Fargate Tokyo Region
  26. これから これから EKS service discovery Code Pipeline AWS Batch Beanstalk

    X-Ray EFS ecs-cli ECR lifecycle 他にもいろいろ AWS 以外のcontainer 関連技術
  27. 最後に 最後に いかにして問題をとくか より この繰り返しが今になり明日になる 問題を理解すること 計画を立てること 計画を実行すること 振り返ってみること

  28. None