SlideShare ist ein Scribd-Unternehmen logo
1 von 71
Downloaden Sie, um offline zu lesen
第9回 NTT Communications
クラウド・エヌ 勉強会
〜SDKでAPIをたたいてみよう〜
2013/6/27
自己紹介
大削 緑/Midori Oge
みろりん @star76popin
☆某SI会社 → 某通信事業者 → NTTコミュニケーションズで
の開発を担当しています
☆こんな記事を書いてます
オープンソースの「クラウド基盤ソフトウェア」を比較する【第1回】
機能を徹底比較! ∼Eucalyptus、CloudStack、OpenStack
オープンソースの「クラウド基盤ソフトウェア」を比較する【第2回】
【徹底比較】Eucalyptus、CloudStack、OpenStackの仮想マシン性能
☆いろんなユーザ会にいます
APIって使ってます?
APIってめんどくさい?
たとえば仮想マシンを1台起動しようとした場合…
http://127.0.0.1:8080/client/api?
command=deployVirtualMachine
&serviceofferingid=8b4d9a30-91c2-47fc-92da-ea9cc97c0cad
&templateid=c5ec872b-d278-11e2-8039-4ce6766f4f75
&zoneid=0d89362f-b68f-4fb8-a619-a9a481882a05
&displayname=Server1
&apikey=cmqDKrrSc6kFhGhvhUGLhxX_lSHNWPU8JFjDd_rxEia4ZjBva39xaQP0C
Vmlha7AnAfG0ySe3WacSEsa4kdbbw
&signature=q23ytK6WVGaljH6QD0T69WTEV3w%3D
APIってめんどくさい?
たとえば仮想マシンを1台起動しようとした場合…
1. GUIからAPIキーと秘密鍵を発行
APIキー:cmqDKrrSc6kFhGhvhUGLhxX_lSHNWPU8JFjDd_rxEia4ZjBva39xaQP0CVmlha7AnAfG0ySe3WacSEsa4kdbbw
秘密鍵:wVtEXi80ffJrukqfU0khN-T-2Lp9Ogsu9uKDETqyocn4Wy3HtNz9xBqD53-jULPDDhPab0ubk_-qIRgW7q-tpA
2. 署名を作成
(1)コマンドとコマンドオプション、APIキーを並べる
command=deployVirtualMachine
serviceofferingid=8b4d9a30-91c2-47fc-92da-ea9cc97c0cad
templateid=c5ec872b-d278-11e2-8039-4ce6766f4f75
zoneid=0d89362f-b68f-4fb8-a619-a9a481882a05
displayname=Server1
apikey=cmqDKrrSc6kFhGhvhUGLhxX_lSHNWPU8JFjDd_rxEia4ZjBva39xaQP0CVmlha7AnAfG0ySe3WacSEsa4kdbbw
(2)(1)を&で連結する
command=deployVirtualMachine&serviceofferingid=8b4d9a30-91c2-47fc-92da-
ea9cc97c0cad&templateid=c5ec872b-d278-11e2-8039-4ce6766f4f75&zoneid=0d89362f-b68f-4fb8-
a619-
a9a481882a05&displayname=Server1&apikey=cmqDKrrSc6kFhGhvhUGLhxX_lSHNWPU8JFjDd_rxEia4ZjBva39
xaQP0CVmlha7AnAfG0ySe3WacSEsa4kdbbw
APIってめんどくさい?
(3)(2)の中身だけをURLエンコードする
$ echo 'deployVirtualMachine' | perl -MURI::Escape -lne 'print uri_escape($_)'
deployVirtualMachine
$ echo '8b4d9a30-91c2-47fc-92da-ea9cc97c0cad' | perl -MURI::Escape -lne 'print uri_escape($_)'
8b4d9a30-91c2-47fc-92da-ea9cc97c0cad
$ echo 'c5ec872b-d278-11e2-8039-4ce6766f4f75' | perl -MURI::Escape -lne 'print uri_escape($_)'
c5ec872b-d278-11e2-8039-4ce6766f4f75
$ echo '0d89362f-b68f-4fb8-a619-a9a481882a05' | perl -MURI::Escape -lne 'print uri_escape($_)'
0d89362f-b68f-4fb8-a619-a9a481882a05
$ echo 'Server1' | perl -MURI::Escape -lne 'print uri_escape($_)'
Server1
$ echo
'cmqDKrrSc6kFhGhvhUGLhxX_lSHNWPU8JFjDd_rxEia4ZjBva39xaQP0CVmlha7AnAfG0ySe3WacSEsa4kdbbw' |
perl -MURI::Escape -lne 'print uri_escape($_)'
cmqDKrrSc6kFhGhvhUGLhxX_lSHNWPU8JFjDd_rxEia4ZjBva39xaQP0CVmlha7AnAfG0ySe3WacSEsa4kdbbw
(4)コマンドのアルファベット順で並び替える
apikey=cmqDKrrSc6kFhGhvhUGLhxX_lSHNWPU8JFjDd_rxEia4ZjBva39xaQP0CVmlha7AnAfG0ySe3WacSEsa4kd
bbw&command=deployVirtualMachine&displayname=Server1&serviceofferingid=8b4d9a30-91c2-47fc-92
da-ea9cc97c0cad&templateid=c5ec872b-d278-11e2-8039-4ce6766f4f75&zoneid=0d89362f-b68f-4fb8-
a619-a9a481882a05
APIってめんどくさい?
(5)(4)を小文字に変換する
$ echo
'apikey=cmqDKrrSc6kFhGhvhUGLhxX_lSHNWPU8JFjDd_rxEia4ZjBva39xaQP0CVmlha7AnAfG0ySe3WacSEsa4k
dbbw&command=deployVirtualMachine&displayname=Server1&serviceofferingid=8b4d9a30-91c2-47fc-9
2da-ea9cc97c0cad&templateid=c5ec872b-d278-11e2-8039-4ce6766f4f75&zoneid=0d89362f-b68f-4fb8-
a619-a9a481882a05' | tr A-Z a-z
apikey=cmqdkrrsc6kfhghvhuglhxx_lshnwpu8jfjdd_rxeia4zjbva39xaqp0cvmlha7anafg0yse3wacsesa4k
dbbw&command=deployvirtualmachine&displayname=server1&serviceofferingid=8b4d9a30-91c2-47fc-
92da-ea9cc97c0cad&templateid=c5ec872b-d278-11e2-8039-4ce6766f4f75&zoneid=0d89362f-
b68f-4fb8-a619-a9a481882a05
(7)作成した署名をURLエンコードする
$ echo 'q23ytK6WVGaljH6QD0T69WTEV3w=' | perl -MURI::Escape -lne 'print uri_escape($_)'
q23ytK6WVGaljH6QD0T69WTEV3w%3D
(6)(5)を秘密鍵を使ってSHA1でハッシュし、Base64でエンコードして署名を作る
$ echo -n
"apikey=cmqdkrrsc6kfhghvhuglhxx_lshnwpu8jfjdd_rxeia4zjbva39xaqp0cvmlha7anafg0yse3wacsesa4
kdbbw&command=deployvirtualmachine&displayname=server1&serviceofferingid=8b4d9a30-91c2-47fc
-92da-ea9cc97c0cad&templateid=c5ec872b-d278-11e2-8039-4ce6766f4f75&zoneid=0d89362f-
b68f-4fb8-a619-a9a481882a05" | openssl sha1 -binary -hmac "wVtEXi80ffJrukqfU0khN-
T-2Lp9Ogsu9uKDETqyocn4Wy3HtNz9xBqD53-jULPDDhPab0ubk_-qIRgW7q-tpA" | openssl base64
q23ytK6WVGaljH6QD0T69WTEV3w=
APIってめんどくさい?
3. URIを作成
(1)エンドポイントを用意する
http://127.0.0.1:8080/client/api
(2)コマンドとコマンドオプションを並べて連結する
command=deployVirtualMachine&serviceofferingid=8b4d9a30-91c2-47fc-92da-
ea9cc97c0cad&templateid=c5ec872b-d278-11e2-8039-4ce6766f4f75&zoneid=0d89362f-b68f-4fb8-
a619-
a9a481882a05&displayname=Server1&apikey=cmqDKrrSc6kFhGhvhUGLhxX_lSHNWPU8JFjDd_rxEia4ZjBva39
xaQP0CVmlha7AnAfG0ySe3WacSEsa4kdbbw
(3)(1)と(2)および作成した署名を連結する
http://127.0.0.1:8080/client/api?
command=deployVirtualMachine&serviceofferingid=8b4d9a30-91c2-47fc-92da-
ea9cc97c0cad&templateid=c5ec872b-d278-11e2-8039-4ce6766f4f75&zoneid=0d89362f-b68f-4fb8-
a619-
a9a481882a05&displayname=Server1&apikey=cmqDKrrSc6kFhGhvhUGLhxX_lSHNWPU8JFjDd_rxEia4ZjBva39
xaQP0CVmlha7AnAfG0ySe3WacSEsa4kdbbw&signature=q23ytK6WVGaljH6QD0T69WTEV3w%3D
4. APIを実行する
$ curl "http://127.0.0.1:8080/client/api?
command=deployVirtualMachine&serviceofferingid=8b4d9a30-91c2-47fc-92da-
ea9cc97c0cad&templateid=c5ec872b-d278-11e2-8039-4ce6766f4f75&zoneid=0d89362f-b68f-4fb8-
a619-
a9a481882a05&displayname=Server1&apikey=cmqDKrrSc6kFhGhvhUGLhxX_lSHNWPU8JFjDd_rxEia4ZjBva39
xaQP0CVmlha7AnAfG0ySe3WacSEsa4kdbbw&signature=q23ytK6WVGaljH6QD0T69WTEV3w%3D"
めっちゃめんどいぉ・・・
(´・ω・`)
ツールを使えば
いいんじゃない・・・?
さらに食べやすくなりました
AWS SDKを使います
ソフトウェア開発キット(ソフトウェアかいはつキット、英語: Software
Development Kit、SDK)は一般に、特定のソフトウェアパッケージ、ソフトウェア
フレームワーク、ハードウェアプラットフォーム、コンピュータシステム、ゲーム
機、オペレーティングシステムなどのためのアプリケーションを作成するためにソ
フトウェア技術者が使用する開発ツールのセットを意味する。
ウィキペディア (Wikipedia): フリー百科事典
「ソフトウェア開発キット」 より
★AWS SDK
AWSのAPIを簡単に呼び出すための専用プログラム
AWSが配布
(Java,PHP他、
お客さま環境にあわせ
て言語を選択できる)
SDKってなぁに?
CloudnAPI ツールを使おう
httpclient
CloudnAPIツール
JDK
AWS Java SDK
お客さま環境
べんりだね!
今日はなにしよ?
Internet
お客さま
web.pyonkey.net
server01.pyonkey.net
server02.pyonkey.net
おしながき
1. ツールの環境を用意しよう
2. 仮想マシンを作ってみよう
3. Webサイトを立ち上げてみよう
4. LBを作ってみよう
5. LBに仮想マシンを登録しよう
6. DNSを登録しよう
7. アクセスしてみよう
#今回はLinux(CentOS/Ubuntu)での実行を想定しています
今日はなにしよ?
Internet
お客さま
web.pyonkey.net
server01.pyonkey.net
server02.pyonkey.net
2
2
4
5
6 3
3
1
おしながき
1. ツールの環境を用意しよう
2. 仮想マシンを作ってみよう
3. Webサイトを立ち上げてみよう
4. LBを作ってみよう
5. LBに仮想マシンを登録しよう
6. DNSを登録しよう
7. アクセスしてみよう
1.ツールの環境を用意しよう
(1)JDKのインストール
(2)作業用ディレクトリの作成
(3)httpclient のダウンロード&解凍
(4)AWS SDK のダウンロード&解凍
(5)CloudnAPIツールのダウンロード&解凍
(6)httpclientのjarファイルを作業ディレクトリにコピー
(8)CLASSPATHの設定
(7)AWS SDKのjarファイルを作業ディレクトリにコピー
(9)APIキー・秘密鍵を参照
(10)設定ファイルにキーを記入
(11)Javaコンパイル
(12)ツールを実行してみる
1.ツールの環境を用意しよう
(2)作業用ディレクトリの作成
[CentOS]
$ yum search openjdk-devel
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
$ sudo yum install java-1.7.0-openjdk-devel
$ java -version
[Ubuntu]
$ apt-cache show openjdk-7-jdk
Version: 7u21-2.3.9-0ubuntu0.12.10.1
$ sudo apt-get install openjdk-7-jdk
$ java -version
(1)JDKのインストール
$ mkdir cloudn
$ cd cloudn
ver1.7の方をインストールして下さい
ここでは「/home/pyonkey/cloudn」を作業ディレクトリとします
$ wget http://ftp.riken.jp/net/apache/httpcomponents/httpclient/binary/
httpcomponents-client-4.2.5-bin.zip
$ unzip httpcomponents-client-4.2.5-bin.zip
(3)httpclient のダウンロード&解凍 httpclientはJavaプログラムから
WebAPIをたたくために必要だよ
ダウンロード
解凍
$ wget http://str.cloudn-service.com/api/aws-java-sdk-1.3.21.1.zip
$ unzip aws-java-sdk-1.3.21.1.zip
(4)AWS SDK のダウンロード&解凍
1.ツールの環境を用意しよう
$ wget http://str.cloudn-service.com/api/CloudnAPI.zip
$ unzip CloudnAPI.zip
(5)CloudnAPIツールのダウンロード&解凍
$ cd ~/cloudn/httpcomponents-client-4.2.5/lib
$ cp httpclient-4.2.5.jar httpcore-4.2.4.jar commons-logging-1.1.1.jar
commons-codec-1.6.jar ~/cloudn/CloudnAPI/
(6)httpclientのjarファイルを作業ディレクトリにコピー
1.ツールの環境を用意しよう
$ cd ~/cloudn/aws-java-sdk-1.3.21.1/lib/
$ cp aws-java-sdk-1.3.21.1.jar aws-java-sdk-flow-build-tools-1.3.21.1.jar
~/cloudn/CloudnAPI/
(7)AWS SDKのjarファイルを作業ディレクトリにコピー
$ export CLASSPATH=.:~/cloudn/CloudnAPI/aws-java-sdk-1.3.21.1.jar:~/
cloudn/CloudnAPI/aws-java-sdk-flow-build-tools-1.3.21.1.jar:~/cloudn/
CloudnAPI/httpclient-4.2.5.jar:~/cloudn/CloudnAPI/httpcore-4.2.4.jar:~/
cloudn/CloudnAPI/commons-logging-1.1.1.jar:~/cloudn/CloudnAPI/commons-
codec-1.6.jar
(8)CLASSPATHの設定
再起動してもPATHが通るようにするには、
環境設定ファイルにも書いてあげてね
1.ツールの環境を用意しよう
(9)APIキー・秘密鍵を参照
APIキー、秘密鍵は
ここを参照してね
APIアクセスキー、秘密鍵管理
1.ツールの環境を用意しよう
$ vi ~/cloudn/CloudnAPI/CloudnCredentials.properties
apikey=<アクセスキーID>
secretkey=<秘密 >
$ vi ~/cloudn/CloudnAPI/CloudnCredentialsCom.properties
apikey=<アクセスキーID>
secretkey=<秘密 >
(10)設定ファイルにキーを記入
「サービス共通」の鍵を記入
「Compute(東日本)」の方の鍵を記入
$ cd ~/cloudn/CloudnAPI/
$ javac CloudnAPIService.java
(11)Javaコンパイル
RELEASE_6をサポートしていますとのWarningが表示されるが気にしなくてOK
1.ツールの環境を用意しよう
$ java CloudnAPIService
=== Start ===[2013/06/21 15:20:06]
> Which Service ? (Compute / LBA / ObjectStorage / AutoScaling / DNS /
Monitoring / Exit) :
Exit
Service =[Exit]
=== End ===[2013/06/21 15:21:24]
(12)ツールを実行してみる
わーいうごいた
1.ツールの環境を用意しよう
おしながき
1. ツールの環境を用意しよう
2. 仮想マシンを作ってみよう
3. Webサイトを立ち上げてみよう
4. LBを作ってみよう
5. LBに仮想マシンを登録しよう
6. DNSを登録しよう
7. アクセスしてみよう
2.仮想マシンを作ってみよう
(1)セキュリティグループを作成
(2)仮想マシンの作成
2.仮想マシンを作ってみよう
(1)セキュリティグループを作成
仮想マシンが属するセキュリティグループを作成
(1)セキュリティグループを作成
「セキュリティグループの追加」
ボタンを押して名前と説明を入力
Port 22,80を
あけておく
2.仮想マシンを作ってみよう
$ java CloudnAPIService
=== Start ===[2013/06/21 11:37:44]
> Which Service ? (Compute / LBA / ObjectStorage / AutoScaling / DNS / Monitoring /
Exit) :
Compute
Service =[Compute]
URL =[https://comp-apia.jp-e1.cloudn-service.com/awsapi/]
=== Start:CloudnAPICompute:publicMain ===[2013/06/21 11:38:24]
> Which Command ? (Describe / Create / Start / Stop / Delete / CreateTemplate /
CreateTag / Exit) :
Create
Command =[Create]
(2)仮想マシンの作成
「Create」と入力
2.仮想マシンを作ってみよう
「Compute」と入力
DescribeZonesResult:
{AvailabilityZones: [
{ZoneName: jp-e1a, State: available, RegionName: , Messages: [{Message:
Enabled, }], },
{ZoneName: jp-e1b, State: available, RegionName: , Messages: [{Message:
Enabled, }], }], }
> Enter Zone Name :
jp-e1a
Availability Zone =[jp-e1a]
DescribeSecGroupsResult:
{SecurityGroups: [{OwnerId: ff02929c-1819-4b93-95be-8f251564b83c:cln100050095,
GroupName: pyonkey-secgroup, GroupId: 8a0dba8f-7afc-436b-878a-ab7dce6e2bf6,
Description: for SDK test, IpPermissions: [
{IpProtocol: tcp, FromPort: 22, ToPort: 22, IpRanges: [0.0.0.0/0], },
{IpProtocol: tcp, FromPort: 80, ToPort: 80, IpRanges: [0.0.0.0/0], }], VpcId:,
Tags: [{Key: , Value: , }], }], }
> Enter Security Group ID :
8a0dba8f-7afc-436b-878a-ab7dce6e2bf6
Security Group ID =[8a0dba8f-7afc-436b-878a-ab7dce6e2bf6]
(2)仮想マシンの作成
作成したセキュリティグループのIDを入力
2.仮想マシンを作ってみよう
仮想マシンを作成したい方のゾーン名を入力
{Images: [{ImageId: 8fdc326b-6e82-49a3-af22-69b0e3ab0cd7, ImageLocation: ,
State: available, OwnerId: 1:admin, Public: true, ProductCodes:
[{ProductCodeId: , ProductCodeType: , }], Architecture: , ImageType: machine,
KernelId: , RamdiskId: , Platform: , StateReason: {Code: , Message: , },
ImageOwnerAlias: , Name: CentOS 6.3 64bit, Description: CentOS 6.3 64bit,
RootDeviceType: , RootDeviceName: , BlockDeviceMappings: [{DeviceName: , Ebs:
{SnapshotId: , VolumeSize: 0, DeleteOnTermination: false, }, }], Tags: [{Key:
, Value: , }], Hypervisor: , }], }
> Enter Image ID :
8fdc326b-6e82-49a3-af22-69b0e3ab0cd7
Image ID =[8abc326b-6e82-49a3-af22-69b0e3ab0cd7]
(2)仮想マシンの作成
Image IDを入力
2.仮想マシンを作ってみよう
> Enter Create Instance Type (t1.micro / m1.small / m1.medium / m1.large /
m1.xlarge) :
m1.small
Instance Type =[m1.small]
> Enter Minimum Count:
2
Minimum Count =[2]
> Enter Maximum Count:
2
Maximum Count =[2]
RunInstancesRequest:
{ImageId: 8fdc326b-6e82-49a3-af22-69b0e3ab0cd7, MinCount: 2, MaxCount: 2,
SecurityGroupIds: [8a0dba8f-7afc-436b-878a-ab7dce6e2bf6], InstanceType:
m1.small, Placement: {AvailabilityZone: jp-e1a, }, }
Instance Create Start =[2013/06/21 12:35:33]
(2)仮想マシンの作成
仮想マシンのタイプを入力
2台作成するため「2」を入力
2台作成するためß「2」を入力
仮想マシン作成開始
2.仮想マシンを作ってみよう
Instance Create Finish =[2013/06/21 12:37:49]
RunInstancesResult:
{Reservation: {ReservationId: , OwnerId:
ff02929c-1819-4b93-95be-8f251564b83c:cln100050095, RequesterId: , Groups:
[{GroupName: pyonkey-secgroup, GroupId: 8a0dba8f-7afc-436b-878a-
ab7dce6e2bf6, }], GroupNames: [pyonkey-secgroup], Instances: [{InstanceId:
3030d851-1f30-4447-b17b-de44f113b439, ImageId: 8fdc326b-6e82-49a3-
af22-69b0e3ab0cd7, State: {Code: 16, Name: running, }, PrivateDnsName: ,
PublicDnsName: , StateTransitionReason: , ProductCodes: [{ProductCodeId: ,
ProductCodeType: , }], InstanceType: m1.small, Placement: {AvailabilityZone:
jp-e1a, }, KernelId: , RamdiskId: , Platform: , Monitoring: {State: , },
SubnetId: , VpcId: , PrivateIpAddress: 153.128.37.234, StateReason: {Code: ,
Message: , }, Architecture: , RootDeviceType: , RootDeviceName: ,
VirtualizationType: , InstanceLifecycle: , SpotInstanceRequestId: ,
ClientToken: , Tags: [{Key: , Value: , }], SecurityGroups: [{GroupName: ,
GroupId: , }], Hypervisor: , }, {InstanceId:
46161e43-4388-4039-9182-7d59487b2830, ImageId: 8fdc326b-6e82-49a3-
af22-69b0e3ab0cd7, State: {Code: 16, Name: running, }, PrivateDnsName: ,
PublicDnsName: , StateTransitionReason: , ProductCodes: [{ProductCodeId: ,
ProductCodeType: , }], InstanceType: (略)
(2)仮想マシンの作成
仮想マシン作成完了
2.仮想マシンを作ってみよう
作成されたInstanceIDとIPアドレスを控えておく
> Which Command ? (Describe / Create / Start / Stop / Delete /
CreateTemplate / CreateTag / Exit) :
Describe
Command =[Describe]
(略)
DescribeInstancesResult:
{Reservations: [{ReservationId: 546695f6-52b2-4980-8ecd-38c3f2de0726, OwnerId:
ff02929c-1819-4b93-95be-8f251564b83c:cln100050095, RequesterId: , Groups:
[{GroupName: pyonkey-secgroup, GroupId: 8a0dba8f-7afc-436b-878a-
ab7dce6e2bf6, }], GroupNames: [pyonkey-secgroup], Instances: [ (略)
{InstanceId: 3030d851-1f30-4447-b17b-de44f113b439, ImageId:
8fdc326b-6e82-49a3-af22-69b0e3ab0cd7, State: {Code: 16, Name: running, },
PrivateDnsName: , PublicDnsName: , StateTransitionReason: , ProductCodes:
[{ProductCodeId: , ProductCodeType: , }], InstanceType: m1.small, Placement:
{AvailabilityZone: jp-e1a, GroupName: , }, KernelId: , RamdiskId: ,
Platform: , Monitoring: {State: , }, SubnetId: , VpcId: , PrivateIpAddress:
153.128.38.229, StateReason: {Code: , Message: , }, Architecture: ,
RootDeviceType: , RootDeviceName: 0, InstanceLifecycle: ,
SpotInstanceRequestId: , Tags: [{Key: , Value: , }], SecurityGroups:
[{GroupName: , }], Hypervisor: , (略) }], }], }
「Describe」を入力
2.仮想マシンを作ってみよう
(2)仮想マシンの作成(確認)
2.仮想マシンを作ってみよう
Cloudnオフィシャルテンプレートを使用して仮想マシンを
作成する場合は、パスワードリセット機能が有効となって
います。
本ツールは初期パスワードの通知機能がないため、
仮想マシンを作成後、GUIにログインしパスワードのリセ
ットを実施する必要があります。
ショボーン(´・ω・`)
ただし…
おしながき
1. ツールの環境を用意しよう
2. 仮想マシンを作ってみよう
3. Webサイトを立ち上げてみよう
4. LBを作ってみよう
5. LBに仮想マシンを登録しよう
6. DNSを登録しよう
7. アクセスしてみよう
3.Webサイトを立ち上げてみよう
[CentOS]
# yum install httpd.x86_64
# service httpd start
Starting httpd: [ OK ]
[Ubuntu]
$ sudo apt-get install apache2
$ cd /etc/apache2/sites-available
$ vi forsdktest
$ sudo a2dissite default
$ sudo a2ensite forsdktest
$ sudo service apache2 reload
Apacheのインストール
<Virtualhost *:80>
DocumentRoot /home/pyonkey
<Directory /home/pyonkey>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
かわいい〜♪
3.Webサイトを立ち上げてみよう
おしながき
1. ツールの環境を用意しよう
2. 仮想マシンを作ってみよう
3. Webサイトを立ち上げてみよう
4. LBを作ってみよう
5. LBに仮想マシンを登録しよう
6. DNSを登録しよう
7. アクセスしてみよう
4.LBを作ってみよう
$ java CloudnAPIService
=== Start ===[2013/06/21 09:04:01]
> Which Service ? (Compute / LBA / ObjectStorage / AutoScaling / DNS /
Monitoring / Exit) :
LBA
Service =[LBA]
URL =[https://lba-api.jp-e1.cloudn-service.com/]
URL =[https://comp-apia.jp-e1.cloudn-service.com/awsapi/]
=== Start:CloudnAPILBA:publicMain ===[2013/06/21 09:05:31]
> Which Command ? (Describe / Create / Delete / RegisterInstance /
CreateListener / DefineHealth / HealthCheck / Exit) :
Create
Command =[Create]
> Enter Create LBA Name :
pyonkeyLBA
Create LBA Name =[pyonkeyLBA]
「LBA」を入力
「Create」を入力
LBAの名前を入力
LBの作成
4.LBを作ってみよう
DescribeZonesResult:
{AvailabilityZones: [
{ZoneName: jp-e1a, State: available, RegionName: , Messages: [{Message:
Enabled, }], },
{ZoneName: jp-e1b, State: available, RegionName: , Messages: [{Message:
Enabled, }], }], }
> Enter Zone Name :
jp-e1a
Availability Zone =[jp-e1a]
DescribeSecGroupsResult:
{SecurityGroups: [{OwnerId: ff02929c-1819-4b93-95be-8f251564b83c:cln100050095,
GroupName: pyonkey-secgroup, GroupId: 8a0dba8f-7afc-436b-878a-ab7dce6e2bf6,
Description: for SDK test, IpPermissions: [
{IpProtocol: tcp, FromPort: 22, ToPort: 22, IpRanges: [0.0.0.0/0], },
{IpProtocol: tcp, FromPort: 80, ToPort: 80, IpRanges: [0.0.0.0/0], }], VpcId:,
Tags: [{Key: , Value: , }], }], }
> Enter Security Group ID :
8a0dba8f-7afc-436b-878a-ab7dce6e2bf6
Security Group ID =[8a0dba8f-7afc-436b-878a-ab7dce6e2bf6]
LBAを作成したい方のゾーン名を入力
LBAにSecurityGroupを設定
LBの作成
4.LBを作ってみよう
> Enter LBA Protocol (HTTP / HTTPS / TCP / SSL) :
HTTP
LBA Protocol =[HTTP]
> Enter LBA Port :
80
LBA Port =[80]
> Enter Instance Protocol (HTTP / HTTPS / TCP / SSL) :
HTTP
Instance Protocol =[HTTP]
> Enter Instance Port :
80
Instance Port =[80]
CreateLoadBalancerRequest:
{LoadBalancerName: pyonkeyLBA, Listeners: [{Protocol: HTTP, LoadBalancerPort:
80, InstanceProtocol: HTTP, InstancePort: 80, }], AvailabilityZones: [jp-e1a],
SecurityGroups: [8a0dba8f-7afc-436b-878a-ab7dce6e2bf6], }
CreateLoadBalancerResult:
{DNSName: pyonkeyLBA-1371897092.lba.jp-e1.cloudn-service.com, }
LBの80番ポートにきたHTTPリクエストを
仮想マシンの80番ポートに転送
LBの作成
DNSName が返ってくるのでメモしておく
4.LBを作ってみよう
> Which Command ? (Describe / Create / Delete / RegisterInstance /
CreateListener / DefineHealth / HealthCheck / Exit) :
Describe
Command =[Describe]
DescribeLoadBalancersResult:
{LoadBalancerDescriptions: [
{LoadBalancerName: pyonkeyLBA, DNSName: pyonkeyLBA-1371897092.lba.jp-
e1.cloudn-service.com, CanonicalHostedZoneName: pyonkeyLBA-1371897092.lba.jp-
e1.cloudn-service.com, CanonicalHostedZoneNameID: BBB1874A1E3A46,
ListenerDescriptions: [{Listener: {Protocol: HTTP, LoadBalancerPort: 80,
InstanceProtocol: HTTP, InstancePort: 80, SSLCertificateId: , }, }], Policies:
{}, BackendServerDescriptions: [{InstancePort: 80, }], AvailabilityZones: [jp-
e1a], VPCId: , HealthCheck: {Target: HTTP:80/index.html, Interval: 5, Timeout:
3, UnhealthyThreshold: 2, HealthyThreshold: 10, }, SourceSecurityGroup:
{OwnerAlias: , GroupName: , }, SecurityGroups: [8a0dba8f-7afc-436b-878a-
ab7dce6e2bf6], CreatedTime: Fri Jun 21 09:31:33 JST 2013, Scheme: internet-
facing, }], }
LBが作成された
LBの作成(確認)
おしながき
1. ツールの環境を用意しよう
2. 仮想マシンを作ってみよう
3. Webサイトを立ち上げてみよう
4. LBを作ってみよう
5. LBに仮想マシンを登録しよう
6. DNSを登録しよう
7. アクセスしてみよう
5.LBに仮想マシンを登録
> Which Service ? (Compute / LBA / ObjectStorage / AutoScaling / DNS /
Monitoring / Exit) :
LBA
Service =[LBA]
> Which Command ? (Describe / Create / Delete / RegisterInstance /
CreateListener / DefineHealth / HealthCheck / Exit) :
RegisterInstance
Command =[RegisterInstance]
> Enter LBA Name :
pyonkeyLBA
LBA Name =[pyonkeyLBA]
> List Instance? (Y/N) :
N
DescribeInstancesResult:
(略)
> Enter Register Instance ID :
216f442f-34bc-4b05-aa74-4914a7de65ec
Register Instance ID =[216f442f-34bc-4b05-aa74-4914a7de65ec]
LBに仮想マシンを登録するには「RegisterInstance」を入力
該当のLB名を入力
「N」を入力
先程メモした仮想マシンのIDを入力
(1)1台目の仮想マシンを登録
RegisterInstancesWithLoadBalancerRequest:
{LoadBalancerName: pyonkeyLBA, Instances: [{InstanceId: 216f442f-34bc-4b05-
aa74-4914a7de65ec, }], }
RegisterInstancesWithLoadBalancerResult:
{Instances: [{InstanceId: 216f442f-34bc-4b05-aa74-4914a7de65ec, }], }
LBに仮想マシンが登録された
5.LBに仮想マシンを登録
(1)1台目の仮想マシンを登録
5.LBに仮想マシンを登録
> Which Command ? (Describe / Create / Delete / RegisterInstance /
CreateListener / DefineHealth / HealthCheck / Exit) :
RegisterInstance
Command =[RegisterInstance]
> Enter LBA Name :
pyonkeyLBA
LBA Name =[pyonkeyLBA]
> List Instance? (Y/N) :
N
DescribeInstancesResult:
(略)
> Enter Register Instance ID :
8a5bfa47-645e-494a-adf6-042f2a99f8c5
Register Instance ID =[8a5bfa47-645e-494a-adf6-042f2a99f8c5]
LBにインスタンスを登録するには「RegisterInstance」を入力
該当のLB名を入力
「N」を入力
先程メモした仮想マシンのIDを入力
(2)2台目の仮想マシンを登録
RegisterInstancesWithLoadBalancerRequest:
{LoadBalancerName: pyonkeyLBA, Instances: [{InstanceId: 8a5bfa47-645e-494a-
adf6-042f2a99f8c5, }], }
RegisterInstancesWithLoadBalancerResult:
{Instances: [{InstanceId: 216f442f-34bc-4b05-aa74-4914a7de65ec, },
{InstanceId: 8a5bfa47-645e-494a-adf6-042f2a99f8c5, }], }
LBに仮想マシンが登録された
5.LBに仮想マシンを登録
(2)2台目の仮想マシンを登録
> Which Command ? (Describe / Create / Delete / RegisterInstance /
CreateListener / DefineHealth / HealthCheck / Exit) :
Describe
Command =[Describe]
DescribeLoadBalancersResult:
{LoadBalancerName: pyonkeyLBA, DNSName: pyonkeyLBA-1371897092.lba.jp-
e1.cloudn-service.com, CanonicalHostedZoneName: pyonkeyLBA-1371897092.lba.jp-
e1.cloudn-service.com, CanonicalHostedZoneNameID: BBB1874A1E3A46,
ListenerDescriptions: [{Listener: {Protocol: HTTP, LoadBalancerPort: 80,
InstanceProtocol: HTTP, InstancePort: 80, SSLCertificateId: , }, }], Policies:
{}, BackendServerDescriptions: [{InstancePort: 80, }], AvailabilityZones: [jp-
e1a], VPCId: , Instances: [{InstanceId: 216f442f-34bc-4b05-
aa74-4914a7de65ec, }, {InstanceId: 8a5bfa47-645e-494a-adf6-042f2a99f8c5, }],
HealthCheck: {Target: HTTP:80/index.html, Interval: 5, Timeout: 3,
UnhealthyThreshold: 2, HealthyThreshold: 10, }, SourceSecurityGroup:
{OwnerAlias: cln100050095, GroupName: pyonkey-secgroup, }, SecurityGroups:
[8a0dba8f-7afc-436b-878a-ab7dce6e2bf6], CreatedTime: Sat Jun 22 19:31:33 JST
2013, Scheme: internet-facing, }], }
5.LBに仮想マシンを登録
(3)登録されたことを確認
おしながき
1. ツールの環境を用意しよう
2. 仮想マシンを作ってみよう
3. Webサイトを立ち上げてみよう
4. LBを作ってみよう
5. LBに仮想マシンを登録しよう
6. DNSを登録しよう
7. アクセスしてみよう
6.DNSを登録
(1)ゾーンを作成
(2)ゾーン情報の表示
(3)独自ドメインを取得した場合
(4)レコードの登録(LB)
(5)レコードの登録(仮想マシン)
6.DNSを登録
$ java CloudnAPIService
=== Start ===[2013/06/21 09:04:01]
> Which Service ? (Compute / LBA / ObjectStorage / AutoScaling / DNS /
Monitoring / Exit) :
DNS
Service =[DNS]
> Which Command ? (List / Info / Create / Delete / Edit / GetChange / Exit) :
Create
Command =[Create]
> Enter Create Zone Name :
pyonkey.net
Zone Name =[pyonkey.net]
> Enter Caller Reference :
pyonkey.net
Caller Reference =[pyonkey.net]
(1)ゾーンを作成
「DNS」を入力
「Create」を入力
ゾーン名を入力
再度ゾーン名を入力
6.DNSを登録
> Enter Comment (empty is available) :
Comment =[]
CreateHostedZoneRequest:
{Name: pyonkey.net, CallerReference: pyonkey.net, HostedZoneConfig:
{Comment: , }, }
CreateHostedZoneResult:
{HostedZone: {Id: BF04903FDB584F, Name: pyonkey.net., CallerReference:
pyonkey.net, Config: {Comment: , }, ResourceRecordSetCount: 2, }, ChangeInfo:
{Id: c5e8ad4b0cd047, Status: PENDING, SubmittedAt: Sun Jun 23 23:54:49 JST
2013, }, DelegationSet: {NameServers: [ns-08.dns.jp-e1.cloudn-service.com,
ns-09.dns.jp-e1.cloudn-service.com, ns-10.dns.jp-e1.cloudn-service.com], }, }
(1)ゾーンを作成
コメントを入力(任意)
ゾーンが作成された
「PENDING」…作成中のステータス
6.DNSを登録
> Which Command ? (List / Info / Create / Delete / Edit / GetChange / Exit) :
GetChange
Command =[GetChange]
> Enter Change ID :
c5e8ad4b0cd047
Change ID =[c5e8ad4b0cd047]
GetChangeRequest:
{Id: c5e8ad4b0cd047, }
GetChangeResult:
{ChangeInfo: {Id: c5e8ad4b0cd047, Status: INSYNC, SubmittedAt: Fri Jun 21
13:54:49 JST 2013, }, }
「INSYNC」となっていることを確認
「GetChange」と入力
Change IDを入力
(1)ゾーンを作成(確認)
6.DNSを登録
> Which Command ? (List / Info / Create / Delete / Edit / GetChange / Exit) :
List
Command =[List]
ListHostedZonesResult:
{HostedZones: [
{Id: BF04903FDB584F, Name: pyonkey.net., CallerReference: pyonkey.net,
ResourceRecordSetCount: 2, }], IsTruncated: false, MaxItems: 100, }
ゾーンが作成されていることを確認
(1)ゾーンを作成(確認)
6.DNSを登録
> Which Command ? (List / Info / Create / Delete / Edit / GetChange / Exit) :
Info
Command =[Info]
ListHostedZonesResult:
{HostedZones: [
{Id: BF04903FDB584F, Name: pyonkey.net., CallerReference: pyonkey.net,
ResourceRecordSetCount: 2, }], IsTruncated: false, MaxItems: 100, }
> Enter Zone ID :
BF04903FDB584F
Zone ID =[BF04903FDB584F]
GetHostedZoneRequest:
{Id: BF04903FDB584F, }
GetHostedZoneResult:
{HostedZone: {Id: BF04903FDB584F, Name: pyonkey.net., CallerReference:
pyonkey.net, Config: {Comment: , }, ResourceRecordSetCount: 2, },
DelegationSet: {NameServers: [ns-08.dns.jp-e1.cloudn-service.com,
ns-09.dns.jp-e1.cloudn-service.com, ns-10.dns.jp-e1.cloudn-service.com], }, }
(2)ゾーン情報の表示
Zone ID を入力
「Info」と入力
6.DNSを登録
ListResourceRecordSetsRequest:
{HostedZoneId: BF04903FDB584F, }
ListResourceRecordSetsResult:
{ResourceRecordSets: [
{Name: pyonkey.net., Type: SOA, TTL: 60, ResourceRecords: [{Value:
ns-08.dns.jp-e1.cloudn-service.com. root.cloudn2.net. 1 7200 900 1209600
86400, }], },
{Name: pyonkey.net., Type: NS, TTL: 60, ResourceRecords: [{Value:
ns-08.dns.jp-e1.cloudn-service.com., }, {Value: ns-09.dns.jp-e1.cloudn-
service.com., }, {Value: ns-10.dns.jp-e1.cloudn-service.com., }], }],
IsTruncated: false, MaxItems: 100, }
(2)ゾーン情報の表示
ネームサーバ名を確認
6.DNSを登録
(3)独自ドメインを取得した場合
レジストラにCloudnをネームサーバとして登録す
る必要があります。
例
【対象ドメイン】
pyonkey.net
【ネームサーバ情報】
プライマリNS: ns-08.dns.jp-e1.cloudn-service.com
セカンダリNS: ns-09.dns.jp-e1.cloudn-service.com
6.DNSを登録
> Which Command ? (List / Info / Create / Delete / Edit / GetChange / Exit) :
Edit
Command =[Edit]
ListHostedZonesResult:
{HostedZones: [
{Id: BF04903FDB584F, Name: pyonkey.net., CallerReference: pyonkey.net,
ResourceRecordSetCount: 3, }], IsTruncated: false, MaxItems: 100, }
> Enter Zone ID :
BF04903FDB584F
Zone ID =[BF04903FDB584F]
> Enter Action (CREATE / DELETE) :
CREATE
Action =[CREATE]
> Enter Type (A / AAAA / CNAME / MX / NS / PTR / SOA / SPF / SRV / TXT) :
CNAME
Type =[CNAME]
(4)レコードの登録(LB)
ゾーンIDを入力
「Edit」と入力
「CREATE」と入力
「CNAME」と入力※
※現在公開中のツールはA/AAAAレコードのみ対応しています。
CNAME登録は、順次対応予定です。
6.DNSを登録
> Enter TTL :
3600
TTL =[3600]
> Enter Canonical Name (FQDN) :
web.pyonkey.net
Canonical Name =[web.pyonkey.net]
> Enter Host Name (FQDN) :
pyonkeylba-1371897092.lba.jp-e1.cloudn-service.com
Host Name =[pyonkeylba-1371897092.lba.jp-e1.cloudn-service.com]
ChangeResourceRecordSetsRequest:
{HostedZoneId: BF04903FDB584F, ChangeBatch: {Changes: [{Action: CREATE,
ResourceRecordSet: {Name: web.pyonkey.net, Type: CNAME, TTL: 3600,
ResourceRecords: [{Value: pyonkeylba-1371897092.lba.jp-e1.cloudn-
service.com, }], }, }], }, }
TTL値を入力
LBの別名を入力
メモしておいたLBの DNSName を入力
(4)レコードの登録(LB)
6.DNSを登録
ChangeResourceRecordSetsResult:
{ChangeInfo: {Id: eb9330e8d52946, Status: PENDING, SubmittedAt: Mon Jun 24
11:17:35 JST 2013, }, }
> Which Command ? (List / Info / Create / Delete / Edit / GetChange / Exit) :
GetChange
Command =[GetChange]
> Enter Change ID :
eb9330e8d52946
Change ID =[eb9330e8d52946]
GetChangeRequest:
{Id: eb9330e8d52946, }
GetChangeResult:
{ChangeInfo: {Id: eb9330e8d52946, Status: INSYNC, SubmittedAt: Mon Jun 24
11:17:35 JST 2013, }, }
「INSYNC」となったことを確認
(4)レコードの登録(LB)
Change IDを入力
6.DNSを登録
> Which Command ? (List / Info / Create / Delete / Edit / GetChange / Exit) :
Info
Command =[Info]
ListHostedZonesResult:
{HostedZones: [
{Id: BF04903FDB584F, Name: pyonkey.net., CallerReference: pyonkey.net,
ResourceRecordSetCount: 4, }], IsTruncated: false, MaxItems: 100, }
> Enter Zone ID :
BF04903FDB584F
Zone ID =[BF04903FDB584F]
GetHostedZoneRequest:
{Id: BF04903FDB584F, }
GetHostedZoneResult:
{HostedZone: {Id: BF04903FDB584F, Name: pyonkey.net., CallerReference:
pyonkey.net, Config: {Comment: , }, ResourceRecordSetCount: 4, },
DelegationSet: {NameServers: [ns-08.dns.jp-e1.cloudn-service.com,
ns-09.dns.jp-e1.cloudn-service.com, ns-10.dns.jp-e1.cloudn-service.com], }, }
(4)レコードの登録(LB)(確認)
Zone IDを入力
6.DNSを登録
ListResourceRecordSetsRequest:
{HostedZoneId: BF04903FDB584F, }
ListResourceRecordSetsResult:
{ResourceRecordSets: [
{Name: pyonkey.net., Type: SOA, TTL: 60, ResourceRecords: [{Value:
ns-08.dns.jp-e1.cloudn-service.com. root.cloudn2.net. 1 7200 900 1209600
86400, }], },
{Name: pyonkey.net., Type: NS, TTL: 60, ResourceRecords: [{Value:
ns-08.dns.jp-e1.cloudn-service.com., }, {Value: ns-09.dns.jp-e1.cloudn-
service.com., }, {Value: ns-10.dns.jp-e1.cloudn-service.com., }], },
{Name: server01.pyonkey.net., Type: A, TTL: 3600, ResourceRecords: [{Value:
153.128.37.234, }], },
{Name: web.pyonkey.net., Type: CNAME, TTL: 3600, ResourceRecords: [{Value:
pyonkeylba-1371897092.lba.jp-e1.cloudn-service.com., }], }], IsTruncated:
false, MaxItems: 100, }
(4)レコードの登録(LB)(確認)
レコードが登録されている
6.DNSを登録
> Which Command ? (List / Info / Create / Delete / Edit / GetChange / Exit) :
Edit
Command =[Edit]
ListHostedZonesResult:
{HostedZones: [
{Id: BF04903FDB584F, Name: pyonkey.net., CallerReference: pyonkey.net,
ResourceRecordSetCount: 2, }], IsTruncated: false, MaxItems: 100, }
> Enter Zone ID :
BF04903FDB584F
Zone ID =[BF04903FDB584F]
> Enter Action (CREATE / DELETE) :
CREATE
Action =[CREATE]
> Enter Host Name (FQDN) :
server01.pyonkey.net.
Host Name =[server01.pyonkey.net.]
(5)レコードの登録(1台目の仮想マシン)
Zone IDを入力
「CREATE」と入力
ホスト名を入力
「Edit」と入力
6.DNSを登録
> Enter Type (A / AAAA) :
A
Type =[A]
> Enter TTL :
3600
TTL =[3600]
> Enter IP Address :
153.128.37.234
IP Address =[153.128.37.234]
ChangeResourceRecordSetsRequest:
{HostedZoneId: BF04903FDB584F, ChangeBatch: {Changes: [{Action: CREATE,
ResourceRecordSet: {Name: server01.pyonkey.net., Type: A, TTL: 3600,
ResourceRecords: [{Value: 153.128.37.234, }], }, }], }, }
ChangeResourceRecordSetsResult:
{ChangeInfo: {Id: ca3a3ad691014f, Status: PENDING, SubmittedAt: Fri Jun 21
10:31:28 JST 2013, }, }
(5)レコードの登録(1台目の仮想マシン)
「A」と入力
「3600」と入力
先程メモしたIPアドレスを入力
6.DNSを登録
> Which Command ? (List / Info / Create / Delete / Edit / GetChange / Exit) :
Info
Command =[Info]
ListHostedZonesResult:
{HostedZones: [
{Id: BF04903FDB584F, Name: pyonkey.net., CallerReference: pyonkey.net,
ResourceRecordSetCount: 3, }], IsTruncated: false, MaxItems: 100, }
> Enter Zone ID :
BF04903FDB584F
Zone ID =[BF04903FDB584F]
GetHostedZoneRequest:
{Id: BF04903FDB584F, }
GetHostedZoneResult:
{HostedZone: {Id: BF04903FDB584F, Name: pyonkey.net., CallerReference:
pyonkey.net, Config: {Comment: , }, ResourceRecordSetCount: 3, },
DelegationSet: {NameServers: [ns-08.dns.jp-e1.cloudn-service.com,
ns-09.dns.jp-e1.cloudn-service.com, ns-10.dns.jp-e1.cloudn-service.com], }, }
Zone ID を入力
「Info」と入力
(5)レコードの登録(1台目の仮想マシン)(確認)
6.DNSを登録
ListResourceRecordSetsRequest:
{HostedZoneId: BF04903FDB584F, }
ListResourceRecordSetsResult:
{ResourceRecordSets: [
{Name: pyonkey.net., Type: SOA, TTL: 60, ResourceRecords: [{Value:
ns-08.dns.jp-e1.cloudn-service.com. root.cloudn2.net. 1 7200 900 1209600
86400, }], },
{Name: pyonkey.net., Type: NS, TTL: 60, ResourceRecords: [{Value:
ns-08.dns.jp-e1.cloudn-service.com., }, {Value: ns-09.dns.jp-e1.cloudn-
service.com., }, {Value: ns-10.dns.jp-e1.cloudn-service.com., }], },
{Name: server01.pyonkey.net., Type: A, TTL: 3600, ResourceRecords: [{Value:
153.128.37.234, }], }], IsTruncated: false, MaxItems: 100, }
Aレコードが登録された
(5)レコードの登録(1台目の仮想マシン)(確認)
6.DNSを登録
$ dig server01.pyonkey.net
; <<>> DiG 9.8.3-P1 <<>> server01.pyonkey.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53291
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2
;; QUESTION SECTION:
;server01.pyonkey.net.	 	 IN	 A
;; ANSWER SECTION:
server01.pyonkey.net.	3600	IN	 A	 153.128.37.234
;; AUTHORITY SECTION:
pyonkey.net.		 60	 IN	 NS	 ns-10.dns.jp-e1.cloudn-service.com.
pyonkey.net.		 60	 IN	 NS	 ns-09.dns.jp-e1.cloudn-service.com.
pyonkey.net.		 60	 IN	 NS	 ns-08.dns.jp-e1.cloudn-service.com.
(略)
(5)レコードの登録(1台目の仮想マシン)(確認)
名前解決できた
わ〜い♪
おしながき
1. ツールの環境を用意しよう
2. 仮想マシンを作ってみよう
3. Webサイトを立ち上げてみよう
4. LBを作ってみよう
5. LBに仮想マシンを登録しよう
6. DNSを登録しよう
7. アクセスしてみよう
7.アクセスしてみよう
(1)仮想マシンにブラウザでアクセスしてみよう
(2)LBにブラウザでアクセスしてみよう
できたかな〜♪
ありがとうございました
資料はこちら

