O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
【初心者向けWebinar】
スケーラブルWebアプリケーションの構築
2015/02/24
アマゾン データ サービス ジャパン株式会社
ソリューションアーキテクト 舟崎健治
初心者向けWebinar へようこそ!
• 参加者は、自動的にミュートになっています
• 質問を投げることができます!
– 最後のQ&Aの時間で、できるだけ回答させて頂きます
– 書き込んだ質問は、主催者にしか見えません
• Twitterのハ...
初心者向けWebinarのご紹介
• AWSについてこれから学ぶ方向けのソリューション
カットの技術Webinarです。
• 過去のWebinar資料
– AWSクラウドサービス活用資料集ページにて公開
http://aws.amazon.co...
Introduction
• 今回のAWS初心者向けWebinarでは、WordPressをサ
ンプルとして、どのようにスケーラブルWebアプリケー
ションをAWS上で構築するか?をご紹介します。
• WordPress以外のWebアプリケーシ...
なぜスケーラブルなWebアプリケーションを構築する
と良いのか?
• サイト立ち上げ当初はスモールスタートが可能
• ユーザー数の増加、ビジネスの成長に応じて柔軟にリ
ソース追加が可能
立ち上げ当初
Web Web Web Web Web We...
WordPress
• オープンソースのブログツールであり、CMS(コンテン
ツ管理システム)
• WordPressの初期バージョンは2003年にリリースされ
ている。
• 当初は、現在の伸縮自在でスケーラブルなクラウドイン
フラストラクチャ...
アジェンダ
• AWS関連サービスのご紹介
• WordPress 1台構成
• WordPress 複数台構成
• まとめ
アジェンダ
• AWS関連サービスのご紹介
• WordPress 1台構成
• WordPress 複数台構成
• まとめ
AWSアカウント登録について
• Webフォーム上で数分程度の登録作業をするだけで、すぐさまAWS
を利用可能
• AWSアカウント作成の流れ
http://aws.amazon.com/jp/register-flow/
• AWSアカウント...
AWSマネージメントコンソールにログイン
• アカウント登録後にAWSのTopページへアクセス
http://aws.amazon.com/jp/
• 登録したメールアドレス、パスワードでログインする
ログインが成功すると以下のサービスの一覧画面が表示
される
今回紹介する
サービス
Amazon EC2(Elastic Compute Cloud)
1任意のゾーンに
分散配置可能
リージョン
アベイラビリティ
ゾーン A
EC2
アベイラビリティ
ゾーン B
EC2
EC2
• 数分で起動可能な仮想サーバ
• 1時間ごとの...
Amazon Machine Image(AMI)
• ソフトウェア構成(オペレーティングシステム、アプリ
ケーションサーバ、アプリケーションなど)を記録した
テンプレート
• AMIから、EC2インスタンス(仮想サーバ)を起動
AMI
ins...
Amazon EBS(Elastic Block Store)ボリューム
EC2インスタンスに仮想外付けされた
ブロックレベルのストレージ
サイズは1GB単位で~1TBまで
(近い将来16TBまで利用可能になる予定)
サイズ/期間/IOで課金さ...
Amazon EBS スナップショット
Amazon S3に保存された EBSボリュームの
ポイントインタイムバックアップコピー
EBSスナップショットは増分バックアップ
(最後に作成されてから、変更のあるブ
ロックのみ保存される)
EBSスナ...
Amazon S3(Simple Storage Service)
 低コスト
 アップロード無料
 格納料金 1GB/月3.3円 (100円換算、2014/11/04時点)
 耐久性
 99.999999999%の耐久性
 3か所...
~ AWSクラウド上のロードバランシングサービス ~
ELBで実現できるシステム
 スケーラブル : 複数のEC2インスタンスに負荷分散
 高い可用性 : 複数のアベイラビリティゾーンにある複数のEC2インスタンス
