SlideShare a Scribd company logo
1 of 21
Download to read offline
BOSH でお手軽 CF デプロイon AWS
Iwasaki Yudai @i_yudai
NTT Laboratory
Software Innovation Center
2013-08-23
AWS環境でのCFインスタンス構築
– MicroBOSH
– Cloud Foundry
– ビルトインサービス
今日の内容
2
BOSHとCloud Foudryのインストール
3
Based on:
Dr Nic’s “Build Your Own Heroku With Open Source Cloud Foundry”
https://github.com/cloudfoundry-community/bosh-cloudfoundry/blob/master/tutorials/
AWSアカウント
AWS使用料
Ruby1.9.3
Git
必要なもの
4
$500/月 程度 (ap-northeast-1 Tokyo)
– 生成されるVM
• m1.small * 4 (Cloud Foundry)
• m1.small * 1 (Inception Server)
• m1.medium * 1 (MicroBOSH)
– その他
• Elastic IP * 2
• Volumes が数十GB
AWS使用料について
Inceptionサーバとは
– 諸般の事情によりus-east-1以外のリージョンで
必要となる踏み台サーバ
– inception-serverを使用
• https://github.com/cloudfoundry-community/inception-server
Inception Serverのセットアップ(1)
# Gem のインストール
$ gem install inception-server
Inception Serverのセットアップ(2)
# 新しいInceptionサーバーを起動
$ inception-server deploy
1. AWS
2. OpenStack
Choose your infrastructure: 1
Using provider AWS
Access key: ***********************
Secret key: ********************************
1. *US East (Northern Virginia) Region (us-east-1)
2. US West (Oregon) Region (us-west-2)
3. US West (Northern California) Region (us-west-1)
4. EU (Ireland) Region (eu-west-1)
5. Asia Pacific (Singapore) Region (ap-southeast-1)
6. Asia Pacific (Sydney) Region (ap-southeast-2)
7. Asia Pacific (Tokyo) Region (ap-northeast-1)
8. South America (Sao Paulo) Region (sa-east-1)
Choose AWS region: 7
Confirming: Using AWS/ap-northeast-1
....
注)使用しない Elastic IPが
払い出されているので削除する
Inception Serverのセットアップ(3)
# InceptionサーバーにSSHで接続
$ inception-server ssh
# SSH鍵を生成しておく
$ ssh-keygen -N '' -f ~/.ssh/id_rsa
# 少しだけ細かい環境の修正(Gemをインストールできるようにす
る)
$ sudo usermod -a -G rvm ubuntu
$ sudo chmod g+w /usr/local/rvm –R
# グループ変更を反映するために再接続する
$ exit
$ inception-server ssh
以降の操作はすべてInceptionサーバ上で行います
bosh-bootstrap を使用する
– https://github.com/cloudfoundry-community/bosh-cloudfoundry
– MicroBOSH を1コマンドでデプロイできる
– Inceptionサーバ上で使用する場合はアクセ
スキーの再入力は不要
MicroBOSHのセットアップ(1)
# Gem のインストール
$ gem install bosh-bootstrap
MicroBOSHのセットアップ(2)
$ bosh-bootstrap deploy
Auto-detected infrastructure API credentials at ~/.fog (override with $FOG)
1. AWS (default)
2. Alternate credentials
Choose an auto-detected infrastructure: 1
Using provider AWS
1. *US East (Northern Virginia) Region (us-east-1)
2. US West (Oregon) Region (us-west-2)
3. US West (Northern California) Region (us-west-1)
4. EU (Ireland) Region (eu-west-1)
5. Asia Pacific (Singapore) Region (ap-southeast-1)
6. Asia Pacific (Sydney) Region (ap-southeast-2)
7. Asia Pacific (Tokyo) Region (ap-northeast-1)
8. South America (Sao Paulo) Region (sa-east-1)
Choose AWS region: 7
Confirming: Using AWS/ap-northeast-1
...
MicroBOSHのセットアップ(3)
# bosh-bootstrap deploy の実行結果の続き
# 最後から3行目に表示される IP アドレスが MicroBOSH のIPアドレスとなる
...
WARNING! Your target has been changed to `https://203.0.113.1:25555'!
Deployment set to
'/home/ubuntu/.microbosh/deployments/firstbosh/micro_bosh.yml‘
Deployed `firstbosh/micro_bosh.yml' to `https://firstbosh:25555', took
00:19:34 to complete
# MicroBOSH をターゲットする
$ bosh target https://203.0.113.1:25555
Target set to `firstbosh‘
Your username: admin
Enter password: admin
Logged in as `admin'
 bosh-cloudfoundry を使用する
