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

Backlogのインフラを支えるAWS活用事例 / Geeks Who Drink Nulab...

Backlogのインフラを支えるAWS活用事例 / Geeks Who Drink Nulab AWS Edition

2017年11月10日にヌーラボ東京オフィスで開催した「Geeks Who Drink AWS Edition」の登壇資料です。Backlogのインフラを支えるAWS活用事例をご紹介しました。

株式会社ヌーラボ

November 16, 2017
Tweet

More Decks by 株式会社ヌーラボ

Other Decks in Technology

Transcript

  1. 自己紹介 自己紹介 ・山崎 ・山崎 毅 毅 ( やまさき やまさき つよし

    つよし) @revsystem ・担当 ・担当    2017年 年3月 月~ Backlog SRE チーム チーム ・経歴 ・経歴    - SIerにてオンプレ環境でのインフラ設計 にてオンプレ環境でのインフラ設計/構築 構築/運用 運用    - SIerにて にてSE( という名の何でも屋 という名の何でも屋 )
  2. 話す内容 話す内容 ・本日話すこと ・本日話すこと - Backlogの成長と、使用している の成長と、使用しているAWSの技術 の技術    -

    環境が増えると起きること 環境が増えると起きること - インフラの成長とともに取り組む改善について インフラの成長とともに取り組む改善について ・本日話さないこと ・本日話さないこと    - Backlogの実装のこと の実装のこと
  3. 有料契約数の推移 有料契約数の推移 2006年に 年に Backlog の正式版をリリース の正式版をリリース 2017年 年11月時点で 月時点で

    有料契約数は 有料契約数は6,000、ユーザー数は 、ユーザー数は 800,000を突破。 を突破。 https://nulab-inc.com/ja/blog/backlog/pr-1711-backlog-6000-mini-game/
  4. AWS cloud Virtual Private Cloud 主なインフラ構成と 主なインフラ構成とAWS技術 技術 VPC public

    subnet VPC private subnet web CloudFront EBS nat gateway S3 CloudWatch Lambda app Git, WebDAV,SVN... Route53 Typetalk連携
  5. フロント構成 フロント構成 EC2 Instance EC2 Instance web app EC2 Instance

    EC2 Instance web app ・ ・Redisを用いてセッション情報を共有 を用いてセッション情報を共有 ・ ・web、 、appサーバともに、アプリケーションの サーバともに、アプリケーションの 負荷状況をみてスケールアウト 負荷状況をみてスケールアウト/スケールアップ スケールアップ を実施 を実施 ・ ・Auto Scalingは使用していない は使用していない ・・・ ・・・ ・・・ ・・・
  6. DB,ストレージ構成 ストレージ構成 ・ ・DB    - MySQL Auroraで運用 で運用  

     - ゼロダウンタイムパッチ機能より、サービスを停止せずにメンテナンスを実施 ゼロダウンタイムパッチ機能より、サービスを停止せずにメンテナンスを実施 ( 完全にゼロダウンタイムではないため、念のためメンテナンスは夜間に実施している 完全にゼロダウンタイムではないため、念のためメンテナンスは夜間に実施している ) ・ ・Git / WebDAV & SVN    - ストレージ領域として ストレージ領域としてEBSを使用 を使用    - 容量追加や 容量追加やEBSサイズの最適化など、必要に応じて調整を実施 サイズの最適化など、必要に応じて調整を実施
  7. AWS cloud ECSへのデプロイ へのデプロイ ECR ECS git push @jenkins-deploy-xxx ・

    ・git pushや や Typetalk botの のwebhookを利 を利 用 用 ・ ・Jenkinsで で container imageを をpull
  8. 増える運用環境 増える運用環境 2011年 年 : オンプレミスから オンプレミスからAWSへ移行。 へ移行。3環 環 境で開始

    境で開始 2013年 年 : 4環境 環境 2015年 年 : 5環境 環境 2017年 年 : 7環境 環境 現在のインスタンス数は 現在のインスタンス数は200台弱。 台弱。
  9. 運用環境が増えると起きること 運用環境が増えると起きること ・ ・AWS 旧サービスと新サービスの混在によるメンテナンスの非効率性 旧サービスと新サービスの混在によるメンテナンスの非効率性    - EC2 Classicと

    とVPC    - EBS standardと とgp2以降 以降 ・リソースの上限に達することによる、一時的な運用遅延 ・リソースの上限に達することによる、一時的な運用遅延    - リージョン単位での起動可能なインスタンス数の上限 リージョン単位での起動可能なインスタンス数の上限    - Route53 登録可能ホスト数の上限 登録可能ホスト数の上限 ・インスタンス作成のたびに、同じ作業の繰り返し ・インスタンス作成のたびに、同じ作業の繰り返し などなど などなど
  10. 改善内容 改善内容 - 運用 運用 ・ ・Infrastructure as Code の実施

    の実施    - Terraform, Ansible, Serverspec, awspec ・運用環境をより安定性の高いものへ移行 ・運用環境をより安定性の高いものへ移行    - EC2, ALB , RDS for Aurora, ElasticCash, VPC ・ ・AWSの情報を定期的に収集 の情報を定期的に収集    - Lambda function でメンテナンスやセキュリティ情報を取得 でメンテナンスやセキュリティ情報を取得    - Typetalkに通知してチームで共有 に通知してチームで共有
  11. Infrastructure as Code - Serverspec ( サーバの構成をテスト サーバの構成をテスト )  

      - 変更点がレポジトリに 変更点がレポジトリに push された場合に された場合にJenkins にてテストを実施 にてテストを実施     - ミドルウェアやアプリケーションの設定値が正しいか ミドルウェアやアプリケーションの設定値が正しいか     - ディスクのマウント先が正しいか ディスクのマウント先が正しいか     - 必要なデーモンが起動しているか 必要なデーモンが起動しているか - awspec ( AWSリソースの設定をテスト リソースの設定をテスト )     - RDSの構成チェックやパラメータグループの設定 の構成チェックやパラメータグループの設定     - EIPが正しいインスタンスにアタッチされているか が正しいインスタンスにアタッチされているか     - EBSが正しいインスタンスにアタッチされているか が正しいインスタンスにアタッチされているか     - Route53に意図した に意図したDNSレコードが登録されているか レコードが登録されているか