LoginSignup
3
3

More than 5 years have passed since last update.

OttoでAWSにWebアプリケーションをデプロイする

Last updated at Posted at 2015-11-15

Otto

ほぼチュートリアルに沿ってひとまず通す。

環境など

  • Otto 0.1.2
  • OS X Yosemite

VirtualBoxのインストール

からOS X版をダウンロード・インストールする。

Ottoのインストール

からOS X版zipをダウンロード・解凍し、バイナリをパスの通ったところに置く。

チュートリアルのアプリケーションのダウンロード

$ git clone https://github.com/hashicorp/otto-getting-started.git
$ cd otto-getting-started/

中身はセッションを使う程度の単純なSinatraアプリ。

Appfileの作成

このファイルは必須ではない。またMongoDBへの依存を登録してあるが使わない。

$ vim Appfile

application {
  name = "otto-getting-started"
  type = "ruby"

  dependency {
    source = "github.com/hashicorp/otto/examples/mongodb"
  }
}

project {
  name = "otto-getting-started"
  infrastructure = "otto-getting-started"
}

infrastructure "otto-getting-started" {
  type = "aws"
  flavor = "simple"
}

customization "ruby" {
  ruby_version = "2.1"
}

コンパイル

$ otto compile

Appfileが参照されるが、なくてもRubyアプリケーションであることをOttoが検出する。

開発環境の作成

$ otto dev

Vagrantがなければインストールされる。

開発環境ログイン

$ otto dev ssh
vagrant@precise64:/vagrant$ ruby -v
ruby 2.1.7p400 (2015-08-18 revision 51632) [x86_64-linux-gnu]

設定した依存サービスを名前解決できることを確認する。

vagrant@precise64:/vagrant$ nslookup mongodb.service.consul

開発環境でのアプリケーション動作確認

vagrant@precise64:/vagrant$ bundle && rackup --host 0.0.0.0

アドレスを確認する。

$ otto dev address

9292番でアプリケーションが立ち上がっているのを確認。

本番インフラ設定

対応インフラは現在AWSのみ。公開鍵がなければ作り、また秘密鍵をssh-addしておく。

$ ssh-keygen -y -f ~/.ssh/my.pem > ~/.ssh/my.pub
$ ssh-add ~/.ssh/my.pem 
$ otto infra

access key,secret keyと公開鍵の場所を要求されるので入力する。passwordは適当に決める。
インフラ管理にTerraformを使うので、なければインストールされる。

passwordはこのあとずっと使う。環境変数に入れておけば入力しなくてよい。

$ export OTTO_CREDS_PASSWORD=XXXXX

結果を確認する。

$ otto status
..
    Infra:           READY
..

うまくいけば不要だが、otto infraの設定を何回もミスったので以下でクレデンシャルのキャッシュを削除してやり直した。

$ rm -rf  ~/.otto.d/cache/creds/otto-getting-started

EC2のリージョンはデフォルトでus-east-1になる。(main.tfにリージョンを書いてみたが反映されなかった)

$ otto infra info
..
region = us-east-1
..

ビルド

結構時間がかかる。

$ otto build

イメージ管理にPackerを使うので、なければインストールされる。

t2.microインスタンスが作成され、インスタンスへのSSHログイン、Consulや各種ミドルウェアインストールが行われた後、AMIが作成される。

結果を確認する。

$ otto status
..
    Build:           BUILD READY
..

デプロイ

$ otto deploy

作ったAMIをもとにアプリケーションがデプロイされてURLが表示されるので動作確認する。

3
3
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
3
3