迷える子羊に捧げるコンテナ環境徹底比較 〜ECS、Fargate、EKSは何が得意で不得意か〜

 迷える子羊に捧げるコンテナ環境徹底比較 〜ECS、Fargate、EKSは何が得意で不得意か〜

「いったい、どれつかったら良いねん…」
2018年12月20日、遂に東京リージョンにEKSがやってきました。これにより、AWSにおいてコンテナを本番運用するための選択肢はさらに広がりました。

ただ、選択肢が広がったことで、どれが自分の組織に最適なのか悩まれるお客様も増えています。

このセッションでは、2019年4月時点において、コンテナワークロードをAWSで本番運用する方法と各選択肢について、真正面から解説いたします。これからコンテナの運用始めてみようと思っている方から、すでに使っているけどさらなる活用方法を知りたい方にまで、AWSにおけるコンテナの全てをお届けいたします。

C47bda32c8455a59471cd7e19c32c074?s=128

濱田孝治

April 06, 2019
Tweet

Transcript

  1. ,

  2. & .-*  (2  ,0'/4"# 51  83;7 +)

    !&%$9( 6:  Attention
  3. 3 J I2 1 • • A 9 7 •

    0 •
  4. 4 @hamako9999

  5. 5 #cmdevio2019

  6. 6 PXRI N G h a    •

    L SG ebc • bc g • TQS DMbcE eC C CPVTQSbcC bc • WbcE C C C A C C • fiCd bcE C C C C
  7. 7 .! • $#   & • $(,)2 4

    •    /'16)  & • +0-*%5& • $#/'    3"
  8. 8  

  9. 9 

  10. 10       

  11. 11         

    
  12. 12       

  13. 13  E CE H 2

  14. 14

  15. 15        

  16. 16   $#!  $#! "#   $#!

       
  17. 17    

  18. 18 A

  19. 19     

  20. 20 A !

  21. Photo by Fancycrave on Unsplash  21

  22. 22    

  23. 23 )"372+01  Server Server Host OS 72+%  Guest

    OS Guest OS App A App B App A App B ' OS372+ Host OS kernel Container A Container B )"372+ #!6/ .,Guest OS- $&!* 72+%   OS( 8472OS ) " 5
  24. 24 • •

  25. 25      !

  26. 26 , HX DF • UM L P T UO

    U • P T UO H B W • , , • , H E B • ,
  27. 27      $docker run -v `pwd`:/source

    jagregory/pandoc -f markdown -t docx sample.md -o sample.docx
  28. 28 Docker HUB User Pandoc Official Pandoc Docker Pandoc Docker

    HUB Push Docker Run Pull
  29. 29 • D 1 • U • D 1 B

    U • H B U • H H
  30. 30       !

  31. 31   • O • S •  •

  32. 32 S  • • • O  • •

       ! 
  33. 33         

       !
  34. 34 • D • • a D docker image build

    Dockerfile Docker image
  35. 35        FROM haskell:8.0

    # install latex packages RUN apt-get update -y ¥ && apt-get install -y -o Acquire::Retries=10 --no-install-recommends ¥ texlive-latex-base ¥ texlive-xetex ENV PANDOC_VERSION “1.19.2.1” ENV PANDOC_VERSION "1.19.2.1" # install pandoc RUN cabal update && cabal install pandoc-${PANDOC_VERSION} WORKDIR /source ENTRYPOINT ["/root/.cabal/bin/pandoc"]
  36. 36 D D

  37. 37     2 • CloudFormation • Terraform

    Dockerfile • EC2User Data • Ansible • CodeDeploy • CircleCI
  38. 38     https://docs.docker.com/develop/develop-images/dockerfile_best-practices

  39. 39 https://dev.classmethod.jp/tool/docker/docker-build-meetup-1/

  40. 40 A !

  41. 41     ! " "$*# %)&' 

    (    
  42. 42    

  43. 43      

  44. 44        

  45. 45   !   #"   

    
  46. 46 E

  47. 47 A g M a • E Ie • D

    • D IL c C • b D IL • • G D
  48. 48 E m • G z • b gCt i

    • c o m k • mG b • • a r m n e r Ir DA M L
  49. 49 B D

  50. 50         

    !
  51. 51 https://12factor.net/ja/

  52. 52 https://dev.classmethod.jp/cloud/aws/black-belt-docker-on-aws-2017/ 2 1

  53. 53 •   • e D • c •

     • r • k •   • B c • D o
  54. 54      

  55. 55 A !

  56. 56     Amazon ECS Amazon ECR

  57. 57    Amazon ECS Amazon ECR  

  58. 58  Amazon ECR

  59. 59 • szC m R I c bRSWa • egI

    c a RWaItl c yk o • mH MD IE I i E SrIyk u • a n EA H Amazon ECR
  60. 60  Amazon ECS

  61. 61 

  62. 62    Amazon ECS    

    
  63. 63         

       
  64. 64 B G B P • P • • B

    P • V S L • B P • B C
  65. 65 !#  (, #97%* • #" !# +. 

    2) • ##1/865$& 4 • 03#" !# '-
  66. 66         

            ECS EKS EC2 Fargate
  67. 67    Amazon ECS ECS on EC2

  68. 68    Amazon ECS ECS on EC2 ECS

    on Fargate
  69. 69    Amazon ECS ECS on EC2 ECS

    on Fargate EKS on EC2
  70. 70    Amazon ECS ECS on EC2 ECS

    on Fargate EKS on EC2 EKS on Fargate
  71. 71  Amazon ECS

  72. 72 S E L IM • l MI d •

    W g • E L ehia • E L A L C ia • M Ig • g • I c Amazon ECS
  73. 73 th S a C L a • us C

    L d • aI nc • a o g • a M W g • ELnc • nc • L e im Amazon ECS l S I L A r I L us
  74.   74       

    !
  75.  75 U EC2 Fargate   E CI E

    S R docker run E P
  76. 76 S S E Nginx C S awslogs S CloudWatch

    Logs S 1 SC
  77.     77 NPL B A CE B

        Application Load Balancer Amazon ECS  
  78. 78      Application Load Balancer 

      443HTTPS 80HTTP 80HTTP 80HTTP
  79. 79 

  80. 80 ea G N F • C ea d b

    G • g • K • i 8
  81. 81 K • • • E W a S C

    A
  82. 82 A • o s • o r • l

    t C K c a if cS b WA E f e a m n
  83. 83 https://eksworkshop.com/introduction/architecture/architecture_control/ <kubernetes > REST API kubernetes etcd Pod Controller

    Manager Scheduler →EKS 8
  84. 84 <kubernetes > kubelet 8 kube-proxy Pod Pod Node →EKS

    EC2 Fargate https://eksworkshop.com/introduction/architecture/architecture_worker/
  85. 85 KC ECS EKS  IAM IAM E OSS kube2iam,

    kiam   Scheduler   EC2  CloudWatch Datadog Prometheus  CloudWatch Logs Fluentd  CodePipeline S helm, kustomize, spinnaker
  86. 86 

  87. 87 • F C K E • e S C

    K a • E A →E W EC2
  88. 88 S • E C F S • F F

    F aW 1 2 • F • A • F
  89. 89

  90. 90    Amazon ECS

  91. 91   

  92. 92 A !

  93. 93  Amazon ECS

  94. 94  

  95. 95 2 2

  96. 96 opkL •   • e e dW e

    H e S F ae Atn L 3 3 3 3 3 L •     • 3 3 l • i u •    • s hg d c S xF C Ar m • L Stn L F
  97. 97 • CE • a W 2a • E U

    2 GE P • e E S A C F 2 • P • P
  98. 98      https://dev.classmethod.jp/cloud/aws/fargate-lower-price/

  99. 99    

  100. 100 SK • 2 • 8 8 • E C

    O
  101. 101  kubernetes    

  102. 102   !      

    
  103. 103      u • n b

    e • tr • 8 s • k
  104. 104    

  105. 105    

  106. 106     Fargate 

  107. 107     Fargate  Amazon ECS

  108. 108       Fargate  k8s

      Amazon ECS
  109. 109       Fargate  k8s

      Amazon ECS
  110. 110 

  111. 111 A

  112. 112  • SW SW • A • SW

  113. 113      

  114. 114  E CE H 2

  115. 115     

  116. 116        @hamako9999