– https://github.com/cloudfoundry-community/bosh-cloudfoundry
– BOSH CLIのプラグイン
– Deployment Manifestを自動生成してくれる
 事前準備
– Elastic IPを1つ払いだしておく
• 例:203.0.113.2
– Security Groupを作っておく
• 名前: cf
• 開放ポート:
– TCP (Source 0.0.0.0/0): 22, 80, 443
– TCP (Source 同一SG): 1-65535
–UDP(Source 同一SG): 1-65535
Cloud Foundryのセットアップ(1)
Cloud Foundryのセットアップ(2)
# 最新の BOSH CLI をインストールする
$ gem install bosh_cli -v "~> 1.5.0.pre" ¥
--source https://s3.amazonaws.com/bosh-jenkins-gems/
# bosh-cloudfoundryのインストール
$ gem install bosh-cloudfoundry
# デプロイの準備(cr-releaseのダウンロードなど)
$ bosh prepare cf
Cloud Foundryのセットアップ(3)
$ bosh create cf --ip 203.0.113.2 --security-group cf
Fetching bosh information OK
CPI: aws
DNS mapping: 203.0.113.2.xip.io --> ["203.0.113.2"]
Deployment name: cf-1377155859
Deployment size: medium
Persistent disk: 4096
Security group: cf
Validating deployment size OK
Resolve DNS OK
Resolve DNS 'api.203.0.113.2.xip.io' to IP '203.0.113.2' OK
`api.203.0.113.2.xip.io' maps to 203.0.113.2
Resolve DNS OK
Resolve DNS 'demoapp.203.0.113.2.xip.io' to IP '203.0.113.2' OK
`demoapp.203.0.113.2.xip.io' maps to 203.0.113.2
Security group cf exists with ports 22, 80, 443, 4222 (type 'yes' to continue): yes
Creating Cloud Foundry (type 'yes' to continue): yes
Checking/creating /home/ubuntu/deployments/cf for deployment files OK
Creating deployment file /home/ubuntu/deployments/cf/cf-1377155859.yml OK
Deployment set to `/home/ubuntu/deployments/cf/cf-1377155859.yml'
Getting deployment properties from director...
Unable to get properties list from director, trying without it...
Compiling deployment manifest...
Cannot get current deployment information from director, possibly a new deployment
Please review all changes carefully
Deploying `cf-1377155859.yml' to `firstbosh' (type 'yes' to continue): yes
...
Cloud Foundryのセットアップ(4)
# デプロイされた VM の確認
$ bosh vms
...
+-----------+---------+---------------+-----------------------------+
| Job/index | State | Resource Pool | IPs |
+-----------+---------+---------------+-----------------------------+
| api/0 | running | small | 10.122.54.35, 203.0.113.2 |
| core/0 | running | small | 10.121.11.212 |
| data/0 | running | small | 10.121.14.213 |
| dea/0 | running | small | 10.122.29.169 |
+-----------+---------+---------------+-----------------------------+
VMs total: 4
# CFの設定値を確認
# common_password が admin ユーザのパスワードになる
$ bosh show cf attributes
Fetching bosh information OK
Immutable attributes:
common_password: e80011989a71
deployment_size: medium
name: cf-1377155859
Mutable (changable) attributes:
ip_addresses: ["203.0.113.2"]
persistent_disk: 4096
security_group: cf
dns: 203.0.113.2.xip.io
Cloud Foundryのセットアップ(5)
# cf コマンドのインストール
# 今回インストールされるCFは 5.x に対応していないので 4.2.8
$ gem install cf –v 4.2.8
# デフォルトのターゲットは xip.io で設定されている
# 例)api.203.0.113.2.xip.io
$ cf target api.203.0.113.2.xip.io
# admin ユーザでログイン
# パスワードは前頁参照
$ cf login admin
target: http://api.203.0.113.2.xip.io
Password> e80011989a71
Authenticating... OK
There are no spaces. You may want to create one with create-space.... OK
bosh create cf のオプション
– --size
• VMの台数(medium, large, xlarge)
• デフォルトはmedium
– --domain
• ドメイン名
• デフォルトは <IP Address>.xip.io
個別の設定
– deploymentsディレクトリ内のマニフェ
ストファイルを手動で編集して bosh
deploy
Cloud Foundryのカスタマイズ
ビルトインサービスの追加
ビルトインサービスは別途インストールす
る必要がある
– https://github.com/cloudfoundry/cf-services-contrib-release
– コミュニティ版
• cf-services-releaseはPivotalがメンテナンスしている
がMySQLしかない
m1.small * 8 が追加で必要
ビルトインサービスを追加する
19
ビルトインサービスのデプロイ
# ソースコードを Clone
$ git clone https://github.com/cloudfoundry/cf-services-contrib-
release.git
# 最新版で構成するために、dev リリースを生成する
$ cd cf-services-contrib-release
$ git submodule update --init –recursive
$ bosh create release
# BOSH にリリースをアップロード
$ bosh upload release dev_releases/cf-services-contrib-1.1-dev.yml
# デプロイメントマニフェストを記述
# 変更点は gist 参照のこと:https://gist.github.com/yudai/6308528
$ vi examples/dns-all.yml
# デプロイの実行
$ bosh deployment example/dns-all.yml
$ bosh deploy
ビルトインサービスの使用
# AUTH TOKEN の登録
# Tokenの値はデプロイメントマニフェストに記述されている
# postgres 以外のサービスについても同様に実行する
$ cf create-service-auth-token
Label> postgresql
Token> POSTGRESQL_SERVICE_TOKEN
Creating service auth token... OK
# 使用可能なサービスの一覧を表示して確認
$ cf services --marketplace
Getting services... OK
service version provider plans description
blob 0.51 core default Blob store
elasticsearch 0.20 core free Elasticsearch search
service
memcached 1.4 core default Memcached in-memory cache
mongodb 2.2 core default MongoDB NoSQL database
postgresql 9.2 core default PostgreSQL database
rabbitmq 3.0 core default RabbitMQ message queue
redis 2.6 core default Redis key-value store

