みてねのMeetup #2 for サーバーサイド/SRE September 5, 2018
みてねSREチームの取り組みみてねのMeetup #2 forサーバーサイド/SRESeptember 5, 2018Isao Shimizu
View Slide
About me清水 勲 @isaoshimizu株式会社ミクシィヴァンテージスタジオ みてね事業部 開発グループ2011年8月 中途入社、SNS mixiのアプリ運用チーム2014年4月 モンスターストライクのサーバーエンジニア、SRE2018年2月 みてねSREAWS Summit, TechLION, hbstudy, Internet Week, Think Japan IBM Code Dayなどの登壇Qiita, Medium, Software Design記事執筆記事:大規模インフラのSREから社内スタートアップへの挑戦。ベテランエンジニアのキャリアの作り方 2
「みてね」とは3
4
300万人が使う No.1家族アルバムアプリ「みてね」公式ページ https://mitene.us/特徴子供の写真や動画を共有、整理家族だけで安心して使えるアルバムアプリフォトブック、DVDの販売2015年4月 サービス開始2017年7月 英語版提供開始2018年7月 ユーザー数 300万人突破5
この約半年、SREチームがやってきたこと6
OS、ライブラリのアップデート古いAmazon Linuxを最新にImageMagickOpenCV7
ミドルウェアのアップデートAmazon ElastiCacheRedisConnection増問題tcp-keepaliveが起因していた可能性Redis 3.2以降の場合 tcp-keepaliveがデフォルトで設定される(300秒)8
ログ転送の最適化Fluentd Aggregatorの撤廃よく詰まる問題が発生していた設定のチューニングに追われる日々Amazon Kinesis Data Firehoseの利用S3へのログ保存がより簡単に9
CDN最適化APIアクセスをCDN経由に署名付きURLの効率化ワイルドカードを使った一括取得URL自体をクライアントサイドでキャッシュ海外展開を目指すアプリで実装したセキュアで高速な画像配信の話TTL調整長くて良いものはより長く10
IPv6対応(結果:未対応)転送、レイテンシーの高速化を狙う対象はAPI、画像、動画アクセス(CloudFront、S3)端末、OS、キャリアとの相性により接続不能な環境があった本格的に対応した事例があったらぜひ教えてください11
Amazon Aurora移行RDS(MySQL 5.6)からの移行クエリのキャパシティが大幅に増えたディスクサイズ制限からの開放年間におけるピークも無事に乗り切った12
開発環境の再整備ステージング環境の整備エンジニアの増員により、さらに必要になったCircleCI最適化Ubuntu -> Amazon LinuxのDockerイメージ利用契約プラン見直し、並列度の調整Schedule Jobの活用1日1回 bundle outdatedで古いgemの検出simplecovを使ったテストカバレッジ計測13
Ruby、Gemのアップデート2.2.7 -> 2.3.7 -> 2.4.4までアップデートさらにアップデートし続けていく環境によっては最新版数多くのgemもアップデートRailsアップデートは進行中(4系 -> 5系へ)14
Amazon S3最適化Amazon S3 Transfer Accelerationの利用主に海外からのアップロードの高速化バージョニングのライフサイクル設定不要なバケットの削除15
分析基盤のリニューアル(進行中)EC2上でのスクリプト実行やCron実行から、Luigiを使ったワークフロー管理へhttps://github.com/spotify/luigiマネージドサービスを中心に設計インフラのコード化、デプロイの自動化などもあわせて16
Terraformへ移行Terraform https://www.terraform.io/手軽なCloudWatch Alarmから移行し、IAM、Security Groupmiam、piculetから移行(さらに管理対象を増やしていく)CIとの連携実装済みGitHub Pull Request作成で terraform plan、マージでterraform applytfnotifyの活用 https://github.com/mercari/tfnotifyworkspaceは使わずディレクトリで分ける構成17
コンテナ環境への移行(進行中)AWS OpsWorksから移行Amazon ECS, EKSの検証コンテナイメージのビルドフロー構築AWS CodeBuild積極活用Docker HubからAmazon ECRへ移行開発環境のコンテナ化本番環境のコンテナ化(Kubernetes利用予定)18
その他Nginx gzip対応JSONレスポンスの圧縮AWS SDKのアップデートNew Relic Mobile導入AWSメンテ対応(Redis)不要なEBS、RDS、EC2インスタンス、スナップショットの削除19
これからもさらなる改善を続けていきます!20
Join our team!!https://mitene.us/recruit21