Jaws−横浜ハンズオンーCloudFormation 1/3

2,943 views
2,822 views

Published on

AWS CloudFormatioNをつかった世界最速ハンズオン。EC2で作った環境をVPCに移行する。

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,943
On SlideShare
0
From Embeds
0
Number of Embeds
41
Actions
Shares
0
Downloads
7
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Jaws−横浜ハンズオンーCloudFormation 1/3

  1. 1. ハンズオン:CloudFormerを使い、現シ ステムをテンプレートで保存する。ARAKI Yasuhiro
  2. 2. 取り上げるパターンv 基本のパターン•  Stamp Pattern•  Bootstrap Pattern•  Stack Deployment Pattern ARAKI Yasuhiro
  3. 3. このハンズオンのための準備v ⾃自分のAWSシステム v Route53,  ELB,  RDS,  EC2を使いますv インストール v CloudFormation(CFN)のコマンドラインツール (必須) v テキストエディタ(必須) v JSONエディタ(任意) ARAKI Yasuhiro
  4. 4. CloudFormationのコマンドラインツールv https://s3.amazonaws.com/cloudformation-‐‑‒cli/ AWSCloudFormation-‐‑‒cli.zip ARAKI Yasuhiro
  5. 5. 進め⽅方v VPCをコンソールでEccubeをつかった 3Tier  Webサイトを作りますv 同じことを実現する CFNT(CloudFormation  Template)を 作ります ARAKI Yasuhiro
  6. 6. テンプレートv https://s3-‐‑‒ap-‐‑‒northeast-‐‑‒1.amazonaws.com/ arakisa/CloudFormation/eccube-‐‑‒araki-‐‑‒ classic09.json   v ⾃自分のシステムが無い⽅方は、これを起動してシステムをつくっ ておきましょう。 ARAKI Yasuhiro
  7. 7. Stampパターン v ブート領領域⽤用のEBSおよび、 仮想サーバが利利⽤用している 全てのEBSをそのまま保存 する形でAmazon  Machine   Image  (AMI)を作成できる。 v AMIから同⼀一設定のEC2イ ンスタンスを⼤大量量に⽤用意で きる。   ARAKI Yasuhiro
  8. 8. マネージメントコンソールでAMI作成 ARAKI Yasuhiro
  9. 9. AMIに“Image  Name”をつける ARAKI Yasuhiro
  10. 10. 作成したAMIの確認 ARAKI Yasuhiro
  11. 11. Bootstrapパターン v AMIの⼀一部を修正し て使⽤用する。 v user-‐‑‒data v cloud-‐‑‒init ARAKI Yasuhiro
  12. 12. user-‐‑‒dataを試す#!/bin/shyum  install  httpd  -‐‑‒y シバンから始まった内容のときは シェルスクリプトとして動作する service  httpd  startv 内容の確認 curl  http://169.254.169.254/latest/user-‐‑‒data   ARAKI Yasuhiro
  13. 13. user-‐‑‒data ARAKI Yasuhiro
  14. 14. Cloud-‐‑‒initv Linuxでのシステム管理理のためによく⾏行行わ れる作業のための書式 v packages: v runcmd:全容の確認についてhttp://bazaar.launchpad.net/~∼cloud-‐‑‒init-‐‑‒dev/cloud-‐‑‒init/trunk/files/441/doc/examples/ ARAKI Yasuhiro
  15. 15. cloud-‐‑‒initを試す#cloud-‐‑‒configpackages:-‐‑‒  httpd-‐‑‒  git  runcmd:-‐‑‒  [  /etc/init.d/httpd,  restart  ] ARAKI Yasuhiro
  16. 16. cloud-‐‑‒configを試す ARAKI Yasuhiro
  17. 17. Stack  Deploymentパターン v システム単位で実施 v CloudFormationテン プレートを⽤用意 v ⼀一発で作成できる。 v ⼀一度度に削除できる   ARAKI Yasuhiro
  18. 18. CloudFormationテンプレート作成3種v AWS  CloudFormation  User  Guideを読むv http://aws.amazon.com/jp/ cloudformation/aws-‐‑‒cloudformation-‐‑‒ templates/のサンプル流流⽤用v CloudFormerを使う⽅方法   v AWSリソースからCloudFormationテンプレート を作成する ARAKI Yasuhiro
  19. 19. CloudFormerv http://bit.ly/TokyoCloudFormer ARAKI Yasuhiro
  20. 20. IAMの許可 ARAKI Yasuhiro
  21. 21. Cloudformerの準備(確認) ARAKI Yasuhiro
  22. 22. 準備v S3のバケットv AWS上のシステム v EC2+ELBあたりがおすすめ ARAKI Yasuhiro
  23. 23. CloudFormerの使⽤用 URLをクリックする ARAKI Yasuhiro
  24. 24. リージョンの選択 ARAKI Yasuhiro
  25. 25. テンプレートに含めたいリソースの選択v Route53,  ELB,  EC2,  RDS,  Security   Group..のように含めたいリソースを選択v 漏漏れにはやり直せばいいので気楽に。 ARAKI Yasuhiro
  26. 26. サマリの確認 問題なければ  Con(nue  を選ぶ ARAKI Yasuhiro
  27. 27. S3にテンプレート保存 S3内のファイルを確認しましょう ARAKI Yasuhiro
  28. 28. ⾃自習v 作成したCFTからシステム再現してみよう 1.  元のシステムを動かしたまま 2.  別のリージョンへの再現 ARAKI Yasuhiro
  29. 29. CloudFormerから⼀一歩進むためにv 本ハンズオンで使うCFT v http://arakisa.s3.amazonaws.com/ CloudFormation/eccube-‐‑‒araki-‐‑‒ classic01.json v そのままでは動きません!修正して使います。 ARAKI Yasuhiro
  30. 30. CloudFormerから⼀一歩進むためにv CloudFormerでは。。 v 同じ設定の単純繰り返し v ⼀一部⼿手作業の必要性→CloudFormationテンプレートを修正しよう! 1.  AMIの指定 2.  パラメータの追加と利利⽤用 3.  user-‐‑‒dataの追加 4.  R53をつかってELBのCNAMEを⼀一定に ARAKI Yasuhiro
  31. 31. AMIの指定v “ImageId”:  “ami-‐‑‒  "instanceib3ba90b3":  {            "Type":  "AWS::EC2::Instance", xxxxxx”  を修正            "Properties":  {                "AvailabilityZone":  "ap-‐‑‒northeast-‐‑‒1a", v ⾃自分が作成したAMI                  "DisableApiTermination":  "FALSE", IDに変更更                "ImageId":  "ami-‐‑‒9057e591",                "InstanceType":  "m1.small",                "KernelId":  "aki-‐‑‒44992845",                "Monitoring":  "true", ARAKI Yasuhiro
  32. 32. Parametersの指定v ELBが使⽤用し、Route53に登録するFQDNを指定 するためのSiteURL。v eccubeが使⽤用するインスタンスタイプを選択する ためのInstanceType。v RDS v バックアップ時間を決めるBackupWindow v データベース接続に使うユーザ名を指定する  DBUser v データベース接続に使うパスワードを指定すDBPass ARAKI Yasuhiro
  33. 33. パラメータの追加v https://gist.github.com/armaniacs/ 4752642#file-‐‑‒parameters-‐‑‒json ARAKI Yasuhiro
  34. 34. user-‐‑‒dataの追加v AWS::EC2::Instance中で”UserData”を 使うとuser-‐‑‒dataを指定可能v AMI中の/home/ec2-‐‑‒user/cdp/eccube/ data/config/config.php  に含まれる内容 を新たに設定したSiteURLやデータベース ユーザで置換する ARAKI Yasuhiro
  35. 35. user-‐‑‒dataの追加(2)v https://gist.github.com/armaniacs/ 4752642#file-‐‑‒userdata-‐‑‒json ARAKI Yasuhiro
  36. 36. R53をつかってELBのCNAMEを一定に v ⽬目的:システムに別々のDNS名を与えて、 システム単位でのテストを⾏行行うv ⽅方法 v “AWS::Route53::RecordSet”の決め打ちし ているFQDNをSiteURLを使うように変更更https://gist.github.com/armaniacs/4752642#file-‐‑‒r53-‐‑‒params-‐‑‒json ARAKI Yasuhiro
  37. 37. 編集後のCFTの確認 v 指定したパラメータは、cfn-‐‑‒validate-‐‑‒ templateコマンドを使って確認   v PARAMETERSで指定したパラメータが表⽰示され ているか?$ cfn-validate-template --template-file ファイル名 PARAMETERS SiteURL xxxxx.araki.in false Name of a FQDN for ec-site. PARAMETERS BackupWindow 18:30-19:00 false The daily time range during which automated backups PARAMETERS DBPass eccube_db false RDS password PARAMETERS InstanceType m1.small false WebServer EC2 instance type PARAMETERS DBUser eccube_db false RDS user ARAKI Yasuhiro
  38. 38. ここまでのテンプレート例例v https://s3-‐‑‒ap-‐‑‒northeast-‐‑‒1.amazonaws.com/ arakisa/CloudFormation/eccube-‐‑‒araki-‐‑‒ classic09.json   ARAKI Yasuhiro
  39. 39. CFNをつかったシステム作成v マネージメントコンソールからv CLIから v cfn-‐‑‒create-‐‑‒stack v cfn-‐‑‒describe-‐‑‒stack-‐‑‒events v $  cfn-‐‑‒create-‐‑‒stack  test-‐‑‒0818a  -‐‑‒-‐‑‒template-‐‑‒url  https:// s3-‐‑‒ap-‐‑‒northeast-‐‑‒1.amazonaws.com/arakisa/ CloudFormation/eccube-‐‑‒araki-‐‑‒classic09.json  -‐‑‒-‐‑‒ parameters  "SiteURL=test-‐‑‒0818a.araki.in" ARAKI Yasuhiro

×