More Related Content

What's hot

CloudFoundryをつかってみよう
CloudFoundryをつかってみようCloudFoundryをつかってみよう
CloudFoundryをつかってみようKazuto Kusama
 
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方Akihiro Kitada
 
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版Kazuto Kusama
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来Kazuto Kusama
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるTakeshi Morikawa
 
Cloud founryインストール手順
Cloud founryインストール手順Cloud founryインストール手順
Cloud founryインストール手順Kotaro Noyama
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Uemura Yuichi
 
コンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundryコンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud FoundryKazuto Kusama
 
Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較Kazuto Kusama
 
Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Kazuto Kusama
 
はじめてのCF buildpack
はじめてのCF buildpackはじめてのCF buildpack
はじめてのCF buildpackKazuto Kusama
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみようHiroaki_UKAJI
 
Cloud foundryのコミュニティを紹介するよ
Cloud foundryのコミュニティを紹介するよCloud foundryのコミュニティを紹介するよ
Cloud foundryのコミュニティを紹介するよKazuto Kusama
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねNaoto TAKAHASHI
 
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門Kazuto Kusama
 
Docker, Kubernetes and OpenShift v3
Docker, Kubernetes and OpenShift v3Docker, Kubernetes and OpenShift v3
Docker, Kubernetes and OpenShift v3Emma Haruka Iwao
 

