このはちゃん、いつもの！

この記事は、[ConoHa Advent Calendar2017](https://qiita.com/advent-calendar/2017/conoha)の8日目の記事です。
7日目の昨日は@diglateam3さんによる「[ConoHaでMastodonインスタンスを立てた話](https://diglateam3.com/2017/12/conoha-advent-calendar-2017/)」、9日目は@nobukumaさんの「[ConoHaでのサーバ作成あれこれ](http://blog.strawhat.net/posts/2017/12/09/how-to-create-servers-at-conoha/)」です。

ConoHaを使うと、自分用のサーバが簡単に作成できます。だってそういうサービスだもの。

![6b329817-74d7-4741-a205-6f586defbe98.png](https://qiita-image-store.s3.amazonaws.com/0/213047/080191b6-bfc3-6299-cd16-199565ce4478.png)

サーバを新規に構築した後まず最初にすることは、たいていはアップデートの適用です。
ConoHaのテンプレートイメージは随時更新されているように思いますが、それでも常に最新の状態となっているわけではありません。
CentOSであれば`# yum update -y && reboot`、Fedoraであれば`# dnf update -y && reboot`、Ubuntuであれば`# apt update && apt upgrade -y && reboot`などといった形で、OSやミドルウェアのアップデートを行い、最新化します。

常に最初に行うなら、ConoHa側でやっておいてくれればいいのに…。
そんなこともあろうかと？、それを実現するための仕組みとして、[スタートアップスクリプト](https://www.conoha.jp/function/startupscript/)という機能が提供されています。
ちょっと使ってみましょう。

とはいえ、スタートアップスクリプトを利用するためには[ConoHa API](https://www.conoha.jp/docs/)を利用する必要があります（たぶん）。

---
追記：
普通に画面から入力できるみたいですね。。
使った事なかったのがバレてしまいました。

[スタートアップスクリプトを使ってサーバーを追加する｜VPSならConoHa](https://www.conoha.jp/guide/startupscript_controlpanel.php?btn_id=startupscript_guide)

---

WindowsならPowerShell等を使って、macOSやLinuxならターミナルが普通に使えるので、直接APIを叩くこともできないことはないのですが、認証してトークンを発行して、VM追加を行うということをjsonデータをやりとりして行うのはちょっと敷居が高いかもしれません。
こんな時、ConoHaのVPSサーバを使えばさくっとできるのですが、ConoHaのサーバを作るのにConoHaのサーバが必要な事態になるのはちょっと。。。

というわけで、そのあたりの処理はこのはさんにお任せすることにしました。
https://conoha-startupscript-demo.moenergy.com/

拙いですが、ConoHa APIを処理する部分をJavaScriptで実装しています。
ConoHa APIはJavaScriptのCORSを突破するための機能は実装されていないようなので、JavaScriptから直接APIを叩くことは通常できません。
JSONPなどを実装して頂けると捗るのですが、JavaScript上で認証トークンを扱うのも少し怖い気がします。
認証トークンをセッションに持つようなラッパー用のCGI等を用意するでもよいのですが、デモで作ると他の人の認証情報を受け取ることになってしまう可能性もあるので、避けました。
もし万が一試されるという場合は、各自でCORSを無効化して実行してみてください。
Chromeなら起動時のオプションに`--disable-web-security --user-data-dir`をつけるなどで対応できます。

参考：
開発時にCORSを無視するGoogleChromeの起動オプション - Qiita
[https://qiita.com/mottox2/items/498bb31d67caa2d8a71f](https://qiita.com/mottox2/items/498bb31d67caa2d8a71f)

これにより、~~おっちゃ~~ このはちゃん、いつもの！とお願いするとえいえいっとVMを作って起動してくれます。
パッケージアップデートコマンド実行のおまけ付きです。
とりあえず今回はデモということで東京リージョンのメモリ512MB、OSはCentOS 7.4(64bit)決め打ちで作成することにしました。
ConoHa APIを使用するために最低限必要なのは、以下の情報です。

- ユーザー名
- ユーザーパスワード
- Tenant ID

これらの情報は、ConoHaの管理画面から確認することができます。
https://manage.conoha.jp/API/

![1b8029a2-824d-4483-a882-27f4045e9390.png](https://qiita-image-store.s3.amazonaws.com/0/213047/72778211-09e4-1c0a-7e8a-10929b8d7774.png)

この情報をフォームに入力してポチッとすると、このはさんがサーバ構築のために飛び立ちます。
少し待っていると、サーバができているのではないかと思います。

![Screenshot at 2017-12-08 22-49-10.png](https://qiita-image-store.s3.amazonaws.com/0/213047/f334f3b3-d8dd-643c-a08e-8d0866eaa479.png)

返事が返ってきても、実際のサーバ構築が完了するまでにはもうしばらく時間がかかります。
完了後にメール等を送るようにスタートアップスクリプトを構成すると、待ちぼうけしなくてすむのではないかと思います。

それでは、よいConoHaライフを！

---
追記：

まだ土日は猶予として使えそうなので、追加でHosConのレポートしてみます。

- [第12回 HosCon - GMO Hosting Conference - @大阪](https://gmohoscon.connpass.com/event/71755/)

第1回？に参加して以来だったので、久しぶりのHosConでした。

![IMG_1510.JPG](https://qiita-image-store.s3.amazonaws.com/0/213047/13ab395d-a3fc-91f3-167d-99a2427cd99f.jpeg)
戦利品。袋の絵柄は壁紙にしているくらい好きなものだったので、これはよいものです。~~しかし画面に洗濯物が写ってるな。。~~
おそらく、[FreeBSD](https://www.freebsd.org/ja/)のデーモンくん、[Linuxカーネル](https://www.kernel.org)のTux、[SUSE](https://www.suse.com/ja-jp/)のカメレオンとの4ショットです。そうそうたるメンバーなので、どんなタイミングでの記念撮影だったのかが気になります。

このはさんのボスの発表があるということで楽しみにしていましたが、にわかの私には知らないことが色々ありました。
このはさんより[GMOアプリクラウド](https://cloud.gmo.jp)のあんずさんの方が先にデビューしていたこと、ConoHaのキャラだから"このは"なのではなく、"このは"が先にあって、だからサービス名がConoHaなのだということ。
ConoHaは**Co**mpute **no**deなんとか**H**igh-**a**vailabilityなんとかというサービス名の略である(らしい)ということなどなど。
サービス名がキャラクター名から来ているキャラクターファーストなVPSは世界広しといえどもConoHaだけなのではないでしょうか。

また、Twitter上のこのはさん([@MikumoConoha](https://twitter.com/mikumoconoha))のツイート分析もされていて、月曜日のツイートは少な目なこと、金曜日の午前はとても多いこと、平日日中以外のつぶやきは全くないことなどを暴露していました。
ボスはリア充だからと表現されていましたが、夜間や休日につぶやきがないのは、[データセンター住みのこのはさん](https://twitter.com/MikumoConoHa/status/836441856313438208)は、おうちに帰るときは入り口のロッカーにスマホを預けているからだと思っています。
女の子の一人暮らしにはデータセンターはセキュリティ完璧で安心の建物かもしれません。
ちょっとうるさくて寒くて交通が不便かもしれませんが･･･。
ただ、住所まで非公開のデータセンターで宅配便をどうしているのかが気になります。
このはさんはAmazonの注文をどうしているのでしょうか。コンビニ受け取りかな？

また、このはモードについても今ではプロダクトにこのはモードが実装されていないなんていうことはありえないほど当然の機能として要件に盛り込まれているようです。
[ConoHa Mobile](https://www.conoha.jp/app/conohamobile/)にも当然このはモードがあります。

|Top|Config|
|---|---|
|![Screenshot_20171206-082615.png](https://qiita-image-store.s3.amazonaws.com/0/213047/b8701090-16c7-b1aa-1757-d57eb0e5906b.png)|![Screenshot_20171206-120953.png](https://qiita-image-store.s3.amazonaws.com/0/213047/02c6ff3b-cd51-2e72-995a-46e305d9f2e4.png)|


あとは、ConoHaに障害が発生している時のこのはさんは、公式キャラクターとしてはTwitter上では黙っているか謝るかしかないとのことで、所在なさげにされているそうです。
そんなことにさせてはいけないと、エンジニアのお兄さんたちの障害対策へのモチベーションは大変高いそう？です。
サービス運用とキャラクターの関係はそのような効果もあるのですね。

他にもいろいろな話を聞けて興味深かったです。
東京開催はこれからのようですので、ご都合がつく方は参加されてもよいのではないでしょうか。
2017/12/10現在では、まだ席はあるようです。

- [第14回 HosCon - GMO Hosting Conference - @渋谷](https://gmohoscon.connpass.com/event/72551/)

ではでは。