Comments
Description
Transcript
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をもっと楽しく