SlideShare uma empresa Scribd logo
1 de 30
AWS クラウドで構築する
スマホアプリ バックエンド
JAWS-UG 長野支部キックオフミーティング
NSEG 第52回勉強会
GeekLab.Nagano
自己紹介
@kaki_k
よく使う構成
構成図
AWS Cloud
Elastic Load
Balancing
Mobile
Client
Route 53
ロードバランサー
+ SSL証明書
iOS/Android
アプリ
DNS
アプリケーション
サーバー
Amazon EC2
Amazon S3
画像、音声、映像
Amazon RDS
DBサーバー
(MySQL)
Amazon SESEmail
Amazon SNS
AWSアカウント割合
cloudpack
50%
直アカウント
50%
• cloudpackさん、直アカウントで半々。
• 対企業向けは cloudpackさんにお願いしてます。

(プロジェクトのクライアントが大企業さんの場合)
• 定額見積り、24時間監視、構成起動、SSL証明書の手配/年更新まで
をお願いできるのがメリット。
サーバー設計
• 予定がなくても、いつでもできるよう考慮しておく
• 2台目以降へは rsync でプログラム領域をコピー
スケールアウト
Snapshot
AMI
EC2 Instance
EC2 Instance
1台目 2台目
・・・
再起動あり
再起動なしで取れるが
止めた方が確実
rsync
Auto Scaling
ELB
• 2台目はクローンなので複製されるとまずいものを、外に出す
- もちろん RDB
同じサーバー内にRDBをインストールしない
Amazon RDSを利用する
- セッション情報
これはフレームワークがRDBに出すのでOKだった
- ログのディレクトリをプロジェクトの下に置かない
- ユーザーがアップロードするバイナリーファイル(画像等)
をサーバー内に保存しない
Amazon S3を利用する
• バッチ(cron) は、1台目でのみ走るようにする
アプリケーション
サーバー
Appサーバー
Mobile
Client
iOS/Android
アプリ
Amazon EC2
Amazon S3
画像、音声、映像
Amazon RDS
DBサーバー
(MySQL)
Amazon SESEmail
AWS SDK for Python
(boto)
普通に
SMTPサーバー
として指定
IPアドレス指定
量が少ない場合は
GMail、Google Apps
で済ませてしまう場合もあり
Appサーバーのインストール
• 最初はインストール手順をRedmineのWikiに書いていたが
• インストール手順書が書けるものは、コード化できる
• Chef Soloを導入
Client
chef-solo
アプリケーション
サーバー
Amazon EC2
コーディング
検証
実行
knife solo prepare
knife solo cook
knife solo prepare
knife solo cook
バックアップ
スナップショット
AWS Cloud
アプリケーション
サーバー
Amazon EC2
EBS Volume
Snapshot
AMI
EC2 Instance
• cloudpackアカウント
- 1日1回、2世代、AWSのスナップショット機能で取っ
てくれる
- cloudpackさんに泣きついて、スナップショットから
インスタンスを起動してもらった経験あり
• 直アカウント
- バックアップの重要性は身に染みた
- cloudpackさんと同じことをしたくて、Python boto
のスクリプトをcronに仕込んだ
サーバー監視
• cloudpackアカウントのものは、Nagiosのメールが来る
- 24時間監視は素晴らしい。       のメールも来る
• 直アカウントのもの
- 「サーバーが落ちてるんだけど」と、ある日突然言われる
- ZABBIXでアラートメール
- GUIベースなので導入は楽
- コードベースでGit管理する場合は、Nagiosの方がいいか
も
- 最初は簡単な Web監視から始める
- 徐々に ZABBIX client を入れて監視中
or
ZABBIXによるサーバー監視
パフォーマンス監視
http://newrelic.com/application-monitoring
New Relic
• New Relicの導入
- 指定ライブラリを読み込むため、2行程度挿入するだ
け(Pythonの場合)
• New Relicでできること
- 時間がかかっているトランザクション(URL)一覧
- トランザクションのタイムライン(SQLの時間)
- 発行されたSQLステートメントの一覧(回数、時間)
のここが凄い
Transactions
Trace details
ログ保存
ログ保存の必要性
• セキュリティ基準で
- ログの1年間保存を要求されている
- もちろん、これだけならサーバ内でのスクリプトで退
避で済む
• スケールイン
- サーバ台数が減るということは、縮退したサーバのログ
が失われる
EC2
各種ログ Fluentd Client
アプリケーションサーバー ログ収集サーバー
Fluentd Server
EC2
S3 bucket
Disk
アクセスログの解析
Fluentd + ElasticSearch + Kibana
アクセスログの可視化
まとめ
• AWSでのインフラは、段階として以下のように発展する
- どう構築するか
- どう運用するか(バックアップ、監視、ログ保存)
• 自分はインフラエンジニアではないと思っているが、

