8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Deisインストール職人が朝早起きしなくても済むTipsいくつか(Azure編)

Last updated at Posted at 2015-12-27

注意

本記事は Deis v1.x について書いています。
最新の Deis は v2.0.1 で、基盤が Fleet から Kubernetes になるなど大きな変更がありましたので、本記事は参考になりません。

この記事の目的

Engine Yard さんが主導して開発を進めている Micro PaaS 実装の Deis は,類似実装よりも安定して稼働します.
大人の事情で Heroku が使えない職場でも,Hubot や,ちょっとした業務改善 Rails アプリをお気軽にデプロイできるようになるので,かなりオススメです.

しかし,日本語でも英語でも情報が断片的で,最初はインストールでハマります.…というか,私は大いにハマりました.ので,メモ.

(コンテナデプロイ中の暇な時に,加筆していきます.)

Azure の記事の内容を鵜呑みにしてはいけない

ググると,Deis 本家の情報よりも上位に Azure の記事が出る場合があります.Azure の記事は日本語版 もあり,つい頼りたくなりますが,本稿執筆時点ではお勧めしません.
記述の内容と,Azure が github.com で公開しているスクリプトの内容とが一致しない上に,かなり古いバージョンの CoreOS がインストールされるため,一手間かけないと DockerHub からコンテナをデプロイできません.

どう一手間をかければよいのかは,私が Deis の issue に残してありますが,本家の情報に従ったほうが確実です.

ただし,本家の情報もいろいろ足りていないところがあるので,一読しておくことは無駄ではありません.

再デプロイ時には,create-azure-user-data の再実行を忘れない

最初の頃は,いろいろと設定に失敗して,Azure のリソースグループの削除と再デプロイを行うことになると思います.
その際,は,他の設定はそのままでも create-azure-user-data の再実行は忘れずに行わなければなりません.

$ ./create-azure-user-data $(curl -s https://discovery.etcd.io/new)

これを忘れると,issue に上がっているようなエラー で先に進めなくなります.

加えて,azure-user-data が書き換わったわけですから,BASE64 化して, parameter.json の書き換えすることもお忘れなく.

parameter.json に記入する公開鍵は空パスワードで作る

これを忘れるとどういうエラーになるのかは忘れましたが,うまく行きません.
この公開鍵に対応する秘密鍵はあとで deisctl コマンドでインストールしますが,
その後の運用では登場しません.

platform のインストール完了後に deis コマンドで(ユーザや管理者が)使う鍵ペアはこれとは別に管理されますし,むしろ一緒にしないようがセキュリティ上も宜しいかと思います.

Azure へのリソースデプロイ時の進捗確認や失敗原因分析

Deis のデプロイに限らないので,別の記事にしました.

バージョン不一致に注意する

これは,何ヶ月か前にデプロイを経験したインストール職人が陥りやすい罠です.
Deis は下記の3つの要素から成り立っています.

  • platform (CoreOS 上にある)
  • deisctl コマンド (クライアント側にある)
  • deis コマンド (クライアント側にある)

これらのバージョンは,必ず一致させてください.
不一致な場合でも,運が良ければ動きます.でも大抵の場合,よくわからない 500 エラーなどが出て悩まされます.
「マイナーバージョンが上がった場合,互換性はほぼ無い」くらいに思っておいたほうが安全です.

DNS の設定は,秘密鍵のインストール後にする

DNS の設定が伝搬されるには,それなりの時間がかかります.
そして,インストールに失敗して Azure への再デプロイをした場合には IP アドレスは変わります.
よって,ほぼ失敗は無いという確証が得られるまで, DNS の設定は遅延させたほうがトラブルが少なくなります.
また,下記列挙のようなことも考慮すると良いと思います.

  • ワイルドカードのレコードは A ではなく CNAME にする
  • A レコードの TTL は可能な限り短くしておく
  • Route53 や AzureDNS など,クラウドとの親和性の高い(伝搬の早い) DNS サービスを選ぶ
8
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?