AWS Black Belt Online Seminar AWS 入門者向け : AWS で実現するウェブサイトホスティング アマゾンウェブサービスジャパン株式会社ソリューションアーキテクト原田和則 2018.07.10
AWS Black Belt Online Seminar とは AWSJ の Tech メンバが AWS に関する様々な事を紹介するオンラインセミナーです 火曜 12:00 13:00 主に AWS のソリューションや業界カットでの使いどころなどを紹介 ( 例 :IoT 金融業界向け etc.) 水曜 18:00 19:00 主に AWS サービスの紹介やアップデートの解説 ( 例 :EC2 RDS Lambda etc.) 開催曜日と時間帯は変更となる場合がございます 最新の情報は下記をご確認下さい オンラインセミナーのスケジュール & 申し込みサイト https://aws.amazon.com/jp/about-aws/events/webinars/
内容についての注意点 本資料では 2018 年 7 月 10 日時点のサービス内容および価格についてご説明しています 最新の情報は AWS 公式ウェブサイト (http://aws.amazon.com) にてご確認ください 資料作成には十分注意しておりますが 資料内の価格と AWS 公式ウェブサイト記載の価格に相違があった場合 AWS 公式ウェブサイトの価格を優先とさせていただきます 価格は税抜表記となっています 日本居住者のお客様が東京リージョンを使用する場合 別途消費税をご請求させていただきます AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.
自己紹介 名前 所属 原田和則 ( はらだかずのり ) アマゾンウェブサービスジャパン株式会社 技術統括本部テクニカルソリューション部 ソリューションアーキテクト 好きな AWS サービス Region Availability Zone
本セミナーの概要 本セミナーで学習できること ウェブサイトを構築する際の一般的な初期構成について学ぶことができます 規模に合わせてウェブサイトをスケールさせる際の AWS サービスの使い所について学ぶことができます 対象者 AWS 入門者の方 AWS を勉強中もしくはこれから勉強されようとしている方 AWS 上でウェブサイト構築を検討されている方 AWS 上で既に構築や運用を行っているが 現状の構成や今後の規模拡張の方法等に不安のある方 特に 1~2 台規模の EC2 でサービス提供をおこなっているエンジニアの方
Agenda ウェブサイトホスティングの基本 AWS 上でウェブサイトをホスティングするメリット AWS 入門者の方によくある悩み Amazon EC2を作成してみる よくある構成パターン まとめ
Agenda ウェブサイトホスティングの基本 AWS 上でウェブサイトをホスティングするメリット AWS 入門者の方によくある悩み Amazon EC2を作成してみる よくある構成パターン まとめ
はじめに 本セミナーでのウェブサイトホスティングとは LAMP で構成されたウェブサイトを想定しています Linux Apache MySQL PHP サーバレスアーキテクチャ等は取り上げておりません 実際にお客様からよくいただく質問とその回答を紹介しておりますが 全てのユースケースで当てはまるわけではありません
ウェブサイトとは 企業ホームページ ニュースサイト 情報サイト SNS ブログ EC サイト オークションサイト など複数のウェブページの集まり
AWS クラウド活用資料集もウェブサイトの 1 つ (https://aws.amazon.com/jp/aws-jp-introduction/ )
ウェブサイトホスティングの主なインフラ要素 ウェブ / アプリケーションサーバ データベース 主に Web ブラウザ経由でユーザから受け取ったリクエストをもとに ユーザに結果を返す Apache + PHP, Apache + Tomcat + Java, Nginx + Ruby on Rails など リレーショナルデータベース MySQL, SQL Server, Oracle, PostgreSQL など ロードバランサー ウェブ / アプリケーションサーバへのアクセスを分散してくれる装置 ( 負荷分散装置 ) その他 ウェブ / アプリケーションサーバの冗長化にはほぼ必須 バックアップサーバなど
ウェブサイト運営者からよく聞くトラブルや悩み メディアで紹介され アクセスが急増した結果 サーバが負荷に耐えきれず エラーが発生 処理が遅延する サーバの冗長構成がとれておらず 単一のサーバ障害でもサイトが停止してしまう 見込みユーザを失うことになり 機会損失が発生 アクセスのピークに合わせてインフラを設計しているため インフラコストが増加 サイトの収益悪化につながる
Agenda ウェブサイトホスティングの基本 AWS 上でウェブサイトをホスティングするメリット AWS 入門者の方によくある悩み Amazon EC2を作成してみる よくある構成パターン まとめ
クラウドコンピューティングの特徴 初期投資が不要 低額な変動費 実際の使用分のみ支払い セルフサービスなインフラ スケールアップダウンが容易 市場投入と俊敏性の改善 Deploy
1 つのアカウントで世界中のリージョンが利用可能 18 のリージョン +1 ローカルリージョン 1. 米国東部 ( バージニア北部 ) 2. 米国西部 ( 北カリフォルニア ) 3. 米国西部 ( オレゴン ) 4. 欧州 ( アイルランド ) 5. アジアパシフィック ( 東京 ) 6. 南米 ( サンパウロ ) 7. アジアパシフィック ( シンガポール ) 8. アジアパシフィック ( シドニー ) 9. 米国 GovCloud *1 10. 中国 ( 北京 )*2 11. 欧州 ( フランクフルト ) 12. アジアパシフィック ( ソウル ) 13. アジアパシフィック ( ムンバイ ) 14. 米国東部 ( オハイオ ) 15. カナダ ( 中部 ) 16. 欧州 ( ロンドン ) 17. 中国 ( 寧夏 ) *2 18. 欧州 ( パリ ) 19. アジアパシフィック ( 大阪ローカル )*3 今後 ストックホルム 香港 GovCloud(US-EAST) 中東 ( バーレーン ) でのリージョンオープンを計画 *1 GovCloud は米国政府関係企業用です *2 中国のリージョンは他 AWS のアカウントとは別のアカウント作成が必要です *3 大阪ローカルリージョンの利用には 事前の申込と審査が必要です
リージョンとアベイラビリティゾーン (AZ) リージョンは複数のアベイラビリティゾーン (AZ) で構成されています 全世界で合計 55 の AZ AZ は 複数のデータセンターによって構成され 高い耐障害性を提供できる設計になっています AZ Transit AZ AZ AZ AZ Transit https://aws.amazon.com/jp/about-aws/global-infrastructure/
100 を越える AWS サービス群 コンピュート ネットワーク アナリティクス 機械学習 EC2 Elastic Container Elastic Lambda Service Beanstalk Elastic Load Balancing VPC Direct Connect Route 53 Athena EMR Data Pipeline Kinesis Machine Learning QuickSight Elasticsearch Service Lex Machine Learning Polly Rekognition 開発ツール管理ツールセキュリティ CodeBuild CodeCommit CodeDeploy CodePipeline CloudWatch Cloud Formation CloudTrail Config OpsWorks Service Catalog Identity & Access Management Directory Service Trusted Advisor Cloud HSM Key Management Service Web App Firewall ストレージ & 配信 アプリケーションサービス Hubs ゲーム S3 CloudFront EFS Glacier Storage Gateway Snowball API Gateway AppStream CloudSearch Elastic Transcoder Step Functions SES SQS SWF Mobile Hub GameLift モバイルサービスデータベース IoT エンタープライズアプリ Database Cognito Device Mobile Farm Analytics Pinpoint RDS DynamoDB ElastiCache RedShift Simple DB Migration Service IoT WorkSpaces WorkDocs WorkMail
よくいただく質問 サービスについて AWS には多くのサービスがあることは分かったけど LAMP 構成のウェブサイトホスティングだと 具体的にどのサービスを使ったらいいか分からない 既存の技術知識で使えるサービスをまず使いましょう
ウェブサイトホスティングで主なインフラ要素 ウェブ / アプリケーションサーバ Amazon EC2 Amazon Lightsail Amazon EBS データベース Amazon RDS ロードバランサー ELB バックアップ Amazon S3 Amazon EBS スナップショット *AWS サービスのユースケースの 1 つとして紹介しています *Amazon S3 を利用した静的サイトホスティング方法を後半にご紹介しています
Amazon Lightsail いますぐ使える月額 低額でシンプルな VPS 特徴 (https://amazonlightsail.com/) 秒単位でデプロイできる VPS 多くの OS アプリケーション 開発環境イメージを提供 可用性とパフォーマンスを備えた SSD ストレージ 便利なネットワーク管理機能で IP アドレス DNS ファイアウォールなどをセキュアに管理 直感的な Lightsail コンソール シンプルで柔軟な API AWS の他サービスと連携して拡張も可能 価格体系 (https://amazonlightsail.com/pricing/) 必要なスペック ( メモリ CPU ストレージ容量 データ転送量 ) に応じて 5 つのプランから選択 プラン価格は上限額であり 実際の課金は時間単位で計算例 : $5 プランは $0.0067/h の課金 スナップショット 300 万件を超える DNS クエリ プランごとの上限を超えるデータ転送量 アタッチされていない Static IP などがある場合はそれぞれ少額課金
Amazon EC2 (Elastic Compute Cloud) 数分で起動 1 秒ごとの従量課金で利用可能な仮想サーバ (*1) 多数のOSをサポート ライセンス費用込みで従量課金 自由にソフトウェアのインストールが可能 スケールアップ / ダウン アウト / インが容易に可能 (*1) 時間単位の料金が発生する Microsoft Windows または Linux ディストリビューションを実行するインスタンスには 1 秒単位の請求は適用されません お客様独自のアプリケーション 利用したいミドルウェア OS (Windows,Linux) ハイパーバイザー ネットワーク 電源 ラック等 アプリ ミドルウェア 監視ツール等を自由に導入 ボタンを押して数分で ここまで準備される
Amazon EBS (Elastic Block Store) EC2にマウント可能なブロックストレージ 1つのEBSは最大 16TB, 最大 32,000IOPSまで性能を確保可能 内部的に冗長化されているため RAID1での冗長化は不要 サイズ変更可能 スナップショット機能でS3に差分バックアップ /dev/xvda EBS スナップショット S3 2 日前 3 日前 4 日前 EC2 /dev/xvdf EBS EBS スナップショット S3 2 日前 3 日前 4 日前
Amazon RDS (Relational Database Service) フルマネージドの RDBMS サービス MySQL Oracle SQLServer PostgreSQL MariaDB Aurora から選択可能 バックアップやフェイルオーバーに対応したDBを数クリックで利用可能 メンテナンスコストを大幅に削減 ( パッチ当てやバックアップの自動化 ) 自動バックアップ AZ-a AZ-b スナップショット パッチ更新 別 AZ にデータを同期自動的にフェイルオーバー 負荷分散のための 読み取り用レプリカ を作成可能
ELB (Elastic Load Balancing) AWS クラウド上のロードバランシングサービス ELB で実現できるシステム スケーラブル / 高い可用性 : 複数の EC2 インスタンス /ECS サービス等に負荷分散 複数のアベイラビリティゾーンにある複数のターゲットの中から正常なターゲットにのみ振り分け ELB 自体の特徴 スケーラブル 安価な従量課金 : 従量課金で利用可能 運用管理が楽 : ELB 自体も負荷に応じてキャパシティを自動増減 : マネージドサービスなので管理が不要 豊富な連携機能 : Auto Scaling, Route 53 などの AWS サービスと連携
Amazon S3 (Simple Storage Service) データ保存 バックアップ用途に向くオブジェクトストレージ 自動的に三箇所以上のDCに隔地保管 設計上のデータ耐久性は 99.999999999% 容量無制限 サイジング不要 従量課金 1GByteあたり月間 $0.0152~ WEB の静的コンテンツ配信機能 S3 S3 1 データを隔地保管 S3
Agenda ウェブサイトホスティングの基本 AWS 上でウェブサイトをホスティングするメリット AWS 入門者の方によくある悩み Amazon EC2を作成してみる よくある構成パターン まとめ
AWS 入門者の方によくある悩み なにから始めていいかよく分からない ハンズオンを終わらせたが 手順を追っただけで 何が起きているのかよく分からず 応用できない
公式ウェブハンズオン のススメ スケーラブルなウェブサイトの構築方法 WordPressを具体例に EC2 1 台でのホスティング構成から ELBやRDSを利用したサイトの冗長構成を構築可能 *Web 公開ハンズオンのため 好きな時間 タイミングで開始可能 * ただ 内容が濃いため 複数回繰り返すことを推奨 https://aws.amazon.com/jp/getting-started/projects/scalable-wordpress-website/
参考 : 公式ウェブハンズオン で作成できる構成
Agenda ウェブサイトホスティングの基本 AWS 上でウェブサイトをホスティングするメリット AWS 入門者の方によくある悩み Amazon EC2を作成してみる よくある構成パターン まとめ
EC2 の作成ステップ ステップ 1: Amazon マシンイメージ (AMI) 選択任意の OS テンプレートを選択 ステップ 2: インスタンスタイプの選択仮想サーバーのスペックセットを選択 ステップ 3: インスタンスの設定インスタンス台数やネットワーク 運用関連の設定や起動スクリプトを設定 ステップ 4: ストレージの追加仮想ディスクの設定 ステップ 5: インスタンスのタグ付け管理用の名前や情報を追加 ステップ 6: セキュリティグループの設定セキュリティグループを指定または作成 ステップ 7: 確認 作成! 数分後には利用可能です!
AWS 入門者の方がつまづくポイント ステップ 1: Amazon マシンイメージ (AMI) 選択任意の OS テンプレートを選択 ステップ 2: インスタンスタイプの選択仮想サーバーのスペックセットを選択 ステップ 3: インスタンスの設定インスタンス台数やネットワーク 運用関連の設定や起動スクリプトを設定 ステップ 4: ストレージの追加仮想ディスクの設定 ステップ 5: インスタンスのタグ付け管理用の名前や情報を追加 ステップ 6: セキュリティグループの設定セキュリティグループを指定または作成 ステップ 7: 確認 作成!
AMI (Amazon Machine Image) EC2 インスタンスを起動する際に指定するベースイメージ EBS のスナップショットから独自のカスタマイズ AMI を保存可能 AMI を利用することでセットアップ済みのサーバを容易に準備可能 エンジニア A 検証 パッチ適用カーネル変更チューニング テンプレート (AMI) から一時環境をすぐに構築可能 業務担当者 ユーザテスト AMI 化 EC2 AMI 部門の新人 教育
ネットワークの設定??
Amazon VPC(Virtual Private Cloud) AWS 上にプライベートネットワーク空間を構築 任意の IP アドレスレンジが利用可能 論理的なネットワーク分離が可能 必要に応じてネットワーク同士を接続することも可能 ネットワーク環境のコントロールが可能 ルートテーブルや各種ゲートウェイ 各種コンポーネント 複数のコネクティビティオプションが選択可能 インターネット経由 VPN/ 専用線 (Direct Connect)
36 参考 :VPC ウィザードで数画面で VPC を作成可能 2 希望のパターンを選択 ➀VPC ウィザードの開始をクリック 3 選択をクリック 4VPC の作成をクリック
VPC とサブネットの設計例 1/2 VPC : 10.0.0.0 /16 ( 例 ) Internet gateway Availability Zone-1a パブリックサブネット 10.0.1.0 /24 Availability Zone-1c パブリックサブネット 10.0.3.0 /24 Availability Zone-1d パブリックサブネット 10.0.5.0 /24 パブリックサブネットパブリック IP を利用してインターネットと通信するためのリソースが動作するサブネット (Elastic IP により パブリック IP は固定化可能 ) プライベートプライベート 10.0.2.0 /24 10.0.4.0 /24 サブネットサブネット プライベート 10.0.6.0 /24 サブネット プライベートサブネットプライベート IP のまま通信をするためのリソースが動作するサブネット
VPC とサブネットの設計例 2/2 VPC : 10.0.0.0 /16 Internet gateway EC2 がパブリック IP を持っているため インターネットからの ( への ) アクセスが可能 EC2 はプライベート IP しか持たないため インターネットからアクセス不可 Availability Zone-1a Availability Zone-1c Availability Zone-1d パブリックサブネット 10.0.1.0 /24 EC2 パブリックIP: 52.193.241.xxx プライベートIP: 10.0.3.100 パブリックサブネット 10.0.3.0 /24 EC2 同士はプライベート IP で相互通信 パブリックサブネット 10.0.5.0 /24 アクセス不可 EC2 プライベート IP: 10.0.6.10 プライベートプライベート 10.0.2.0 /24 10.0.4.0 /24 サブネットサブネット プライベート 10.0.6.0 /24 サブネット
もう迷わないネットワークの設定
セキュリティグループの考え方 設計例 1/2 通信要件例 SSH 用 EC2( 踏み台用 EC2) c オフィスの固定 IPからSSHのみ許可 Web 用 EC2(2 台 ) インターネットから HTTPS のみ許可 SSH 用 EC2 から SSH のみを許可 DB 用 EC2(MySQL) SSH 用 EC2 から SSH/MySQL のみ許可 Web 用 EC2 から MySQL のみ許可 * いずれも Outbound は制限しない
セキュリティグループの考え方 設計例 2/2 (ssh-ec2-sg) SSH 用 EC2( 踏み台用 EC2) オフィスの固定 IP から SSH のみ許可 (web-ec2-sg) 固定 IP Web 用 EC2 インターネットから HTTPS のみ許可 SSH 用 EC2 からのみ SSH を許可 (db-ec2-sg) DB 用 EC2(MySQL) SSH 用 EC2 から SSH/MySQL のみ許可 Web 用 EC2 から MySQL のみ許可
もう迷わないセキュリティグループの設定
Agenda ウェブサイトホスティングの基本 AWS 上でウェブサイトをホスティングするメリット AWS 入門者の方によくある悩み Amazon EC2を作成してみる よくある構成パターン まとめ
よくある構成パターン 構成パターン 1. CloudFront+S3を利用 2. 仮想サーバ 1 台に全部のせる 3. WebとDBを分ける 4. ELBを使いWebを冗長化する 5. セキュリティ向上 6. スケーラビリティ向上 7. アプリケーションの自動デプロイ
よくある構成パターン 構成パターン 1. CloudFront+S3を利用 静的ウェブサイトを仮想サーバを使用せず構築 2. 仮想サーバ 1 台に全部のせる 3. WebとDBを分ける 4. ELBを使いWebを冗長化する 5. セキュリティ向上 6. スケーラビリティ向上 7. アプリケーションの自動デプロイ
Amazon CloudFront マネージド CDN(Contents Delivery Network) サービス 配信 Amazon CloudFront オフロード 特徴 (http://aws.amazon.com/jp/cloudfront/) 簡単にサイトの高速化が実現できると共に サーバの負荷も軽減 様々な規模のアクセスを処理することが可能 世界 100 箇所以上にエッジロケーション クライアント レスポンス向上 キャッシュ 負荷軽減 価格体系 (http://aws.amazon.com/jp/cloudfront/pricing/) Webサーバ データ転送量 (OUT) HTTP/HTTPSリクエスト数 ( 利用する場合 )SSL 独自証明書など
AWS Certificate Manager (ACM) 簡単に SSL/TLS 証明書を作成 管理 配置 HTTPS 証明書指定 特徴 (https://aws.amazon.com/jp/certificate-manager/) ドメイン認証 (DV) タイプの証明書を無料で提供 CloudFront, ELB, API Gateway で利用可 秘密鍵は AWS サービス内で安全に管理される 更新も自動的に行われる 価格体系 (https://aws.amazon.com/jp/certificate-manager/pricing/) 無料
構成パターン 1: CloudFront + S3 を利用 静的ウェブサイトを仮想サーバを使用せず構築 ( アクセス例 ) https://www.example.com/index.html CloudFront は index.html を S3 から取得し クライアントへ返す 2 回目以降のアクセスは CloudFront がキャッシュから返す CloudFront ファイル取得 キャッシュ 証明書のインポート ACM 証明書の発行 S3 の静的コンテンツ配信機能を利用し CloudFront より配信 ウェブサイトが静的コンテンツのみ配信している場合に有効な構成 フルマネージドサービスを利用しており 低コストかつサーバ管理は不要 ACM を利用することで独自ドメインを簡単に HTTPS 化可能 S3 静的ファイル HTML JavaScript css 画像 / 動画など 要件上 PHP などのアプリケーションコードが必要な場合 ( 動的コンテンツ ) は 仮想サーバが必要となる
よくある構成パターン 構成パターン 1. CloudFront+S3を利用 2. 仮想サーバ 1 台に全部のせる Amazon Lightsailを仮想サーバ (VPS) として利用 Amazon EC2を仮想サーバとして利用 3. WebとDBを分ける 4. ELBを使いWebを冗長化する 5. セキュリティ向上 6. スケーラビリティ向上 7. アプリケーションの自動デプロイ
構成パターン 2-1: Lightsail 1 台に全部のせる Web/App/DB を Lightsail VPS 1 台にインストール Lightsail インスタンス AZ 1 Web App DB 専用コンソールから直感的にインスタンスを作成し すぐに利用可能 専用コンソールから IP アドレス DNS ファイアウォールなどを管理可能 テスト 開発環境 プロトタイピングなど要件上 VPS 1 台で問題ない場合など ( 専用コンソール例 )
構成パターン 2-2: EC2 1 台に全部のせる Web/App/DB を EC2 1 台にインストール EC2 パブリックサブネット AZ 1 Web App DB 背景例 検証で作った EC2 でそのままサービスインしてしまった場合にありうる構成 冗長構成が取れていないため インスタンス障害時はサービス停止が発生 負荷対策はスケールアップのみの対応となる DB の負荷が Web/App に影響を与える ( 逆も然り ) 次のステップ : スケーラブルな構成の第一歩として Web(App) と DB を分ける
Lightsail の使い所 EC2 との使い分け Amazon EC2 シンプルな Web サイトやアプリケーション テスト 開発環境 社内ツール 小規模なビジネスソフトウェア スモールスタートやプロトタイピング 複数台 / 複数レイヤ構成のアプリケーション ビッグデータ分析 HPC 画像変換 ストリーミング配信 etc 柔軟 詳細なアクセス制御やネットワーク設定 厳密な運用監視 アラート設定 Auto Scaling や複数 AZ で高可用性 豊富な OS AMI の選択肢
よくある構成パターン 構成パターン 1. CloudFront+S3を利用 2. 仮想サーバ 1 台に全部のせる 3. WebとDBを分ける 4. ELBを使いWebを冗長化する 5. セキュリティ向上 6. スケーラビリティ向上 7. アプリケーションの自動デプロイ
構成パターン 3-1:Web/App と DB を分ける (on EC2) EC2 を 2 台作成し Web/App 用と DB 用で用途を分ける EC2 AZ 1 Web App パブリックサブネット EC2 DB プライベートサブネット 背景例 RDS の検証を始めようと思いつつも 気づけばサービスインしてしまった場合にありうる構成 Web/App と DB を分けており 互いに影響を与えない構成にはなっているが どちらも冗長構成となっていない DB の運用管理タスクは自分で行う必要あり 次のステップ : DB on EC2 を RDS へ置き換える
構成パターン 3-2:Web/App と DB を分ける (RDS 利用 ) Web/App 用の EC2 と DB に RDS を利用 (Single AZ) EC2 Web App DB をマネージドサービスである RDS に置き換えたが Multi-AZ 構成にしていない 意図的な場合もあるが 設定漏れの場合があり 障害などでサービス影響が発生して初めて判明することがある ( 既に RDS をご利用中の方は念の為確認を!) パブリックサブネット プライベートサブネット AZ 1 DB (RDS) DB を RDS に置き換えたため DB のバックアップなどの運用管理タスクは不要 EC2(Web/App) は冗長化されていない 次のステップ : RDS を Multi-AZ 化
構成パターン 3-3:Web/App と DB を分ける (RDS 利用 ) Web/App 用の EC2 と DB に RDS を利用 (Multi AZ) EC2 Web App バックアップの自動取得 障害発生時などの自動切り替わりなどマネージドサービス RDS の機能を最大限活用できている RDS (Master) パブリックサブネット プライベートサブネット AZ 1 RDS (Slave) プライベートサブネット AZ 2 EC2(Web/App) が冗長化されていない HTTPS の場合は 証明書を EC2 にインポートする必要がある 次のステップ : ELB を利用して Web/App の冗長化 HTTPS のオフロード
よくある構成パターン 現在の構成 構成パターン 1. CloudFront+S3を利用 2. 仮想サーバ 1 台に全部のせる 3. WebとDBを分ける 4. ELBを使いWebを冗長化する 1. ELB 配下にEC2を2 台配置した冗長構成 2. サイトの成長に応じてEC2をスケールアウトさせる構成 5. セキュリティ向上 6. スケーラビリティ向上 7. アプリケーションの自動デプロイ
構成パターン4-1 ELBを使いWebを冗長化する Web/App用EC2をもう1台作成し 2台ともELB配下に置く HTTPS HTTP Web EC2 App パブリック サブネット ELB (ロードバランサー) EC2 パブリックサブネット DB (RDS) DB (RDS) プライベートサブネット AZ 1 Web App プライベートサブネット AZ 2 EC2の冗長化ができている ELBのSSLオフロード機能を利用することで HTTPSをELBで受けて ELBがEC2へ流すトラ フィックをHTTPへ変更可能 EC2 1台構成時に HTTPのみだった場合も EC2側には大きな変更が必要なくサイトのHTTPS 化が可能 証明書はACMにより無料で発行 ELBへインポート可能 ACMで発行した証明書はEC2へインポートはできない 次のステップ サイトの成長に応じてEC2をスケールアウト させる
構成パターン4-2:Web/Appの冗長化 EC2をスケールアウトさせて アクセス数の増加に対応 ELB EC2 の数を増やすことでアクセス数の増加に対応 EC2 EC2 EC2 EC2 パブリック AZ 1 サブネット Web App DB (RDS) プライベートサブネット EC2 EC2 パブリックサブネット AZ 2 Web App DB (RDS) プライベートサブネット アプリ更新時は 更新対象となるインスタンス数も増えるため 手動による運用だと運用管理コストが増加する可能性もあり 手動管理のインスタンス数が増えすぎる前に Auto Scaling などの自動化の仕組みが必要となってくる
よくある構成パターン 現在の構成 構成パターン 1. CloudFront+S3を利用 2. 仮想サーバ 1 台に全部のせる 3. WebとDBを分ける 4. ELBを使いWebを冗長化する 5. セキュリティ向上 1. 踏み台サーバの作成 EC2をプライベートサブネットへ設置 2. セキュリティグループの厳密化 6. スケーラビリティ向上 7. アプリケーションの自動デプロイ
構成パターン 5-1: セキュリティ向上構成 1/2 踏み台サーバ設置による 管理用アクセスの統一 Web/App 用 EC2 をプライベートサブネットに配置 SSH EC2 パブリックサブネット EC2 踏み台サーバ Web App ELB パブリックサブネット EC2 Web App ユーザトラフィックはすべて ELB で受けており EC2 自身を外部公開する必要がない場合は ELB 配下の EC2 をプライベートサブネット内に置く ( 既存 EC2 のサブネット変更はできないため AMI より EC2 を再作成する必要あり ) プライベートサブネット内の EC2 が外部サービスと連携する場合は NAT Gateway の設置を検討する DB (RDS) DB (RDS) 外部からの管理アクセスの入口を統一化するため パブリックサブネットに踏み台サーバを構築 プライベートサブネット プライベートサブネット AZ 1 AZ 2
構成パターン 5-2: セキュリティ向上構成 2/2 厳密なセキュリティグループを設定し 必要な通信のみ制御する HTTPS SSH SSH EC2 踏み台 パブリックサブネット EC2 Web App ELB HTTP EC2 Web App MySQL 外部とのネットワーク境界を防御する ( 例 ) 踏み台サーバへのアクセスは IP 制限 / ポート制限を実施 ELB へのアクセスは ポート制限を実施 (TCP:443 のみ ) VPC 内のリソース間でもセキュリティグループにより厳密なアクセス制限する MySQL プライベートサブネット AZ 1 DB (RDS) AZ 2 DB (RDS) プライベートサブネット
よくある構成パターン 構成パターン 1. CloudFront+S3を利用 2. 仮想サーバ 1 台に全部のせる 3. WebとDBを分ける 4. ELBを使いWebを冗長化する 5. セキュリティ向上 6. スケーラビリティ向上 Auto Scaling の導入 7. アプリケーションの自動デプロイ 現在の構成
構成パターン 6:Auto Scaling の導入 Auto Scaling により高い可用性 拡張性 コスト最適化を実現 ELB 需要に応じて自動的にサーバが増減しコストカット スケーリングのポリシーやインスタンスは柔軟に設定可能 異常なインスタンスや AZ を自動で切り離し高可用性を実現 パブリックサブネット EC2 自動登録 DB (RDS) Auto Scaling Group パブリックサブネット EC2 DB (RDS) EC2 自動削除 EC2 自動作成 設定例 本番用 AMI から EC2 を作成 作成された EC2 は ELB に自動登録 m4.large を最小 2 台 : 最大 6 台 EC2 の平均 CPU 使用率 が 60% を維持するようにスケーリング * アプリ更新時のデプロイ方法は下記参考資料を参照 プライベートサブネット プライベートサブネット AZ 1 AZ 2 本番用 AMI https://www.slideshare.net/amazonwebservicesjapan/aws-black-belt-online-seminar-2017-auto-scaling
よくある構成パターン 構成パターン 1. CloudFront+S3を利用 2. 仮想サーバ 1 台に全部のせる 3. WebとDBを分ける 4. ELBを使いWebを冗長化する 5. セキュリティ向上 6. スケーラビリティ向上 7. アプリケーションの自動デプロイ Elastic Beanstalk を使用したインフラとアプリ管理の自動化
66 AWS Elastic Beanstalk 定番構成の構築 アプリデプロイの自動化サービス 速く簡単にアプリケーションをデプロイ可能 インフラストラクチャの準備 & 運営からアプリケーションスタックの管理まで自動化 Auto Scaling によりコストを抑えながらスケーラビリティを確保 Java, PHP, Ruby, Python, Node.js,.NET, Docker, Go, カスタムプラットフォームに対応
構成パターン 7: アプリケーションの自動デプロイ 1/2 Elastic Beanstalk を使用したインフラとアプリ管理の自動化 インフラの管理の自動化 パブリックサブネット EC2 プライベートサブネット AZ 1 DB (RDS) Auto Scaling Group ELB EC2 AZ 2 DB (RDS) プライベートサブネット インフラの自動化 ELB, EC2, Auto Scaling, セキュリティグループなど個別に作成 設定していたインフラ要素を Elastic Beanstalk から作成 管理 アプリケーション管理の自動化 Elastic Beanstalk へソースコードをアップロードすることで 自動で EC2 へアプリケーションがデプロイされる ( 最初から Elastic Beanstalk を使って構築を行うという考え方もあり ) アプリの自動デプロイ
構成パターン 7: アプリケーションの自動デプロイ 2/2 Elastic Beanstalk を使用したインフラとアプリ管理の自動化例 環境の作成 アプリケーションのデプロイ ver A アプリケーションのデプロイ ver B ELB アプリデプロイ ELB アプリデプロイ ELB EC2 AZ 1 EC2 AZ 2 EC2 EC2 AZ 1 AZ 2 EC2 EC2 AZ 1 AZ 2 管理者 環境作成 ( 例 ) php7.1 ELB 使用 m4.large Auto Scaling(2-6 台 ) など 管理者 ソースコード (ver A) をアップロード マネジメントコンソール /CLI でソースコードをアップロード 管理者 * Elastic Beanstalkの詳細については下記参考資料を参照 https://www.slideshare.net/amazonwebservicesjapan/aws-black-belt-online-seminar-2017-aws-elastic-beanstalk ソースコード (ver B) をアップロード
Agenda ウェブサイトホスティングの基本 AWS 上でウェブサイトをホスティングするメリット AWS 入門者の方によくある悩み Amazon EC2を作成してみる よくある構成パターン まとめ
まとめ LAMP 構成でのウェブサイトホスティングを例に AWS 入門者の方によくあるつまずきポイントや今後の規模拡張を見越した構成をご紹介しました AWS のサービスを積極的に活用することで お客様は本来やるべきビジネスに集中できます 本セミナーで紹介した AWS サービスや構成例はごく一部ですが もっと AWS について知りたい方は.
オンラインセミナー資料の配置場所 AWS クラウドサービス活用資料集 https://aws.amazon.com/jp/aws-jp-introduction/ Amazon Web Services ブログ 最新の情報 セミナー中の Q&A 等が掲載されています https://aws.amazon.com/jp/blogs/news/
AWS の導入 お問い合わせのご相談 AWS クラウド導入に関するご質問 お見積 資料請求をご希望のお客様は以下のリンクよりお気軽にご相談下さい https://aws.amazon.com/jp/contact-us/aws-sales/ AWS 問い合わせ で検索して下さい
AWS Well Architected 個別技術相談会お知らせ Well Architected フレームワークに基づく数十個の質問項目を元に お客様が AWS 上で構築するシステムに潜むリスクやその回避方法をお伝えする個別相談会です https://pages.awscloud.com/well-architected-consulting-jp.html 参加無料 毎週火曜 木曜開催
公式 Twitter/Facebook AWS の最新情報をお届けします @awscloud_jp 検索 もしくは http://on.fb.me/1vr8ywm 最新技術情報 イベント情報 お役立ち情報 お得なキャンペーン情報などを日々更新しています!