What's hot (20)

CloudFoundryをつかってみよう
CloudFoundryをつかってみようCloudFoundryをつかってみよう
CloudFoundryをつかってみよう
 
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方はじめての Cloud Foundry: .NET アプリケーションのはじめ方
はじめての Cloud Foundry: .NET アプリケーションのはじめ方
 
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうけるcf-containers-broker を使ってローカル環境もサービスの恩恵をうける
cf-containers-broker を使ってローカル環境もサービスの恩恵をうける
 
Reading NATS
Reading NATSReading NATS
Reading NATS
 
Cloud founryインストール手順
Cloud founryインストール手順Cloud founryインストール手順
Cloud founryインストール手順
 
Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
コンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundryコンテナ時代だからこそ要注目! Cloud Foundry
コンテナ時代だからこそ要注目! Cloud Foundry
 
Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較Docker PaaSとしての OpenShift, Deis, Flynn比較
Docker PaaSとしての OpenShift, Deis, Flynn比較
 
Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座Cloud Foundryで学ぶ、PaaSのしくみ講座
Cloud Foundryで学ぶ、PaaSのしくみ講座
 
ProjectAtomic-and-geard
ProjectAtomic-and-geardProjectAtomic-and-geard
ProjectAtomic-and-geard
 
はじめてのCF buildpack
はじめてのCF buildpackはじめてのCF buildpack
はじめてのCF buildpack
 
microPCFを使ってみよう
microPCFを使ってみようmicroPCFを使ってみよう
microPCFを使ってみよう
 
Cloud foundryのコミュニティを紹介するよ
Cloud foundryのコミュニティを紹介するよCloud foundryのコミュニティを紹介するよ
Cloud foundryのコミュニティを紹介するよ
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
 
Ansible+Docker
Ansible+DockerAnsible+Docker
Ansible+Docker
 
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
Cloud FoundryでDockerも.NETも。新しいDiegoの仕組み入門
 
Docker, Kubernetes and OpenShift v3
Docker, Kubernetes and OpenShift v3Docker, Kubernetes and OpenShift v3
Docker, Kubernetes and OpenShift v3
 
ECS-CLI in Action
ECS-CLI in ActionECS-CLI in Action
ECS-CLI in Action
 

Similar to BOSHでお手軽CFデプロイon AWS

Osc fukuoka xAI Meetup
Osc fukuoka xAI MeetupOsc fukuoka xAI Meetup
Osc fukuoka xAI Meetupru pic
 
サーバー設定自動化は経営課題
サーバー設定自動化は経営課題 サーバー設定自動化は経営課題
サーバー設定自動化は経営課題 Maho Takara
 
Samba4でADしよう!
Samba4でADしよう!Samba4でADしよう!
Samba4でADしよう!Yutaka Tsumori
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略Hiroshi SHIBATA
 
AWS CLI and CLOUDIAN HyperStore
AWS CLI and CLOUDIAN HyperStoreAWS CLI and CLOUDIAN HyperStore
AWS CLI and CLOUDIAN HyperStoreCLOUDIAN KK
 
Recap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover ClusteringRecap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover ClusteringKazuki Takai
 
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionThe Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionYoshifumi Kawai
 
20160217 hbstudy73 linux on Azure
20160217 hbstudy73 linux on Azure20160217 hbstudy73 linux on Azure
20160217 hbstudy73 linux on Azure雄哉 吉田
 
