使う前に知りたかったDigitalOceanまとめ:hbstudy#65で登壇しました

使う前に知りたかったDigitalOceanまとめ:hbstudy#65で登壇しました

使う前に知りたかったDigitalOceanまとめ:hbstudy#65で登壇しました はてなブックマーク - 使う前に知りたかったDigitalOceanまとめ:hbstudy#65で登壇しました


■ DigitalOcean?

DigitalOcean https://www.digitalocean.com/(デジタル・オーシャン)とは、米ニューヨークに本拠地を置くクラウド事業者が提供するサービス名称です。Droplet(ドロップレット)と呼ばれる仮想サーバを55秒で起動でき、料金は全て時間単位の課金。しかもそれらは全てSSDの上で動作するので軽快、という特長があります。

今回の発表では、なにより「DigitalOcean」というクラウドの選択肢も、場合によってはアリじゃないですか?という所を共有したい思いがありました。また、自分が DigitalOcean を使う前に分からなかったこと(料金体系や細かな所)、使った後にハマッた所(APIやuser dataのプロビジョニング)、その他、活用方法(Vagrant、Packer、Terraform)をスライドの中に織り込みました。

日本国内では、まだ一部の方しか使っていないのかな?という印象もありますが、日本に近いシンガポールのデータセンタは、個人的に普通に使えるレベルだと思っています。日本語の情報が分散している印象もありますが、
この発表スライドが、皆さんの疑問解消だったり、これから使ってみようかな?という所に繋がれば、それはとっても嬉しいなって思っています。

あとは、いつ DigitalOcean 始めるの? 今でしょ!的な…

以下、簡単にスライドの概要説明です。入門・実践・応用の三部構成です。

■ 入門編

そもそも DigitalOcean とは、どんな目的でサービスをしているのでしょうか。Twitter アカウントの自己紹介によると、”開発者が好むインフラのユーザ経験を提供することで、クラウドを簡素化する”( We’re simplifying the cloud by probiding an infrastructure experience that developles love. )とあります。

クラウド・コンピューティングのサービスは、日本でも広く一般に普及しつつあります。様々なサービスが乱立し、各々のクラウド毎に高度な機能が提供されています。市場ニーズに応じて選択肢が広まっている一方で、開発者にとっては「それ、ちょっと複雑すぎない?オーバースペックじゃない?」という所もあるのではないでしょうか。

DigitalOcean が目指しているのは、まさに開発者が簡単に使えるためのクラウド基盤の提供です。確かに他のサービスに比べれば機能は少ないかもしれません。DigitalOcean は基本的に仮想サーバが中心です。ですが、機能はシンプルに絞り込まれているとも言えるのではないでしょうか。

実際、2011年という割と最近にサービスが開始されたのに、2015年3月には10万6千台という、世界3位の利用台数を記録しています(ウェブ側に接続されているホスト台数)。データセンタは米国(ニューヨーク、サンフランシスコ)だけでなく、シンがポール、イギリス(ロンドン)、オランダ(アムステルダム)と広く展開されています。それと、やはり開発者向けでしょうか、ディストリビューションの選択肢には Ubuntu や CentOS だけでなく、CoreOS や FreeBSD もあります。

契約そのもの非常にシンプルです。課金は仮想サーバ(ドロップレット)を何時間使ったかが基本となります。月の上限(28日分)を越えると、以降の料金は変わりません。ただし各サーバ毎に無料転送量の上限があり、超過すると 1GB あたり $0.02 となります。とはいえ、一番スペックの低いものでも 1TB 使えますし、ローカル転送は課金対象外なので、通常の開発用途であれば心配ないでしょう。

支払いは、クレジットカードまたは PayPal による支払いが選べます。請求は毎月 1 日に先月分の利用量がカウントされ、一気に請求が来ます。支払日の指定はできませんが、事前に任意タイミングでの決済は可能です。

細かな所では、SLA はお99.99%の稼働時間(uptime)であり、1ヶ月で4分半相当。以降の損害は、対象アカウントへの返金手続きになるようです(ようです、というのは、私自身まだ経験してませんので・・・)。

あと、DigitalOcean は監視やOS内のサポートサービスは提供しません。問題があれば、チケットで問い合わせをするか、あるいはオンラインのフォーラムやドキュメントをお読みくださいという流れです。

