20121217 jawsug-yokohama
-
Upload
tetsuya-chiba -
Category
Documents
-
view
730 -
download
1
Transcript of 20121217 jawsug-yokohama
AmazonEC2 Hands-on
第2回 JAWS-UG 横浜(2012/12/17)株式会社サーバーワークス
千葉 哲也
twitter : @kachina_t
事前準備
• AWSアカウントの開設
• インターネットアクセス
• Webブラウザ
• ターミナル(Windows→TeraTerm、Mac→Terminal…)
アジェンダ
• EC2の紹介
• インスタンスの起動
• sshでインスタンスに接続
• PHP-SDKを使ってインスタンス情報を取得
• ELBを使って分散構成を実現
• 新機能『IAM Roles for EC2』をつかって簡単に
• かたづけ
1. EC2の紹介(1/13)
• 仮想サーバサービスです。
• 必要な時に何百台でも数分で調達できます。
• 完全従量課金をベースに様々な料金モデルが用意されています。
• Webコンソールの他、APIでもコントールができます。
• 特定OS、言語、フレームワークに縛られません。
• Windows,Linux等、多種多様なマシンイメージが用意されています。
1. EC2の紹介(2/13)http://aws.amazon.com/jp/→AWS Management Console
1. EC2の紹介(3/13)サインイン
1. EC2の紹介(4/13)サービス一覧
1. EC2の紹介(5/13)Dashboard
1. EC2の紹介(6/13)INCETANCES::Instances
利用中のサーバ一を管理する【インスタンス】
1. EC2の紹介(7/13)IMAGES::AMIs
インスタンスをマシンイメージとして取得し管理する【AMI】
1. EC2の紹介(8/13)ELASTIC BLOCK STORE::Volume
ハードディスク【EBS】
1. EC2の紹介(9/13)ELASTIC BLOCK STORE::Snapshots
EBSのスナップショットを管理する【EBSスナップショット】
1. EC2の紹介(10/13)NETWORK & SECURITY::Security Groups
ファイアウォール【セキュリティグループ】
1. EC2の紹介(11/13)NETWORK & SECURITY::Elastic IPs
固定グローバルIP【EIP】
1. EC2の紹介(12/13)NETWORK & SECURITY::Load Balancers
ロードバランサ【ELB】
1. EC2の紹介(13/13)NETWORK & SECURITY::Key Pairs
インスタンスに設定するSSH公開鍵を管理する【キーペア】
【今日の目標】ELBにおける分散処理の動作を確認する
2. インスタンスの起動(1/17)
【ベース環境】【Goal】
2. インスタンスの起動(2/17)キーペアの作成
2. インスタンスの起動(3/17)キーペアの作成
2. インスタンスの起動(4/17)キーペアの作成
2. インスタンスの起動(5/17)キーペアの作成
2. インスタンスの起動(6/17)インスタンスの起動
2. インスタンスの起動(7/17)インスタンスの起動
2. インスタンスの起動(8/17)インスタンスの起動
2. インスタンスの起動(9/17)インスタンスの起動
2. インスタンスの起動(10/17)インスタンスの起動
2. インスタンスの起動(11/17)インスタンスの起動
2. インスタンスの起動(12/17)インスタンスの起動
2. インスタンスの起動(13/17)インスタンスの起動
2. インスタンスの起動(14/17)インスタンスの起動
ssh,httpを選択
2. インスタンスの起動(15/17)インスタンスの起動
2. インスタンスの起動(16/17)インスタンスの起動
2. インスタンスの起動(17/17)起動中
3. sshでインスタンスに接続(1/4)Public DNSの確認(コピー)
Mac→cmd + c Windows→ctrl + c
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
3. sshでインスタンスに接続(3/4)今日のハンズオンに必要なパッケージのインストール
sudo yum install -y git httpd php php-amazon-sdk
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
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
4. PHP-SDKを使ってインスタンス情報を取得(2/5)ファイルの設置、アクセスキーの編集
【ファイルの設置】cp /tmp/20121217-jawsug-yokohama/sample_1.php /var/www/html/index.php
【ファイルの編集】vi /var/www/html/index.php
4. PHP-SDKを使ってインスタンス情報を取得(3/5)ファイルの設置、アクセスキーの編集
4. PHP-SDKを使ってインスタンス情報を取得(4/5)ファイルの設置、アクセスキーの編集
EC2::Public DNSMac→cmd + vWindows→ctrl + v
【ベース環境】【Goal】
4. PHP-SDKを使ってインスタンス情報を取得(5/5) ベース環境が完成!
【Goal】
5. ELBを使って分散構成を実現(1/41)
5. ELBを使って分散構成を実現(2/41)これまでの分散構成を構築する手順
• 【ベース環境】を構築
• 【ベース環境】のAMIを作成
• AMIから、アベイラビリティゾーンにインスタンスを起動
• ELBを作成
• ELB配下に、インスタンスを設置
5. ELBを使って分散構成を実現(2/41)これまでの分散構成を構築する手順
• 【ベース環境】を構築
• 【ベース環境】のAMIを作成
• AMIから、アベイラビリティゾーンにインスタンスを起動
• ELBを作成
• ELB配下に、インスタンスを設置
5. ELBを使って分散構成を実現(2/41)これまでの分散構成を構築する手順
• 【ベース環境】を構築
• 【ベース環境】のAMIを作成
• AMIから、アベイラビリティゾーンにインスタンスを起動
• ELBを作成
• ELB配下に、インスタンスを設置
5. ELBを使って分散構成を実現(2/41)これまでの分散構成を構築する手順
• 【ベース環境】を構築
• 【ベース環境】のAMIを作成
• AMIから、アベイラビリティゾーンにインスタンスを起動
• ELBを作成
• ELB配下に、インスタンスを設置
5. ELBを使って分散構成を実現(2/41)これまでの分散構成を構築する手順
• 【ベース環境】を構築
• 【ベース環境】のAMIを作成
• AMIから、アベイラビリティゾーンにインスタンスを起動
• ELBを作成
• ELB配下に、インスタンスを設置
AccessKey,SecretAccessKeyはどうする?
5. ELBを使って分散構成を実現(2/41)これまでの分散構成を構築する手順
• 【ベース環境】を構築
• 【ベース環境】のAMIを作成
• AMIから、アベイラビリティゾーンにインスタンスを起動
• ELBを作成
• ELB配下に、インスタンスを設置
AccessKey,SecretAccessKeyはどうする?
新機能の『IAM Roles for EC2』で解決!
5. ELBを使って分散構成を実現(3/41)『IAM Roles for EC2』について
• インスタンス起動時にIAM Roleと紐付けることで、対象Roleを適用したインスタンスを起動することが可能
• 全てのEC2インスタンスタイプで利用可能
• 全てのAMIに対応
• VPCに対応
• 北米、南米、ヨーロッパ、アジア太平洋リージョンで対応
5. ELBを使って分散構成を実現(4/41)IAM Roleの作成
5. ELBを使って分散構成を実現(5/41)IAM Roleの作成
5. ELBを使って分散構成を実現(6/41)IAM Roleの作成
5. ELBを使って分散構成を実現(7/41)IAM Roleの作成
5. ELBを使って分散構成を実現(8/41)IAM Roleの作成
5. ELBを使って分散構成を実現(9/41)IAM Roleの作成
5. ELBを使って分散構成を実現(10/41)IAM Roleの作成
5. ELBを使って分散構成を実現(11/41)IAM Roleの作成
5. ELBを使って分散構成を実現(12/41)IAM Roleの作成
5. ELBを使って分散構成を実現(13/41)AMIの作成
【ファイルの上書き】cp /tmp/20121217-jawsug-yokohama/sample_2.php /var/www/html/index.php
5. ELBを使って分散構成を実現(14/41)AMIの作成
5. ELBを使って分散構成を実現(15/41)AMIの作成
5. ELBを使って分散構成を実現(16/41)AMIの作成
5. ELBを使って分散構成を実現(17/41)AMIの作成
5. ELBを使って分散構成を実現(18/41)AMIの作成
5. ELBを使って分散構成を実現(19/41)AMIの作成
5. ELBを使って分散構成を実現(20/41)AMIの作成
5. ELBを使って分散構成を実現(21/41)AMIの作成
5. ELBを使って分散構成を実現(22/41)インスタンスの起動(1a,1b,1c合計で3台起動)
途中で詰まってしまった人はこちら↑
ami-62c87363
←問題なく進んだ人はこちら
5. ELBを使って分散構成を実現(23/41)インスタンスの起動(1a,1b,1c合計で3台起動)
対象リージョンを選択
5. ELBを使って分散構成を実現(24/41)インスタンスの起動(1a,1b,1c合計で3台起動)
5. ELBを使って分散構成を実現(25/41)インスタンスの起動(1a,1b,1c合計で3台起動)
5. ELBを使って分散構成を実現(26/41)インスタンスの起動(1a,1b,1c合計で3台起動)
対象リージョン毎に名前を変更1a = elb_example_1a1b = elb_example_1b1c = elb_example_1c
5. ELBを使って分散構成を実現(27/41)インスタンスの起動(1a,1b,1c合計で3台起動)
5. ELBを使って分散構成を実現(28/41)インスタンスの起動(1a,1b,1c合計で3台起動)
5. ELBを使って分散構成を実現(29/41)インスタンスの起動(1a,1b,1c合計で3台起動)
5. ELBを使って分散構成を実現(30/41)インスタンスの起動(1a,1b,1c合計で3台起動)
ここまでを1セットとしてAZ毎に1台インスタンス起動
5. ELBを使って分散構成を実現(31/41)インスタンスの起動(1a,1b,1c合計で3台起動)
5. ELBを使って分散構成を実現(32/41)ELBの構築
5. ELBを使って分散構成を実現(33/41)ELBの構築
5. ELBを使って分散構成を実現(34/41)ELBの構築
5. ELBを使って分散構成を実現(35/41)ELBの構築
5. ELBを使って分散構成を実現(36/41)ELBの構築
5. ELBを使って分散構成を実現(37/41)ELBの構築
5. ELBを使って分散構成を実現(38/41)ELBの構築
5. ELBを使って分散構成を実現(39/41)ELBの構築
Mac→cmd+c Windows→ctrl+c
5. ELBを使って分散構成を実現(40/41)ELBの構築
【ベース環境】【Goal】
5. ELBを使って分散構成を実現(41/41)完成!
動作確認
動作確認
動作確認
6. かたづけ(1/8)ELBの削除
6. かたづけ(2/8)EC2の削除
6. かたづけ(3/8)AMIの削除
6. かたづけ(4/8)Snapshotの削除
6. かたづけ(5/8)Security Groupの削除
6. かたづけ(6/8)Key Pairの削除
6. かたづけ(7/8)IAM Roleの削除
6. かたづけ(8/8)IAM Roleの削除
おしまい