【応用】3時間でaws環境構築!railsアプリはじめての本番公開

23
株式会社Dive into Code Founder 代表取締役 CE㻻 野呂 浩良 㻾ails3認定ブロンズ技術者 3時間でA㼃㻿環境構築! 㻾ailsアプリ䛿じめて䛾本番公開 もう㻼aa㻿に頼らなくても大丈夫!A㼃㻿で未だに本番環境䛾構築をしたこ とがない方向けに手順をすべて体験いただきます。

Upload: dive-into-code-corp

Post on 15-Jan-2017

348 views

Category:

Education


0 download

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.

9Copyright © 2015 TimeShift Corp. All Rights Reserved.

実践ワーク

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年以上サービスを利用すると必ず課金されます!

13

ステップ詳細

  A アカウントとEC2インスタンス作成0

Amazon eb ervice

EC2 EI

アカウント登録

サービス追加と紐付け

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 設定修正

デプロイ準備

デプロイ

環境変数 設定

22

エンジニアになるなら DIVE INTO CODE

受講体験記 ご紹介

私たちと共に稼ぐチカラを磨きましょう!

ふるって ご参加をお待ちしております!