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

わたしたちはEKS運用の夢をみるか(vs ECS) / EKS vs ECS Fargate

muryoimpl
September 27, 2019

わたしたちはEKS運用の夢をみるか(vs ECS) / EKS vs ECS Fargate

muryoimpl

September 27, 2019
Tweet

More Decks by muryoimpl

Other Decks in Programming

Transcript

  1. 比較の前提条件 • AWS の ECS (Fargate) と EKS でおおよそ同じようなインフラ、アプリケーションを 構築して比較してみます

    • 一部構成が異なる部分がありますのでその差分について目をつむってください • ECR で管理した同一の Docker image を使用するものとします • AWS インフラの構築は CloudFormation(YAML) を使用します ◦ JSON は行数が増えるので避けました • ソースはこちら: https://github.com/muryoimpl/ecs-eks-sample
  2. 構築ソース(YAML)での比較 Fargate (CloudFormation yaml): 1051行 EKS(CloudFormation + kube object の

    yaml): 918行(fluentd含む) EKS のほうはログにCloudWatch Logs への集約のために別途 fluentd の container を登録する必要があり一手間かかる。kubernetes用fluentd 用 object はGitHubの fluentd/fluentd-kubernetes-daemonset に用意されているので一から作成する必要は ない。 CloudFormationよりkubernetes object のほうが複雑さがない分わかれば書きやすい
  3. 料金(Fargate) Fargateの料金表: https://aws.amazon.com/jp/fargate/pricing/ 1vCPU 0.05056USD/時
 1GiB 0.00553USD/時
 Webサーバ1台 t2.medium 相当(2vCPU,4GiB)

    を30日間(24時間 * 30日 = 720時間) 使用と考えると… 
 (2 * 0.05056 * 720) + (4 * 0.00553 * 720) = 72.8064 + 15.9264 = 88.7328USD 
 9月26日 15:17 UTC の 1ドル 107.68円 で計算すると、107.68 * 88.7328 = 9554.7479円 
 t2.medium 1台で 9555円くらい。Rails 実行を考えると、mirationタスクの実行で更に費用が発生する 

  4. 料金(EKS) EKSの料金: https://aws.amazon.com/jp/eks/pricing/ EC2の料金: https://aws.amazon.com/jp/ec2/pricing/on-demand/ EKS 利用料が $0.20/時(隠蔽されているクラスタ管理部分のインスタンス代については無料) t2.medium 利用料が

    $0.0608/時 t2.medium 相当を30日間(24時間 * 30日 = 720時間) 利用すると考えると… 
 (0.0608 * 720) + (0.20 * 720) = 43.776 + 144 = 187.776 USD 
 9月26日 15:17 UTC の 1ドル 107.68円 で計算すると、187.776 * 107.68 = 20219.7197円 

  5. 最後に 設定ファイルについてはあまり大きな行数差はなかった。CloudFormation よりは Kubernetes object のほうがパターンが少ない分書きやすそう。ただし、ECS と比較す るとログ集約分の手間がかかる。 お金の面でいうと ECS

    のほうがかなり安いので、新規で作成しはじめるとなるととりあ えず ECS で作成して必要に駆られたときに EKS or 他の Kubernetes 環境に移行す る、というのがよさそう
  6. その他参考リンク集 • CloudFormation の template ◦ https://github.com/awslabs/aws-cloudformation-templates • EKS: AWS

    マネジメントコンソール の開始方法 (eks用YAMLテンプレあり) ◦ https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/getting-started-console.html • fulentd/fluentd-kubernetes-daemonset ◦ https://github.com/fluent/fluentd-kubernetes-daemonset