101
AmazonEC2 Hands-on 2JAWS-UG 横浜(2012/12/17株式会社サーバーワークス 千葉 哲也 twitter : @kachina_t

20121217 jawsug-yokohama

Embed Size (px)

Citation preview

Page 1: 20121217 jawsug-yokohama

AmazonEC2 Hands-on

第2回 JAWS-UG 横浜(2012/12/17)株式会社サーバーワークス

千葉 哲也

twitter : @kachina_t

Page 2: 20121217 jawsug-yokohama

事前準備

• AWSアカウントの開設

• インターネットアクセス

• Webブラウザ

• ターミナル(Windows→TeraTerm、Mac→Terminal…)

Page 3: 20121217 jawsug-yokohama

アジェンダ

• EC2の紹介

• インスタンスの起動

• sshでインスタンスに接続

• PHP-SDKを使ってインスタンス情報を取得

• ELBを使って分散構成を実現

• 新機能『IAM Roles for EC2』をつかって簡単に

• かたづけ

Page 4: 20121217 jawsug-yokohama

1. EC2の紹介(1/13)

• 仮想サーバサービスです。

• 必要な時に何百台でも数分で調達できます。

• 完全従量課金をベースに様々な料金モデルが用意されています。

• Webコンソールの他、APIでもコントールができます。

• 特定OS、言語、フレームワークに縛られません。

• Windows,Linux等、多種多様なマシンイメージが用意されています。

Page 5: 20121217 jawsug-yokohama

1. EC2の紹介(2/13)http://aws.amazon.com/jp/→AWS Management Console

Page 6: 20121217 jawsug-yokohama

1. EC2の紹介(3/13)サインイン

Page 7: 20121217 jawsug-yokohama

1. EC2の紹介(4/13)サービス一覧

Page 8: 20121217 jawsug-yokohama

1. EC2の紹介(5/13)Dashboard

Page 9: 20121217 jawsug-yokohama

1. EC2の紹介(6/13)INCETANCES::Instances

利用中のサーバ一を管理する【インスタンス】

Page 10: 20121217 jawsug-yokohama

1. EC2の紹介(7/13)IMAGES::AMIs

インスタンスをマシンイメージとして取得し管理する【AMI】

Page 11: 20121217 jawsug-yokohama

1. EC2の紹介(8/13)ELASTIC BLOCK STORE::Volume

ハードディスク【EBS】

Page 12: 20121217 jawsug-yokohama

1. EC2の紹介(9/13)ELASTIC BLOCK STORE::Snapshots

EBSのスナップショットを管理する【EBSスナップショット】

Page 13: 20121217 jawsug-yokohama

1. EC2の紹介(10/13)NETWORK & SECURITY::Security Groups

ファイアウォール【セキュリティグループ】

Page 14: 20121217 jawsug-yokohama

1. EC2の紹介(11/13)NETWORK & SECURITY::Elastic IPs

固定グローバルIP【EIP】

Page 15: 20121217 jawsug-yokohama

1. EC2の紹介(12/13)NETWORK & SECURITY::Load Balancers

ロードバランサ【ELB】

Page 16: 20121217 jawsug-yokohama

1. EC2の紹介(13/13)NETWORK & SECURITY::Key Pairs

インスタンスに設定するSSH公開鍵を管理する【キーペア】

Page 17: 20121217 jawsug-yokohama

【今日の目標】ELBにおける分散処理の動作を確認する

Page 18: 20121217 jawsug-yokohama

2. インスタンスの起動(1/17)

【ベース環境】【Goal】

Page 19: 20121217 jawsug-yokohama

2. インスタンスの起動(2/17)キーペアの作成

Page 20: 20121217 jawsug-yokohama

2. インスタンスの起動(3/17)キーペアの作成

Page 21: 20121217 jawsug-yokohama

2. インスタンスの起動(4/17)キーペアの作成

Page 22: 20121217 jawsug-yokohama

2. インスタンスの起動(5/17)キーペアの作成

Page 23: 20121217 jawsug-yokohama

2. インスタンスの起動(6/17)インスタンスの起動

Page 24: 20121217 jawsug-yokohama

2. インスタンスの起動(7/17)インスタンスの起動

Page 25: 20121217 jawsug-yokohama

2. インスタンスの起動(8/17)インスタンスの起動

Page 26: 20121217 jawsug-yokohama

2. インスタンスの起動(9/17)インスタンスの起動

Page 27: 20121217 jawsug-yokohama

2. インスタンスの起動(10/17)インスタンスの起動

Page 28: 20121217 jawsug-yokohama

2. インスタンスの起動(11/17)インスタンスの起動

Page 29: 20121217 jawsug-yokohama

2. インスタンスの起動(12/17)インスタンスの起動

Page 30: 20121217 jawsug-yokohama

2. インスタンスの起動(13/17)インスタンスの起動

Page 31: 20121217 jawsug-yokohama

2. インスタンスの起動(14/17)インスタンスの起動

ssh,httpを選択

Page 32: 20121217 jawsug-yokohama

2. インスタンスの起動(15/17)インスタンスの起動

Page 33: 20121217 jawsug-yokohama

2. インスタンスの起動(16/17)インスタンスの起動

Page 34: 20121217 jawsug-yokohama

2. インスタンスの起動(17/17)起動中

Page 35: 20121217 jawsug-yokohama

3. sshでインスタンスに接続(1/4)Public DNSの確認(コピー)

Mac→cmd + c Windows→ctrl + c

Page 36: 20121217 jawsug-yokohama

3. sshでインスタンスに接続(2/4)ターミナルの起動→ssh接続

【Mac::Terminal】

【Windows::TeraTerm】

chmod 600 ~/Downloads/example.pem ssh -i ~/Downloads/example.pem ec2-user@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com

ctrl + v

cmd + v

Page 37: 20121217 jawsug-yokohama

3. sshでインスタンスに接続(3/4)今日のハンズオンに必要なパッケージのインストール

sudo yum install -y git httpd php php-amazon-sdk

Page 38: 20121217 jawsug-yokohama

3. sshでインスタンスに接続(4/4)httpdの起動、自動起動の設定

【httpdの起動】sudo /etc/init.d/httpd start

【自動起動の設定】sudo chkconfig httpd on

【httpdの起動の確認】ps -ef | grep httpd

【自動起動の設定確認】sudo chkconfig | grep httpd

Page 39: 20121217 jawsug-yokohama

4. PHP-SDKを使ってインスタンス情報を取得(1/5)準備

【ファイルの作成】sudo touch /var/www/html/index.php

【オーナーの変更】sudo chown ec2-user:ec2-user /var/www/html/index.php

【githubからファイルの取得】cd /tmp/git clone https://github.com/kachina/20121217-jawsug-yokohama.git

Page 40: 20121217 jawsug-yokohama

4. PHP-SDKを使ってインスタンス情報を取得(2/5)ファイルの設置、アクセスキーの編集

【ファイルの設置】cp /tmp/20121217-jawsug-yokohama/sample_1.php /var/www/html/index.php

【ファイルの編集】vi /var/www/html/index.php

Page 41: 20121217 jawsug-yokohama

4. PHP-SDKを使ってインスタンス情報を取得(3/5)ファイルの設置、アクセスキーの編集

Page 42: 20121217 jawsug-yokohama

4. PHP-SDKを使ってインスタンス情報を取得(4/5)ファイルの設置、アクセスキーの編集

EC2::Public DNSMac→cmd + vWindows→ctrl + v

Page 43: 20121217 jawsug-yokohama

【ベース環境】【Goal】

4. PHP-SDKを使ってインスタンス情報を取得(5/5) ベース環境が完成!

Page 44: 20121217 jawsug-yokohama

【Goal】

5. ELBを使って分散構成を実現(1/41)

Page 45: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(2/41)これまでの分散構成を構築する手順

• 【ベース環境】を構築

• 【ベース環境】のAMIを作成

• AMIから、アベイラビリティゾーンにインスタンスを起動

• ELBを作成

• ELB配下に、インスタンスを設置

Page 46: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(2/41)これまでの分散構成を構築する手順

• 【ベース環境】を構築

• 【ベース環境】のAMIを作成

• AMIから、アベイラビリティゾーンにインスタンスを起動

• ELBを作成

• ELB配下に、インスタンスを設置

Page 47: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(2/41)これまでの分散構成を構築する手順

• 【ベース環境】を構築

• 【ベース環境】のAMIを作成

• AMIから、アベイラビリティゾーンにインスタンスを起動

• ELBを作成

• ELB配下に、インスタンスを設置

Page 48: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(2/41)これまでの分散構成を構築する手順

• 【ベース環境】を構築

• 【ベース環境】のAMIを作成

• AMIから、アベイラビリティゾーンにインスタンスを起動

• ELBを作成

• ELB配下に、インスタンスを設置

Page 49: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(2/41)これまでの分散構成を構築する手順

• 【ベース環境】を構築

• 【ベース環境】のAMIを作成

• AMIから、アベイラビリティゾーンにインスタンスを起動

• ELBを作成

• ELB配下に、インスタンスを設置

AccessKey,SecretAccessKeyはどうする?

Page 50: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(2/41)これまでの分散構成を構築する手順

• 【ベース環境】を構築

• 【ベース環境】のAMIを作成

• AMIから、アベイラビリティゾーンにインスタンスを起動

• ELBを作成

• ELB配下に、インスタンスを設置

AccessKey,SecretAccessKeyはどうする?

新機能の『IAM Roles for EC2』で解決!

Page 51: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(3/41)『IAM Roles for EC2』について

• インスタンス起動時にIAM Roleと紐付けることで、対象Roleを適用したインスタンスを起動することが可能

• 全てのEC2インスタンスタイプで利用可能

• 全てのAMIに対応

• VPCに対応

• 北米、南米、ヨーロッパ、アジア太平洋リージョンで対応

Page 52: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(4/41)IAM Roleの作成

Page 53: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(5/41)IAM Roleの作成

Page 54: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(6/41)IAM Roleの作成

Page 55: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(7/41)IAM Roleの作成

Page 56: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(8/41)IAM Roleの作成

Page 57: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(9/41)IAM Roleの作成

Page 58: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(10/41)IAM Roleの作成

Page 59: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(11/41)IAM Roleの作成

Page 60: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(12/41)IAM Roleの作成

Page 61: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(13/41)AMIの作成

【ファイルの上書き】cp /tmp/20121217-jawsug-yokohama/sample_2.php /var/www/html/index.php

Page 62: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(14/41)AMIの作成

Page 63: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(15/41)AMIの作成

Page 64: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(16/41)AMIの作成

Page 65: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(17/41)AMIの作成

Page 66: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(18/41)AMIの作成

Page 67: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(19/41)AMIの作成

Page 68: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(20/41)AMIの作成

Page 69: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(21/41)AMIの作成

Page 70: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(22/41)インスタンスの起動(1a,1b,1c合計で3台起動)

途中で詰まってしまった人はこちら↑

ami-62c87363

←問題なく進んだ人はこちら

Page 71: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(23/41)インスタンスの起動(1a,1b,1c合計で3台起動)

対象リージョンを選択

Page 72: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(24/41)インスタンスの起動(1a,1b,1c合計で3台起動)

Page 73: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(25/41)インスタンスの起動(1a,1b,1c合計で3台起動)

Page 74: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(26/41)インスタンスの起動(1a,1b,1c合計で3台起動)

対象リージョン毎に名前を変更1a = elb_example_1a1b = elb_example_1b1c = elb_example_1c

Page 75: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(27/41)インスタンスの起動(1a,1b,1c合計で3台起動)

Page 76: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(28/41)インスタンスの起動(1a,1b,1c合計で3台起動)

Page 77: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(29/41)インスタンスの起動(1a,1b,1c合計で3台起動)

Page 78: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(30/41)インスタンスの起動(1a,1b,1c合計で3台起動)

ここまでを1セットとしてAZ毎に1台インスタンス起動

Page 79: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(31/41)インスタンスの起動(1a,1b,1c合計で3台起動)

Page 80: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(32/41)ELBの構築

Page 81: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(33/41)ELBの構築

Page 82: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(34/41)ELBの構築

Page 83: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(35/41)ELBの構築

Page 84: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(36/41)ELBの構築

Page 85: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(37/41)ELBの構築

Page 86: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(38/41)ELBの構築

Page 87: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(39/41)ELBの構築

Mac→cmd+c Windows→ctrl+c

Page 88: 20121217 jawsug-yokohama

5. ELBを使って分散構成を実現(40/41)ELBの構築

Page 89: 20121217 jawsug-yokohama

【ベース環境】【Goal】

5. ELBを使って分散構成を実現(41/41)完成!

Page 90: 20121217 jawsug-yokohama

動作確認

Page 91: 20121217 jawsug-yokohama

動作確認

Page 92: 20121217 jawsug-yokohama

動作確認

Page 93: 20121217 jawsug-yokohama

6. かたづけ(1/8)ELBの削除

Page 94: 20121217 jawsug-yokohama

6. かたづけ(2/8)EC2の削除

Page 95: 20121217 jawsug-yokohama

6. かたづけ(3/8)AMIの削除

Page 96: 20121217 jawsug-yokohama

6. かたづけ(4/8)Snapshotの削除

Page 97: 20121217 jawsug-yokohama

6. かたづけ(5/8)Security Groupの削除

Page 98: 20121217 jawsug-yokohama

6. かたづけ(6/8)Key Pairの削除

Page 99: 20121217 jawsug-yokohama

6. かたづけ(7/8)IAM Roleの削除

Page 100: 20121217 jawsug-yokohama

6. かたづけ(8/8)IAM Roleの削除

Page 101: 20121217 jawsug-yokohama

おしまい