【応用】3時間でaws環境構築!railsアプリはじめての本番公開
TRANSCRIPT
株式会社Dive into CodeFounder 代表取締役 CE 野呂 浩良
ails3認定ブロンズ技術者
3時間でA 環境構築!ailsアプリ じめて 本番公開
もう aa に頼らなくても大丈夫!A で未だに本番環境 構築をしたこ
とがない方向けに手順をすべて体験いただきます。
1Copyright © 2015-2016 Dive into Code Corp. All ights eserved.
構成
1. Introduction ( 5分)自己紹介、本日 ゴール
2. 構築するシステム 構成と必要事項( 20分)
3. 実践ワーク (140分)A アカウントとEC2インスタンス作成、お試しアプリ開発とGitHubプッシュ、A EC2で本番環境構築、EC2でネット公開、Capistranoで自動デプロイ
4. スキルアップ コツ ( 5分)エンジニアになる3つ 方法
5. Appendixお薦め 学習サイト、書籍、ツール等
2
私たち ミッション
Copyright © 2015-2016 Dive into Code Corp. All ights eserved.
すべて 人が、テクノロジーを武器にして活躍できる社会をつくる
対面講義 & ネット
ails基礎
チーム開発
• uby( ails)• ostgre• H• C (Bootstrap)
EBエンジニア
経験ゼロ
デザイン基礎
機能
受託開発
グループタスク機能
3Copyright © 2015 TimeShift Corp. All Rights Reserved.
Introduction野呂 浩良ゼロから プログラミングを2回経験。
BAエンジニア講師。リクルートやワークスアプリケーションズなど異業種・異職種へ 転職を4度経験。あらゆる時間を計測し、未経験 職務でゼロから短期間に成果をあげる独自 生産性向上手法を確立。ワークスアプリケーションズ 特待生制度「問題解決能力発掘プログラム」 突破経験と1年間 独立起業過程でエンジニア人材
不足を痛感した原体験から、実務経験を得てエンジニアになるため プログラミングスクール「DI E I C DE」を創業。
4
キャリア
Copyright © 2015-2016 Dive into Code Corp. All ights eserved.
10年以上、非エンジニア社会人。異業種・異職種で 転職と経営大学院を経て2015年4月に起業。
1980年 誕生(松坂世代)
2003年 株式会社すみや 【接客販売】
2006年 株式会社リクルート 【法人営業】
2009年 株式会社ワークスアプリケーションズ 【運用保守】
2012年 グロービス経営大学院大学 BA
2015年 株式会社Dive into Code(創業)
5
プログラミングと 出会い
Copyright © 2015-2016 Dive into Code Corp. All ights eserved.
①問題解決能力発掘プログラム(2009年10月~2010年3月)
・ネットなし・レクチャー禁止・文献なし・呼び出し&指導入り
本ネット
C B
DE HI
AC E DB( )
エンジニア
経験ゼロ
独力
C B
C B
DE HI
DE HI
6
プログラミングと 出会い
Copyright © 2015-2016 Dive into Code Corp. All ights eserved.
②リーンスタートアップ(2014年4月~2014年10月)
・アイデアソン 回・ハッカソン 回・ tartup eekend 3回・もくもく会 回
本
ネット
300アイデア
3プラン
1プラン
エンジニアメンバー
ゼロ独力開発
独力開発
エンジニアが・・・
7
プログラミング・スクールを開始
Copyright © 2015-2016 Dive into Code Corp. All ights eserved.
『自分で カタチにできない』と思い込み、エンジニアを探すという口実で前に進められずにいる非エンジニア
まずカタチにすることでリーンスタートアップを行いたい・エンジニアとして働きたいという課題を
自力でプロトタイプを作成できるスキルを身につけることで解決する。
誰 ?何 課題を?どう解決する か?
8
本日 ゴール
3つ 状態に到達すること
1. A EC2で本番公開する方法を理解できている
2. 開発環境から本番環境へ自動デプロイができる
3. モチベーションがグッと向上している
Copyright © 2015-2016 Dive into Code Corp. All ights eserved.
10
全体像
4ステップで、A EC2に自動デプロイ
A アカウントとEC2インスタンス作成
お試しアプリ開発とGitHubプッシュ
A EC2で本番環境構築
EC2でネット公開
Capistranoで自動デプロイ
1
2
3
0
4
11
全体像
【図解】4ステップ
開発環境ローカル / Cloud9
本番環境A EC2
リモートリポジトリGitHub / Bitbucket
achieve achieve achieve
achieve/current
0
1
2
3
4
12
ステップ詳細
A アカウントとEC2インスタンス作成0
A にユーザ登録をして2つ サービスを使います。
1. Elastic Conputing Cloud サービスebアプリケーションサーバ用 EC2
2. Elastic I サービス固定I アドレス付与用 EI
※1年以上サービスを利用すると必ず課金されます!
14
ステップ詳細
お試しアプリ開発とGitHubプッシュ1
本番環境用に設定を追加してプッシュします。
1. nicornを本番環境 み使う開発環境 eb: ickで十分
2. nicorn 起動停止独自コマンド 定義EC2内で rake タスクで起動停止できる様に
15
ステップ詳細
お試しアプリ開発とGitHubプッシュ1
開発環境ローカル / Cloud9
リモートリポジトリGitHub / Bitbucket
achieve achieve
Hキー 登録
rails newrails g scaffold
git remote add
git push
nicorn起動停止タスク
16
ステップ詳細
A EC2で本番環境構築2
初期設定と ユーザ 変更、環境構築を行います。
1. 初期設定を行う目的作業上 利便性、リソース 浪費 防止
2. ユーザを変更する目的ec2-user 全世界共通で危険。pemキーも。
3. 環境構築 本番 み使うも もインストールrbenvをシステムワイドへ、nginxを利用
17
開発環境
ステップ詳細
A EC2で本番環境構築2
pemからアクセス 初期設定
Git, rbenv, ruby-build, uby, bundler, uby on ails, ostgre , nginx
sshキーでアクセス
ec2-user削除 ユーザ追加
本番環境
18
ステップ詳細
EC2でネット公開
本番公開用ディレクトリを作り、試しに動かします。
1. 公開ディレクトリ /var/www がお作法/var/www/アプリケーション名
varと 、内容が変化するもwww 、 orld ide eb こと
2. ginxと nicornを .sockファイルで疎通させるnix Domain ocket つまり、同一 上で動いているプロ
セスが通信を行うため ソケットで疎通する
3
19
ステップ詳細
EC2でネット公開3
achieve achievegit clone
公開ディレクトリ作成
gemインストール
シークレットキー
nginx ⇄ nicorn
DBとテーブル作成
リモートリポジトリ 本番環境
20
ステップ詳細
Capistranoで自動デプロイ4
デプロイ後 ディレクトリ 世代管理ができるように。
1. デプロイ後 ディレクトリ構造に合わせて設定修正nicorn 起動時に読み込む .sockファイル
nginx 起動時に生成する .sockファイル
2. current, releases, shared, repocurrent 本番環境で稼働するも が、releases 過去デプロイしたも すべてが、shared デプロイ毎に変化しないも が、repo GitHubからクローンしてきたも が格納
21
ステップ詳細
Capistranoで自動デプロイ4
開発環境
achieve achieve Capistranoデプロイ後
achieve/ current/ -> releases/latest releases/
DD -> current
DD
DD
shared/
log -> /current/log
repo/
本番環境リモートリポジトリ
nicorn 設定修正
nginx 設定修正
デプロイ準備
デプロイ
環境変数 設定