http://bit.ly/aws-‐cdp-‐ec-‐jt

AWS Japan Tour 2014夏
http://bit.ly/aws-­‐cdp-­‐ec-­‐jt
AWS CDPハンズオン!
!
Eコマース編
‹#›
1
⾃自⼰己紹介
❖ 名前 ❖堀内 康弘 ❖ 所属/職種 ❖ アマゾンデータサービスジャパン ❖ テクニカルエバンジェリスト ❖ ID ❖@horiuchi !
❖ 好きなAWSサービス ❖Amazon RDSを中⼼心に全サービス
2
AWS クラウドデザインパターンとは
“AWSクラウドを利利⽤用する際に発⽣生する、典型的な問題と
それに対する解決策・設計⽅方法について、先⼈人たちの知
恵を分かりやすく分類して、ノウハウとして利利⽤用できる
ように整理理したもの”
-­‐ Ninja of Three -­‐
3
Wikiでパターンを公開中
❖ https://www.facebook.com/awscdp ❖Facebookを「CDP」で検索索 ❖ http://aws.clouddesignpattern.org ❖「クラウドデザインパターン」で検索索
4
❖
5
CDPシナリオ[Eコマースサイト]
このシナリオの背景
❖まさかの
雲グッズ販売サイト開始
ec.cloudesignpattern.org
❖EC-‐‑‒CUBEバージョン 2.11.4 ❖Amazon Linux (64bit) ❖PHPバージョン PHP 5.3.8 ❖DBバージョン MySQL 5.1.52
初期のデザイン
EC-­‐CUBE Apache MySQL
課題
❖課題:
利利⽤用ソフトのバージョンアップが必要
Floating IPパターンの適⽤用後
Amazon Route 53
ec.clouddesignpattern.org
EIP
EIP「46.51.xxx.xxx」
④EIPを付け替える
本番 環境
テスト 環境 ③ソフトウェアをアップデー
トしテストを⾏行行う
EC2
EC2
①AMIを 取得する
②テスト環境⽤用の EC2インスタンスを ⽴立立ち上げる
EC2 AMI
課題
❖課題: サーバに障害が発⽣生して、
速やかに復復旧したい
Server Swappingパターンの適⽤用後
サーバに障害
仮想 サーバ
仮想 サーバ
データ
サーバ起動
データ
仮想ディスク 仮想ディスク
マシン
イメージ
課題
❖課題: Webサーバが落落ちても、システム
全体で稼働し続けるようにしたい
Multi-‐‑‒Serverパターン
ロードバランサ
オリジ
ナル
冗⻑⾧長
構成
EC2
インスタンス
EC2
インスタンス
MySQL DB インスタンス
Multi-‐‑‒Serverパターンの適⽤用後
ロードバランサ
オリジ
ナル
冗⻑⾧長
構成
EC2
インスタンス
EC2
インスタンス
MySQL DB インスタンス
課題
❖課題: DB部分のSPOFを解消したい !
❖ DB Replicationパターンを適⽤用し、
DBをマルチ構成に切切り替える
DB Replicationパターンの適⽤用後
ロードバランサ
オリジ
ナル
冗⻑⾧長
構成
EC2
インスタンス
EC2
インスタンス
同期
MySQL DB インスタンス
ゾーン1a
MySQL DB スタンバイ
ゾーン1b
課題
❖課題: サーバレベルだけでなく、データ
センタレベルの障害にも対応できるように
する !
❖ Multi-‐‑‒Datacenterパターンを適⽤用し、
すべてのレイヤで冗⻑⾧長化を⾏行行う
Multi-‐‑‒Datacenterパターンの適⽤用後
ロードバランサ
オリジ
ナル
冗長
構成
EC2
インスタン
ス
EC2
インスタン
ス
同期
MySQL DB インスタンス
ゾーン1a
MySQL DB スタンバイ
ゾーン1b
デザイン推移
SPOF回避
障害対応
障害対策
最終
今回のハンズオン
❖Multi-‐‑‒Serverパターン
21
全てのシナリオ実装は・・
AWSクラウドデザインパターン
AWS利利⽤用時の設計パターンを収録 「実装ガイド」が発売中!
22
❖
ハンズオン
Eコマースサイトの⽴立立上げ
http://bit.ly/handson-­‐cdp-­‐ec
23
EC-‐‑‒CUBEのAMIを起動する
❖ 下記サイトを参考に、EC-‐‑‒CUBEのAMI起動 ❖http://aws.aipo.com/oss/ec-‐‑‒cube_̲ami.html ❖ 注) EC2起動したことが無い⼈人は下記スライド参照 ❖ http://www.slideshare.net/AmazonWebServicesJapan/aws-‐‑‒basic-‐‑‒20120629
①クリックすれば、
AMI起動の画面に
とびます
動作確認:EC2の起動
❖ ⽴立立ち上がったEC2インスタンスのPublic URLにアクセス
すると初期設定画⾯面が出るのを確認します ❖ 例例: ec2-‐‑‒54-‐‑‒248-‐‑‒xxxxxx.ap-‐‑‒
northeast-‐‑‒1.compute.amazonaws.com !
❖ 下記の画⾯面が出ればOK! ❖ ここから、独⾃自のドメイン名をつけてみましょう!
25
Route53(DNSサーバ)の設定
❖今回のハンズオンでは、ホスト名をお貸し出しします ❖以下ログインURLおよびアカウントでログインして作
業を⾏行行なって下さい ❖ https://horiuchi.signin.aws.amazon.com/console
❖User Name: japantour ❖Password: JapanTour2014!
26
!注意点!
❖ 元のアカウントで再ログインする場合は、以
下のリンクをクリックして下さい。
27
Route53(DNSサーバ)の設定
❖サービス⼀一覧からRoute53を選択 ❖「horiuchi.asia」にチェックを⼊入れて、
「Go to Record Sets」をクリック
28
レコードセットの作成
つけたいドメイン名を入力!
(なんでも良い)
1. クリック
TTLを60秒に
テストを行なった時の
Endpointを設定
29
動作確認:ドメイン名
❖ さきほど設定したURLにアクセスして、動作を確認しま
しょう ❖ http://xxxxxx.horiuchi.asia !
❖ 下記の画⾯面がまた出ればOK!
30
EC-‐‑‒CUBEの設定
❖ EC-CUBEの初期設定画⾯面を下記ブログを参照しておこないます ❖ http://ow.ly/j1pOo ❖ 注意点 ❖ 「Webサーバーの設定」の際に、先ほど設定した独⾃自ドメイン
名を設定する(通常とセキュアは同じで良良い) ❖ http://xxxxxx.horiuchi.asia ❖ 管理理画⾯面にログインするところまで実施します
設定したドメイ
ン名をいれる
31
動作確認:管理理画⾯面
❖ 設定が全て終わり、最後に管理理画⾯面へのログインをクリック !
!
❖ 下記の画⾯面が出ればOK! ❖ アドミンでログインして動作を確認してみます
32
動作確認:EC-‐‑‒CUBEトップページ
❖ xxxx.horiuchi.asiaにアクセスすると、
EC-‐‑‒CUBEのインストールが確認できました
33
❖
ハンズオン
Multi-‐‑‒Serverパターン
34
Multi-‐‑‒Serverパターン
❖ Multi-‐‑‒Serverパターンにより、サーバーを冗⻑⾧長化して可⽤用性を⾼高めましょう ❖ ハンズオンの流流れ ❖ 1台構成(Web+DB)をあらため2台構成にする ❖ RDSを⽴立立ち上げ ❖ データ移⾏行行する (WebとDBを分離離) ❖ WebレイヤのカスタムAMIを作成 ❖ Webサーバーを2台にして冗⻑⾧長化 ❖ ELBを⽴立立ち上げて負荷分散
http://aws.clouddesignpattern.org/index.php/CDP:Multi-­‐Server%E3%83%91%E3%82%BF
%E3%83%BC%E3%83%B3 35
Multi-‐‑‒Serverパターン
❖ Multi-‐‑‒Serverパターンにより、サーバーを冗⻑⾧長化して可⽤用性を⾼高めましょう ❖ ハンズオンの流流れ ❖ 1台構成(Web+DB)をあらため2台構成にする ❖ RDSを⽴立立ち上げ ❖ データ移⾏行行する (WebとDBを分離離) 今回はスキップします
❖ WebレイヤのカスタムAMIを作成 ❖ Webサーバーを2台にして冗⻑⾧長化 ❖ ELBを⽴立立ち上げて負荷分散
http://aws.clouddesignpattern.org/index.php/CDP:Multi-­‐Server%E3%83%91%E3%82%BF
%E3%83%BC%E3%83%B3 36
Multi-‐‑‒Serverパターンの適⽤用後
ロードバランサ
オリジ
ナル
冗⻑⾧長
構成
EC2
インスタンス
EC2
インスタンス
MySQL DB インスタンス
❖
ハンズオン
ELBの起動
38
ELBインスタンスの作成
❖ ELB作成 ❖ EC2画⾯面に移動 ❖ ELB( Load Balancers)を選択し、「Create Load balancer」をクリック
ELBインスタンスの作成
❖ ELB基本設定 ❖ Load Balancer Name に、ELBの名前(任意。例例:eccube) を⼊入⼒力力する
ELBインスタンスの作成
❖ ELBの詳細設定 ❖ Health Check詳細にて、Ping Pathを、/js/eccube.jsに変更更する
/js/eccube.js
ELBインスタンスの作成
❖ ELBのセキュリティグループ設定 ❖ Create a new security groupを選択して、任意の名前を⼊入⼒力力
ELBインスタンスの作成
❖ ELBに参加するEC2インスタンスの選択
ELBインスタンスの作成
❖ ELB作成最終確認 ❖ Load Balancer Nameを確認して、「Create」
ELBインスタンスの確認
❖ ELB ❖ ELB⼀一覧に、作成したELB名が表⽰示されることを確認 ❖ Descriptionタブで、DNS Name (A Record)を確認
XXX
動作確認: ELB
❖ ELBの動作確認 ❖ ELBのDNS Name (A Record)を再度度確認 ❖ ブラウザでアクセスし、EC-‐‑‒CUBEの画⾯面が閲覧できることを確認 ❖
http://ELBのエンドポイント DNS名/
❖
ハンズオン
カスタムAMI作成
47
カスタムAMI作成
構築したインスタンスを右クリックして「Create Image」を選択 AMIの名前を必要に応じて⼊入⼒力力(例例: eccube-‐‑‒test) 「No Reboot」にチェックしない AMI作成開始 カスタムAMIの確認
AMIs画⾯面へ ⾃自分が作成したAMIの⼀一覧が表⽰示される
AMIからEC2インスタンス起動
カスタムAMIでインスタンス起動 AMIs 画⾯面からAMIを右クリックして「Launch」 インスタンス画⾯面からインスタンス起動ウィザード中にAMIを表⽰示・選択 XXXX
動作確認:EC-‐‑‒CUBEトップページ
❖ Public URLにアクセスすると、EC-‐‑‒CUBEが
無事に動作していることを確認できます
51
❖
ハンズオン
EC2インスタンスのELBへの追加
52
ELBインスタンスの設定
❖ ELB ❖ Instances タブで、配下のEC2インスタンスに何も表⽰示されないことを確認 ❖ インスタンスを追加するため、「Edit Instances」をクリック
ELBインスタンスの設定
❖ ELBにEC2インスタンスを追加する ❖ ELB配下に加える、先ほど新たに起動しておいたEC2インスタンスを選択し、
「Save」
ELBインスタンスの設定
❖ ELBにEC2インスタンスを追加する ❖ Instancesタブに、選択したインスタンスが表⽰示されることを確認 ❖ 数分のちに、リフレッシュして、インスタンスのStatusが「Out of Service 」から
「In Service」に変わったことを確認
ELBインスタンスの確認
❖ ELBの動作確認 ❖ ELBのDNS Name (A Record)を再度度確認 ❖ ブラウザでアクセスし、EC-‐‑‒CUBEの画⾯面が閲覧できることを確認 ❖
http://ELBのエンドポイント DNS名/
Route53(DNSサーバ)の設定
❖以下ログインURLおよびアカウントでログインし
て作業を⾏行行なって下さい ❖ https://horiuchi.signin.aws.amazon.com/console ❖User Name: japantour ❖Password: JapanTour2014!
57
Route53(DNSサーバ)の設定
❖サービス⼀一覧からRoute53を選択 ❖「horiuchi.asia」にチェックを⼊入れて、
「Go to Record Sets」をクリック
58
Route53(DNSサーバ)の設定
❖ 設定済みCNAMEレコードのvalue値を、
ELBのDNS名に変更更
59
Route53(DNSサーバ)の設定
❖nslookupで、ELBのDNS名が設定されているか確認 ❖ブラウザからXXXX.horiuchi.asiaでアクセスして確認
60
お疲れ様でした!
Multi-­‐Serverパターン
の適用後
ロードバランサ
オリジ
ナル
冗⻑⾧長
構成
EC2
インスタンス
EC2
インスタンス
MySQL DB インスタンス
EC2インスタンスを壊してみる?!
❖ EC2のインスタンスの停⽌止 ❖ EC2インスタンスを1台Stopしてみる(2台から1台になる) ❖ EC2のコンソールから、1台Stop
❖ ブラウザでEC-‐‑‒CUBEの画⾯面が通常通り閲覧できることを確認
お疲れ様でした
以下の順序で、AWSで作業した環境の⽚片付けをおねがいします そのままにしておくと課⾦金金が発⽣生します !
1. EC2インスタンス ❖ 右クリック-‐‑‒>Termination 2. ELB ❖ 右クリック-‐‑‒>Delete 3. AMI ❖ 右クリック-‐‑‒>Deregister 4. スナップショット ❖ 右クリック-‐‑‒>Delete
!
Security Group, Key Pairは無料料ですので、引き続きお使いください
63
❖
64
CDPでAWSをもっと楽しく