インフラの知識は必要
- かつインフラで忙殺される
• #nseg、#glnagano でインフラ勉強会があったら

参加したい
• JAWS-UG 長野支部がないことは気になっていた

(ここでも陸の孤島?)奔走された方々に感謝いたします
おわり

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

TensorRT Inference Serverではじめる、 高性能な推論サーバ構築
TensorRT Inference Serverではじめる、 高性能な推論サーバ構築TensorRT Inference Serverではじめる、 高性能な推論サーバ構築
TensorRT Inference Serverではじめる、 高性能な推論サーバ構築
 
AWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティスAWSでDockerを扱うためのベストプラクティス
AWSでDockerを扱うためのベストプラクティス
 
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
チャットコミュニケーションの問題と心理的安全性の課題 #EOF2019
 
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
 
コスト最適化概論
コスト最適化概論コスト最適化概論
コスト最適化概論
 
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
EC2のストレージどう使う? -Instance Storageを理解して高速IOを上手に活用!-
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設老朽化したオンプレ環境をクラウドへ移設
老朽化したオンプレ環境をクラウドへ移設
 
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
OpenLineage による Airflow のデータ来歴の収集と可視化(Airflow Meetup Tokyo #3 発表資料)
 
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
20180704 AWS Black Belt Online Seminar Amazon Elastic File System (Amazon EFS...
 
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
Windowsマシン上でVisual Studio Codeとpipenvを使ってPythonの仮想実行環境を構築する方法(Jupyter notebookも)
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
イマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターンイマドキ!ユースケース別に見るAWS IoT への接続パターン
イマドキ!ユースケース別に見るAWS IoT への接続パターン
 
Machine learning CI/CD with OSS
Machine learning CI/CD with OSSMachine learning CI/CD with OSS
Machine learning CI/CD with OSS
 
SpringBootTest入門
SpringBootTest入門SpringBootTest入門
SpringBootTest入門
 
20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...
20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...
20191120 AWS Black Belt Online Seminar Amazon Managed Streaming for Apache Ka...
 
Firebaseを利用するためにGCPとCloud IAMの 基本を理解しよう
Firebaseを利用するためにGCPとCloud IAMの 基本を理解しようFirebaseを利用するためにGCPとCloud IAMの 基本を理解しよう
Firebaseを利用するためにGCPとCloud IAMの 基本を理解しよう
 
DatadogでAWS監視やってみた
DatadogでAWS監視やってみたDatadogでAWS監視やってみた
DatadogでAWS監視やってみた
 
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design PatternAWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
 
データ収集の基本と「JapanTaxi」アプリにおける実践例
データ収集の基本と「JapanTaxi」アプリにおける実践例データ収集の基本と「JapanTaxi」アプリにおける実践例
データ収集の基本と「JapanTaxi」アプリにおける実践例
 

Destaque (6)

Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装
 
アプリエンジニアがReactNativeに乗り換えたら
アプリエンジニアがReactNativeに乗り換えたらアプリエンジニアがReactNativeに乗り換えたら
アプリエンジニアがReactNativeに乗り換えたら
 
React Native 入門
React Native 入門React Native 入門
React Native 入門
 
 〜デザイン初心者向け〜
 デザイン時に気をつけると幸せになれる事
 〜デザイン初心者向け〜
 デザイン時に気をつけると幸せになれる事 〜デザイン初心者向け〜
 デザイン時に気をつけると幸せになれる事
 〜デザイン初心者向け〜
 デザイン時に気をつけると幸せになれる事
 
Webデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼうWebデザインのセオリーを学ぼう
Webデザインのセオリーを学ぼう
 
色彩センスのいらない配色講座
色彩センスのいらない配色講座色彩センスのいらない配色講座
色彩センスのいらない配色講座
 

Semelhante a AWS クラウドで構築するスマホアプリ バックエンド

NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャNoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
Yasuhiro Matsuo
 
Amazon Web Services(AWS)とcloudpack について
Amazon Web Services(AWS)とcloudpack についてAmazon Web Services(AWS)とcloudpack について
Amazon Web Services(AWS)とcloudpack について
Hiroyasu Suzuki
 
2011-04-21 クラウド勉強会
2011-04-21 クラウド勉強会2011-04-21 クラウド勉強会
2011-04-21 クラウド勉強会
Koichiro Doi
 
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
都元ダイスケ Miyamoto
 
20121221 AWS re:Invent 凱旋報告
20121221 AWS re:Invent 凱旋報告20121221 AWS re:Invent 凱旋報告
20121221 AWS re:Invent 凱旋報告
真吾 吉田
 

Semelhante a AWS クラウドで構築するスマホアプリ バックエンド (20)

NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャNoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
NoSQL on AWSで作る最新ソーシャルゲームアーキテクチャ
 
Amazon Web Services(AWS)とcloudpack について
Amazon Web Services(AWS)とcloudpack についてAmazon Web Services(AWS)とcloudpack について
Amazon Web Services(AWS)とcloudpack について
 
What's new with Serverless
What's new with ServerlessWhat's new with Serverless
What's new with Serverless
 
AWS Black Belt Techシリーズ AWS SDK
AWS Black Belt Techシリーズ AWS SDKAWS Black Belt Techシリーズ AWS SDK
AWS Black Belt Techシリーズ AWS SDK
 
AWS Update 2011/10
AWS Update 2011/10AWS Update 2011/10
AWS Update 2011/10
 
アマゾンクラウドの真価
アマゾンクラウドの真価アマゾンクラウドの真価
アマゾンクラウドの真価
 
cloudpack導入資料(2010/12/24版)
cloudpack導入資料(2010/12/24版)cloudpack導入資料(2010/12/24版)
cloudpack導入資料(2010/12/24版)
 
Amazon Web Services 最新事例集
Amazon Web Services 最新事例集Amazon Web Services 最新事例集
Amazon Web Services 最新事例集
 
アマゾンにおけるAWSを用いた社内システム移行事例
アマゾンにおけるAWSを用いた社内システム移行事例アマゾンにおけるAWSを用いた社内システム移行事例
アマゾンにおけるAWSを用いた社内システム移行事例
 
2011-04-21 クラウド勉強会
2011-04-21 クラウド勉強会2011-04-21 クラウド勉強会
2011-04-21 クラウド勉強会
 
20140621 july techfesta (JTF2014) 突発**むけAWS
20140621 july techfesta (JTF2014) 突発**むけAWS20140621 july techfesta (JTF2014) 突発**むけAWS
20140621 july techfesta (JTF2014) 突発**むけAWS
 
Go azure keynote-クラウド利用のあらゆるニーズに応える windows azure の進化
Go azure keynote-クラウド利用のあらゆるニーズに応える windows azure の進化Go azure keynote-クラウド利用のあらゆるニーズに応える windows azure の進化
Go azure keynote-クラウド利用のあらゆるニーズに応える windows azure の進化
 
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or ServerlessRunning Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
Running Java Apps with Amazon EC2, AWS Elastic Beanstalk or Serverless
 
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
 
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めようAWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
AWS Black Belt Online Seminar AWSサービスを利用したアプリケーション開発を始めよう
 
[要約] Building a Real-Time Bidding Platform on AWS #AWSAdTechJP
[要約] Building a Real-Time Bidding Platform on AWS #AWSAdTechJP[要約] Building a Real-Time Bidding Platform on AWS #AWSAdTechJP
[要約] Building a Real-Time Bidding Platform on AWS #AWSAdTechJP
 
MongoDB on AWSクラウドという選択
MongoDB on AWSクラウドという選択MongoDB on AWSクラウドという選択
MongoDB on AWSクラウドという選択
 
DevAx::connect はじめました
DevAx::connect はじめましたDevAx::connect はじめました
DevAx::connect はじめました
 
サーバレス × AWS SAM × DRにおけるTIPS
サーバレス × AWS SAM × DRにおけるTIPSサーバレス × AWS SAM × DRにおけるTIPS
サーバレス × AWS SAM × DRにおけるTIPS
 
20121221 AWS re:Invent 凱旋報告
20121221 AWS re:Invent 凱旋報告20121221 AWS re:Invent 凱旋報告
20121221 AWS re:Invent 凱旋報告
 

AWS クラウドで構築するスマホアプリ バックエンド