「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

40
AWSを活用して少人数で 複数のサービスを運用するコツ 株式会社 ソニックガーデン 安達 輝雄

description

 

Transcript of 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

Page 1: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

AWSを活用して少人数で複数のサービスを運用するコツ

株式会社 ソニックガーデン安達 輝雄

Page 2: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

自己紹介

開発しているサービス

@interu 安達輝雄

アプリケーションの開発+

インフラの構築/運用

http://interu.hatenablog.com

Page 3: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

SonicGarden

エンジニア:5名

Page 4: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

開発/運用サービス一覧自社サービス

パートナーシップモデル

・データ販売サイト・ドキュメント配信・Flash動画生成サービス

・植物栽培キッド販売サイト・SEO関連サービス         ・・・etc

Page 5: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

いくつものサービスを

たった5人のエンジニアでどうやって

開発 / 運用 してる?

Page 6: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

Answer.

DevOpsand

AWS/Herokuand

自動化/共通化/効率化

Page 7: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

:5 : 5

利用比率

Page 8: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

今日はJAWS-UG。

Herokuの話はすべて割愛!

Page 9: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

そろそろ本題に

SonicGardenはサービス運用について

どのように考えているか?

Page 10: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

SonicGardenのMission

開発 > 運用

Page 11: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

SonicGarden流サービス運用ポリシー

構築/運用コストは抑えつつ安定したサービスを提供する

Page 12: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

運用コストをどのように抑える?

Page 13: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

構築/運用コストを抑える

航空業界の

LCC的発想

Page 14: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

構築/運用コストを抑える

● 機体を1つのシリーズに統一● 研修/教育コストを抑えれる● パイロットなら誰でも運転できる

※ 機体毎に免許取得が義務付けられている

● システムの自動化● チェックイン等を全てシステム化● 通常フローで人を介すサービスをしない

LCC

Page 15: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

構築/運用コストを抑える

● OS/ディストロを統一

SonicGarden

- ミドルウェア導入/設定- セキュリティ設定など基本設定を行ったテンプレートAMIを作成し、アプリのみを入れ替えてサービス

構築/運用コストの削減

Page 16: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

安定したサービスの提供

● システムの自動化

SonicGarden

- EBSスナップショットの取得- 実データをS3にバックアップ- AMIの定期作成 ...etc

安定した品質を全サービスで提供

Page 17: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

LCC的発想以外にも...

Page 18: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

新しいディストロの採用

● 新しいパッケージを利用可能● アプリケーションF/Wに追従しやすい

● パッケージがメンテされている● Security Fix / Bug Fixをすぐに適用できる

運用コストを削減

2年で全乗り換え

Page 19: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

ディストロの置き換えは大変では?

Page 20: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

Railsのバージョンアップに伴いAPサーバを新しいディストロに切り替え

Ruby 1.8.7 ⇛ 1.9.3

Page 21: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

リプレースまでの過程

(0)新環境構築

(1)新環境単体でテスト

(2)新環境に本番データを利用して動作確認

(3)新環境を本番DBに接続し限定ユーザで試用

(4)新環境を本番環境に切り替え

EBSの活用

EC2の活用

Page 22: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

リプレースまでの過程

(0)新環境構築

(1)新環境単体でテスト

(2)新環境に本番データを利用して動作確認

(3)新環境を本番DBに接続し限定ユーザで試用

(4)新環境を本番環境に切り替え

Page 23: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

リプレースまでの過程

(0)新環境構築

(1)新環境単体でテスト

(2)新環境に本番データを利用して動作確認

(3)新環境を本番DBに接続し限定ユーザで試用

(4)新環境を本番環境に切り替えELB/Route53/Elastic IPの活用

Page 24: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

その他、効率化を目的に

いくつか取り組んでいることを紹介

Page 25: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

① バックアップ

Page 26: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

① バックアップ

データ/ログのバックアップを取得するのは当たりまえ

バックアップ処理中のエラー検出も当たりまえ

Page 27: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

① バックアップ

本当にバックアップを取得できてる??

Page 28: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

① バックアップバックアップしたものが

存在するかを確認する方が確実

だけど・・・複数サービスを運用していると

全てを確認するのは一苦労

Page 29: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

① バックアップ

AWS Backup Checker指定した期間内のバックアップが存在するかをAWSのAPIを利用してチェック - EBS snapshot - S3 - AMI

Page 30: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜
Page 31: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

アプリケーションログ、システムログ、アプリケーションデータ

データディスクのスナップショット

Page 32: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

Coming Soon.

Page 33: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

② AWS障害対策

Page 34: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

AWSは障害が少なくて非常に助かってます!

が、

障害を0にはできないのが現実

Page 35: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

過去に遭遇した大規模障害

● 2011年4月

us-eastでEBS障害http://interu.hatenablog.com/entry/20110425/1303731515

● 2012年6月

us-eastで電源障害・API障害

Page 36: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

障害からの学び

EBS障害が発生すると● EBS bootのAMIは起動不可● EBS上のデータへのアクセス不可

Page 37: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

障害からの学び

 ⇛ DR対策できあがり

● Instance storeタイプのAMIを

別Regionに作成しておく● データも別RegionのS3にバックアップ

Page 38: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

で、何を効率化したの?

Page 39: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

● 定期EBS snapshot取得スクリプト● EBS boot型AMI作成スクリプト● Instance store型AMIを別Regionに

作成するスクリプト ※要AKIの準備

https://github.com/interu/management_utilities

Page 40: 「AWSを活用して少人数で複数のサービスを運用するコツ」〜jawsug in nagoya〜

Fin.