■ 実践編

アカウント発効の手順もとてもシンプルです。登録画面でまずアドレスと任意のパスワードを入力します。そのあと確認用のメールが届くので、リンクを押した後、決済情報を入力します。これだけで完了です。おそらく5分もかかりません。あとは自由にサーバを建てることができます。

仮想サーバ(ドロップレット)作成時は、ホスト名の指定(これが逆引きホスト名にもなります)、スペックの選択、リージョンの選択、オプション、マシンイメージ、そして SSH 鍵の設定を行います。起動すると、自動的にインターネットに繋がるパブリックな IP アドレスが付与されます。

オプションには、仮想サーバ作成時しか選べないバックアップ(スナップショットとは別)と共有プライベート接続があります。あとから追加できないので、注意です。裏技的には、稼働中のマシンのスナップショットを作成し、別の仮想サーバ作成時にそのマシンイメージを使う方法もあります。

一度稼働すると仮想サーバを破棄するまで課金が継続します。スペック変更時やスナップショット作成時は電源停止の必要がありますが、その間も DigitalOcean のリソースや IP アドレスは専有状態のため課金が継続します。課金継続が困る場合は、都度スナップショットの作成がおすすめです。スナップショットは現状課金されません。

そのほか便利な機能として、スペックの変更や kernel の切り替え、イメージの再構築,コンソールログイン、SSH 鍵管理の各機能が提供されています。

プライベート・ネットワークだけは、事前に要注意かもしれません。あくまで、リージョン毎の共有プライベート・ネットワークという位置付けであり、他のユーザとネットワーク空間が繋がっています。VLAN で区切られていませんので、セキュリティ上の配慮(ローカル側のポートを使わないのにバインドしない、適切なフィルタリング)が必要です。

digialocean-private-naetwork

個人的に何気に気に入っているのは、DNS 管理が無料で使える点です。どこかの事業者でドメイン名を取得しておけば、あとはネームサーバを DigitalOcean に向けるだけで利用できます。DNS サーバを時前で持つ必要がないので、とりあえず必要な場合は便利だと思います。Aレコードだけではなく、CNAMEやMX、TXT等の各種レコードが使えます。

■ 応用編

サーバを建てる度に都度行う初期設定、たとえばアカウントの作成、セキュリティ設定、タイムゾーンの変更など・・・都度面倒な作業があると思います。DigitalOcean は仮想サーバ作成時に uesrdata を入力することで、これらのセットアップを自動化するプロビジョニング機能があります。

具体的には作成時「Enable User Data」(ユーザデータの有効化)のオプションにチェックを入れます。入力フォームが開くので、ここにシェル・スクリプトをそのまま記述するか、Cloud-Init 形式(YAML)を直接書き込むと、初回起動時に自動実行されます。また、ここで入力した値を HTTP API 経由で取得することもできます。

その他の応用として、CoreOS がすぐに利用できるのも面白い所です。サーバが立ち上がると、dokcer だけでなく etcd や fleet 等のツールがすぐに利用可能です。注意点としては、なぜか CoreOS の場合はログインユーザ名が「core」なので気をつける必要があります(他のマインイメージは Ubuntu も含めて root が標準)。

更なる応用として DigitalOcean API の活用です。たとえば docker-machine を使って Docker 稼働環境をコマンドラインで作ることもできます。あるいは、Vagrant を使った開発環境、Packer を使ったスナップショットとプロビジョニングの自動実行、Terraform を使ったコマンドラインからインフラ環境の自動構築・更新・破棄といった活用法をご紹介しています。他のクラウドでも使っているツールを、DigitalOcean でも普通に使えるのはありがたいところ。

詳しくはスライド本編をご覧ください。

■ という訳で、hbstudy#65 で登壇の機会をいただきました

登壇のきっかけは、先月MSP協会のイベントでハートビーツの馬場さんにお会いした時、DigitalOceanの勉強会したいですねー!しますか!という当日その場のノリで、速攻イベントのページをたてていただきました&登壇の機会となりました、ありがとうございました。

最後になりますが、発表当日にお越しいただいた皆さん、ハートビーツさんありがとうございました。そして、素晴らしいサービスと機会を提供している DigitalOcean さんに感謝です。

heartbeats_new_office