Weitere ähnliche Inhalte

Was ist angesagt?

20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会
samemoon
 

Was ist angesagt? (20)

Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016OpenStack本番環境の作り方 - Interop 2016
OpenStack本番環境の作り方 - Interop 2016
 
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
第18回Cloud Foundry輪読会用 Buildpackを使ってアプリを 載せるためのアプローチ
 
Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発Quarkus による超音速な Spring アプリケーション開発
Quarkus による超音速な Spring アプリケーション開発
 
20190722 OpenStack community past present future
20190722 OpenStack community past present future20190722 OpenStack community past present future
20190722 OpenStack community past present future
 
20131116_OSC福岡_CloudOS「Apache CloudStack」概要
20131116_OSC福岡_CloudOS「Apache CloudStack」概要20131116_OSC福岡_CloudOS「Apache CloudStack」概要
20131116_OSC福岡_CloudOS「Apache CloudStack」概要
 
ダイ・ハード in the Kubernetes world
ダイ・ハード in the Kubernetes worldダイ・ハード in the Kubernetes world
ダイ・ハード in the Kubernetes world
 
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
OpenStack-Ansibleで作るOpenStack HA環境 手順書解説 - OpenStack最新情報セミナー 2016年3月
 
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
Dockerホスティング「Arukas」について(「さくらインターネット」のDockerホスティング「Arukas」と「Docker Machine」ドラ...
 
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
OpenStack Summit Austin 2016 参加報告 - OpenStack最新情報セミナー 2016年5月
 
APIMeetup 20170329_ichimura
APIMeetup 20170329_ichimuraAPIMeetup 20170329_ichimura
APIMeetup 20170329_ichimura
 
Jenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdiJenkins study jenkins build-cicdi
Jenkins study jenkins build-cicdi
 
使ってわかった!現場担当者が語るOpenStack運用管理の課題 - OpenStack最新情報セミナー 2015年2月
使ってわかった!現場担当者が語るOpenStack運用管理の課題  - OpenStack最新情報セミナー 2015年2月使ってわかった!現場担当者が語るOpenStack運用管理の課題  - OpenStack最新情報セミナー 2015年2月
使ってわかった!現場担当者が語るOpenStack運用管理の課題 - OpenStack最新情報セミナー 2015年2月
 
OpenStackによる、実践オンプレミスクラウド
OpenStackによる、実践オンプレミスクラウドOpenStackによる、実践オンプレミスクラウド
OpenStackによる、実践オンプレミスクラウド
 
20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会20130714 July Tech Festa 日本CloudStackユーザー会
20130714 July Tech Festa 日本CloudStackユーザー会
 
20130914_OSC北海道_CloudStack一問一答!
20130914_OSC北海道_CloudStack一問一答!20130914_OSC北海道_CloudStack一問一答!
20130914_OSC北海道_CloudStack一問一答!
 
Deploying secure service mesh for applications on k8s with using A10's Lighti...
Deploying secure service mesh for applications on k8s with using A10's Lighti...Deploying secure service mesh for applications on k8s with using A10's Lighti...
Deploying secure service mesh for applications on k8s with using A10's Lighti...
 
Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化Open Stack Day - Ansibleによる環境構築の自動化
Open Stack Day - Ansibleによる環境構築の自動化
 
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
 

Ähnlich wie NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう

Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
Etsuji Nakai
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Daisuke Ikeda
 
OSC2013 Tokyo Spring OpenStack Overview
OSC2013 Tokyo Spring OpenStack OverviewOSC2013 Tokyo Spring OpenStack Overview
OSC2013 Tokyo Spring OpenStack Overview
irix_jp
 
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドMicrosoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Kazumi Hirose
 
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
samemoon
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
Etsuji Nakai
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
Etsuji Nakai
 
CloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/SwiftCloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/Swift
irix_jp
 

Ähnlich wie NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう (20)

20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
 
オトナのDocker入門
オトナのDocker入門オトナのDocker入門
オトナのDocker入門
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
 
"NAZE? NANI? CloudStack" on OSC Sendai 2011 / May 21 2011
"NAZE? NANI? CloudStack" on OSC Sendai 2011 / May 21 2011"NAZE? NANI? CloudStack" on OSC Sendai 2011 / May 21 2011
"NAZE? NANI? CloudStack" on OSC Sendai 2011 / May 21 2011
 
2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム2019年度 CaaS ワークショップ @ NTTコム
2019年度 CaaS ワークショップ @ NTTコム
 
OSC2013 Tokyo Spring OpenStack Overview
OSC2013 Tokyo Spring OpenStack OverviewOSC2013 Tokyo Spring OpenStack Overview
OSC2013 Tokyo Spring OpenStack Overview
 
第13回CloudStackユーザ会_CloudStack4.1新機能
第13回CloudStackユーザ会_CloudStack4.1新機能第13回CloudStackユーザ会_CloudStack4.1新機能
第13回CloudStackユーザ会_CloudStack4.1新機能
 
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスドMicrosoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
Microsoft azure上にwebサイトやアプリケーションを構築する方法 アドバンスド
 
20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会20130803 OSC@Kyoto CloudStackユーザー会
20130803 OSC@Kyoto CloudStackユーザー会
 
201312 scalr[oss] installation_idcf
201312 scalr[oss] installation_idcf201312 scalr[oss] installation_idcf
201312 scalr[oss] installation_idcf
 
SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01SCALR OSS版のインストール手順のご紹介 20131204 01
SCALR OSS版のインストール手順のご紹介 20131204 01
 
環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介環境構築自動化ツールのご紹介
環境構築自動化ツールのご紹介
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
 
Apache CloudStack -コントリビューションの手引き-
Apache CloudStack -コントリビューションの手引き-Apache CloudStack -コントリビューションの手引き-
Apache CloudStack -コントリビューションの手引き-
 
CloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/SwiftCloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/Swift
 

Mehr von Midori Oge

20180621_High Performance Virtual Infra Community Meetup #1 「HCIの期待と現状??」
20180621_High Performance Virtual Infra Community Meetup #1 「HCIの期待と現状??」20180621_High Performance Virtual Infra Community Meetup #1 「HCIの期待と現状??」
20180621_High Performance Virtual Infra Community Meetup #1 「HCIの期待と現状??」
Midori Oge
 
第23回CloudStackユーザ会_JCSUGの2014年の振り返り&今後の取り組みについて
第23回CloudStackユーザ会_JCSUGの2014年の振り返り&今後の取り組みについて第23回CloudStackユーザ会_JCSUGの2014年の振り返り&今後の取り組みについて
第23回CloudStackユーザ会_JCSUGの2014年の振り返り&今後の取り組みについて
Midori Oge
 
ApacheCloudstack4.1最新情報ver2
ApacheCloudstack4.1最新情報ver2ApacheCloudstack4.1最新情報ver2
ApacheCloudstack4.1最新情報ver2
Midori Oge
 

Mehr von Midori Oge (17)

20210129【NetApp/Rancher共催】Rancher on NetApp HCIオンラインミートアップ
20210129【NetApp/Rancher共催】Rancher on NetApp HCIオンラインミートアップ20210129【NetApp/Rancher共催】Rancher on NetApp HCIオンラインミートアップ
20210129【NetApp/Rancher共催】Rancher on NetApp HCIオンラインミートアップ
 
20180621_High Performance Virtual Infra Community Meetup #1 「HCIの期待と現状??」
20180621_High Performance Virtual Infra Community Meetup #1 「HCIの期待と現状??」20180621_High Performance Virtual Infra Community Meetup #1 「HCIの期待と現状??」
20180621_High Performance Virtual Infra Community Meetup #1 「HCIの期待と現状??」
 
Apache CloudStack 技術者認定試験について
Apache CloudStack 技術者認定試験についてApache CloudStack 技術者認定試験について
Apache CloudStack 技術者認定試験について
 
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
Apache CloudStack Examination - CloudStack Collaboration Conference in Europe...
 
CloudStack Day 2015 Storage Teck Talk
CloudStack Day 2015 Storage Teck TalkCloudStack Day 2015 Storage Teck Talk
CloudStack Day 2015 Storage Teck Talk
 
第10回クラウドごった煮 クラウド時代のストレージ選び
第10回クラウドごった煮 クラウド時代のストレージ選び第10回クラウドごった煮 クラウド時代のストレージ選び
第10回クラウドごった煮 クラウド時代のストレージ選び
 
第23回CloudStackユーザ会_JCSUGの2014年の振り返り&今後の取り組みについて
第23回CloudStackユーザ会_JCSUGの2014年の振り返り&今後の取り組みについて第23回CloudStackユーザ会_JCSUGの2014年の振り返り&今後の取り組みについて
第23回CloudStackユーザ会_JCSUGの2014年の振り返り&今後の取り組みについて
 
CloudStack(クラウド)のこれからについてまじめに考えてみる
CloudStack(クラウド)のこれからについてまじめに考えてみるCloudStack(クラウド)のこれからについてまじめに考えてみる
CloudStack(クラウド)のこれからについてまじめに考えてみる
 
OSC2014広島 CloudStackの歩き方【完全版】
OSC2014広島 CloudStackの歩き方【完全版】OSC2014広島 CloudStackの歩き方【完全版】
OSC2014広島 CloudStackの歩き方【完全版】
 
OSC関西@京都2014 CloudStackの歩き方
OSC関西@京都2014 CloudStackの歩き方OSC関西@京都2014 CloudStackの歩き方
OSC関西@京都2014 CloudStackの歩き方
 
OpenStack 4th BirthdayParty in Japan
OpenStack 4th BirthdayParty in JapanOpenStack 4th BirthdayParty in Japan
OpenStack 4th BirthdayParty in Japan
 
TechGIRL くらうどすたっくのお話
TechGIRL くらうどすたっくのお話TechGIRL くらうどすたっくのお話
TechGIRL くらうどすたっくのお話
 
20131230_CloudStack Advent Calendar VPCを作ってみよう
20131230_CloudStack Advent Calendar VPCを作ってみよう20131230_CloudStack Advent Calendar VPCを作ってみよう
20131230_CloudStack Advent Calendar VPCを作ってみよう
 
20130912-13_第14-15回_CloudStackユーザ会_東京-北海道_CloudStack新機能紹介(4.1_4.2)
20130912-13_第14-15回_CloudStackユーザ会_東京-北海道_CloudStack新機能紹介(4.1_4.2)20130912-13_第14-15回_CloudStackユーザ会_東京-北海道_CloudStack新機能紹介(4.1_4.2)
20130912-13_第14-15回_CloudStackユーザ会_東京-北海道_CloudStack新機能紹介(4.1_4.2)
 
ApacheCloudstack4.1最新情報ver2
ApacheCloudstack4.1最新情報ver2ApacheCloudstack4.1最新情報ver2
ApacheCloudstack4.1最新情報ver2
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報
 
OSC2012.Cloud_CloudStack概要
OSC2012.Cloud_CloudStack概要OSC2012.Cloud_CloudStack概要
OSC2012.Cloud_CloudStack概要
 

Kürzlich hochgeladen

Kürzlich hochgeladen (11)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 

NTTコミュニケーションズ Cloudn勉強会資料 SDKでAPIをたたいてみよう