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

EC2からFargate+ECSへの道のり/ EC2 to ECS And Fargate

EC2からFargate+ECSへの道のり/ EC2 to ECS And Fargate

Amazon Game Tech Conference 2021
https://gamingtechnight.connpass.com/event/208653/

tsutsumitakahiro

May 11, 2021
Tweet

Other Decks in Technology

Transcript

  1. 自己紹介
 ワンダープラネット株式会社
 タノシムスタジオ 開発グループ長 
 
 堤 孝広 (つつみ たかひろ)


    
 
 
 • 2009年からゲームサーバーの開発とインフラ(AWS)運用を担当 
 • 国内・海外のゲームアプリのサーバーリードを複数経験 
 

  2. (C)WonderPlanet Inc. All Rights Reserved. (C)WonderPlanet Inc. All Rights Reserved.

    会社概要
 名 称 ワンダープラネット株式会社 / WonderPlanet Inc. 
 
        [名古屋本社]  愛知県名古屋市中区錦3-23-18 ニューサカエビル5F 
       [東京オフィス] 東京都品川区東五反田5-23-7 五反田不二越ビル5F 
 
 楽しいね!を、世界中の日常へ。 
 
 事業 エンターテインメントサービス事業 
 
 設 立 2012年9月3日(10月1日創業) 
 
 代表者 代表取締役社長CEO 常川 友樹 
 
 従業員 198名(2021年2月末時点) 
 名称 所在地 ミッション 事業内容 設立 代表者 従業員数
  3. (C)WonderPlanet Inc. All Rights Reserved. ミッション
 楽しいね!を、
 
 世界中の
 


    日常へ。
 私たちの使命は、世界中の一人でも多くの人々の日常に、家族や友達と「楽しいね!」と笑いあえるひとときを届け ることです。
 
 国・言語・文化・年齢・性別などあらゆる壁を越えて誰もが楽しめるプロダクト・サービスを創り、コミュニケーションを 通じた「笑顔」を世界の隅々まで広げていきます。

  4. 背景 - 弊社のインフラ運用
 • 長期にわたるEC2での運用実績
 ◦ AutoScalingを利用した需要に応じたスケール 
 ◦ リザーブドインスタンスやスポットインスタンスを使ったコスト削減

    
 
 • サーバーアプリ開発担当者とインフラ担当者が同一
 ◦ ひとくくりにサーバーチームの責務の分担になっている 
 

  5. 課題1. インフラ運用にあたって考えることが沢山ある
 • リクエスト増加に対応するスケーリングの手動実行
 ◦ push通知や運営施策によって急激にリクエスト数が変動する 
 
 • AMIの管理


    ◦ デプロイ時のAMIのスナップショット管理 
 ◦ 使わなくなったAMIのメンテナンス 
 
 • EC2インスタンスタイプの検討
 ◦ 台数xスペックx料金のパラメータ 
 ◦ 新規インスタンスタイプの利用検討 

  6. コンテナ運用にあたってのAWSでの選択肢
 • Amazon ECS + Amazon EC2
 ◦ ECSでコンテナをデプロイし、コンテナ実行環境はEC2で構築 


    
 • Amazon ECS + AWS Fargate
 ◦ ECSでコンテナをデプロイし、コンテナ実行環境はFargateが管理 
 
 • Amazon EKS
 ◦ Kubernetesでコンテナをデプロイする 

  7. コンテナ運用にあたってのAWSでの選択肢
 
 • Amazon ECS + Amazon EC2
 ◦ ECSでコンテナをデプロイし、コンテナ実行環境はEC2で構築

    
 
 • Amazon ECS + AWS Fargate → 採用
 ◦ ECSでコンテナをデプロイし、コンテナ実行環境はFargateが管理 
 
 • Amazon EKS
 ◦ Kubernetesでコンテナをデプロイする 

  8. ECS+Fargateを選んだ理由
 • EKSは学習コストが高いと感じた
 ◦ リリースまで6ヶ月
 ◦ Kubernetesに詳しいメンバーがいなかった 
 
 •

    ECS+Fargateは管理が簡単そう!!
 ◦ インスタンスのリソ ースを意識せずにスケーリングができる 
 ◦ コンテナのデプロイはECSに任せる 

  9. ポイント1/5: Dockerfileの作成
 • まずはアプリケーションのコンテナ化に集中して取り組む
 ◦ つまりDockerfileを作成する
 ◦ まずは動かすことを目標に標準的なベースイメージを選ぶと良い 
 →チューニングはあとでも大丈夫

    
 
 • 1つのコンテナで1つのプロセスにする
 ◦ コンテナを別にすることで、プロセスごとにスケールすることが可能に 
 ◦ ログをプロセスごとに分離することができる 

  10. コスト(料金)に関しての比較と考察
 • コスト比較(2vCPU, 4GB)
 ◦ EC2(c5.large): 0.107$/時間
 ◦ Fargate: 0.12324$/時間


    
 • 考察
 ◦ 単純な比較ではコスト増だが、かわりに管理コストが減る 
 ◦ 開発に集中することでプロダクトの品質向上に繋がる 
 ◦ FargateはvCPUとMemoryの組み合わせが柔軟なためコスト削減の余地がある 
 *リージョンはアジアパシフィック(東京)を参照(2021/04時点)

  11. 今後考えていること
 • さらなる自動化
 ◦ AWSコンソールからのデプロイ作業 
 →AWS CodeDeployを利用してデプロイの自動化 
 ◦

    負荷ベースのオートスケール
 →AutoScalingを設定
 ◦ ログをフィルタリングしてコストを削減するためにFireLensを導入 
 
 • ECS+Fargate構成は社内他プロジェクトでの利用を検討
 ◦ PHPベースのプロジェクトでも大部分の知見を流用できる 

  12. まとめ
 • ECS+Fargateの導入事例を紹介
 ◦ 弊社の事情と導入に至った経緯 (サーバーアプリ/インフラエンジニアが同一) 
 ◦ 導入あたってのポイント5つ
 


    • Fargateを使ってみた実情
 ◦ 運用がとてもシンプルになる
 ◦ EC2インスタンスタイプやAMIの管理が不要になる 
 ◦ インフラ運用・検討コストを開発のリソースにまわせる 
 
 • 今後は社内の他プロジェクトでも利用を検討