#Speee_TGIF
Fargateで夢は⾒られるのか?Speee エンジニアTGIFUZOU事業部 畑中 悠作
View Slide
About me• Yusaku Hatanaka (@hatappi)• Speee, Inc• Ruby, Go, TypeScript, etc.• 煎り⼤⾖が好き
今⽇の主役
ECSとは?• Amazon Elastic Container Service• コンテナを良い感じに管理してくれる
ECSでの登場⼈物• task definition• どのcontainerを⽴てるかやボリュームの追加などを⾏う docker-compose.ymlを作るイメージに近い• task• タスク定義のインスタンス化したもの• service• 指定した数のタスクを実⾏、管理する• cluster• taskを配置できるインスタンスの集まり
ECS最適化されたAMIを指定したAutoScalingGroupのDesiredCapacityをあげるタスクを実⾏AutoScalingGroupのDesiredCapacityを0にするバッチの実⾏開始
タスクが起動する下回りのインスタンスを管理しないといけない
AutoScalingGroupで起動するAMIをメンテナンスしていかないと
更新されない
出来るだけメンテナンスするものは減らしたい
Fargateとは?• 新しいサービスというよりはECSのEC2と並ぶ新しい起動タイプという捉え⽅がよいかも• ECSにて下回りのインスタンス群の管理を⾃分でしなくてもよくなる
FargateIUUQTBXTBNB[PODPNKQCMPHTOFXTBXTGBSHBUFBQSPEVDUPWFSWJFX• ユーザーが意識して管理するのはタスクの管理• クラスター管理や使⽤時の最適化も必要ない• ⾃分の使いたいメモリ、vCPUの組み合わせを指定するだけ• Fargate⾃体はECSに組み込まれているので新しくAPIを覚えていくみたいな必要はない
ECS最適化されたAMIを指定したAutoScalingGroupのDesiredCapacityをあげるコンテナを⽴ち上げてタスクを実⾏AutoScalingGroupのDesiredCapacityを0にするバッチの実⾏開始
価格は?• 1vCPUごとで1時間あたり0.0632 USD 1GBごとでメモリは1時間あたり0.0158 USD• 1秒あたりの最低1分 docker pullの開始からタスクの終了までが計算される
CPUとメモリの組み合わせCPU メモリの値0.25 vCPU 0.5 GB、1 GB、および 2 GB0.5 vCPU 1 GB、2 GB、および 3 GB1 vCPU最低 2 GB および最⼤8 GB (1 GB 単位)2 vCPU最低 4 GB および最⼤16 GB (1 GB 単位)4 vCPU最低 8 GB および最⼤30 GB (1 GB 単位)
監視周り• Service単位ではCPU, メモリ使⽤率はCloudWatchメトリクスからとることは出来る• 実⾏しているコンテナごとにメトリクスを取りたい!
監視周り• Datadog (https://www.datadoghq.com/)• IntegrationによってCloudWatchで取得できるメトリクスを収集できる• コンテナ単位はタスクメタデータを介して取得することが出来る• お⾦はかかるIUUQTBXTBNB[PODPNKQBCPVUBXTXIBUTOFXBXTGBSHBUFQMBUGPSNWFSTJPO
タスク定義
最近のFargate
まとめ• Fargateについて紹介しました• Fargateを使うことで実⾏されるタスクに集中できる• 今稼働しているインスタンスのスペックをそのままもってくると割⾼かも• コンテナに割り当てるリソースだけを意識すれば良いのスペックの⾒直しをしても良いかも• 夢を⾒る前に現実を⾒るのも⼤事