の中から正常なEC2イン...
Auto Scaling
• トリガーを受けてEC2インスタンス数を自動的に増減させる仕組み
– パフォーマンス維持やキャパシティ増強、コスト削減のために利用可能
Auto scaling GroupCloudWatch
Alarm
Auto ...
Amazon RDS(Relational Database Service)
• マネージドRDBMSサービス
• バックアップやフェイルオーバーに対応したDBを数クリッ
クで利用可能
• サポートRDBMS
Amazon ElastiCache
• 構築
– キャッシュクラスタを数クリックで起動
– EC2、RDSと同様、初期費用無し、時間単位の従量
課金
• 移行
– 2種類のエンジン(memcached, redis)をサポート
– 既存アプリ...
Amazon DynamoDB
• NoSQL as a Service
• 超高速・予測可能な一貫したパフォーマンス
• シームレスなスケーラビリティ、そして低コスト
運用管理必要なし
低レイテンシ、SSD
プロビジョンスループット
無限に使...
Amazon CloudFront
• ユーザからのアクセスを、最も近いエッジサーバに誘導するこ
とで、ユーザへの配信を高速化
• エッジサーバでは、コンテンツのキャッシングを行い、オリジ
ンに負荷をかけず効率的に配信
レスポンス向上 負荷軽減...
Amazon Route 53
• 拡張性と可用性に優れたDNS権威サービス
• ヘルスチェック機能を持つ
Users DNS
Resolver
Route 53
www.example.com
はどこ?
知らないので権威
サーバに尋ねます
1...
AWS SDK/CLI
EC2
起動、停止
S3
アップロード
ダウンロード
Management
Console (Web)
ユーザ名・
パスワード
AWS管理者・
オペレータ
各言語ごとの
SDK アクセスキー・
シークレットキー
AWS ...
アジェンダ
• AWS関連サービスのご紹介
• WordPress 1台構成
• WordPress 複数台構成
• まとめ
WordPress 1台構成
• 以下の要件においては、WordPress 1台構成が最適な場
合がある
– 高可用性が不要
– トラフィックの量が少ない(サイト立ち上げ当初など)
– 低コストで構築したい
Internet
WordPress...
WordPress 1台構成の構築手順
• WordPress用EC2インスタンスの起動
– AMIの選択
– インスタンスタイプの選択
– セキュリティグループの選択
※仮想サーバを起動する方法の動画(日本語字幕)
https://www.y...
AMIの選択
←Amazon Linux, CentOS, Redhat
Enterprise Linux, SUSE Linuxなどの
さまざまなAMIを選択可能
AWS MarketplaceからWordPressがプ
リインストール済みの...
インスタンスタイプとは
• CPU、メモリ、ストレージ、ネットワークキャパシティ
の組み合わせ
• さまざまなインスタンスタイプから選択することが可能
WordPressに最適なインスタンスタイプの選択
• 初期のインスタンスタイプ
– T2インスタンス
• 新規プロジェクトにて、最適なインスタンスタイプを見積もる必要がある場合、
コスト効率の良い選択肢
• トラフィックの量が少ないWebサイ...
セキュリティグループの選択
• インスタンスへのトラフィック
を制限するSemi-statefulな
ファイアーウォール機能
• デフォルトでは全トラフィック
が閉じており、外からアクセス
できない
• 必要な受信アクセスに対してア
クセスルー...
EC2インスタンスの起動およびSSHログイン
• EC2インスタンスを起動して、SSHでログインすると、
root権限を使って、さまざまなソフトウェアコンポーネ
ントをインストール可能
• Elastic IPをEC2インスタンスに割り当てると...
WordPressのインストール方法の例
• SSHログイン後、以下を実行
sudo yum install httpd24 php55 php55-mysqlnd mysql-server
wget http://ja.wordpress.o...
WordPressの設定
• WordPress用のEC2インスタンスへWebブラウザでア
クセス
障害からの復旧
• 従来のオンプレミス環境よりも早くインスタンス障害の復旧
が可能
– 再配置用のインスタンスをすぐさま起動可能
• WordPressインスタンス復旧時に考慮すべきコンポーネント
– OSやサービスのインストール・構成(Apa...
WordPress 1台構成の場合
• Amazon EBSボリュームのデータは複数のサー
バにレプリケーションされており、通常のハー
ドディスクに比べてAFR(年間故障率)が低い。
• が、常にバックアップを取得することを推奨
– オペレーシ...
バックアップについて
• EBSスナップショット
– EBSボリュームのポイントインタイムのバック
アップコピーをS3内に保存する機能
– 変更のあったブロックのみの差分を保存。その
分のみ課金される
– コスト効率の高いバックアップ方法
• ...
IPアドレスとDNS
• Elastic IPを使うことで、EC2インスタンスのPublic IPを固定するこ
とが可能
• EC2インスタンスの障害時には、Elastic IPを置き換え用の新規EC2
インスタンスに割り当てることで、同じPu...
パフォーマンスとコスト効率の改善
• 1台構成においても、垂直方向のスケーリング(スケー
ルアップ)により、ある程度まではパフォーマンスを向
上させることが可能
• スケールアップ以外の方法でも、アプリケーション側の
修正をいくつか行うことで簡...
WordPressのW3 Total Cacheプラグインを使ったパ
フォーマンスとコスト効率の改善方法の例
• 静的コンテンツをAmazon S3から配信
• Amazon CloudFrontでコンテンツキャッシング
• データベースキャッ...
静的コンテンツをAmazon S3から配信
• WordPressウェブサイトは、静的および動的コンテンツ
を配信する必要がある。
– 静的コンテンツ
• 画像、JavaScript、スタイルシートなど
– 動的コンテンツ
• サーバサイドでW...
Amazon S3からの静的コンテンツ配信について
• S3にファイルをアップロードすると、ファイルごとにURIが割り当て
られる。
– https://s3-ap-northeast-1.amazonaws.com/<バケット名>/<ファイル...
静的コンテンツをS3から配信する形に変更するには?
• 変更前 • 変更後
Users
Web
サーバ
<img src=“/img/product.png” /> <img src=
“http://static.example.com/im...
Amazon CloudFrontのマルチオリジン機能
• 単一のCloudFrontディストリビューションから、複数
のオリジン(コンテンツのソース)を参照可能
– CloudFrontのCache Behaviorの設定にて、パスごとに参照...
データベースキャッシング
• WordPressのような参照が多いアプリケーションの場合、
データベースキャッシングにより遅延を減らし、スルー
プットを増加させることが可能
• 頻繁にアクセスされるデータはメモリの中に保持して、
メモリからデー...
Web+DBアプリとメモリキャッシュ
• データ参照時の操作
キャッシュ
App RDBMS
■キーを検索軸に属性データがキャッシュにあるか?
取得して完了
②なければDBへクエリ
クエリ結果を取得
DBにクエリを実行した場合、
クエリ結果をキ...
Web+DBアプリとメモリキャッシュ
• 更新時の操作
App
常にDBにInsert / Update
繰り返し
その結果をオブジェクト書き込み
キャッシュ
RDBMS
⇒(Point)キャッシュには最新結果が反映される
■キーを検索軸に属性...
WordPressとMemcachedの連携
• W3 Total Cacheプラグインを使うことで、
Memcachedと連携が可能
• 以下2パターン
– WordPress Webサーバ上にMemcachedをインストール
(別のEC2イ...
アジェンダ
• AWS関連サービスのご紹介
• WordPress 1台構成
• WordPress 複数台構成
• まとめ
複数台による構成について
• 1台構成で要件を満たせる場合はある。が、より高い可
用性やパフォーマンスを実現するには、以下のように変
更できると良い。
– Webとデータベースのサーバを分ける
– Web・データベースサーバそれぞれの可用性とス...
Web層とデータベース層を隔離する
• 隔離するメリット
– 各層でのキャパシティの増加が容易
– 各層の構成の特性に応じた調整が可能
• WebサーバとDBサーバのCPU,メモリ,ストレージ,ネッ
トワークキャパシティの要件は異なる
用途 最...
データベースの移行
• MySQL DB移行先の例
– EC2インスタンス上に構築したMySQL DB
– Amazon RDS MySQL (推奨)
• WordPress Webサーバの設定変更
– wp-config.phpにて、ローカル...
Amazon RDSを使うメリット
• DBの管理負荷の低減
– 自動パッチ適用
– 自動バックアップ
– ポイントインタイムリカバリ
– Multi-AZ構成による自動フェイルオーバー(後述)
– 1 APIコールでDBのコンピュートリソース...
RDSおよびElastiCacheへ接続する構成
データベース層の可用性
• RDS Multi-AZ
– DBインスタンスの可用性・冗長性を実現可能
– RDS Multi-AZを有効にすると、プライマリDBインスタンスに加えて、自動的
にスタンバイDBインスタンスを異なるAZに作成する
–...
RDSおよびElastiCacheが複数AZにまたがった構成
Web層の高可用性
• 異なるAZに複数のWebサーバを配置可能
• 複数のWebサーバに対して、Amazon ELBで負荷分散させる
• ELBはリージョン内の異なるAZに対して負荷分散が可能
• ELBのヘルスチェック機能により、インスタン...
Web層のスケーラビリティ
• AWSプラットフォームでは、Webサーバを起動させた分だけの
支払いのみ。必要なときに起動可能
– 多めに起動しておく必要がない。
• Auto Scalingにより、EC2インスタンスの自動増減が可能
– Au...
アクセス急増に向けたELBの対策
• ELB自体は負荷に応じて自動的にスケールするが、TV紹
介などで瞬間的にアクセスが急増する場合、ELBの内部
的なスケーリングが間に合わず、HTTP 503レスポンス
を返すことがある。
• 対策として、事...
ステートレスなアーキテクチャ
• 複数台のWebサーバによるAuto Scaling構成を活用す
るには、Web層がステートレスでなければならない
• Auto Scalingにより自動で既存のWebサーバが
terminateされることがある...
Webアプリケーションでよく使われるデータの種類と
その格納先
• ユーザーセッション
– WordPress CoreはセッションをCookieで管理
– PHPセッションを活用するWordPressプラグインをインストールしている場合は、
...
WebサーバがAuto Scalingする構成
データベース層のスケーリング
• より大きなインスタンスタイプへ変更可能
• Provisioned IOPSによりDisk IOパフォーマンスを向上可能
• WordPressは参照が非常に多いため、MySQLレプリケー
ションあるいはRDS...
RDSリードレプリカに読み込みアクセスをする構成
アジェンダ
• AWS関連サービスのご紹介
• WordPress 1台構成
• WordPress 複数台構成
• まとめ
まとめ
• AWSではスケーラブルな構成を実現するために、さま
ざまなオプションが提供されている
• 1台構成ででも利用開始可能
• より高い可用性とスケーラビリティが求められる場合は
複数台構成を推奨
• WordPressのように、アプリケ...
Q&A
参照リンク
• AWSアカウント作成の流れ
– http://aws.amazon.com/jp/register-flow/
• WordPress: Best Practice on AWS
– http://d0.awsstatic.co...
AWSをより深く理解したい方向けに
クラスルームトレーニングを提供しています。
詳細: aws.amazon.com/training 認定資格試験
公式Twitter/Facebook
AWSの最新情報をお届けします
@awscloud_jp
検索
最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを
日々更新しています!
もしくは
http://on.fb.me/1vR...
AWS初心者向けWebinar 2015
• AWSをこれからご使用になる技術者向け、ソリューションカット
• 今後の配信予定
– 3/5(木) Windows Server 2003 マイグレーションのポイント
– 3/19(木) 貴重なデー...
AWS Black Belt Tech Webinar 2015
• AWS中上級者向け、サービスカット
• 今後の配信予定
– 2/25(水) AWS Management Console
– 3/4 (水) Amazon SQS & SNS...
よくわかるAmazon Workspacesセミナー
• 対象:仮想デスクトップの導入を検討されているお客様
• 日時:2015年3月4日 14:00-17:15(開場13:30)
• 会場:アマゾン データ サービス ジャパン株式会社
アルコ...
AWSの導入、お問い合わせのご相談
• AWSクラウド導入に関するご質問、お見積り、資料請
求をご希望のお客様は、以下のリンクよりお気軽にご相
談ください。
https://aws.amazon.com/jp/contact-us/aws-sa...
Próximos SlideShares
Carregando em…5
×

初心者向けWebinar スケーラブルWebアプリケーションの構築

8.449 visualizações

Publicada em

初心者向けWebinar
スケーラブルWebアプリケーションの構築

Publicada em: Tecnologia
  • Seja o primeiro a comentar

初心者向けWebinar スケーラブルWebアプリケーションの構築

  1. 1. 【初心者向けWebinar】 スケーラブルWebアプリケーションの構築 2015/02/24 アマゾン データ サービス ジャパン株式会社 ソリューションアーキテクト 舟崎健治
  2. 2. 初心者向けWebinar へようこそ! • 参加者は、自動的にミュートになっています • 質問を投げることができます! – 最後のQ&Aの時間で、できるだけ回答させて頂きます – 書き込んだ質問は、主催者にしか見えません • Twitterのハッシュタグは#jawsugでどうぞ
  3. 3. 初心者向けWebinarのご紹介 • AWSについてこれから学ぶ方向けのソリューション カットの技術Webinarです。 • 過去のWebinar資料 – AWSクラウドサービス活用資料集ページにて公開 http://aws.amazon.com/jp/aws-jp-introduction/ • イベントの告知 – 国内のイベント・セミナースケジュールページにて告知 http://aws.amazon.com/jp/about-aws/events/ (オンラインセミナー枠)
  4. 4. Introduction • 今回のAWS初心者向けWebinarでは、WordPressをサ ンプルとして、どのようにスケーラブルWebアプリケー ションをAWS上で構築するか?をご紹介します。 • WordPress以外のWebアプリケーションを構築される 場合においても、役立つTipsが多いので、是非ご参考く ださい。
  5. 5. なぜスケーラブルなWebアプリケーションを構築する と良いのか? • サイト立ち上げ当初はスモールスタートが可能 • ユーザー数の増加、ビジネスの成長に応じて柔軟にリ ソース追加が可能 立ち上げ当初 Web Web Web Web Web Web Web ユーザー数増加後
  6. 6. WordPress • オープンソースのブログツールであり、CMS(コンテン ツ管理システム) • WordPressの初期バージョンは2003年にリリースされ ている。 • 当初は、現在の伸縮自在でスケーラブルなクラウドイン フラストラクチャを念頭に作成されていない • WordPressコミュニティにより、AWSのメリットを活 かすためのさまざまなWordPressモジュールが作成され ている。
  7. 7. アジェンダ • AWS関連サービスのご紹介 • WordPress 1台構成 • WordPress 複数台構成 • まとめ
  8. 8. アジェンダ • AWS関連サービスのご紹介 • WordPress 1台構成 • WordPress 複数台構成 • まとめ
  9. 9. AWSアカウント登録について • Webフォーム上で数分程度の登録作業をするだけで、すぐさまAWS を利用可能 • AWSアカウント作成の流れ http://aws.amazon.com/jp/register-flow/ • AWSアカウント作成方法についての動画(日本語字幕付き) http://aws.amazon.com/jp/getting-started/
  10. 10. AWSマネージメントコンソールにログイン • アカウント登録後にAWSのTopページへアクセス http://aws.amazon.com/jp/ • 登録したメールアドレス、パスワードでログインする
  11. 11. ログインが成功すると以下のサービスの一覧画面が表示 される 今回紹介する サービス
  12. 12. Amazon EC2(Elastic Compute Cloud) 1任意のゾーンに 分散配置可能 リージョン アベイラビリティ ゾーン A EC2 アベイラビリティ ゾーン B EC2 EC2 • 数分で起動可能な仮想サーバ • 1時間ごとの従量課金で利用可能 • スケールアップ/ダウン、アウト/イ ンが即座に可能 • Windows, Linuxなどx86-64アーキ テクチャのOS利用可能 – Windowsライセンスも従量課金 • OS以上はお客様の自由 – お手持ちのソフトをそのまま利用
  13. 13. Amazon Machine Image(AMI) • ソフトウェア構成(オペレーティングシステム、アプリ ケーションサーバ、アプリケーションなど)を記録した テンプレート • AMIから、EC2インスタンス(仮想サーバ)を起動 AMI instance instances 1つのAMIから、複数の異なるタイプの インスタンスを起動可能
  14. 14. Amazon EBS(Elastic Block Store)ボリューム EC2インスタンスに仮想外付けされた ブロックレベルのストレージ サイズは1GB単位で~1TBまで (近い将来16TBまで利用可能になる予定) サイズ/期間/IOで課金される 複数EBSを1 EC2インスタンスにアタッチ可能 1つのEBSを同時に複数のEC2インスタンスにattach 不可 データは永続的に保存される アベイラビリティゾーン(AZ) に存在 他のEC2インスタンスに付け替え可能 Region Availability Zone - a EBS EBS EBS Availability Zone - b EBS EBS Amazon Simple Storage Service (S3) EBS Snapshot EC2 EC2
  15. 15. Amazon EBS スナップショット Amazon S3に保存された EBSボリュームの ポイントインタイムバックアップコピー EBSスナップショットは増分バックアップ (最後に作成されてから、変更のあるブ ロックのみ保存される) EBSスナップショットからEBSボリューム を同じリージョン内で作成可能 リージョン間でコピー可能 Region Availability Zone - a EBS EBS EBS Availability Zone - b EBS EBS Amazon Simple Storage Service (S3) EBS Snapshot EC2 EC2
  16. 16. Amazon S3(Simple Storage Service)  低コスト  アップロード無料  格納料金 1GB/月3.3円 (100円換算、2014/11/04時点)  耐久性  99.999999999%の耐久性  3か所以上への自動複製保存  インテグリティチェックおよび自動復旧 データを 自動複製 リージョン EC2 Availability Zone  セキュリティ  データ転送はすべてSSL通信  同一リージョン内のみでの保管  サーバサイド暗号化オプション(AES256)  柔軟性  格納容量無制限  多くの3rdベンダー製品がサポート
  17. 17. ~ AWSクラウド上のロードバランシングサービス ~ ELBで実現できるシステム  スケーラブル : 複数のEC2インスタンスに負荷分散  高い可用性 : 複数のアベイラビリティゾーンにある複数のEC2インスタンス の中から正常なEC2インスタンスにのみ振り分け ELB自身の特徴  スケーラブル : ELB自体も負荷に応じてキャパシティを自動増減  安価な従量課金 : 従量課金で利用可能  運用管理が楽 : マネージドサービスなので管理が不要  豊富な連携機能 : Auto Scaling, Route 53, Cloud Formation… などと連携 Amazon Elastic Load Balancing (ELB) EC2 EC2
  18. 18. Auto Scaling • トリガーを受けてEC2インスタンス数を自動的に増減させる仕組み – パフォーマンス維持やキャパシティ増強、コスト削減のために利用可能 Auto scaling GroupCloudWatch Alarm Auto Scaling Elastic Load Balancing ①リソース監視 ②しきい値を越えたら アラーム ③アラームのアクションに 登録されたASアクションが起動 ④結果として新規にサーバが デプロイされる
  19. 19. Amazon RDS(Relational Database Service) • マネージドRDBMSサービス • バックアップやフェイルオーバーに対応したDBを数クリッ クで利用可能 • サポートRDBMS
  20. 20. Amazon ElastiCache • 構築 – キャッシュクラスタを数クリックで起動 – EC2、RDSと同様、初期費用無し、時間単位の従量 課金 • 移行 – 2種類のエンジン(memcached, redis)をサポート – 既存アプリケーションの変更不要(memcached, redisを利用中のアプリケーションの場合) • 運用 – 可用性を向上させる機能 – モニタリング、自動障害検出、復旧、拡張、パッチ 管理機能を提供 メモリ内キャッシュをマネージドで提供するサービス →キャッシュに読み込まれたオブジェクトを保存し、性能負荷を軽減する
  21. 21. Amazon DynamoDB • NoSQL as a Service • 超高速・予測可能な一貫したパフォーマンス • シームレスなスケーラビリティ、そして低コスト 運用管理必要なし 低レイテンシ、SSD プロビジョンスループット 無限に使えるストレージ
  22. 22. Amazon CloudFront • ユーザからのアクセスを、最も近いエッジサーバに誘導するこ とで、ユーザへの配信を高速化 • エッジサーバでは、コンテンツのキャッシングを行い、オリジ ンに負荷をかけず効率的に配信 レスポンス向上 負荷軽減 キャッシュ コンテンツ 4.エッジにコンテンツ を送信 1.最適なエッジに リクエスト 3.エッジにキャッシュがなければ オリジンにリクエスト 2.キャッシュを配信 5.取得したコンテンツを配信しキャッシュ Amazon CloudFront (Edge Location) オリジン配信 サーバ クライアント
  23. 23. Amazon Route 53 • 拡張性と可用性に優れたDNS権威サービス • ヘルスチェック機能を持つ Users DNS Resolver Route 53 www.example.com はどこ? 知らないので権威 サーバに尋ねます 1.2.3.4 1.2.3.4 53
  24. 24. AWS SDK/CLI EC2 起動、停止 S3 アップロード ダウンロード Management Console (Web) ユーザ名・ パスワード AWS管理者・ オペレータ 各言語ごとの SDK アクセスキー・ シークレットキー AWS CLI > REST API Route 53 登録、変更、 削除
  25. 25. アジェンダ • AWS関連サービスのご紹介 • WordPress 1台構成 • WordPress 複数台構成 • まとめ
  26. 26. WordPress 1台構成 • 以下の要件においては、WordPress 1台構成が最適な場 合がある – 高可用性が不要 – トラフィックの量が少ない(サイト立ち上げ当初など) – 低コストで構築したい Internet WordPressサーバ (DB共存)
  27. 27. WordPress 1台構成の構築手順 • WordPress用EC2インスタンスの起動 – AMIの選択 – インスタンスタイプの選択 – セキュリティグループの選択 ※仮想サーバを起動する方法の動画(日本語字幕) https://www.youtube.com/watch?v=7CsvhI17ROg • リモートからのSSHログイン • WordPressインストール WordPressサーバ (DB共存)
  28. 28. AMIの選択 ←Amazon Linux, CentOS, Redhat Enterprise Linux, SUSE Linuxなどの さまざまなAMIを選択可能 AWS MarketplaceからWordPressがプ リインストール済みのAMIも選択可能→
  29. 29. インスタンスタイプとは • CPU、メモリ、ストレージ、ネットワークキャパシティ の組み合わせ • さまざまなインスタンスタイプから選択することが可能
  30. 30. WordPressに最適なインスタンスタイプの選択 • 初期のインスタンスタイプ – T2インスタンス • 新規プロジェクトにて、最適なインスタンスタイプを見積もる必要がある場合、 コスト効率の良い選択肢 • トラフィックの量が少ないWebサイト(高いCPU使用率を必要としない) – M3インスタンス • バランスが取れており、T2インスタンスよりも多くのCPU、メモリ、ネット ワークキャパシティを提供 • より多くの需要のあるWebサイト向け • 起動後の垂直方向のスケーリング(スケールアップ) – EBSベースのインスタンスを使用している場合は、インスタンスを停止 → インスタ ンスタイプの変更 → 起動することで、インスタンスタイプを変更可能
  31. 31. セキュリティグループの選択 • インスタンスへのトラフィック を制限するSemi-statefulな ファイアーウォール機能 • デフォルトでは全トラフィック が閉じており、外からアクセス できない • 必要な受信アクセスに対してア クセスルールを定義する • プロトコル( TCP/UDP) • 宛先ポート • アクセス元IP / Security Group ポート22 (SSH) ポート80 (HTTP) EC2ファイアウォール Security Group ポート25 (SMTP) EC2 インスタンス WordPress構築用 に80番と22番を 開放する
  32. 32. EC2インスタンスの起動およびSSHログイン • EC2インスタンスを起動して、SSHでログインすると、 root権限を使って、さまざまなソフトウェアコンポーネ ントをインストール可能 • Elastic IPをEC2インスタンスに割り当てると、パブ リックIPを固定することが可能
  33. 33. WordPressのインストール方法の例 • SSHログイン後、以下を実行 sudo yum install httpd24 php55 php55-mysqlnd mysql-server wget http://ja.wordpress.org/latest-ja.tar.gz sudo tar zxvf latest.tar.gz -C /var/www/html sudo service mysqld start mysql -u root mysql> CREATE USER 'wordpress-user'@'localhost' IDENTIFIED BY 'mypassword'; mysql> CREATE DATABASE wordpress; sudo service httpd start
  34. 34. WordPressの設定 • WordPress用のEC2インスタンスへWebブラウザでア クセス
  35. 35. 障害からの復旧 • 従来のオンプレミス環境よりも早くインスタンス障害の復旧 が可能 – 再配置用のインスタンスをすぐさま起動可能 • WordPressインスタンス復旧時に考慮すべきコンポーネント – OSやサービスのインストール・構成(Apache, MySQL等) – WordPressアプリケーションコードおよび構成 – WordPressのテーマおよびプラグイン – メディアファイルなどのアップロードファイル – データベースのコンテンツ(投稿記事やコメントなど)
  36. 36. WordPress 1台構成の場合 • Amazon EBSボリュームのデータは複数のサー バにレプリケーションされており、通常のハー ドディスクに比べてAFR(年間故障率)が低い。 • が、常にバックアップを取得することを推奨 – オペレーションミスによるデータ喪失からの復旧も考慮する instance volume • WordPressアプリケーションコード • wp-contentsフォルダ以下のプラグイ ンやテーマ、アップロードファイル • /var/lib/mysql以下のデータベースのコ ンテンツ
  37. 37. バックアップについて • EBSスナップショット – EBSボリュームのポイントインタイムのバック アップコピーをS3内に保存する機能 – 変更のあったブロックのみの差分を保存。その 分のみ課金される – コスト効率の高いバックアップ方法 • ファイル単位でのS3への保存 ※AMI取得時にもデータの実体は S3に保存される。snapshot Amazon S3 object instance volume
  38. 38. IPアドレスとDNS • Elastic IPを使うことで、EC2インスタンスのPublic IPを固定するこ とが可能 • EC2インスタンスの障害時には、Elastic IPを置き換え用の新規EC2 インスタンスに割り当てることで、同じPublic IPでアクセスが可能 • Route 53 DNSサービスにカスタムドメインを登録することで、名 前解決が可能 http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-amazon-route53
  39. 39. パフォーマンスとコスト効率の改善 • 1台構成においても、垂直方向のスケーリング(スケー ルアップ)により、ある程度まではパフォーマンスを向 上させることが可能 • スケールアップ以外の方法でも、アプリケーション側の 修正をいくつか行うことで簡単に低コストでパフォーマ ンス向上が可能 • 今回はWordPress用のW3 Total Cacheプラグインを 使った方法を紹介する
  40. 40. WordPressのW3 Total Cacheプラグインを使ったパ フォーマンスとコスト効率の改善方法の例 • 静的コンテンツをAmazon S3から配信 • Amazon CloudFrontでコンテンツキャッシング • データベースキャッシング
  41. 41. 静的コンテンツをAmazon S3から配信 • WordPressウェブサイトは、静的および動的コンテンツ を配信する必要がある。 – 静的コンテンツ • 画像、JavaScript、スタイルシートなど – 動的コンテンツ • サーバサイドでWordPress PHPコードによって生成されるコンテンツ 【データベースからロードされる属性値など) • 静的コンテンツをAmazon S3から配信することで、 WordPress Webサーバの負荷の低減が可能 – WordPress Webサーバは動的コンテンツ生成のみを処理すれば良くなるため Amazon S3 Blackbelt Tech Webinar資料 http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belttechwebinar2014s3public
  42. 42. Amazon S3からの静的コンテンツ配信について • S3にファイルをアップロードすると、ファイルごとにURIが割り当て られる。 – https://s3-ap-northeast-1.amazonaws.com/<バケット名>/<ファイル名>(東京リージョンの例) – デフォルトでは、上記URIへのアクセスはDeniedとなるが、アクセス権限を変更することでアクセス可能 • さらに、S3のWebsite Hosting機能を有効にすると、バケット名に対 応したサブドメインでアクセス可能 – http://<バケット名>.s3-website-ap-northeast-1.amazonaws.com/<ファイル名> • 以下のレコードをDNSに登録することで、任意のドメインでS3のファ イルへHTTPでアクセスが可能 – Name: (例)example.com – Type: CNAME – Record: <バケット名>.s3-website-ap-northeast-1.amazonaws.com
  43. 43. 静的コンテンツをS3から配信する形に変更するには? • 変更前 • 変更後 Users Web サーバ <img src=“/img/product.png” /> <img src= “http://static.example.com/img/product.png” /> NFS サーバ Web サーバ png png S3 http://example.com/index.php http://example.com/index.php 動的コンテンツ用 静的コンテンツ用 http://static.example.com/img/product.jpg
  44. 44. Amazon CloudFrontのマルチオリジン機能 • 単一のCloudFrontディストリビューションから、複数 のオリジン(コンテンツのソース)を参照可能 – CloudFrontのCache Behaviorの設定にて、パスごとに参照先のオリジンを切 り替え可能 wp-contents/*, wp-includes/*が URIのパスの場合は、S3を参照 (キャッシュする設定) wp-admin/*, wp-login.php, その他 がURIのパスの場合は、EC2を参照 (キャッシュしない設定) 動的コンテンツ用 静的コンテンツ用
  45. 45. データベースキャッシング • WordPressのような参照が多いアプリケーションの場合、 データベースキャッシングにより遅延を減らし、スルー プットを増加させることが可能 • 頻繁にアクセスされるデータはメモリの中に保持して、 メモリからデータを渡すことでパフォーマンスを改善で きる場合がある。
  46. 46. Web+DBアプリとメモリキャッシュ • データ参照時の操作 キャッシュ App RDBMS ■キーを検索軸に属性データがキャッシュにあるか? 取得して完了 ②なければDBへクエリ クエリ結果を取得 DBにクエリを実行した場合、 クエリ結果をキャッシュ 繰り返し ⇒(Point)キャッシュに最新結果が反映される ①あればキャッシュへ
  47. 47. Web+DBアプリとメモリキャッシュ • 更新時の操作 App 常にDBにInsert / Update 繰り返し その結果をオブジェクト書き込み キャッシュ RDBMS ⇒(Point)キャッシュには最新結果が反映される ■キーを検索軸に属性データをキャッシュに配置する
  48. 48. WordPressとMemcachedの連携 • W3 Total Cacheプラグインを使うことで、 Memcachedと連携が可能 • 以下2パターン – WordPress Webサーバ上にMemcachedをインストール (別のEC2インスタンスも可) – Amazon ElastiCacheの活用 • マネージドサービスのため、簡単にデプロイ、運用、スケーリングが可能 • ElastiCacheのMemcached版を使うと、特にカスタマイズを行うことなく WordPress Memcachedプラグインを利用可能 https://wordpress.org/plugins/w3-total-cache/ http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-amazon-elasticache Amazon ElastiCache
  49. 49. アジェンダ • AWS関連サービスのご紹介 • WordPress 1台構成 • WordPress 複数台構成 • まとめ
  50. 50. 複数台による構成について • 1台構成で要件を満たせる場合はある。が、より高い可 用性やパフォーマンスを実現するには、以下のように変 更できると良い。 – Webとデータベースのサーバを分ける – Web・データベースサーバそれぞれの可用性とスケーラビリティを高める
  51. 51. Web層とデータベース層を隔離する • 隔離するメリット – 各層でのキャパシティの増加が容易 – 各層の構成の特性に応じた調整が可能 • WebサーバとDBサーバのCPU,メモリ,ストレージ,ネッ トワークキャパシティの要件は異なる 用途 最適なインスタンスタイプ(一般的な場合) Webサーバ コンピュート最適化インスタンス(C4またはC3インスタンス) DBサーバ メモリ最適化インスタンス(R3インスタンス)
  52. 52. データベースの移行 • MySQL DB移行先の例 – EC2インスタンス上に構築したMySQL DB – Amazon RDS MySQL (推奨) • WordPress Webサーバの設定変更 – wp-config.phpにて、ローカルホストのDBからリモートのDBへ接続先を変更 する DB on instance RDS DB instance
  53. 53. Amazon RDSを使うメリット • DBの管理負荷の低減 – 自動パッチ適用 – 自動バックアップ – ポイントインタイムリカバリ – Multi-AZ構成による自動フェイルオーバー(後述) – 1 APIコールでDBのコンピュートリソースやストレージキャパシティをスケー ル可能 • お客様のアプリケーション開発やビジネスへの注力が可 能
  54. 54. RDSおよびElastiCacheへ接続する構成
  55. 55. データベース層の可用性 • RDS Multi-AZ – DBインスタンスの可用性・冗長性を実現可能 – RDS Multi-AZを有効にすると、プライマリDBインスタンスに加えて、自動的 にスタンバイDBインスタンスを異なるAZに作成する – DBインスタンスに対する更新は、同時にスタンバイ側にレプリケーションされ る – プライマリDB側の障害時には、スタンバイDB側に自動フェイルオーバーされ る • ElastiCache(Memcached) – Memcachedノードが障害時には、自動的に新規ノードが再配置される – Memcached Cacheクラスターに属するノード数を複数にすることで、異なる AZにまたがって配置が可能 http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-amazon-elasticache
  56. 56. RDSおよびElastiCacheが複数AZにまたがった構成
  57. 57. Web層の高可用性 • 異なるAZに複数のWebサーバを配置可能 • 複数のWebサーバに対して、Amazon ELBで負荷分散させる • ELBはリージョン内の異なるAZに対して負荷分散が可能 • ELBのヘルスチェック機能により、インスタンス障害時に自動 的にそのインスタンスへのトラフィック送信を停止可能 Elastic Load Balancing Availability Zone Availability Zone
  58. 58. Web層のスケーラビリティ • AWSプラットフォームでは、Webサーバを起動させた分だけの 支払いのみ。必要なときに起動可能 – 多めに起動しておく必要がない。 • Auto Scalingにより、EC2インスタンスの自動増減が可能 – Auto Scalingにより自動増減したバックエンドEC2インスタンスを自動で動的に追加・削 除が可能 • ELB自体もトラフィック量に応じて自動でスケール Auto Scaling Elastic Load Balancing
  59. 59. アクセス急増に向けたELBの対策 • ELB自体は負荷に応じて自動的にスケールするが、TV紹 介などで瞬間的にアクセスが急増する場合、ELBの内部 的なスケーリングが間に合わず、HTTP 503レスポンス を返すことがある。 • 対策として、事前にELBをスケールさせておくために、 ELB暖気運転(Pre-warming)をAWSサポートに申請す る – AWSビジネスまたはエンタープライズサポートの加入が必要
  60. 60. ステートレスなアーキテクチャ • 複数台のWebサーバによるAuto Scaling構成を活用す るには、Web層がステートレスでなければならない • Auto Scalingにより自動で既存のWebサーバが terminateされることがあるため、永続化されるべき データは、Webサーバ上で保持しないようにする – クライアント側のCookie、あるいはRDSやS3などの永続性のあるストレージに 格納する • 複数のWebサーバ間でデータを同期させる複雑な仕組み も回避することを推奨
  61. 61. Webアプリケーションでよく使われるデータの種類と その格納先 • ユーザーセッション – WordPress CoreはセッションをCookieで管理 – PHPセッションを活用するWordPressプラグインをインストールしている場合は、 Amazon DynamoDBがその格納先として最適 • AWS SDK for PHPにDynamoDB Session Handlerが含まれている。 • ユーザーが生成したデータやアップロードデータ – デフォルトではWordPressのWebサーバ上に配置される。 – これらをS3に格納して配信することで、Web層をステートレスにすることが可能 Amazon DynamoDB Amazon S3 http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-amazon-dynamodb https://aws.amazon.com/jp/blogs/aws/scalable-session-handling-in-php-using-amazon-dynamodb/
  62. 62. WebサーバがAuto Scalingする構成
  63. 63. データベース層のスケーリング • より大きなインスタンスタイプへ変更可能 • Provisioned IOPSによりDisk IOパフォーマンスを向上可能 • WordPressは参照が非常に多いため、MySQLレプリケー ションあるいはRDSリードレプリカが有効 – が、デフォルトではWordPressは複数のDBインスタンスを活用するように設計され ていない。 – HyperDBプラグインを使うことで複数のDBインスタンスを活用する機能を追加可能 読み込み・書き込み 読み込みのみ Web https://wordpress.org/plugins/hyperdb/ http://www.slideshare.net/AmazonWebServicesJapan/20140416-aws-blackbeltrds
  64. 64. RDSリードレプリカに読み込みアクセスをする構成
  65. 65. アジェンダ • AWS関連サービスのご紹介 • WordPress 1台構成 • WordPress 複数台構成 • まとめ
  66. 66. まとめ • AWSではスケーラブルな構成を実現するために、さま ざまなオプションが提供されている • 1台構成ででも利用開始可能 • より高い可用性とスケーラビリティが求められる場合は 複数台構成を推奨 • WordPressのように、アプリケーションを一部カスタマ イズすることで、最適な構成を実現可能
  67. 67. Q&A
  68. 68. 参照リンク • AWSアカウント作成の流れ – http://aws.amazon.com/jp/register-flow/ • WordPress: Best Practice on AWS – http://d0.awsstatic.com/whitepapers/wordpress-best-practices-on-aws.pdf • Deploying WordPress with AWS Elastic Beanstalk – http://d0.awsstatic.com/whitepapers/deploying-wordpress-with-aws-elastic- beanstalk.pdf • AWSクラウド活用資料集 – http://aws.amazon.com/jp/aws-jp-introduction/ • 国内のお客様のAWS活用事例 – http://aws.amazon.com/jp/solutions/case-studies-jp/
  69. 69. AWSをより深く理解したい方向けに クラスルームトレーニングを提供しています。 詳細: aws.amazon.com/training 認定資格試験
  70. 70. 公式Twitter/Facebook AWSの最新情報をお届けします @awscloud_jp 検索 最新技術情報、イベント情報、お役立ち情報、お得なキャンペーン情報などを 日々更新しています! もしくは http://on.fb.me/1vR8yWm
  71. 71. AWS初心者向けWebinar 2015 • AWSをこれからご使用になる技術者向け、ソリューションカット • 今後の配信予定 – 3/5(木) Windows Server 2003 マイグレーションのポイント – 3/19(木) 貴重なデータを守るクラウドバックアップの実現 • 申し込みサイト – http://aws.amazon.com/jp/about-aws/events/
  72. 72. AWS Black Belt Tech Webinar 2015 • AWS中上級者向け、サービスカット • 今後の配信予定 – 2/25(水) AWS Management Console – 3/4 (水) Amazon SQS & SNS – 3/11(水) Amazon SNS モバイルプッシュ – 3/18(水) AWS SDK – 3/19(水) リザーブドインスタンス スポットインスタンス • 申し込みサイト – http://aws.amazon.com/jp/about-aws/events/
  73. 73. よくわかるAmazon Workspacesセミナー • 対象:仮想デスクトップの導入を検討されているお客様 • 日時:2015年3月4日 14:00-17:15(開場13:30) • 会場:アマゾン データ サービス ジャパン株式会社 アルコタワー19階 セミナールーム
  74. 74. AWSの導入、お問い合わせのご相談 • AWSクラウド導入に関するご質問、お見積り、資料請 求をご希望のお客様は、以下のリンクよりお気軽にご相 談ください。 https://aws.amazon.com/jp/contact-us/aws-sales/

×