SlideShare a Scribd company logo
1 of 99
Masahito Zembutsu @zembutsu
Technology Evangelist; Creationline , Inc.
Shinjuku Tokyo, Apr 10 2015
#hbstudy 66th Meetup
今日から始めるDigitalOcean
All About DigitalOcean – Practical Introduction
今日から始める DigitalOcean
2 / 99
今日の内容 “できる☆DigitalOcean”
• 入門:DigitalOceanとは?
これはクラウドですか? 登場背景、機能概要、特長、料金体系、契約方法、支払い、SLA
• 実践:DigitalOceanの機能・操作方法
使う前に知っておきたかった機能 - Dropletやテンプレート、バックアップ、プライベート接続、DNS機能
• 応用:クラウドの価値を高めるために
プロビジョニング、API、CoreOSとDocker、HashiCorp ( Vagrant・Packer・Terraform )
Topics
今日から始める DigitalOcean
3 / 99
• @zembutsu 前佛 雅人
➡ Technology Evangelist ≒ Enthusiast 的活動
➡ “趣味”で OSS やクラウド系サービスの検証・情報発信
• SlideShare http://www.slideshare.net/zembutsu
• Tech blog http://pocketstudio.jp/log3/
– DigitalOcean の blog はじめようと企んでいます。
– ネット上およびコミュニティでの活動は、特に明示しない限り私の個人活動であり、
所属団体や対象となる商業的組織・団体と一切の各種利害関係はありません。
今回の DigitalOcean に関しても同様です。
➡ 【緩募】彼女 “データセンタに出会いを求めるのは間違っているだろうか”
自己紹介Why am I here?
Zembutsu Masahito
技 術 伝 道 者 熱 狂 者
何がダメなのか探してください。
このアカウントは全否定したいと思っているものです。
このような結果になったのは、全て自分の責任です。
何かの間違いでこのアカウントやスライドを見かけた方は
「@zembutsu」の何がダメなのかを探してみてください。
そこから気づける人がひとりでもいらっしゃれば、この
スライドを出した意味があると思っています。
Hestia ※1
※1 Public Domain
DigitalOcean
どんな印象をお持ちですか?
質問「 DigitalOcean 」をご存知ですか?
1. とても使ってる
バッチリ使ってます
2. 使ってる
検証したことあり
1 割
3. 使っていない
聞いたことはある
9 割
4. しらん
食えるのか?
5. は毒電波
1. とても使ってる
バッチリ使ってます
会場では、開発用途で使用中
もしくは名前ご存知の皆さん
入門
introduction
実践
practice
応用
advanced
登場背景、機能概要、特長
料金体系、契約方法
支払い方法、SLA
Dropletやテンプレート管理
バックアップ、プライベート接続
DNS機能
プロビジョニング、API
CoreOSとDocker
Vagrant・Packer・Terraform
できる☆DigitalOcean
前提知識、基本的な使い方、
そして、便利な活用方法紹介
入門
introduction
実践
practice
応用
advanced
これはクラウドですか?
できる☆DigitalOcean
入門
introduction
• 何故に DigitalOcean?
• DigitalOcean #とは
• データセンター
• 特長と機能
• 価格体系
• 契約方法、契約解除
DigitalOcean
“ We’re simplifying the cloud by providing
an infrastructure experience that developers love.”
( twitter profile @digitalocean )
私達は開発者が好むインフラのユーザ経験を提供することで
クラウドを簡素化する
Who is DigitalOcean for?
“ DigitalOcean is a platform created for developers
who need to launch and scale their applications quickly.
Additionally, DigitalOcean provides the perfect environment
for developers to play around on the command line
and learn more about customizing their own servers”
( https:/ / www.digitalocean.com/ help/ )
DigitalOceanは、アプリケーションを迅速に起動してスケールする
必要がある開発者向けに作られたプラットフォームです。もう1つ。
DigitalOceanが提供するのは、開発者がコマンドライン上から操作でき、
自分自身のサーバーをカスタマイズする方法を学ぶための完全なる環境です。
グラフ出典:”Digital Ocean – Grouth | Netcraft" http://trends.netcraft.com/www.digitalocean.com
ここ数年で DigitalOcean の
利用者は急に拡がっています
3
5
7
9
11
13
150
20,000
40,000
60,000
80,000
100,000
120,000
140,000
160,000
2014年1月
2014年2月
2014年3月
2014年4月
2014年5月
2014年6月
2014年7月
2014年8月
2014年9月
2014年10月
2014年11月
2014年12月
2015年1月
2015年2月
2015年3月
2014年以降のDigitalOcean稼働台数(web facing)
(台数) (順位)
出典:”Digital Ocean – Grouth | Netcraft" http://trends.netcraft.com/www.digitalocean.com
2013年
– 4月サンフランシスコ・データセンタを開設
– 9月 50万クラウドサーバー(ドロップレット)の起動達成
– 12月オランダ・アムステルダムにデータセンタ開設
2014年
– 1月 100万ドロップレットの起動達成
– 2月 シンガポール・データセンタ開設
– 7月 ロンドン・データセンタ開設
– 9月 CoreOS の提供開始、Amsterdam region で IPv6 開始
– 10月 稼働台数順位が世界3位に
2015年
– 1月 FreeBSD の提供開始
– …?
今日から始める DigitalOcean
13 / 99
• 2011年設立、クラウドのインフラ事業者
Ben氏、Moisey Uretsky氏によって創業 -> https://www.digitalocean.com/
• 開発者を大切にするビジョン
複雑なインフラの管理を簡単にし、利用者に良いユーザ経験をもたらすプロダクトを作る
• 40万利用者、100万以上の仮想サーバ稼働
シンプルで直感的なインターフェースと機能、Solid State Drive (SSD)のRAID基盤、豊富な API
世界5箇所にデータセンタを開設(アメリカ東西・シンガポール・イギリス・オランダ)
DigitalOcean 概要
シンガポール
Equinix
ニューヨーク
Equinix, Telx
サンフランシスコ
Telx
ロンドン
Equinix
アムステルダム
TelecityGroup
- NYC1 facility is SSAE16 SOC-1 Type II certified.
- NYC2 facility is SSAE16 SOC-2 Type II certified.
- NYC3 facility is SSAE16 SOC-2 and SOC-3 compliant.
- AMS1 and AMS2 facilities are ISO27001:2005 and ISO9001 certified.
- AMS3 facility is ISO9001, ISO27001, and SSAE16 Type II certified
- SFO1 facility is SSAE16 SOC-1 Type II certified.
- SGP1 facility is ISO27001:2005 certified.
- LON1 facility is ISO9001:2008, ISO27001, and SSAE16 / ISAE 3402 certified.
今日から始める DigitalOcean
15 / 99
• 55秒以内に仮想サーバ起動
使いたいとき、すぐに起動して、使い終わったら廃棄。かつ課金は時間単位 $0.007/時間~(月上限 $5 ~)
• 全ての環境が SSD ( Solid State Drive )
低いディスクのレイテンシ(応答速度の遅延)、かつ、CPUはディスクI/Oに使用率を奪われにくい
• シンプルなコントロールパネルと API
直感的に使えるウェブ・インターフェース、豊富な API はブラウザから行える全ての機能をプログラム的に実行
DigitalOcean 特長
今日から始める DigitalOcean
16 / 99
• 仮想サーバ(ドロップレット)管理
仮想サーバの起動・停止・強制再起動・破棄・スペック変更、ブラウザからのコンソール接続、プライベート接続
IPv6 のサポート、Kernel 変更機能、レスキューモード、ホスト名変更、リソースグラフ表示、プロビジョニング
• イメージ管理
スナップショット、それを元にした起動やデータセンタ配布、定期バックアップやバックアップから差し戻し
多くの公式イメージを提供( Ubuntu, CentOS, CoreOS, FreeBSD ) + アプリケーション設定済みイメージ
• DNS管理
ネームサーバのホスティング、GUIを通したゾーン設定、仮想サーバに対する自動逆引き設定
DigitalOcean の機能
今日から始める DigitalOcean
17 / 99
• KVM 仮想化技術を使用
すべての環境は KVM ( kernel-based Virtual Machine ) 上の仮想マシンとして動作
ハイパーバイザの分散は出来ないが、Droplet作成時にAPI 「/v2/reports/droplet_neighbors」で、
同じハイパーバイザ上に指定する事は可。ファイルシステムは LVM か QCOW。2014年3月以降は RAW
• CPUは物理6コア
Intel 製の CPU 2.0 GHz ~ 3.0 GHz を使用( cat /proc/cpuinfo で確認可能)
• 物理ノード間は 1 Gbpsで接続
コアルータとは Gigabit Ethernet で接続、コアルータは上位ネットワークに 10 Gigabit Ethernet
バックエンド・設備
今日から始める DigitalOcean
18 / 99
• ファイアウォールやロードバランサ機能
iptablesやfirewalld、nginxやLVSを自分で設定する必要があります
• Windows Server
Linux ・FreeBSD のみ提供予定です
• マネージドサービス
サポートが必要な場合は、自分でチケットをサポートにオープンするか、コミュニティへ
逆に提供しないもの
今日から始める DigitalOcean
19 / 99
• 仮想サーバ ( Droplet ) スペック毎に時間課金
最小 $0.007/時間(CPU 1コア、512MBメモリ、20GB SSD、1TB ネットワーク転送量)
サーバが稼働して、Terminate 処理を開始するまでの時間
※ 停止中 ( Power Off 時 ) も課金継続、パブリック IP やリソースを専有するため -> スナップショット化で回避
• 時間課金の月間上限は 28 日間 ( 672 時間 )
最小構成の場合は、超過分どれだけ使っても $5 の課金
• 価格表 ( MONTHLY / HOURLY )
➡ https://www.digitalocean.com/pricing/
価格体系
時間・月額
切り替え
上から価格
メモリ
CPUコア数
SSD容量
無料転送量
大容量プラン
今日から始める DigitalOcean
21 / 99
• 転送量課金
標準の無償枠(Droplet毎に異なる) を超過すると $0.02/1GB
共有プライベート・ネットワーク内の通信量は無料
• Droplet のバックアップ設定
Droplet申込時のみ追加可能で、対象 Droplet の 20% の金額
• 無償のオプション ( 現時点で )
スナップショット、共有プライベート・ネットワーク、IPv6 アドレス、DNSサービス等、明示
オプション料金
今日から始める DigitalOcean
22 / 99
• クレジットカードの後払いか PayPal の前払い
対応カード: Visa, MasterCard, American Express, Discover
• 請求タイミング
毎月1日の時点で、先月利用分の請求が確定。カードは任意支払いも可能 ( 一度でも決済した verified user 時 )
24時間で支払えないと72時間アカウントロック・全停止
• 課金超過時のアラートあり
「アカウント」「 Billing 」(請求)  「 Alerts 」で
「 Billing Alerts 」に通知時の金額とチェックを指定
支払い方法
今日から始める DigitalOcean
23 / 99
• Droplet 上限変更をしたい場合は?
変更申請は、コントロールパネル「アカウント」「 Your Settings 」の「 Droplet Limit: xx 」をクリック
https://cloud.digitalocean.com/settings/profile
• 複数アカウントの紐付け方法
共有したい場合は、アカウントを作るのではなく、サポートにチケットを発行して依頼
• ログインに、二段階認証を設定可能
その他、契約に関して
今日から始める DigitalOcean
24 / 99
• SLA は 99.99% の稼動時間 ( uptime )
1ヶ月約 4 分半に相当、影響範囲が SLA 超過時は当該アカウントに払い戻し
• 稼働状態
ウェブ・RSS・Twitter から確認可能
➡ http://do.co/status
➡ https://twitter.com/dostatus
サービス状況
今日から始める DigitalOcean
25 / 99
• チケット制 or コミュにティに質問
システムの異常に関してはチケットでサポートへ、サーバ内の設定等はコミュにティ情報が参考に
➡ https://cloud.digitalocean.com/support
• オンライン・ドキュメント(英語デース)
➡ Tutorials https://www.digitalocean.com/community/tutorials
➡ Questions https://www.digitalocean.com/community/questions
サポート体制
今日から始める DigitalOcean
26 / 99
• ここまでで気になる所はありますか?
Questions?
会場での質問
「トラフィック課金は IN / OUT どちら側?」
 Outbound側のみ課金対象でした