JAWS-UG中央線東海支部ハンズオン
JAWS-UG中央線東海支部ハンズオンJAWS-UG中央線東海支部ハンズオン
JAWS-UG中央線東海支部ハンズオン真吾 吉田
 
Windows on aws最新情報
Windows on aws最新情報Windows on aws最新情報
Windows on aws最新情報Genta Watanabe
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1Kotaro Noyama
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1Kotaro Noyama
 
Server side Swift & Photo Booth
Server side Swift & Photo Booth Server side Swift & Photo Booth
Server side Swift & Photo Booth LINE Corporation
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでRyo Nakamaru
 
Media mind data feed analytics infrastructure
Media mind data feed analytics infrastructureMedia mind data feed analytics infrastructure
Media mind data feed analytics infrastructureYoshihiko Miyaichi
 

Similar to BOSHでお手軽CFデプロイon AWS (20)

hbstudy37 doc
hbstudy37 dochbstudy37 doc
hbstudy37 doc
 
Open Source x AI
Open Source x AIOpen Source x AI
Open Source x AI
 
Osc fukuoka xAI Meetup
Osc fukuoka xAI MeetupOsc fukuoka xAI Meetup
Osc fukuoka xAI Meetup
 
【de:code 2020】 Azure インフラ 最新アップデート!!
【de:code 2020】 Azure インフラ 最新アップデート!!【de:code 2020】 Azure インフラ 最新アップデート!!
【de:code 2020】 Azure インフラ 最新アップデート!!
 
【de:code 2020】 Azure インフラ 最新アップデート!!
【de:code 2020】 Azure インフラ 最新アップデート!!【de:code 2020】 Azure インフラ 最新アップデート!!
【de:code 2020】 Azure インフラ 最新アップデート!!
 
サーバー設定自動化は経営課題
サーバー設定自動化は経営課題 サーバー設定自動化は経営課題
サーバー設定自動化は経営課題
 
Samba4でADしよう!
Samba4でADしよう!Samba4でADしよう!
Samba4でADしよう!
 
ACI Kubernetes Integration
ACI Kubernetes IntegrationACI Kubernetes Integration
ACI Kubernetes Integration
 
成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略成長を加速する minne の技術基盤戦略
成長を加速する minne の技術基盤戦略
 
AWS CLI and CLOUDIAN HyperStore
AWS CLI and CLOUDIAN HyperStoreAWS CLI and CLOUDIAN HyperStore
AWS CLI and CLOUDIAN HyperStore
 
Recap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover ClusteringRecap: Windows Server 2019 Failover Clustering
Recap: Windows Server 2019 Failover Clustering
 
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnionThe Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
 
20160217 hbstudy73 linux on Azure
20160217 hbstudy73 linux on Azure20160217 hbstudy73 linux on Azure
20160217 hbstudy73 linux on Azure
 
JAWS-UG中央線東海支部ハンズオン
JAWS-UG中央線東海支部ハンズオンJAWS-UG中央線東海支部ハンズオン
JAWS-UG中央線東海支部ハンズオン
 
Windows on aws最新情報
Windows on aws最新情報Windows on aws最新情報
Windows on aws最新情報
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
Server side Swift & Photo Booth
Server side Swift & Photo Booth Server side Swift & Photo Booth
Server side Swift & Photo Booth
 
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまでDockerを使ったローカルでの開発から本番環境へのデプロイまで
Dockerを使ったローカルでの開発から本番環境へのデプロイまで
 
Media mind data feed analytics infrastructure
Media mind data feed analytics infrastructureMedia mind data feed analytics infrastructure
Media mind data feed analytics infrastructure
 

More from i_yudai

Autoscaling Cloud Foundry with BOSH
Autoscaling Cloud Foundry with BOSHAutoscaling Cloud Foundry with BOSH
Autoscaling Cloud Foundry with BOSHi_yudai
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをi_yudai
 
