Help us understand the problem. What is going on with this article?

環境要らずの環境構築

More than 1 year has passed since last update.

概要

  • :frowning2: 開発環境構築には、もう疲れた (╯°□°)╯︵ ┻━┻

  • :frowning2: Chef, Itamae, Ansible… どれだけアップデートしても、またトレンド変わるんでしょ (╯°□°)╯︵ ┻━┻

  • お仕事はアプリケーションエンジニア。そこじゃないんだよ、やりたいことは。そこは価値を生んでない。車輪なのだよ。

そう。アプリケーション開発がしたい。
そんな集中できる環境を目指して、AWSを極限まで使ってみる。
AWSに踊らされてみる。

なお、AWSでは…

  • 2017/12 東京リージョンでも、 CodeStarがサービス提供開始
  • 2017/11 他のリージョンで、(CodeStarに連携した)Cloud9がサービス提供開始

まさにタイムリー。

リージョン選択

  • 使用できるリージョンが限られる
  • コストは最小に抑えたい
  • but それなりのレスポンスで使いたい

↓ を統合的にみて、
us-west-2(Oregon) 採用

  • レイテンシ、若干ミスった気もするけど、今のところ体感そんなにかかってない。cloud9無問題
リージョン CodeStar Cloud9 ほか EC2平均価格
(対Verginia比)
*1
東京からの
httpレイテンシ (ms)
*2
東京からの実距離(Mm)
ap-northeast-1 Tokyo 1.48 43
ap-southeast-1 Singapore 1.5 180 5.3
ap-southeast-2 Sydney 1.44 272 7.8
ap-northeast-2 Seoul 1.45 83 1.1
ムンバイ x: CodeBuild
us-east-1 Virginia 1 293 10.9
us-west-1 California 1.21 264 8.5
us-west-2 Oregon 1 409
(調査により結構ブレる)
8
カナダ
sa-east-1 Sanpaulo x:CodeBuild 1.75 722 18.5
eu-central-1 Frankfrt 1.18 618 9.5
eu-west-1 Ireland 1.09 603 9.6
ロンドン
パリ x:CodeBuild
x: CodeCommit
x:CodePipeline

参考: (他人のふんどし)

*1. AWS EC2 リージョン別 料金比較
*2. EC2リージョン別応答時間
- 2016年: https://qiita.com/toritori0318/items/5bd5ba7c609fda7292f6
- 2014年: http://www.denet.ad.jp/technology/2014/01/vol9-aws.html

導入手順

以下の記事に従う。なかなかスムーズ。

https://qiita.com/hayao_k/items/743be4d8f5e21844ed51

トップページ step1.png
テンプレート選択 step2.png 各言語 / フレームワーク
×
EC2 / Elastic Beanstalk / Lambda
レポジトリ選択 step3.png プロジェクト名入力
レポジトリ
(CodeCommit = BitBucket) GitHub
構成概要の確認 step4.png レポジトリ ビルド テスト デプロイ 本番モニタリングのシステム構成

←は Javaを選んだので、ビルドが入った。
Rails / Express などでは入らない
キーペアの登録 (撮り忘れた)
開発ツールの選択 step5.png
step6.png
事後変更可能。
また、チーム内のメンバー毎に変更可能

CUI IDE: Eclipse / VisualStudio WebIDE: Cloud9 RailsTutorialでも推奨されている統合開発環境。 ボタン一つでサービス起動も。 今回はコレ。無料利用できるというはずの t2.microで。
ダッシュボード(初期化中) step7.png 数分の「作成中」表示の後セットアップ完了
ダッシュボード step8-1.png
step8-2.png
プロジェクトダッシュボード。

構成は加工可能。
画面右側の「アプリケーションのエンドポイント」で
現masterの物件(要は staging or 本番)が表示可能
Cloud9 step9.png IDE ですね。
「Run」でサービス起動。
画面下端のコンソールでコマンド操作なども可能。
コミットもボタン・ショートカットで一撃。

IDEとしての設定も豊富。

ソース外の部分の設定(ベースとするVMテンプレート、コマンドインストールなどなど)もある程度設定可能らしい (要調査)

社内開発環境との対比

要は、AWSで一撃で、

開発VM, bitbucket, jenkins, jira, deploy, staging環境, private DNS まで用意してくれる

※ まだ使いこなせてなくて、ドキュメントの誤読は多分にふくまれるかと思いますが…

今回の環境 現職での開発環境 備考・制限
Cloud9
t2.micro
開発VM - 各種IPも設定済み
- nginx / apache なども設定済み
- デフォルトでは30分でインスタンスを自動終了
- 開発スタイルに応じて、選択可能
sqlite3 開発DB - default設定の話。設定はほぼ同等に必要そう。
VPC powerDNS - 各種IP設定済み(開発環境・本番環境とも)
CodeCommit BitBucket git, branch, PR…基本同じ
- 1Prjあたり、メンバー数いくらでも。(IAM設定)
- 1リージョンで333Prjまで。
- 1メンバーで、10Prjまで参加可能。
Jira Croud JIRA - 初期7日間無料
CodeBuild
CodeTest
Jenkins - マージからの自動ビルド・テスト
CodePipeline Deploy, Capistrano - デプロイ
- マージ→ビルド→テスト→デプロイ まで一気通貫
- 編集/追加可能
-- but 「壊れても保証しません!」
EC2
Elastic Beanstalk
Lambda
本番環境AP EBStackなら自動スケールアウトまで。
最初から動く状態で手配されている (T-T)
ここでインスタンス料金が課金される
(自分で設定) - 本番DB
- 本番Memcache
- 本番FS
- ...
ここら辺は要調査
Elastic Beanstalk 本番LB / VIP管理 自動スケーリング、部分アップデート…
夢が広がります
Route 53 ドメイン設定 9 USD/年 (目安。ドメイン次第)
設定容易
Certificate Manager SSH証明書 無料 & 統合管理
CloudWatch Mackerel
logentries

直近のTODO

  • 実Railsコード(サンプルアプリ)で本番まで使い倒す
  • 環境別の設定(DB/FS/TD/...)
  • インスタンス毎のイメージ設定など
  • 費用測定 -> 343円 (本番環境 自動デプロイで一か月放置:sweat_smile: )
ToqTock
スタートアップ企業 Vitalize株式会社 CTO。 営業から、採用から、新規も保守も自社サービスも、足回りも。 トレードオフのチューニングとゲーミフィケーションが好きですね。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away