入門
introduction
実践
practice
応用
advanced
登場背景、機能概要、特長
料金体系、契約方法
支払い方法、SLA
Dropletやテンプレート管理
バックアップ、プライベート接続
DNS機能
プロビジョニング、API
CoreOSとDocker
Vagrant・Packer・Terraform
できる☆DigitalOcean
入門
introduction
実践
practice
応用
advanced
使い始める前に知りたかった
できる☆DigitalOcean
実践
practice
• アカウント作成手順
• droplet 起動・停止
• リソース変更方法
• スナップショットと バックアップ
• SSH 鍵管理
• プライベート接続と注意点
• DNS 設定、ホスト名逆引き
新規契約
新規契約
今日から始める DigitalOcean
32 / 99
• オンライン・サインアップ
すべてウェブ上で完結(アカウント作成申請 確認メールに返信 契約者情報と決済情報登録  利用開始)
➡ 次ページ以降で登録方法詳細
• クレジットカード or PayPal 必須
申請時は認証のため $1.23 のクレジット発生しますが、30日以内に返金処理
契約方法・はじめての Droplet 作成
https://www.digitalocean.com/
• DigitalOceanのサイトにアクセス
• ログイン用のID(メールアドレス)と
アカウント用パスワードを入力後、
「CREATE ACCOUNT」
カード情報の入力 or PayPal支払い 決済認証 or PayPal 確認後
「Create Droplet」で作成
ホスト名 (FQDN)
スペックの選択
リージョン選択
オプション選択
マシンイメージの選択
SSH 公開鍵の登録
( オプション )
ドロップレット作成開始
進行状況(残り時間)が画面に表示
自動的に切り替わり、IPアドレスが表示
SSH 鍵の非選択時は、root パスワードはメール送付
Dropletとイメージ操作
今日から始める DigitalOcean
38 / 99
Droplet 起動・停止
• コントロールパネル上で操作
新規起動は「 Create Droplet 」をクリック
• 停止方法(snapshot作成等)
サーバ内で「 /sbin/poweroff 」「 shutdown –h now」
コントロールパネル上でも強制的な「 PowerOff 」(電源断)と
「 Power Cylcle 」(強制リセット)が可能だが、データ消失リスク
• 停止中も課金継続
使用しない場合は破棄 ( destroy ) またはテンプレート化する
今日から始める DigitalOcean
39 / 99
Droplet 破棄・再構築
• 破棄 ( destroy )
対象ドロップレット上で「 Destroy 」 「 Destroy 」
完全に利用しない場合
なお通常はデータ領域上書きの「 Scrub Data 」を選択
処理開始時点で課金停止
• 再構築 ( rebuild )
同じスペック・同じ IP アドレスのまま
中身だけをオリジナルか、特定のイメージに差し替え
今日から始める DigitalOcean
40 / 99
Droplet 起動時の選択肢
• Distribution (OS) の選択肢
➡ Ubuntu, FreeBSD, Fedora, Debian
CoreOS, CentOS
• アプリケーションセットアップ済みイメージ
➡ RoR, WordPress, Drone, Docker
Ghost, MongoDB, GitLab, Node 等
今日から始める DigitalOcean
41 / 99
コンソールへのアクセス
• 接続は「 Access 」「 Console Access 」
VNC経由でブラウザからアクセス可能
画面が暗いときは、何かキーボードを入力する
要パスワード設定
今日から始める DigitalOcean
42 / 99
スペック変更方法
• 事前に “Power Off” にする
停止状態にしないと、メニューで選択できない
• Droplet の「 Resize 」
➡ Permanent (永続的)
• SSD 容量変更は時間かかる
(物理サーバ変更のため)
➡ Flexible (フレキシブル)
• CPU とメモリのみであれば、再起動で即時反映
今日から始める DigitalOcean
43 / 99
Snapshot と Backup
• Snapshot:Droplet 停止時、何時でも作成できる
現時点ではスナップショット機能によるイメージ作成は無償
スナップショットを別のリージョンで使いたい場合は、イメージの事前転送が必要
• Backup:サーバ申込時にオプション設定が必須
毎週1回(現時点では)、システムが決めた時間に自動的にバックアップを作成
作成したバックアップ用イメージから復旧可能
有償オプション(対象ドロップレットの月間利用料金の 20% )
稼働中のサーバにはバックアップ設定を後から追加することはできない
今日から始める DigitalOcean
44 / 99
Snapshot 作成方法
• Droplet を停止
Power On の状態では操作できません
• 「 Snapshots 」「 Take Snapshot 」を選択
任意名称を入力後、「 Take Snapshot 」(スナップショット作成)
今日から始める DigitalOcean
45 / 99
“Settings”で設定確認・変更
• “Networking” … IP アドレス確認
パブリックとプライベート(申込時に選択した場合)のネットワーク情報、IPv6 追加
• “kernel” … Linux kernel 変更機能
復旧したい場合は、“Recovery” を選択
• “Rename” … ホスト名称変更
コントロールパネル上で表示される名前に加え、IP アドレスの逆引きホスト名も兼ねる
今日から始める DigitalOcean
46 / 99
”Graphs”でリソース情報参照
• Droplet の利用状況表示
• ネットワーク帯域
• ディスク I/O ( read/write )
• CPU 使用率 ( user/sys )
今日から始める DigitalOcean
47 / 99
イメージの管理 “Images” メニュー
• スナップショット作成
各 Droplet のメニュー以外からも変更できる
• 名称変更・削除も可能
• リージョン毎に保持
別のリージョンで使う場合は、転送が必要
5~10分程度時間かかる
SSH 鍵管理
今日から始める DigitalOcean
49 / 99
SSH鍵管理
• 公開鍵を DigitalOcean に登録可能
複数の鍵の登録や削除をコントロールパネル上から操作
• Droplet 作成時、root パスワードを設定しない
作成時に SSH 鍵を指定すると、サーバ内で root パスワードは設定されず、メールも通知されない
• Droplet の root に自動設定
/root/.ssh/authorized_keys に追加されます
今日から始める DigitalOcean
50 / 99
SSH鍵追加方法
• 設定は「 Your Settings」「 Security 」
「 Add SSH Key 」 表示名と、公開鍵を入力後、「 Create SSH Key 」
プライベート・ネットワーク
自分の
droplet
A
自分の
droplet
B
他人の
droplet
自分の
droplet
C
他人の
droplet
パブリック・ネットワーク パブリック・ネットワーク
共有プライベート・ネットワーク 共有プライベート・ネットワーク
eth0 eth0 eth0 eth0 eth0
eth1 eth1 eth1 eth1 eth1
DigitalOcanリージョン BDigitalOcean リージョン A
internet
各リージョン毎に独立した共有プライベート・ネットワークがあります
プライベート内のトラフィック課金はありませんが、セキュリティに要注意
今日から始める DigitalOcean
53 / 99
共用プライベート・ネットワーキング
• プライベート間で高速転送、課金なし
eth1 が追加される。ただし接続できるのは同一リージョン内でのみ。データセンタを跨ぐことは不可
• セキュリティに注意
リージョン内部の共有ローカル・ネットワーク内なので、iptables 等、セキュリティに配慮
• 使う場合 Droplet 作成時に ”Private Networking”
今日から始める DigitalOcean
54 / 99
共用プライベート・ネットワーキング
• プライベート間で高速転送、課金なし
eth1 が追加される。ただし接続できるのは同一リージョン内でのみ。データセンタを跨ぐことは不可
• セキュリティに注意
リージョン内部の共有ローカル・ネットワーク内なので、iptables 等、セキュリティに配慮
• 使う場合 Droplet 作成時に ”Private Networking”
[root@dev3 ~]# /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 04:01:49:0B:30:01
inet addr:128.199.191.153 Bcast:128.199.191.255 Mask:255.255.192.0
inet6 addr: fe80::601:49ff:fe0b:3001/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:41626 errors:0 dropped:0 overruns:0 frame:0
TX packets:46035 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4560985 (4.3 MiB) TX bytes:6388196 (6.0 MiB)
eth1 Link encap:Ethernet HWaddr 04:01:49:0B:30:02
inet addr:10.130.138.237 Bcast:10.130.255.255 Mask:255.255.0.0
inet6 addr: fe80::601:49ff:fe0b:3002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:78 errors:0 dropped:0 overruns:0 frame:0
TX packets:130 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:13712 (13.3 KiB) TX bytes:14718 (14.3 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
DNS管理
今日から始める DigitalOcean
56 / 99
DigitalOcean の DNS 機能
• ドメイン名のネームサーバを DigitalOcean に設定
➡ ns1.digitalocean.com
➡ ns2.digitalocean.com
➡ ns2.digitalocean.com
• ゾーン管理機能 ( 無料 )
ブラウザ上から各種のレコードを設定できる
• Droplet の逆引きホスト名を自動設定 ( 無料)
作成した「 Droplet 」の名前が FQDN ならば自動的に設定
今日から始める DigitalOcean
57 / 99
例:お名前.com のドメインを使う
• ネームサーバーの変更
対象ドメイン名の選択
• “他のネームサーバを利用”
➡ ns1.digitalocean.com
➡ ns2.digitalocean.com
➡ ns3.digitalocean.com
今日から始める DigitalOcean
58 / 99
ドメインを DigitalOcean に登録
• メニューの“DNS”
➡ 「ドメイン名」入力
➡ Aレコード追加ホスト選択
➡ 「Create Domain」
登録済みドメイン編集
レコード追加
Addressレコード
IPアドレス
ゾーン
ファイル内容
レコード追加
Addressレコード
IPアドレス
ゾーン
ファイル内容
各種レコード
に対応
今日から始める DigitalOcean
61 / 99
• ここまでで気になる所はありますか?
Questions?
会場での質問
「新しいインスタンスは頻繁に増えますか?」
 あんまり極端に変わらない印象です
「停止中でも課金されますか?」
 課金されます。ただしスナップショットは
無料なので、それで回避できます
「バックアップのタイミングは決められますか?」
 いいえ、自動設定です
入門
introduction
実践
practice
応用
advanced
登場背景、機能概要、特長
料金体系、契約方法
支払い方法、SLA
Dropletやテンプレート管理
バックアップ、プライベート接続
DNS機能
プロビジョニング、API
CoreOSとDocker
Vagrant・Packer・Terraform
できる☆DigitalOcean
入門
introduction
実践
practice
応用
advanced
クラウドの価値を高めるために
できる☆DigitalOcean
応用
advanced
• User Data でプロビジョニング
• API を使う
• CoreOS で Docker
• Vagrant or DockerMachine
• Packer でテンプレート管理
• Terraform で自動構成管理
プロビジョニング
プロビジョニング ( provisioning )
サーバ起動後の初期設定やアプリケーションのセットアップを自動的に行う
DigitalOcean
公式イメージ
新 Droplet
実際に使う
Droplet 環境
SSH ログイン
初期設定・環境構築
起動
GUI 操作
プロビジョニング ( provisioning )
サーバ起動後の初期設定やアプリケーションのセットアップを自動的に行う
DigitalOcean
公式イメージ
新 Droplet
実際に使う
Droplet 環境
初期設定・環境構築の自動実行
起動
GUI 操作
User Data
• 正確
• 速い
• 繰り返し使える
今日から始める DigitalOcean
68 / 99
User Data の利用方法
• Droplet 作成時に指定
metadata としてもサーバ内から参照可能になる
http://169.254.169.254/metadata
• 利用可能な形式
➡ シェルスクリプト、等
➡ Cloud-Init
• https://cloudinit.readthedocs.org/en/latest/
ここにコードを記入
今日から始める DigitalOcean
69 / 99
➡ https://www.digitalocean.com/community/tutorials/an-introduction-to-droplet-metadata
例 1:bash
#!/bin/bash
# timezone
mv /etc/localtime /etc/localtime.orig ; ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# setup Apache
yum -y install wget unzip httpd
export HOSTNAME=$(curl -s http://169.254.169.254/metadata/v1/hostname)
export PUBLIC_IPV4=$(curl -s http://169.254.169.254/metadata/v1/interfaces/public/0/ipv4/address)
echo Droplet: $HOSTNAME, IP Address: $PUBLIC_IPV4 > /var/www/html/index.html
systemctl start httpd
# setup serf
cd /tmp
wget -O 0.6.4_linux_amd64.zip https://dl.bintray.com/mitchellh/serf/0.6.4_linux_amd64.zip
unzip 0.6.4_linux_amd64.zip
cp ./serf /usr/bin/serf
今日から始める DigitalOcean
70 / 99
例 2:Cloud-Init ( YAML 形式 )
#cloud-config
users:
- name: zem
groups: wheel
shell: /bin/bash
sudo: ['ALL=(ALL) NOPASSWD:ALL']
ssh-authorized-keys:
- ssh-rsa AAAAB3WzaS1yc2EAAAxeess==
• debug 用のログは /var/log/cloud-init.log , cloud-init-output.log
➡ https://www.digitalocean.com/community/tutorials/how-to-use-cloud-config-for-your-initial-server-setup
➡ https://www.digitalocean.com/community/tutorials/an-introduction-to-cloud-config-scripting
CoreOS で Docker
今日から始める DigitalOcean
72 / 99
CoreOS のイメージを選択
今日から始める DigitalOcean
73 / 99
• ログインユーザは「 core 」なので注意
CoreOS にログイン
$ ssh -l core 128.199.237.114
The authenticity of host '128.199.237.114 (128.199.237.114)' can't be established.
RSA key fingerprint is 02:59:20:26:64:f9:e2:96:13:f6:22:a7:05:ee:2b:6b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '128.199.237.114' (RSA) to the list of known hosts.
CoreOS stable (607.0.0)
core@coreos ~ $
これだけで、直ぐに docker
fleet, etcd が使えます
今日から始める DigitalOcean
74 / 99
• ログインユーザは「 core 」なので注意
CoreOS にログイン
$ ssh -l core 128.199.237.114
The authenticity of host '128.199.237.114 (128.199.237.114)' can't be established.
RSA key fingerprint is 02:59:20:26:64:f9:e2:96:13:f6:22:a7:05:ee:2b:6b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '128.199.237.114' (RSA) to the list of known hosts.
CoreOS stable (607.0.0)
core@coreos ~ $
core@coreos ~ $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
core@coreos ~ $ docker run -it centos /bin/bash
Unable to find image 'centos:latest' locally
511136ea3c5a: Pull complete
b6718650e87e: Pull complete
493bab5fff45: Pull complete
9dbcac75201e: Pull complete
centos:latest: The image you are pulling has been verified. Important: image verification is a tech preview
feature and should not be relied on to provide security.
Status: Downloaded newer image for centos:latest
[root@6c00e23717a7 /]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)
[root@6c00e23717a7 /]# core@coreos ~ $
core@coreos ~ $ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
6c00e23717a7 centos:latest "/bin/bash" 20 seconds ago Up 20 seconds
stupefied_mclean
これだけで、直ぐに docker
fleet, etcd が使えます
応用:kubernetes クラスタを構築する方法
How To Install and Configure Kubernetes on top of a CoreOS Cluster | DigitalOcean
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-kubernetes-on-top-of-a-coreos-cluster
DigitalOcean API v2
今日から始める DigitalOcean
76 / 99
• メニューの「 API」
➡ 「 Generate New Token 」
➡ 任意のtoken名を入れる
➡ 「 Generate Token 」
一度しか画面に表示されないので取り扱い注意
API Token (v2) 取得方法
まず Token 作成が必要です
今日から始める DigitalOcean
77 / 99
• GUI 上の全ての操作は API 経由で操作可能
HTTP 経由でリクエストを送信、token で認証し、結果を JSON 形式で受け取る
DigitalOcean API
https://developers.digitalocean.com/documentation/v2/
DigitalOcean API
$ export TOKEN=48f78352fd8c*****************beee5bcb97b
$ curl -s -X POST "https://api.digitalocean.com/v2/droplets" ¥
-d'{"name":"apibased.zem.jp","region":"sgp1","size":"512mb","image":"centos-6-5-x64",
"ssh_keys":["737302“],"private_networking":true}' ¥
-H "Authorization: Bearer $TOKEN" ¥
-H "Content-Type: application/json" | jq -M "."
今日から始める DigitalOcean
78 / 99
• docker-machine で docker 動作環境起動
Docker Machine
$ export TOKEN=<token>
$ docker-machine create ¥
--driver digitalocean ¥
--digitalocean-region=sgp1 ¥
--digitalocean-access-token=$TOKEN ¥
cloud-dev
HashiCorpのツール群で
インフラ管理の自動化
今日から始める DigitalOcean
80 / 99
• 事前準備
➡ Vagrant のセットアップ https://www.vagrantup.com/
➡ プラグインのセットアップ
Vagrant で開発環境の準備
# vagrant plugin install vagrant-digitalocean
Installing the 'vagrant-digitalocean' plugin. This can take a few minutes...
Installed the plugin 'vagrant-digitalocean (0.7.3)'!
$ vagrant plugin list
vagrant-digitalocean (0.7.3)
vagrant-share (1.1.3, system)
今日から始める DigitalOcean
81 / 99
• Vagrantfile 作成
Vagrant で DigitalOcean
Vagrant.configure('2') do |config|
config.vm.provider :digital_ocean do |provider, override|
override.ssh.private_key_path = '~/.ssh/id_rsa'
override.vm.box = 'digital_ocean'
override.vm.box_url = "https://github.com/smdahlen/vagrant-digitalocean/raw/master/box/digital_ocean.box"
provider.token = ‘<token>'
provider.image = 'centos-6-5-x64'
provider.region = 'sgp1'
provider.size = '512mb'
provider.private_networking = 'true'
end
end
今日から始める DigitalOcean
82 / 99
Vagrant で Droplet 起動
$ vagrant up --provider=digital_ocean
Bringing machine 'default' up with 'digital_ocean' provider...
==> default: Creating new SSH key: Vagrant...
==> default: Creating a new droplet...
==> default: Assigned IP address: 128.199.91.76
==> default: Private IP address: 10.130.137.240
==> default: Modifying sudoers file to remove tty requirement...
==> default: Installing rsync to the VM...
==> default: Rsyncing folder: /home/zem/develop/vagrant/working/ => /vagrant...
$ vagrant global-status
id name provider state directory
--------------------------------------------------------------------------
eebc73d default digital_ocean active /home/zem/develop/vagrant/working
$ vagrant ssh eebc73d
[root@default ~]# pwd
/root
[root@default ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 20642428 1386160 18207692 8% /
tmpfs 251136 0 251136 0% /dev/shm
今日から始める DigitalOcean
83 / 99
• Packer はイメージ管理用のツール
https://www.packer.io/ ( HashiCorp, Inc. )
• 様々な仮想化・クラウドのイメージを管理
繰り返しの作業やプロビジョニングを自動化し、ゴールデンイメージの作成を支援
• DigitalOcean にも勿論対応!
GUI操作不要のイメージ作成。並列に作成する機能があるので、コマンド実行後は放置でOK
Packer で DigitalOcean イメージ管理
今日から始める DigitalOcean
89 / 99
DigitalOcean Packer Provider
• Packer は標準対応、以下 JSON 形式で定義
{
"builders": [{
"type": "digitalocean",
"api_token": "<自分のtoken>'",
"image": "ubuntu-14-04-x64",
"region": "sgp1",
"snapshot_name": "packer-sample {{timestamp}}"
}],
"provisioners": [{
"type": "shell",
"inline": [
"sleep 30",
"sudo apt-get update",
"sudo apt-get install -y apache2"
]
}]
}
今日から始める DigitalOcean
90 / 99
DigitalOcean Packer Provider
$ packer validate example.json
Template validated successfully.
$ packer build example.json
digitalocean output will be in this color.
==> digitalocean: Creating temporary ssh key for droplet...
==> digitalocean: Creating droplet...
==> digitalocean: Waiting for droplet to become active...
(省略)
==> digitalocean: Gracefully shutting down droplet...
==> digitalocean: Creating snapshot: packer-sample 1428040540
==> digitalocean: Waiting for snapshot to complete...
==> digitalocean: Destroying droplet...
==> digitalocean: Deleting temporary ssh key...
Build 'digitalocean' finished.
==> Builds finished. The artifacts of successful builds are:
--> digitalocean: A snapshot was created: 'packer-sample xxxx' in region 'Singapore 1'
今日から始める DigitalOcean
91 / 99
• クラウドのインフラをコードで管理
https://www.terraform.io/ ( HashiCorp, Inc. )
• 環境の適用・破棄を GUI を通さずに行う
複数のサーバやリソースの指定、繰り返しの作業の省力化、作業の正確さ、迅速な対応を実現
• 様々なクラウドのインフラに対応
もちろん DigitalOcean も!!
Terraform で DigitalOcean 構成管理
今日から始める DigitalOcean
92 / 99
• digitalocean.tf 等のリソース定義ファイル作成
Terraform DigtalOcean Provider
variable "do_token" {}
# Configure the DigitalOcean Provider
provider "digitalocean" {
token = "${var.do_token}"
}
# Create a web server
resource "digitalocean_droplet" "web" {
image = "centos-6-5-x64"
name = "terraform.zem.jp"
region = "sgp1"
size = "512mb"
private_networking = true
ssh_keys = ["737302"]
}
今日から始める DigitalOcean
93 / 99
• “plan”  “apply”  “destroy”
Terraform DigtalOcean Provider
$ ./terraform plan -var "do_token=${TOKEN}“
$ ./terraform apply -var "do_token=${TOKEN}"
digitalocean_droplet.web: Creating...
image: "" => "centos-6-5-x64"
ipv4_address: "" => "<computed>"
ipv4_address_private: "" => "<computed>"
ipv6_address: "" => "<computed>"
ipv6_address_private: "" => "<computed>"
locked: "" => "<computed>"
name: "" => "terraform.zem.jp"
private_networking: "" => "1"
region: "" => "sgp1"
size: "" => "512mb"
ssh_keys.#: "" => "1"
ssh_keys.0: "" => "737302"
status: "" => "<computed>"
digitalocean_droplet.web: Creation complete
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
The state of your infrastruct
$ ./terraform show ./terraform.tfstate
digitalocean_droplet.web:
id = 4796394
image = centos-6-5-x64
ipv4_address = 128.199.91.76
ipv4_address_private = 10.130.137.240
locked = false
name = terraform.zem.jp
private_networking = true
region = sgp1
size = 512mb
ssh_keys.# = 1
ssh_keys.0 = 737302
status = active
$ ssh -l root 128.199.91.76
The authenticity of host '128.199.91.76 (128.199.91.76)' can't be established.
RSA key fingerprint is d3:a7:64:79:49:53:ca:66:d3:05:43:63:9e:d1:17:93.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '128.199.91.76' (RSA) to the list of known hosts.
reverse mapping checking getaddrinfo for terraform.zem.jp [128.199.91.76] failed - POSSIBLE BREAK-
IN ATTEMPT!
[root@terraform ~]# hostname
terraform.zem.jp
$ ./terraform destroy -var "do_token=${TOKEN}"
Do you really want to destroy?
Terraform will delete all your managed infrastructure.
There is no undo. Only 'yes' will be accepted to confirm.
Enter a value: yes
digitalocean_droplet.web: Refreshing state... (ID: 4796394)
digitalocean_droplet.web: Destroying...
digitalocean_droplet.web: Destruction complete
Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
Terraformは環境を構築するだけでなく、変更や破棄 (destroy)を
迅速かつ確実にこなします。DigitalOceanの他にAWSやGCE等にも対応
今日から始める DigitalOcean
96 / 99
• ここまでで気になる所はありますか?
Questions?
会場での質問
「kernel の選択肢はどれくらいありますか?」
 それぞれのディストリビューション毎に多数
 DigitalOcean は開発者向けに便利な機能を持っている
 1分で仮想サーバ (droplet) を利用できる環境がある
 周辺ツールとの連携で、もっともっと楽に利用できる
まとめ
 DigitalOcean の “Datacenter in Japan” に投票しよう!
http://digitalocean.uservoice.com/forums/136585-digitalocean/suggestions/6965695-datacenter-in-japan
 申込時 $10 割引クーポン(で、私は $25 のクレジット )
referral code link www.digitalocean.com/?refcode=e341e6bbae58
 ちゃんとした DigitalOcean Meetup Tokyo したいなぁ…
おまけ
ご興味あります?
https://www.digitalocean.com/referral-program/
正確には、無料 $10 分に加え
$25 お使いいただければ…
今日から始める DigitalOcean
99 / 99
参考資料
• DigitalOcean
➡ https://www.digitalocean.com/
• Tutorials
➡ https://www.digitalocean.com/community/tutorials
• Questions
➡ https://www.digitalocean.com/community/questions
References

More Related Content

What's hot

XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato KinugawaXSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato KinugawaCODE BLUE
 
Vimから見たemacs
Vimから見たemacsVimから見たemacs
Vimから見たemacsShougo
 
Docker環境でetherium開発環境を作る際のはまりどころ
Docker環境でetherium開発環境を作る際のはまりどころDocker環境でetherium開発環境を作る際のはまりどころ
Docker環境でetherium開発環境を作る際のはまりどころ健一 茂木
 
Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話ToshiharuSakai
 
Memcachedの仕組みと設定
Memcachedの仕組みと設定Memcachedの仕組みと設定
Memcachedの仕組みと設定Tatsuya Akashi
 
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話xiidec
 
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴くセキュリティの都市伝説を暴く
セキュリティの都市伝説を暴くHiroshi Tokumaru
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~infinite_loop
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術Takuto Wada
 
数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由Hiromi Ishii
 
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方naoto teshima
 
7分間プレゼン攻略法(研究者向け)
7分間プレゼン攻略法(研究者向け)7分間プレゼン攻略法(研究者向け)
7分間プレゼン攻略法(研究者向け)Yusuke Shinozawa
 
データマイニングの話詰め合わせ
データマイニングの話詰め合わせデータマイニングの話詰め合わせ
データマイニングの話詰め合わせTokoroten Nakayama
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニングyoku0825
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 

What's hot (20)

集約署名
集約署名集約署名
集約署名
 
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato KinugawaXSSフィルターを利用したXSS攻撃 by Masato Kinugawa
XSSフィルターを利用したXSS攻撃 by Masato Kinugawa
 
Vimから見たemacs
Vimから見たemacsVimから見たemacs
Vimから見たemacs
 
Docker環境でetherium開発環境を作る際のはまりどころ
Docker環境でetherium開発環境を作る際のはまりどころDocker環境でetherium開発環境を作る際のはまりどころ
Docker環境でetherium開発環境を作る際のはまりどころ
 
Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話Redmineの情報を自分好みに見える化した話
Redmineの情報を自分好みに見える化した話
 
Memcachedの仕組みと設定
Memcachedの仕組みと設定Memcachedの仕組みと設定
Memcachedの仕組みと設定
 
VCsurvey_230216
VCsurvey_230216VCsurvey_230216
VCsurvey_230216
 
Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話
 
CSP Lv.2の話
CSP Lv.2の話CSP Lv.2の話
CSP Lv.2の話
 
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴くセキュリティの都市伝説を暴く
セキュリティの都市伝説を暴く
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
Ooc 2020
Ooc 2020Ooc 2020
Ooc 2020
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由数学プログラムを Haskell で書くべき 6 の理由
数学プログラムを Haskell で書くべき 6 の理由
 
XSS再入門
XSS再入門XSS再入門
XSS再入門
 
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
2021-12-16 テストコードのないレガシーアプリケーションとの向き合い方
 
7分間プレゼン攻略法(研究者向け)
7分間プレゼン攻略法(研究者向け)7分間プレゼン攻略法(研究者向け)
7分間プレゼン攻略法(研究者向け)
 
データマイニングの話詰め合わせ
データマイニングの話詰め合わせデータマイニングの話詰め合わせ
データマイニングの話詰め合わせ
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 

Similar to 今日から始めるDigitalOcean

【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~Shuji Yamada
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料Shinichiro Isago
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料guest628c07
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbixsoftlayerjp
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】DeNA
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていくRyo Mitoma
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Dai Utsui
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Yoshiyuki Nakamura
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~Yuki Ando
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップKoichiro Sumi
 
使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演
使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演
使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演VirtualTech Japan Inc.
 
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】WESEEKWESEEK
 
Hueによる分析業務の改善事例
Hueによる分析業務の改善事例Hueによる分析業務の改善事例
Hueによる分析業務の改善事例Masahiro Kiura
 
Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善Takashi Honda
 
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善Developers Summit
 
Drupalによる大規模サイトの設計・実装 において何に気をつけるべきか
Drupalによる大規模サイトの設計・実装において何に気をつけるべきかDrupalによる大規模サイトの設計・実装において何に気をつけるべきか
Drupalによる大規模サイトの設計・実装 において何に気をつけるべきかdgcircus
 
OSC2014広島 CloudStackの歩き方【完全版】
OSC2014広島 CloudStackの歩き方【完全版】OSC2014広島 CloudStackの歩き方【完全版】
OSC2014広島 CloudStackの歩き方【完全版】Midori Oge
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト健一 辰濱
 
ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方Harada Kazuki
 

Similar to 今日から始めるDigitalOcean (20)

【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
【Interop Tokyo 2013】 どうする?どうなる?SDN/クラウド時代の運用管理 ~データセンター、クラウド提供事業者の立場から~
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
 
わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料わんくま東京勉強会#46 Azureセッション資料
わんくま東京勉強会#46 Azureセッション資料
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
SHOWROOMとDeNAで取り組んだライブ配信基盤刷新・超低遅延ライブ配信の裏側【DeNA TechCon 2020 ライブ配信】
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
 
Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記Pythonおじさんのweb2py挑戦記
Pythonおじさんのweb2py挑戦記
 
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
CODT2020 ビジネスプラットフォームを支えるCI/CDパイプライン ~エンタープライズのDevOpsを加速させる運用改善Tips~
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演
使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演
使ってわかった!現場担当者が語るOpenStack運用管理の課題:OpenStack Days 2015 Tokyo 講演
 
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
激白!GROWI.cloudの可用性向上の取り組み【WESEEK Tech Conf #16】
 
Hueによる分析業務の改善事例
Hueによる分析業務の改善事例Hueによる分析業務の改善事例
Hueによる分析業務の改善事例
 
Msセミナー20170830 slideshare
Msセミナー20170830 slideshareMsセミナー20170830 slideshare
Msセミナー20170830 slideshare
 
Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善Infrastructure as Codeの取り組みと改善
Infrastructure as Codeの取り組みと改善
 
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
【20-E-5】実践!Infrastructure as a Codeの取り組みと改善
 
Drupalによる大規模サイトの設計・実装 において何に気をつけるべきか
Drupalによる大規模サイトの設計・実装において何に気をつけるべきかDrupalによる大規模サイトの設計・実装において何に気をつけるべきか
Drupalによる大規模サイトの設計・実装 において何に気をつけるべきか
 
OSC2014広島 CloudStackの歩き方【完全版】
OSC2014広島 CloudStackの歩き方【完全版】OSC2014広島 CloudStackの歩き方【完全版】
OSC2014広島 CloudStackの歩き方【完全版】
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方ToolChainを使った次世代DevOps環境の作り方
ToolChainを使った次世代DevOps環境の作り方
 

More from Masahito Zembutsu

忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜Masahito Zembutsu
 
自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GAMasahito Zembutsu
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討Masahito Zembutsu
 
さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19Masahito Zembutsu
 
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」Masahito Zembutsu
 
インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話Masahito Zembutsu
 
3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」Masahito Zembutsu
 
ようこそオンラインの展示会場へ
ようこそオンラインの展示会場へようこそオンラインの展示会場へ
ようこそオンラインの展示会場へMasahito Zembutsu
 
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020Masahito Zembutsu
 
オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編Masahito Zembutsu
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Masahito Zembutsu
 
Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技Masahito Zembutsu
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
クリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようクリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようMasahito Zembutsu
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Masahito Zembutsu
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19osMasahito Zembutsu
 

More from Masahito Zembutsu (20)

忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
忙しい人のための Rocky Linux 入門〜Rocky LinuxはCentOSの後継者たり得るか?〜
 
自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA自由検証環境提供宣言+Docker Compose V2 GA
自由検証環境提供宣言+Docker Compose V2 GA
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19さくらインターネットのコミュニティ with COVID-19
さくらインターネットのコミュニティ with COVID-19
 
Docker Chronicle 2021.09
Docker Chronicle  2021.09Docker Chronicle  2021.09
Docker Chronicle 2021.09
 
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
ブックトーク@CROSS ~SF編~ 発表資料「攻殻機動隊」「導きの星」
 
インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話インターネットでウェブサイトを表示している裏側の話
インターネットでウェブサイトを表示している裏側の話
 
3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」3分で分かる「プログラミング教育・情報教育」
3分で分かる「プログラミング教育・情報教育」
 
ようこそオンラインの展示会場へ
ようこそオンラインの展示会場へようこそオンラインの展示会場へ
ようこそオンラインの展示会場へ
 
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
小学校プログラミング教育に対する企業の取り組みと課題 #KOF2020
 
オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編オンライン発表で気を付けているポイント~姿勢編
オンライン発表で気を付けているポイント~姿勢編
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
 
Jitsi Meetとは?
Jitsi Meetとは?Jitsi Meetとは?
Jitsi Meetとは?
 
Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技Docker 9 tips~意外と知られていない日常で役立つ便利技
Docker 9 tips~意外と知られていない日常で役立つ便利技
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
クリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしようクリスマスに工場(Factorio)を作るゲームをしよう
クリスマスに工場(Factorio)を作るゲームをしよう
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os2020年から始まる小学校プログラミング教育の話 #osc19os
2020年から始まる小学校プログラミング教育の話 #osc19os
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 

今日から始めるDigitalOcean

  • 1. Masahito Zembutsu @zembutsu Technology Evangelist; Creationline , Inc. Shinjuku Tokyo, Apr 10 2015 #hbstudy 66th Meetup 今日から始めるDigitalOcean All About DigitalOcean – Practical Introduction
  • 2. 今日から始める DigitalOcean 2 / 99 今日の内容 “できる☆DigitalOcean” • 入門:DigitalOceanとは? これはクラウドですか? 登場背景、機能概要、特長、料金体系、契約方法、支払い、SLA • 実践:DigitalOceanの機能・操作方法 使う前に知っておきたかった機能 - Dropletやテンプレート、バックアップ、プライベート接続、DNS機能 • 応用:クラウドの価値を高めるために プロビジョニング、API、CoreOSとDocker、HashiCorp ( Vagrant・Packer・Terraform ) Topics
  • 3. 今日から始める DigitalOcean 3 / 99 • @zembutsu 前佛 雅人 ➡ Technology Evangelist ≒ Enthusiast 的活動 ➡ “趣味”で OSS やクラウド系サービスの検証・情報発信 • SlideShare http://www.slideshare.net/zembutsu • Tech blog http://pocketstudio.jp/log3/ – DigitalOcean の blog はじめようと企んでいます。 – ネット上およびコミュニティでの活動は、特に明示しない限り私の個人活動であり、 所属団体や対象となる商業的組織・団体と一切の各種利害関係はありません。 今回の DigitalOcean に関しても同様です。 ➡ 【緩募】彼女 “データセンタに出会いを求めるのは間違っているだろうか” 自己紹介Why am I here? Zembutsu Masahito 技 術 伝 道 者 熱 狂 者 何がダメなのか探してください。 このアカウントは全否定したいと思っているものです。 このような結果になったのは、全て自分の責任です。 何かの間違いでこのアカウントやスライドを見かけた方は 「@zembutsu」の何がダメなのかを探してみてください。 そこから気づける人がひとりでもいらっしゃれば、この スライドを出した意味があると思っています。 Hestia ※1 ※1 Public Domain
  • 5. 質問「 DigitalOcean 」をご存知ですか? 1. とても使ってる バッチリ使ってます 2. 使ってる 検証したことあり 1 割 3. 使っていない 聞いたことはある 9 割 4. しらん 食えるのか? 5. は毒電波 1. とても使ってる バッチリ使ってます 会場では、開発用途で使用中 もしくは名前ご存知の皆さん
  • 8. 入門 introduction • 何故に DigitalOcean? • DigitalOcean #とは • データセンター • 特長と機能 • 価格体系 • 契約方法、契約解除
  • 9. DigitalOcean “ We’re simplifying the cloud by providing an infrastructure experience that developers love.” ( twitter profile @digitalocean ) 私達は開発者が好むインフラのユーザ経験を提供することで クラウドを簡素化する
  • 10. Who is DigitalOcean for? “ DigitalOcean is a platform created for developers who need to launch and scale their applications quickly. Additionally, DigitalOcean provides the perfect environment for developers to play around on the command line and learn more about customizing their own servers” ( https:/ / www.digitalocean.com/ help/ ) DigitalOceanは、アプリケーションを迅速に起動してスケールする 必要がある開発者向けに作られたプラットフォームです。もう1つ。 DigitalOceanが提供するのは、開発者がコマンドライン上から操作でき、 自分自身のサーバーをカスタマイズする方法を学ぶための完全なる環境です。
  • 11. グラフ出典:”Digital Ocean – Grouth | Netcraft" http://trends.netcraft.com/www.digitalocean.com ここ数年で DigitalOcean の 利用者は急に拡がっています
  • 12. 3 5 7 9 11 13 150 20,000 40,000 60,000 80,000 100,000 120,000 140,000 160,000 2014年1月 2014年2月 2014年3月 2014年4月 2014年5月 2014年6月 2014年7月 2014年8月 2014年9月 2014年10月 2014年11月 2014年12月 2015年1月 2015年2月 2015年3月 2014年以降のDigitalOcean稼働台数(web facing) (台数) (順位) 出典:”Digital Ocean – Grouth | Netcraft" http://trends.netcraft.com/www.digitalocean.com 2013年 – 4月サンフランシスコ・データセンタを開設 – 9月 50万クラウドサーバー(ドロップレット)の起動達成 – 12月オランダ・アムステルダムにデータセンタ開設 2014年 – 1月 100万ドロップレットの起動達成 – 2月 シンガポール・データセンタ開設 – 7月 ロンドン・データセンタ開設 – 9月 CoreOS の提供開始、Amsterdam region で IPv6 開始 – 10月 稼働台数順位が世界3位に 2015年 – 1月 FreeBSD の提供開始 – …?
  • 13. 今日から始める DigitalOcean 13 / 99 • 2011年設立、クラウドのインフラ事業者 Ben氏、Moisey Uretsky氏によって創業 -> https://www.digitalocean.com/ • 開発者を大切にするビジョン 複雑なインフラの管理を簡単にし、利用者に良いユーザ経験をもたらすプロダクトを作る • 40万利用者、100万以上の仮想サーバ稼働 シンプルで直感的なインターフェースと機能、Solid State Drive (SSD)のRAID基盤、豊富な API 世界5箇所にデータセンタを開設(アメリカ東西・シンガポール・イギリス・オランダ) DigitalOcean 概要
  • 14. シンガポール Equinix ニューヨーク Equinix, Telx サンフランシスコ Telx ロンドン Equinix アムステルダム TelecityGroup - NYC1 facility is SSAE16 SOC-1 Type II certified. - NYC2 facility is SSAE16 SOC-2 Type II certified. - NYC3 facility is SSAE16 SOC-2 and SOC-3 compliant. - AMS1 and AMS2 facilities are ISO27001:2005 and ISO9001 certified. - AMS3 facility is ISO9001, ISO27001, and SSAE16 Type II certified - SFO1 facility is SSAE16 SOC-1 Type II certified. - SGP1 facility is ISO27001:2005 certified. - LON1 facility is ISO9001:2008, ISO27001, and SSAE16 / ISAE 3402 certified.
  • 15. 今日から始める DigitalOcean 15 / 99 • 55秒以内に仮想サーバ起動 使いたいとき、すぐに起動して、使い終わったら廃棄。かつ課金は時間単位 $0.007/時間~(月上限 $5 ~) • 全ての環境が SSD ( Solid State Drive ) 低いディスクのレイテンシ(応答速度の遅延)、かつ、CPUはディスクI/Oに使用率を奪われにくい • シンプルなコントロールパネルと API 直感的に使えるウェブ・インターフェース、豊富な API はブラウザから行える全ての機能をプログラム的に実行 DigitalOcean 特長
  • 16. 今日から始める DigitalOcean 16 / 99 • 仮想サーバ(ドロップレット)管理 仮想サーバの起動・停止・強制再起動・破棄・スペック変更、ブラウザからのコンソール接続、プライベート接続 IPv6 のサポート、Kernel 変更機能、レスキューモード、ホスト名変更、リソースグラフ表示、プロビジョニング • イメージ管理 スナップショット、それを元にした起動やデータセンタ配布、定期バックアップやバックアップから差し戻し 多くの公式イメージを提供( Ubuntu, CentOS, CoreOS, FreeBSD ) + アプリケーション設定済みイメージ • DNS管理 ネームサーバのホスティング、GUIを通したゾーン設定、仮想サーバに対する自動逆引き設定 DigitalOcean の機能
  • 17. 今日から始める DigitalOcean 17 / 99 • KVM 仮想化技術を使用 すべての環境は KVM ( kernel-based Virtual Machine ) 上の仮想マシンとして動作 ハイパーバイザの分散は出来ないが、Droplet作成時にAPI 「/v2/reports/droplet_neighbors」で、 同じハイパーバイザ上に指定する事は可。ファイルシステムは LVM か QCOW。2014年3月以降は RAW • CPUは物理6コア Intel 製の CPU 2.0 GHz ~ 3.0 GHz を使用( cat /proc/cpuinfo で確認可能) • 物理ノード間は 1 Gbpsで接続 コアルータとは Gigabit Ethernet で接続、コアルータは上位ネットワークに 10 Gigabit Ethernet バックエンド・設備
  • 18. 今日から始める DigitalOcean 18 / 99 • ファイアウォールやロードバランサ機能 iptablesやfirewalld、nginxやLVSを自分で設定する必要があります • Windows Server Linux ・FreeBSD のみ提供予定です • マネージドサービス サポートが必要な場合は、自分でチケットをサポートにオープンするか、コミュニティへ 逆に提供しないもの
  • 19. 今日から始める DigitalOcean 19 / 99 • 仮想サーバ ( Droplet ) スペック毎に時間課金 最小 $0.007/時間(CPU 1コア、512MBメモリ、20GB SSD、1TB ネットワーク転送量) サーバが稼働して、Terminate 処理を開始するまでの時間 ※ 停止中 ( Power Off 時 ) も課金継続、パブリック IP やリソースを専有するため -> スナップショット化で回避 • 時間課金の月間上限は 28 日間 ( 672 時間 ) 最小構成の場合は、超過分どれだけ使っても $5 の課金 • 価格表 ( MONTHLY / HOURLY ) ➡ https://www.digitalocean.com/pricing/ 価格体系
  • 21. 今日から始める DigitalOcean 21 / 99 • 転送量課金 標準の無償枠(Droplet毎に異なる) を超過すると $0.02/1GB 共有プライベート・ネットワーク内の通信量は無料 • Droplet のバックアップ設定 Droplet申込時のみ追加可能で、対象 Droplet の 20% の金額 • 無償のオプション ( 現時点で ) スナップショット、共有プライベート・ネットワーク、IPv6 アドレス、DNSサービス等、明示 オプション料金
  • 22. 今日から始める DigitalOcean 22 / 99 • クレジットカードの後払いか PayPal の前払い 対応カード: Visa, MasterCard, American Express, Discover • 請求タイミング 毎月1日の時点で、先月利用分の請求が確定。カードは任意支払いも可能 ( 一度でも決済した verified user 時 ) 24時間で支払えないと72時間アカウントロック・全停止 • 課金超過時のアラートあり 「アカウント」「 Billing 」(請求)  「 Alerts 」で 「 Billing Alerts 」に通知時の金額とチェックを指定 支払い方法
  • 23. 今日から始める DigitalOcean 23 / 99 • Droplet 上限変更をしたい場合は? 変更申請は、コントロールパネル「アカウント」「 Your Settings 」の「 Droplet Limit: xx 」をクリック https://cloud.digitalocean.com/settings/profile • 複数アカウントの紐付け方法 共有したい場合は、アカウントを作るのではなく、サポートにチケットを発行して依頼 • ログインに、二段階認証を設定可能 その他、契約に関して
  • 24. 今日から始める DigitalOcean 24 / 99 • SLA は 99.99% の稼動時間 ( uptime ) 1ヶ月約 4 分半に相当、影響範囲が SLA 超過時は当該アカウントに払い戻し • 稼働状態 ウェブ・RSS・Twitter から確認可能 ➡ http://do.co/status ➡ https://twitter.com/dostatus サービス状況
  • 25. 今日から始める DigitalOcean 25 / 99 • チケット制 or コミュにティに質問 システムの異常に関してはチケットでサポートへ、サーバ内の設定等はコミュにティ情報が参考に ➡ https://cloud.digitalocean.com/support • オンライン・ドキュメント(英語デース) ➡ Tutorials https://www.digitalocean.com/community/tutorials ➡ Questions https://www.digitalocean.com/community/questions サポート体制
  • 26. 今日から始める DigitalOcean 26 / 99 • ここまでで気になる所はありますか? Questions? 会場での質問 「トラフィック課金は IN / OUT どちら側?」  Outbound側のみ課金対象でした
  • 29. 実践 practice • アカウント作成手順 • droplet 起動・停止 • リソース変更方法 • スナップショットと バックアップ • SSH 鍵管理 • プライベート接続と注意点 • DNS 設定、ホスト名逆引き
  • 32. 今日から始める DigitalOcean 32 / 99 • オンライン・サインアップ すべてウェブ上で完結(アカウント作成申請 確認メールに返信 契約者情報と決済情報登録  利用開始) ➡ 次ページ以降で登録方法詳細 • クレジットカード or PayPal 必須 申請時は認証のため $1.23 のクレジット発生しますが、30日以内に返金処理 契約方法・はじめての Droplet 作成
  • 34. カード情報の入力 or PayPal支払い 決済認証 or PayPal 確認後 「Create Droplet」で作成
  • 38. 今日から始める DigitalOcean 38 / 99 Droplet 起動・停止 • コントロールパネル上で操作 新規起動は「 Create Droplet 」をクリック • 停止方法(snapshot作成等) サーバ内で「 /sbin/poweroff 」「 shutdown –h now」 コントロールパネル上でも強制的な「 PowerOff 」(電源断)と 「 Power Cylcle 」(強制リセット)が可能だが、データ消失リスク • 停止中も課金継続 使用しない場合は破棄 ( destroy ) またはテンプレート化する
  • 39. 今日から始める DigitalOcean 39 / 99 Droplet 破棄・再構築 • 破棄 ( destroy ) 対象ドロップレット上で「 Destroy 」 「 Destroy 」 完全に利用しない場合 なお通常はデータ領域上書きの「 Scrub Data 」を選択 処理開始時点で課金停止 • 再構築 ( rebuild ) 同じスペック・同じ IP アドレスのまま 中身だけをオリジナルか、特定のイメージに差し替え
  • 40. 今日から始める DigitalOcean 40 / 99 Droplet 起動時の選択肢 • Distribution (OS) の選択肢 ➡ Ubuntu, FreeBSD, Fedora, Debian CoreOS, CentOS • アプリケーションセットアップ済みイメージ ➡ RoR, WordPress, Drone, Docker Ghost, MongoDB, GitLab, Node 等
  • 41. 今日から始める DigitalOcean 41 / 99 コンソールへのアクセス • 接続は「 Access 」「 Console Access 」 VNC経由でブラウザからアクセス可能 画面が暗いときは、何かキーボードを入力する 要パスワード設定
  • 42. 今日から始める DigitalOcean 42 / 99 スペック変更方法 • 事前に “Power Off” にする 停止状態にしないと、メニューで選択できない • Droplet の「 Resize 」 ➡ Permanent (永続的) • SSD 容量変更は時間かかる (物理サーバ変更のため) ➡ Flexible (フレキシブル) • CPU とメモリのみであれば、再起動で即時反映
  • 43. 今日から始める DigitalOcean 43 / 99 Snapshot と Backup • Snapshot:Droplet 停止時、何時でも作成できる 現時点ではスナップショット機能によるイメージ作成は無償 スナップショットを別のリージョンで使いたい場合は、イメージの事前転送が必要 • Backup:サーバ申込時にオプション設定が必須 毎週1回(現時点では)、システムが決めた時間に自動的にバックアップを作成 作成したバックアップ用イメージから復旧可能 有償オプション(対象ドロップレットの月間利用料金の 20% ) 稼働中のサーバにはバックアップ設定を後から追加することはできない
  • 44. 今日から始める DigitalOcean 44 / 99 Snapshot 作成方法 • Droplet を停止 Power On の状態では操作できません • 「 Snapshots 」「 Take Snapshot 」を選択 任意名称を入力後、「 Take Snapshot 」(スナップショット作成)
  • 45. 今日から始める DigitalOcean 45 / 99 “Settings”で設定確認・変更 • “Networking” … IP アドレス確認 パブリックとプライベート(申込時に選択した場合)のネットワーク情報、IPv6 追加 • “kernel” … Linux kernel 変更機能 復旧したい場合は、“Recovery” を選択 • “Rename” … ホスト名称変更 コントロールパネル上で表示される名前に加え、IP アドレスの逆引きホスト名も兼ねる
  • 46. 今日から始める DigitalOcean 46 / 99 ”Graphs”でリソース情報参照 • Droplet の利用状況表示 • ネットワーク帯域 • ディスク I/O ( read/write ) • CPU 使用率 ( user/sys )
  • 47. 今日から始める DigitalOcean 47 / 99 イメージの管理 “Images” メニュー • スナップショット作成 各 Droplet のメニュー以外からも変更できる • 名称変更・削除も可能 • リージョン毎に保持 別のリージョンで使う場合は、転送が必要 5~10分程度時間かかる
  • 49. 今日から始める DigitalOcean 49 / 99 SSH鍵管理 • 公開鍵を DigitalOcean に登録可能 複数の鍵の登録や削除をコントロールパネル上から操作 • Droplet 作成時、root パスワードを設定しない 作成時に SSH 鍵を指定すると、サーバ内で root パスワードは設定されず、メールも通知されない • Droplet の root に自動設定 /root/.ssh/authorized_keys に追加されます
  • 50. 今日から始める DigitalOcean 50 / 99 SSH鍵追加方法 • 設定は「 Your Settings」「 Security 」 「 Add SSH Key 」 表示名と、公開鍵を入力後、「 Create SSH Key 」
  • 52. 自分の droplet A 自分の droplet B 他人の droplet 自分の droplet C 他人の droplet パブリック・ネットワーク パブリック・ネットワーク 共有プライベート・ネットワーク 共有プライベート・ネットワーク eth0 eth0 eth0 eth0 eth0 eth1 eth1 eth1 eth1 eth1 DigitalOcanリージョン BDigitalOcean リージョン A internet 各リージョン毎に独立した共有プライベート・ネットワークがあります プライベート内のトラフィック課金はありませんが、セキュリティに要注意
  • 53. 今日から始める DigitalOcean 53 / 99 共用プライベート・ネットワーキング • プライベート間で高速転送、課金なし eth1 が追加される。ただし接続できるのは同一リージョン内でのみ。データセンタを跨ぐことは不可 • セキュリティに注意 リージョン内部の共有ローカル・ネットワーク内なので、iptables 等、セキュリティに配慮 • 使う場合 Droplet 作成時に ”Private Networking”
  • 54. 今日から始める DigitalOcean 54 / 99 共用プライベート・ネットワーキング • プライベート間で高速転送、課金なし eth1 が追加される。ただし接続できるのは同一リージョン内でのみ。データセンタを跨ぐことは不可 • セキュリティに注意 リージョン内部の共有ローカル・ネットワーク内なので、iptables 等、セキュリティに配慮 • 使う場合 Droplet 作成時に ”Private Networking” [root@dev3 ~]# /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 04:01:49:0B:30:01 inet addr:128.199.191.153 Bcast:128.199.191.255 Mask:255.255.192.0 inet6 addr: fe80::601:49ff:fe0b:3001/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:41626 errors:0 dropped:0 overruns:0 frame:0 TX packets:46035 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4560985 (4.3 MiB) TX bytes:6388196 (6.0 MiB) eth1 Link encap:Ethernet HWaddr 04:01:49:0B:30:02 inet addr:10.130.138.237 Bcast:10.130.255.255 Mask:255.255.0.0 inet6 addr: fe80::601:49ff:fe0b:3002/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:78 errors:0 dropped:0 overruns:0 frame:0 TX packets:130 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:13712 (13.3 KiB) TX bytes:14718 (14.3 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
  • 56. 今日から始める DigitalOcean 56 / 99 DigitalOcean の DNS 機能 • ドメイン名のネームサーバを DigitalOcean に設定 ➡ ns1.digitalocean.com ➡ ns2.digitalocean.com ➡ ns2.digitalocean.com • ゾーン管理機能 ( 無料 ) ブラウザ上から各種のレコードを設定できる • Droplet の逆引きホスト名を自動設定 ( 無料) 作成した「 Droplet 」の名前が FQDN ならば自動的に設定
  • 57. 今日から始める DigitalOcean 57 / 99 例:お名前.com のドメインを使う • ネームサーバーの変更 対象ドメイン名の選択 • “他のネームサーバを利用” ➡ ns1.digitalocean.com ➡ ns2.digitalocean.com ➡ ns3.digitalocean.com
  • 58. 今日から始める DigitalOcean 58 / 99 ドメインを DigitalOcean に登録 • メニューの“DNS” ➡ 「ドメイン名」入力 ➡ Aレコード追加ホスト選択 ➡ 「Create Domain」 登録済みドメイン編集
  • 61. 今日から始める DigitalOcean 61 / 99 • ここまでで気になる所はありますか? Questions? 会場での質問 「新しいインスタンスは頻繁に増えますか?」  あんまり極端に変わらない印象です 「停止中でも課金されますか?」  課金されます。ただしスナップショットは 無料なので、それで回避できます 「バックアップのタイミングは決められますか?」  いいえ、自動設定です
  • 64. 応用 advanced • User Data でプロビジョニング • API を使う • CoreOS で Docker • Vagrant or DockerMachine • Packer でテンプレート管理 • Terraform で自動構成管理
  • 66. プロビジョニング ( provisioning ) サーバ起動後の初期設定やアプリケーションのセットアップを自動的に行う DigitalOcean 公式イメージ 新 Droplet 実際に使う Droplet 環境 SSH ログイン 初期設定・環境構築 起動 GUI 操作
  • 67. プロビジョニング ( provisioning ) サーバ起動後の初期設定やアプリケーションのセットアップを自動的に行う DigitalOcean 公式イメージ 新 Droplet 実際に使う Droplet 環境 初期設定・環境構築の自動実行 起動 GUI 操作 User Data • 正確 • 速い • 繰り返し使える
  • 68. 今日から始める DigitalOcean 68 / 99 User Data の利用方法 • Droplet 作成時に指定 metadata としてもサーバ内から参照可能になる http://169.254.169.254/metadata • 利用可能な形式 ➡ シェルスクリプト、等 ➡ Cloud-Init • https://cloudinit.readthedocs.org/en/latest/ ここにコードを記入
  • 69. 今日から始める DigitalOcean 69 / 99 ➡ https://www.digitalocean.com/community/tutorials/an-introduction-to-droplet-metadata 例 1:bash #!/bin/bash # timezone mv /etc/localtime /etc/localtime.orig ; ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime # setup Apache yum -y install wget unzip httpd export HOSTNAME=$(curl -s http://169.254.169.254/metadata/v1/hostname) export PUBLIC_IPV4=$(curl -s http://169.254.169.254/metadata/v1/interfaces/public/0/ipv4/address) echo Droplet: $HOSTNAME, IP Address: $PUBLIC_IPV4 > /var/www/html/index.html systemctl start httpd # setup serf cd /tmp wget -O 0.6.4_linux_amd64.zip https://dl.bintray.com/mitchellh/serf/0.6.4_linux_amd64.zip unzip 0.6.4_linux_amd64.zip cp ./serf /usr/bin/serf
  • 70. 今日から始める DigitalOcean 70 / 99 例 2:Cloud-Init ( YAML 形式 ) #cloud-config users: - name: zem groups: wheel shell: /bin/bash sudo: ['ALL=(ALL) NOPASSWD:ALL'] ssh-authorized-keys: - ssh-rsa AAAAB3WzaS1yc2EAAAxeess== • debug 用のログは /var/log/cloud-init.log , cloud-init-output.log ➡ https://www.digitalocean.com/community/tutorials/how-to-use-cloud-config-for-your-initial-server-setup ➡ https://www.digitalocean.com/community/tutorials/an-introduction-to-cloud-config-scripting
  • 72. 今日から始める DigitalOcean 72 / 99 CoreOS のイメージを選択
  • 73. 今日から始める DigitalOcean 73 / 99 • ログインユーザは「 core 」なので注意 CoreOS にログイン $ ssh -l core 128.199.237.114 The authenticity of host '128.199.237.114 (128.199.237.114)' can't be established. RSA key fingerprint is 02:59:20:26:64:f9:e2:96:13:f6:22:a7:05:ee:2b:6b. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '128.199.237.114' (RSA) to the list of known hosts. CoreOS stable (607.0.0) core@coreos ~ $ これだけで、直ぐに docker fleet, etcd が使えます
  • 74. 今日から始める DigitalOcean 74 / 99 • ログインユーザは「 core 」なので注意 CoreOS にログイン $ ssh -l core 128.199.237.114 The authenticity of host '128.199.237.114 (128.199.237.114)' can't be established. RSA key fingerprint is 02:59:20:26:64:f9:e2:96:13:f6:22:a7:05:ee:2b:6b. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '128.199.237.114' (RSA) to the list of known hosts. CoreOS stable (607.0.0) core@coreos ~ $ core@coreos ~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES core@coreos ~ $ docker run -it centos /bin/bash Unable to find image 'centos:latest' locally 511136ea3c5a: Pull complete b6718650e87e: Pull complete 493bab5fff45: Pull complete 9dbcac75201e: Pull complete centos:latest: The image you are pulling has been verified. Important: image verification is a tech preview feature and should not be relied on to provide security. Status: Downloaded newer image for centos:latest [root@6c00e23717a7 /]# cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core) [root@6c00e23717a7 /]# core@coreos ~ $ core@coreos ~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6c00e23717a7 centos:latest "/bin/bash" 20 seconds ago Up 20 seconds stupefied_mclean これだけで、直ぐに docker fleet, etcd が使えます 応用:kubernetes クラスタを構築する方法 How To Install and Configure Kubernetes on top of a CoreOS Cluster | DigitalOcean https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-kubernetes-on-top-of-a-coreos-cluster
  • 76. 今日から始める DigitalOcean 76 / 99 • メニューの「 API」 ➡ 「 Generate New Token 」 ➡ 任意のtoken名を入れる ➡ 「 Generate Token 」 一度しか画面に表示されないので取り扱い注意 API Token (v2) 取得方法 まず Token 作成が必要です
  • 77. 今日から始める DigitalOcean 77 / 99 • GUI 上の全ての操作は API 経由で操作可能 HTTP 経由でリクエストを送信、token で認証し、結果を JSON 形式で受け取る DigitalOcean API https://developers.digitalocean.com/documentation/v2/ DigitalOcean API $ export TOKEN=48f78352fd8c*****************beee5bcb97b $ curl -s -X POST "https://api.digitalocean.com/v2/droplets" ¥ -d'{"name":"apibased.zem.jp","region":"sgp1","size":"512mb","image":"centos-6-5-x64", "ssh_keys":["737302“],"private_networking":true}' ¥ -H "Authorization: Bearer $TOKEN" ¥ -H "Content-Type: application/json" | jq -M "."
  • 78. 今日から始める DigitalOcean 78 / 99 • docker-machine で docker 動作環境起動 Docker Machine $ export TOKEN=<token> $ docker-machine create ¥ --driver digitalocean ¥ --digitalocean-region=sgp1 ¥ --digitalocean-access-token=$TOKEN ¥ cloud-dev
  • 80. 今日から始める DigitalOcean 80 / 99 • 事前準備 ➡ Vagrant のセットアップ https://www.vagrantup.com/ ➡ プラグインのセットアップ Vagrant で開発環境の準備 # vagrant plugin install vagrant-digitalocean Installing the 'vagrant-digitalocean' plugin. This can take a few minutes... Installed the plugin 'vagrant-digitalocean (0.7.3)'! $ vagrant plugin list vagrant-digitalocean (0.7.3) vagrant-share (1.1.3, system)
  • 81. 今日から始める DigitalOcean 81 / 99 • Vagrantfile 作成 Vagrant で DigitalOcean Vagrant.configure('2') do |config| config.vm.provider :digital_ocean do |provider, override| override.ssh.private_key_path = '~/.ssh/id_rsa' override.vm.box = 'digital_ocean' override.vm.box_url = "https://github.com/smdahlen/vagrant-digitalocean/raw/master/box/digital_ocean.box" provider.token = ‘<token>' provider.image = 'centos-6-5-x64' provider.region = 'sgp1' provider.size = '512mb' provider.private_networking = 'true' end end
  • 82. 今日から始める DigitalOcean 82 / 99 Vagrant で Droplet 起動 $ vagrant up --provider=digital_ocean Bringing machine 'default' up with 'digital_ocean' provider... ==> default: Creating new SSH key: Vagrant... ==> default: Creating a new droplet... ==> default: Assigned IP address: 128.199.91.76 ==> default: Private IP address: 10.130.137.240 ==> default: Modifying sudoers file to remove tty requirement... ==> default: Installing rsync to the VM... ==> default: Rsyncing folder: /home/zem/develop/vagrant/working/ => /vagrant... $ vagrant global-status id name provider state directory -------------------------------------------------------------------------- eebc73d default digital_ocean active /home/zem/develop/vagrant/working $ vagrant ssh eebc73d [root@default ~]# pwd /root [root@default ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda1 20642428 1386160 18207692 8% / tmpfs 251136 0 251136 0% /dev/shm
  • 83. 今日から始める DigitalOcean 83 / 99 • Packer はイメージ管理用のツール https://www.packer.io/ ( HashiCorp, Inc. ) • 様々な仮想化・クラウドのイメージを管理 繰り返しの作業やプロビジョニングを自動化し、ゴールデンイメージの作成を支援 • DigitalOcean にも勿論対応! GUI操作不要のイメージ作成。並列に作成する機能があるので、コマンド実行後は放置でOK Packer で DigitalOcean イメージ管理
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89. 今日から始める DigitalOcean 89 / 99 DigitalOcean Packer Provider • Packer は標準対応、以下 JSON 形式で定義 { "builders": [{ "type": "digitalocean", "api_token": "<自分のtoken>'", "image": "ubuntu-14-04-x64", "region": "sgp1", "snapshot_name": "packer-sample {{timestamp}}" }], "provisioners": [{ "type": "shell", "inline": [ "sleep 30", "sudo apt-get update", "sudo apt-get install -y apache2" ] }] }
  • 90. 今日から始める DigitalOcean 90 / 99 DigitalOcean Packer Provider $ packer validate example.json Template validated successfully. $ packer build example.json digitalocean output will be in this color. ==> digitalocean: Creating temporary ssh key for droplet... ==> digitalocean: Creating droplet... ==> digitalocean: Waiting for droplet to become active... (省略) ==> digitalocean: Gracefully shutting down droplet... ==> digitalocean: Creating snapshot: packer-sample 1428040540 ==> digitalocean: Waiting for snapshot to complete... ==> digitalocean: Destroying droplet... ==> digitalocean: Deleting temporary ssh key... Build 'digitalocean' finished. ==> Builds finished. The artifacts of successful builds are: --> digitalocean: A snapshot was created: 'packer-sample xxxx' in region 'Singapore 1'
  • 91. 今日から始める DigitalOcean 91 / 99 • クラウドのインフラをコードで管理 https://www.terraform.io/ ( HashiCorp, Inc. ) • 環境の適用・破棄を GUI を通さずに行う 複数のサーバやリソースの指定、繰り返しの作業の省力化、作業の正確さ、迅速な対応を実現 • 様々なクラウドのインフラに対応 もちろん DigitalOcean も!! Terraform で DigitalOcean 構成管理
  • 92. 今日から始める DigitalOcean 92 / 99 • digitalocean.tf 等のリソース定義ファイル作成 Terraform DigtalOcean Provider variable "do_token" {} # Configure the DigitalOcean Provider provider "digitalocean" { token = "${var.do_token}" } # Create a web server resource "digitalocean_droplet" "web" { image = "centos-6-5-x64" name = "terraform.zem.jp" region = "sgp1" size = "512mb" private_networking = true ssh_keys = ["737302"] }
  • 93. 今日から始める DigitalOcean 93 / 99 • “plan”  “apply”  “destroy” Terraform DigtalOcean Provider $ ./terraform plan -var "do_token=${TOKEN}“ $ ./terraform apply -var "do_token=${TOKEN}" digitalocean_droplet.web: Creating... image: "" => "centos-6-5-x64" ipv4_address: "" => "<computed>" ipv4_address_private: "" => "<computed>" ipv6_address: "" => "<computed>" ipv6_address_private: "" => "<computed>" locked: "" => "<computed>" name: "" => "terraform.zem.jp" private_networking: "" => "1" region: "" => "sgp1" size: "" => "512mb" ssh_keys.#: "" => "1" ssh_keys.0: "" => "737302" status: "" => "<computed>" digitalocean_droplet.web: Creation complete Apply complete! Resources: 1 added, 0 changed, 0 destroyed. The state of your infrastruct
  • 94. $ ./terraform show ./terraform.tfstate digitalocean_droplet.web: id = 4796394 image = centos-6-5-x64 ipv4_address = 128.199.91.76 ipv4_address_private = 10.130.137.240 locked = false name = terraform.zem.jp private_networking = true region = sgp1 size = 512mb ssh_keys.# = 1 ssh_keys.0 = 737302 status = active $ ssh -l root 128.199.91.76 The authenticity of host '128.199.91.76 (128.199.91.76)' can't be established. RSA key fingerprint is d3:a7:64:79:49:53:ca:66:d3:05:43:63:9e:d1:17:93. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '128.199.91.76' (RSA) to the list of known hosts. reverse mapping checking getaddrinfo for terraform.zem.jp [128.199.91.76] failed - POSSIBLE BREAK- IN ATTEMPT! [root@terraform ~]# hostname terraform.zem.jp
  • 95. $ ./terraform destroy -var "do_token=${TOKEN}" Do you really want to destroy? Terraform will delete all your managed infrastructure. There is no undo. Only 'yes' will be accepted to confirm. Enter a value: yes digitalocean_droplet.web: Refreshing state... (ID: 4796394) digitalocean_droplet.web: Destroying... digitalocean_droplet.web: Destruction complete Apply complete! Resources: 0 added, 0 changed, 1 destroyed. Terraformは環境を構築するだけでなく、変更や破棄 (destroy)を 迅速かつ確実にこなします。DigitalOceanの他にAWSやGCE等にも対応
  • 96. 今日から始める DigitalOcean 96 / 99 • ここまでで気になる所はありますか? Questions? 会場での質問 「kernel の選択肢はどれくらいありますか?」  それぞれのディストリビューション毎に多数
  • 97.  DigitalOcean は開発者向けに便利な機能を持っている  1分で仮想サーバ (droplet) を利用できる環境がある  周辺ツールとの連携で、もっともっと楽に利用できる まとめ
  • 98.  DigitalOcean の “Datacenter in Japan” に投票しよう! http://digitalocean.uservoice.com/forums/136585-digitalocean/suggestions/6965695-datacenter-in-japan  申込時 $10 割引クーポン(で、私は $25 のクレジット ) referral code link www.digitalocean.com/?refcode=e341e6bbae58  ちゃんとした DigitalOcean Meetup Tokyo したいなぁ… おまけ ご興味あります? https://www.digitalocean.com/referral-program/ 正確には、無料 $10 分に加え $25 お使いいただければ…
  • 99. 今日から始める DigitalOcean 99 / 99 参考資料 • DigitalOcean ➡ https://www.digitalocean.com/ • Tutorials ➡ https://www.digitalocean.com/community/tutorials • Questions ➡ https://www.digitalocean.com/community/questions References