Nise BOSH in Action
Nise BOSH in ActionNise BOSH in Action
Nise BOSH in Actioni_yudai
 
めんどうくさくないWardenハンズオン
めんどうくさくないWardenハンズオンめんどうくさくないWardenハンズオン
めんどうくさくないWardenハンズオンi_yudai
 
マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版i_yudai
 
すごく分かるwarden
すごく分かるwardenすごく分かるwarden
すごく分かるwardeni_yudai
 

More from i_yudai (6)

Autoscaling Cloud Foundry with BOSH
Autoscaling Cloud Foundry with BOSHAutoscaling Cloud Foundry with BOSH
Autoscaling Cloud Foundry with BOSH
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
 
Nise BOSH in Action
Nise BOSH in ActionNise BOSH in Action
Nise BOSH in Action
 
めんどうくさくないWardenハンズオン
めんどうくさくないWardenハンズオンめんどうくさくないWardenハンズオン
めんどうくさくないWardenハンズオン
 
マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版マスタリング DEA/NG 第2版
マスタリング DEA/NG 第2版
 
すごく分かるwarden
すごく分かるwardenすごく分かるwarden
すごく分かるwarden
 

Recently uploaded

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 

Recently uploaded (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 

BOSHでお手軽CFデプロイon AWS

  • 1. BOSH でお手軽 CF デプロイon AWS Iwasaki Yudai @i_yudai NTT Laboratory Software Innovation Center 2013-08-23
  • 2. AWS環境でのCFインスタンス構築 – MicroBOSH – Cloud Foundry – ビルトインサービス 今日の内容 2
  • 3. BOSHとCloud Foudryのインストール 3 Based on: Dr Nic’s “Build Your Own Heroku With Open Source Cloud Foundry” https://github.com/cloudfoundry-community/bosh-cloudfoundry/blob/master/tutorials/
  • 5. $500/月 程度 (ap-northeast-1 Tokyo) – 生成されるVM • m1.small * 4 (Cloud Foundry) • m1.small * 1 (Inception Server) • m1.medium * 1 (MicroBOSH) – その他 • Elastic IP * 2 • Volumes が数十GB AWS使用料について
  • 6. Inceptionサーバとは – 諸般の事情によりus-east-1以外のリージョンで 必要となる踏み台サーバ – inception-serverを使用 • https://github.com/cloudfoundry-community/inception-server Inception Serverのセットアップ(1) # Gem のインストール $ gem install inception-server
  • 7. Inception Serverのセットアップ(2) # 新しいInceptionサーバーを起動 $ inception-server deploy 1. AWS 2. OpenStack Choose your infrastructure: 1 Using provider AWS Access key: *********************** Secret key: ******************************** 1. *US East (Northern Virginia) Region (us-east-1) 2. US West (Oregon) Region (us-west-2) 3. US West (Northern California) Region (us-west-1) 4. EU (Ireland) Region (eu-west-1) 5. Asia Pacific (Singapore) Region (ap-southeast-1) 6. Asia Pacific (Sydney) Region (ap-southeast-2) 7. Asia Pacific (Tokyo) Region (ap-northeast-1) 8. South America (Sao Paulo) Region (sa-east-1) Choose AWS region: 7 Confirming: Using AWS/ap-northeast-1 .... 注)使用しない Elastic IPが 払い出されているので削除する
  • 8. Inception Serverのセットアップ(3) # InceptionサーバーにSSHで接続 $ inception-server ssh # SSH鍵を生成しておく $ ssh-keygen -N '' -f ~/.ssh/id_rsa # 少しだけ細かい環境の修正(Gemをインストールできるようにす る) $ sudo usermod -a -G rvm ubuntu $ sudo chmod g+w /usr/local/rvm –R # グループ変更を反映するために再接続する $ exit $ inception-server ssh 以降の操作はすべてInceptionサーバ上で行います
  • 9. bosh-bootstrap を使用する – https://github.com/cloudfoundry-community/bosh-cloudfoundry – MicroBOSH を1コマンドでデプロイできる – Inceptionサーバ上で使用する場合はアクセ スキーの再入力は不要 MicroBOSHのセットアップ(1) # Gem のインストール $ gem install bosh-bootstrap
  • 10. MicroBOSHのセットアップ(2) $ bosh-bootstrap deploy Auto-detected infrastructure API credentials at ~/.fog (override with $FOG) 1. AWS (default) 2. Alternate credentials Choose an auto-detected infrastructure: 1 Using provider AWS 1. *US East (Northern Virginia) Region (us-east-1) 2. US West (Oregon) Region (us-west-2) 3. US West (Northern California) Region (us-west-1) 4. EU (Ireland) Region (eu-west-1) 5. Asia Pacific (Singapore) Region (ap-southeast-1) 6. Asia Pacific (Sydney) Region (ap-southeast-2) 7. Asia Pacific (Tokyo) Region (ap-northeast-1) 8. South America (Sao Paulo) Region (sa-east-1) Choose AWS region: 7 Confirming: Using AWS/ap-northeast-1 ...
  • 11. MicroBOSHのセットアップ(3) # bosh-bootstrap deploy の実行結果の続き # 最後から3行目に表示される IP アドレスが MicroBOSH のIPアドレスとなる ... WARNING! Your target has been changed to `https://203.0.113.1:25555'! Deployment set to '/home/ubuntu/.microbosh/deployments/firstbosh/micro_bosh.yml‘ Deployed `firstbosh/micro_bosh.yml' to `https://firstbosh:25555', took 00:19:34 to complete # MicroBOSH をターゲットする $ bosh target https://203.0.113.1:25555 Target set to `firstbosh‘ Your username: admin Enter password: admin Logged in as `admin'
  • 12.  bosh-cloudfoundry を使用する – https://github.com/cloudfoundry-community/bosh-cloudfoundry – BOSH CLIのプラグイン – Deployment Manifestを自動生成してくれる  事前準備 – Elastic IPを1つ払いだしておく • 例:203.0.113.2 – Security Groupを作っておく • 名前: cf • 開放ポート: – TCP (Source 0.0.0.0/0): 22, 80, 443 – TCP (Source 同一SG): 1-65535 –UDP(Source 同一SG): 1-65535 Cloud Foundryのセットアップ(1)
  • 13. Cloud Foundryのセットアップ(2) # 最新の BOSH CLI をインストールする $ gem install bosh_cli -v "~> 1.5.0.pre" ¥ --source https://s3.amazonaws.com/bosh-jenkins-gems/ # bosh-cloudfoundryのインストール $ gem install bosh-cloudfoundry # デプロイの準備(cr-releaseのダウンロードなど) $ bosh prepare cf
  • 14. Cloud Foundryのセットアップ(3) $ bosh create cf --ip 203.0.113.2 --security-group cf Fetching bosh information OK CPI: aws DNS mapping: 203.0.113.2.xip.io --> ["203.0.113.2"] Deployment name: cf-1377155859 Deployment size: medium Persistent disk: 4096 Security group: cf Validating deployment size OK Resolve DNS OK Resolve DNS 'api.203.0.113.2.xip.io' to IP '203.0.113.2' OK `api.203.0.113.2.xip.io' maps to 203.0.113.2 Resolve DNS OK Resolve DNS 'demoapp.203.0.113.2.xip.io' to IP '203.0.113.2' OK `demoapp.203.0.113.2.xip.io' maps to 203.0.113.2 Security group cf exists with ports 22, 80, 443, 4222 (type 'yes' to continue): yes Creating Cloud Foundry (type 'yes' to continue): yes Checking/creating /home/ubuntu/deployments/cf for deployment files OK Creating deployment file /home/ubuntu/deployments/cf/cf-1377155859.yml OK Deployment set to `/home/ubuntu/deployments/cf/cf-1377155859.yml' Getting deployment properties from director... Unable to get properties list from director, trying without it... Compiling deployment manifest... Cannot get current deployment information from director, possibly a new deployment Please review all changes carefully Deploying `cf-1377155859.yml' to `firstbosh' (type 'yes' to continue): yes ...
  • 15. Cloud Foundryのセットアップ(4) # デプロイされた VM の確認 $ bosh vms ... +-----------+---------+---------------+-----------------------------+ | Job/index | State | Resource Pool | IPs | +-----------+---------+---------------+-----------------------------+ | api/0 | running | small | 10.122.54.35, 203.0.113.2 | | core/0 | running | small | 10.121.11.212 | | data/0 | running | small | 10.121.14.213 | | dea/0 | running | small | 10.122.29.169 | +-----------+---------+---------------+-----------------------------+ VMs total: 4 # CFの設定値を確認 # common_password が admin ユーザのパスワードになる $ bosh show cf attributes Fetching bosh information OK Immutable attributes: common_password: e80011989a71 deployment_size: medium name: cf-1377155859 Mutable (changable) attributes: ip_addresses: ["203.0.113.2"] persistent_disk: 4096 security_group: cf dns: 203.0.113.2.xip.io
  • 16. Cloud Foundryのセットアップ(5) # cf コマンドのインストール # 今回インストールされるCFは 5.x に対応していないので 4.2.8 $ gem install cf –v 4.2.8 # デフォルトのターゲットは xip.io で設定されている # 例)api.203.0.113.2.xip.io $ cf target api.203.0.113.2.xip.io # admin ユーザでログイン # パスワードは前頁参照 $ cf login admin target: http://api.203.0.113.2.xip.io Password> e80011989a71 Authenticating... OK There are no spaces. You may want to create one with create-space.... OK
  • 17. bosh create cf のオプション – --size • VMの台数(medium, large, xlarge) • デフォルトはmedium – --domain • ドメイン名 • デフォルトは <IP Address>.xip.io 個別の設定 – deploymentsディレクトリ内のマニフェ ストファイルを手動で編集して bosh deploy Cloud Foundryのカスタマイズ
  • 19. ビルトインサービスは別途インストールす る必要がある – https://github.com/cloudfoundry/cf-services-contrib-release – コミュニティ版 • cf-services-releaseはPivotalがメンテナンスしている がMySQLしかない m1.small * 8 が追加で必要 ビルトインサービスを追加する 19
  • 20. ビルトインサービスのデプロイ # ソースコードを Clone $ git clone https://github.com/cloudfoundry/cf-services-contrib- release.git # 最新版で構成するために、dev リリースを生成する $ cd cf-services-contrib-release $ git submodule update --init –recursive $ bosh create release # BOSH にリリースをアップロード $ bosh upload release dev_releases/cf-services-contrib-1.1-dev.yml # デプロイメントマニフェストを記述 # 変更点は gist 参照のこと:https://gist.github.com/yudai/6308528 $ vi examples/dns-all.yml # デプロイの実行 $ bosh deployment example/dns-all.yml $ bosh deploy
  • 21. ビルトインサービスの使用 # AUTH TOKEN の登録 # Tokenの値はデプロイメントマニフェストに記述されている # postgres 以外のサービスについても同様に実行する $ cf create-service-auth-token Label> postgresql Token> POSTGRESQL_SERVICE_TOKEN Creating service auth token... OK # 使用可能なサービスの一覧を表示して確認 $ cf services --marketplace Getting services... OK service version provider plans description blob 0.51 core default Blob store elasticsearch 0.20 core free Elasticsearch search service memcached 1.4 core default Memcached in-memory cache mongodb 2.2 core default MongoDB NoSQL database postgresql 9.2 core default PostgreSQL database rabbitmq 3.0 core default RabbitMQ message queue redis 2.6 core default Redis key-value store