Developers Summit 2018 FUKUOKA 登壇資料
Fargate のプロダクション導入でFargate のプロダクション導入で得られた経験と知見得られた経験と知見Developers Summit 2018 FUKUOKADevelopers Summit 2018 FUKUOKA政谷 賢祐(@k_masatany)2018.09.06
View Slide
whoamiwhoami株式会社Fusic政谷 賢祐 @k_masatanyKensuke Masatani技術開発部 エンジニアhttps://k‑masatany.hatenablog.com/
色々サービスも展開しています
今回発表する内容は今回発表する内容はFusic が AWS の技術支援をする案件の中でFusic が AWS の技術支援をする案件の中で得られた知見をまとめたものです得られた知見をまとめたものです
支援先支援先
株式会社YAMAP さんhttps://yamap.co.jp/
YAMAP さんもエンジニアを募集しています。https://yamap.co.jp/
宣伝終わり宣伝終わり
お詫びお詫び7分という短い時間なので、AWSやECSの基本的な知識についての説明や補足はほとんどありません。
FargateFargate
AWS FargateAWS FargateAmazon ECS や EKS 上でコンテナを実行するためのサービス今年の 7 月に東京リージョンで利用可能に正確に言うとFargate 起動タイプと言うコンテナの実行に(自分たちが管理する)EC2が不要
これまでの EC2 起動タイプこれまでの EC2 起動タイプ
この EC2 はユーザーの管理下にあるこの EC2 はユーザーの管理下にある
コンテナだけ使いたいけどサーバー管理が必要コンテナだけ使いたいけどサーバー管理が必要
FargateFargateでどうなったかでどうなったか
Fargate 起動タイプFargate 起動タイプ
管理する EC2 がなくなった(EC2 自体は存在する)管理する EC2 がなくなった(EC2 自体は存在する)
いいことばかりではないですいいことばかりではないです
運用する中で見えてきた運用する中で見えてきたメリット/デメリットメリット/デメリット
メリットメリットクラスタマネジメントが不要になる(可能性がある)ブルー/グリーンデプロイ用の冗長リソースが不要すでに ECS 環境がある場合の移行コストはかなり低いデメリットデメリットハイスペックなインスタンスが必要な要件の場合は使えないEFS や S3 のマウントができない(2018 年 9 月 6 日現在)単純な比較をするとコストが高い問題発生時の切り分けが難しい
メリットメリット
クラスタマネジメントが不要になるクラスタマネジメントが不要になる(可能性がある)これまではEC2の状況も管理する必要があったこれまではEC2の状況も管理する必要があったクラスタインスタンスの空きリソースの確認各インスタンスへのタスクの分散インスタンスのスケールとタスクのスケールの調整
クラスタマネジメントが不要になるクラスタマネジメントが不要になる(可能性がある)Fagateの場合はFagateの場合はそもそも管理するインスタンスが無い1タスク1インスタンスなので分散は考えなくてよいアプリケーションオートスケーリングで比較的簡単にスケールイン/アウトできる
ブルー/グリーンデプロイ用のブルー/グリーンデプロイ用の冗長リソースが不要冗長リソースが不要EC2起動タイプブルー/グリーンデプロイを実行するためには一時的に2倍の容量が必要だったFargate起動タイプ新しいコンテナイメージでタスクを起動するだけでOK
すでに ECS 環境がある場合のすでに ECS 環境がある場合の移行コストはかなり低い移行コストはかなり低い既に ECS を使っている環境があれば、ほぼノーコストでFargateへの移行ができると思う実際にEC2起動タイプからFargate起動タイプへ移行した際の検証~移行までの実働時間は2 ~ 3日程度
デメリットデメリット
ハイスペックなインスタンスがハイスペックなインスタンスが必要な要件の場合は使えない必要な要件の場合は使えないFargate で用意されているリソースは今の所下記の通りCPU メモリ0.25 vCPU 0.5 GB、1 GB、および 2 GB0.5 vCPU 最低1 GB および最大4 GB (1 GB 単位)1 vCPU 最低2 GB および最大8 GB (1 GB 単位)2 vCPU 最低4 GB および最大16 GB (1 GB 単位)4 vCPU 最低8 GB および最大30 GB (1 GB 単位)
ハイスペックなインスタンスがハイスペックなインスタンスが必要な要件の場合は使えない必要な要件の場合は使えないCPU自体もC系に比べ貧弱なので、数値以上に処理能力が落ちるCPU メモリ0.25 vCPU 0.5 GB、1 GB、および 2 GB0.5 vCPU 最低1 GB および最大4 GB (1 GB 単位)1 vCPU 最低2 GB および最大8 GB (1 GB 単位)2 vCPU 最低4 GB および最大16 GB (1 GB 単位)4 vCPU 最低8 GB および最大30 GB (1 GB 単位)
EFS や S3 のマウントができないEFS や S3 のマウントができない(2018 年 9 月 6 日現在)(2018 年 9 月 6 日現在)永続化データを保持する為に EFS や S3 を使いたいEC2起動タイプであれば、ベースのインスタンスに手を加えることで実現できるFargate起動タイプではベースのインスタンスに手を加えることができないため、EFS等をマウントすることができない。将来的には起動オプションに付いてくると思っている
単純な比較をするとコストが高い単純な比較をするとコストが高い単純に同じスペックのEC2に比べ、時間当たりの単価が高い(1.5倍くらい)RIも無いため、さらに価格差が開くただ、時間の経過と共にコストは下がっていくと思うRIも来ると思う(願望)
問題発生時の切り分けが難しい問題発生時の切り分けが難しい開発者がログインできるサーバーがないので、検証中に SSH ‑> dockerᅠexec ができない踏み台コンテナを用意するなどの細工が必要安定するまでは中々しんどいと思う
他にも制約がちらほら他にも制約がちらほらawsvpcモードなのでsubnet内のIPの数以上のタスクを起動できないENIがtask一つ一つにアタッチされるタスクの起動時間はそれほど早くない
考えることは多いですが考えることは多いですがきちんと考えて構築すればきちんと考えて構築すれば運用はぐっと楽になります運用はぐっと楽になります
まとめまとめFargate は「銀の弾丸」ではない今の所、制約は色々と付いているが、要件が噛み合えば、運用を意識しなくて良い環境を作れるサービスの成熟が非常に待ち遠しいサービスだと思った
謝辞謝辞
株式会社 YAMAP 様株式会社 YAMAP 様支援業務で得られた内容を発表することを支援業務で得られた内容を発表することを許可していただきありがとうございます許可していただきありがとうございます
Fusic CO.,LTD.ご静聴ありがとうございましたご静聴ありがとうございました株式会社 Fusic はテクノロジーが大好きなエンジニアを募集していますhttps://fusic.github.iohttps://fusic.github.io