Slide 1

Slide 1 text

Backlogのインフラを支える のインフラを支える AWS活用事例 活用事例 Geeks Who Drink in Tokyo -AWS & 神楽坂 Edition-

Slide 2

Slide 2 text

自己紹介 自己紹介 ・山崎 ・山崎 毅 毅 ( やまさき やまさき つよし つよし) @revsystem ・担当 ・担当    2017年 年3月 月~ Backlog SRE チーム チーム ・経歴 ・経歴    - SIerにてオンプレ環境でのインフラ設計 にてオンプレ環境でのインフラ設計/構築 構築/運用 運用    - SIerにて にてSE( という名の何でも屋 という名の何でも屋 )

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

話す内容 話す内容 ・本日話すこと ・本日話すこと - Backlogの成長と、使用している の成長と、使用しているAWSの技術 の技術    - 環境が増えると起きること 環境が増えると起きること - インフラの成長とともに取り組む改善について インフラの成長とともに取り組む改善について ・本日話さないこと ・本日話さないこと    - Backlogの実装のこと の実装のこと

Slide 5

Slide 5 text

Backlog の成長と の成長と 使用している 使用しているAWSの技術 の技術

Slide 6

Slide 6 text

※2017年 年11月現在 月現在

Slide 7

Slide 7 text

有料契約数の推移 有料契約数の推移 2006年に 年に Backlog の正式版をリリース の正式版をリリース 2017年 年11月時点で 月時点で 有料契約数は 有料契約数は6,000、ユーザー数は 、ユーザー数は 800,000を突破。 を突破。 https://nulab-inc.com/ja/blog/backlog/pr-1711-backlog-6000-mini-game/

Slide 8

Slide 8 text

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連携

Slide 9

Slide 9 text

フロント構成 フロント構成 EC2 Instance EC2 Instance web app EC2 Instance EC2 Instance web app ・ ・Redisを用いてセッション情報を共有 を用いてセッション情報を共有 ・ ・web、 、appサーバともに、アプリケーションの サーバともに、アプリケーションの 負荷状況をみてスケールアウト 負荷状況をみてスケールアウト/スケールアップ スケールアップ を実施 を実施 ・ ・Auto Scalingは使用していない は使用していない ・・・ ・・・ ・・・ ・・・

Slide 10

Slide 10 text

DB,ストレージ構成 ストレージ構成 ・ ・DB    - MySQL Auroraで運用 で運用    - ゼロダウンタイムパッチ機能より、サービスを停止せずにメンテナンスを実施 ゼロダウンタイムパッチ機能より、サービスを停止せずにメンテナンスを実施 ( 完全にゼロダウンタイムではないため、念のためメンテナンスは夜間に実施している 完全にゼロダウンタイムではないため、念のためメンテナンスは夜間に実施している ) ・ ・Git / WebDAV & SVN    - ストレージ領域として ストレージ領域としてEBSを使用 を使用    - 容量追加や 容量追加やEBSサイズの最適化など、必要に応じて調整を実施 サイズの最適化など、必要に応じて調整を実施

Slide 11

Slide 11 text

AWS cloud ECSへのデプロイ へのデプロイ ECR ECS git push @jenkins-deploy-xxx ・ ・git pushや や Typetalk botの のwebhookを利 を利 用 用 ・ ・Jenkinsで で container imageを をpull

Slide 12

Slide 12 text

増える運用環境 増える運用環境 2011年 年 : オンプレミスから オンプレミスからAWSへ移行。 へ移行。3環 環 境で開始 境で開始 2013年 年 : 4環境 環境 2015年 年 : 5環境 環境 2017年 年 : 7環境 環境 現在のインスタンス数は 現在のインスタンス数は200台弱。 台弱。

Slide 13

Slide 13 text

環境が増えると 環境が増えると 起きること 起きること

Slide 14

Slide 14 text

運用環境が増えると起きること 運用環境が増えると起きること ・ ・AWS 旧サービスと新サービスの混在によるメンテナンスの非効率性 旧サービスと新サービスの混在によるメンテナンスの非効率性    - EC2 Classicと とVPC    - EBS standardと とgp2以降 以降 ・リソースの上限に達することによる、一時的な運用遅延 ・リソースの上限に達することによる、一時的な運用遅延    - リージョン単位での起動可能なインスタンス数の上限 リージョン単位での起動可能なインスタンス数の上限    - Route53 登録可能ホスト数の上限 登録可能ホスト数の上限 ・インスタンス作成のたびに、同じ作業の繰り返し ・インスタンス作成のたびに、同じ作業の繰り返し などなど などなど

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Infrastructure as Code

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

AWSの進化を追いかけながら の進化を追いかけながら 改善を続けています 改善を続けています

Slide 19

Slide 19 text

インフラエンジニア募集 インフラエンジニア募集 https://nulab-inc.com/ja/about/careers/

Slide 20

Slide 20 text

No content