14
鈴木商店の開発環境 株式会社鈴木商店 土持昌志 Copyright © 2015 株式会社鈴木商店, All rights reserved. 1 鈴木商店の土持です。私からは鈴木商店が普段使っている開発環境をご紹介させていただきます。

第一回REST勉強会_鈴木商店の開発環境

Embed Size (px)

Citation preview

Page 1: 第一回REST勉強会_鈴木商店の開発環境

鈴木商店の開発環境

株式会社鈴木商店 土持昌志 Copyright © 2015 株式会社鈴木商店, All rights reserved.1

鈴木商店の土持です。私からは鈴木商店が普段使っている開発環境をご紹介させていただきます。

Page 2: 第一回REST勉強会_鈴木商店の開発環境

AWSVirtual Private Cloud

VPC Subnet : プライベートVPC Subnet : パブリック

Internet Gateway

Virtual Private Gateway

鈴木商店(大阪)

Gitサーバ

Customer Gateway

個人用開発サーバ

Vyatta

美雲屋(徳島)

Customer Gateway

Internet

Git

ファイルサーバ

鈴木商店の開発環境

監視サーバ

自宅/外出先Webサーバ

Webサーバ RDS

プロジェクト(リリース)

File

VPN

Webサーバ

プロジェクト(開発)

Web

RDS

静的コンテンツ自社サイト

2 Copyright © 2015 株式会社鈴木商店, All rights reserved.

こちらが鈴木商店の開発環境の全体像になります。鈴木商店で使っているサーバーは全てAWS上に構築しています。

Page 3: 第一回REST勉強会_鈴木商店の開発環境

AWSVirtual Private Cloud

VPC Subnet : プライベートVPC Subnet : パブリック

Internet Gateway

Virtual Private Gateway

鈴木商店(大阪)

Gitサーバ

Customer Gateway

個人用開発サーバ

Vyatta

美雲屋(徳島)

Customer Gateway

Internet

Git

ファイルサーバ

鈴木商店の開発環境

自宅/外出先Webサーバ

Webサーバ RDS

プロジェクト(リリース)

File

VPN

Webサーバ

プロジェクト(開発)

Web

RDS

静的コンテンツ自社サイト

監視サーバ

3 Copyright © 2015 株式会社鈴木商店, All rights reserved.

VPCの中では公開用のパブリックサブネットと内部用のプライベートサブネットを作成しています。VPCというのはAWSの中に独自のネットワーク基盤を構築するサービスで、この中であれば色々ネットワーク構成を考えたりできるのでAWSの中では好きなサービスです。T2インスタンスといった新しくリリースされる機能はVPCが前提になってることが増えてきているようなので押さえておきたい所です。

Page 4: 第一回REST勉強会_鈴木商店の開発環境

AWSVirtual Private Cloud

VPC Subnet : VPC Subnet : パブリック

Internet Gateway

Virtual Private Gateway

鈴木商店(大阪)

Gitサーバ

Customer Gateway

個人用開発サーバ

Vyatta

美雲屋(徳島)

Customer Gateway

Internet

Git

ファイルサーバ

鈴木商店の開発環境

自宅/外出先Webサーバ

Webサーバ RDS

プロジェクト(リリース)

File

VPN

Web

プロジェクト(開発)

Web

RDS

静的コンテンツ自社サイト

監視サーバ

4 Copyright © 2015 株式会社鈴木商店, All rights reserved.

パブリックのサブネットには自社サイトやリリースしたプロジェクトの公開サーバーを置いています。自社サイトの静的コンテンツはS3に置いています。S3はVPCに対応していないサービスなのでこの図ではVPCの外になってます。

Page 5: 第一回REST勉強会_鈴木商店の開発環境

AWSVirtual Private Cloud

VPC Subnet : プライベートVPC Subnet :

Internet Gateway

Virtual Private Gateway

鈴木商店(大阪)

Gitサーバ

Customer Gateway

個人用開発サーバ

Vyatta

美雲屋(徳島)

Customer Gateway

Internet

Git

ファイルサーバ

鈴木商店の開発環境

自宅/外出先Web

Web RDS

プロジェクト(リリース)

File

VPN

Webサーバ

プロジェクト(開発)

Web

RDS

静的コンテンツ自社サイト

監視サーバ

5 Copyright © 2015 株式会社鈴木商店, All rights reserved.

プライベート側には開発中のプロジェクトのインスタンスや、社内のファイルサーバー、個人用の自由に使えるインスタンスを配置しています。インスタンスはプロジェクトごと、人ごとに立てるようにしています。

Page 6: 第一回REST勉強会_鈴木商店の開発環境

鈴木商店の開発環境

既存開発環境

AMI

イメージ取得 インスタンス起動

新しいメンバーに開発環境を配布

6 Copyright © 2015 株式会社鈴木商店, All rights reserved.

AWSを使って開発環境を作るメリットはまさに勉強会の中でやったんですが、プロジェクトのメンバーが増えた時に今ある環境をコピーできるところだと思います。仮想環境でも同じようなことはできますがその下にあるハードウェアのキャパを考えなくていいのが楽です。ただしこういう使い方だとどうしてもサーバーの数が多くなって、そのままだとかなり料金がかさむので夜間は自動的にインスタンスがストップするようにしています。

Page 7: 第一回REST勉強会_鈴木商店の開発環境

鈴木商店の開発環境

監視サーバ AWS SDK for PHP

EC2インスタンス

タグ取得/ State取得

7 Copyright © 2015 株式会社鈴木商店, All rights reserved.

仕組みとしてはAWSが配布しているSDKを使うとインスタンスの情報を取ってきたり操作ができるようになるのでこれを使います。準備として夜間止めてもいいインスタンスはタグにスタート用・ストップ用のタグと時間を入れておきます。AWS SDK for PHPを使って組んだ処理を状態監視用インスタンスでバッチ実行するとタグの情報と現在のインスタンスステートを取得して、

Page 8: 第一回REST勉強会_鈴木商店の開発環境

鈴木商店の開発環境

監視サーバ AWS SDK for PHP

EC2インスタンス

起動/停止

8 Copyright © 2015 株式会社鈴木商店, All rights reserved.

時間を過ぎて指定したステートになっていなければ起こす、寝かせるということをやっています。この仕組みを入れてからEC2の料金は全部が立ち上げっぱなしの状態に比べて3分の1位にはなってると思います。

Page 9: 第一回REST勉強会_鈴木商店の開発環境

AWSVirtual Private Cloud

VPC Subnet : プライベートVPC Subnet : パブリック

Internet Gateway

Virtual Private Gateway

鈴木商店(大阪)

Gitサーバ

Customer Gateway

個人用開発サーバ

Vyatta

美雲屋(徳島)

Customer Gateway

Internet

Git

ファイルサーバ

鈴木商店の開発環境

自宅/外出先Web

Webサーバ RDS

プロジェクト(リリース)

File

VPN

Webサーバ

プロジェクト(開発)

Web

RDS

静的コンテンツ自社サイト

監視サーバ

9 Copyright © 2015 株式会社鈴木商店, All rights reserved.

VPCには大阪にあるオフィスと、徳島にあるサテライトオフィス美雲屋から拠点間VPNで常時接続できるように構築しています。開発するときはVPC上の自分のインスタンスにログインしてコーディングしていく形になります。エディタは個人で好きなものを使えますがVimを使ってる人が多いみたいです。

Page 10: 第一回REST勉強会_鈴木商店の開発環境

AWSVirtual Private Cloud

VPC Subnet : プライベートVPC Subnet : パブリック

Internet Gateway

Virtual Private Gateway

鈴木商店(大阪)

Gitサーバ

Customer Gateway

個人用開発サーバ

Vyatta

美雲屋(徳島)

Customer Gateway

Internet

Git

ファイルサーバ

鈴木商店の開発環境

自宅/外出先Web

Webサーバ RDS

プロジェクト(リリース)

File

VPN

Webサーバ

プロジェクト(開発)

Web

RDS

静的コンテンツ自社サイト

監視サーバ

10 Copyright © 2015 株式会社鈴木商店, All rights reserved.

バージョン管理システムは現在Gitサーバーを立ててデプロイもここからやっています。今年はCodeCommitというAWSが面倒を見てくれるGitサービスがリリースされる予定だそうですので、リリースされたら試してみたいなと思っています。

Page 11: 第一回REST勉強会_鈴木商店の開発環境

AWSVirtual Private Cloud

VPC Subnet : プライベートVPC Subnet : パブリック

Internet Gateway

Virtual Private Gateway

鈴木商店(大阪)

Gitサーバ

Customer Gateway

個人用開発サーバ

Vyatta

美雲屋(徳島)

Customer Gateway

Internet

Git

ファイルサーバ

鈴木商店の開発環境

自宅/外出先Webサーバ

Webサーバ RDS

プロジェクト(リリース)

File

VPN

Webサーバ

プロジェクト(開発)

Web

RDS

静的コンテンツ自社サイト

監視サーバ

11 Copyright © 2015 株式会社鈴木商店, All rights reserved.

Vyattaというソフトウェアルータ用のOSを乗せたインスタンスも立てています。このVyattaでVPNサーバーを立てているので、ここにVPN接続してしてどこからでもプライベート領域に入って開発できるようにしています。最後に開発環境ということでオフィスの様子も少しだけ紹介します。

Page 12: 第一回REST勉強会_鈴木商店の開発環境

鈴木商店の開発環境

12 Copyright © 2015 株式会社鈴木商店, All rights reserved.

こちらは大阪オフィスの写真です。MacでもWindowsでも好きな端末と、27インチと24インチのモニタが2枚支給されるので結構快適に作業できます。

Page 13: 第一回REST勉強会_鈴木商店の開発環境

鈴木商店の開発環境

13 Copyright © 2015 株式会社鈴木商店, All rights reserved.

こちらは徳島にある美雲屋の様子です。自分は残念ながらまだ行ったことないんですが夏は近所の浜にウミガメが産卵に来るぐらい綺麗な所らしいので今年は是非行ってみたいなと思っています。

Page 14: 第一回REST勉強会_鈴木商店の開発環境

ありがとうございました

Copyright © 2015 株式会社鈴木商店, All rights reserved.14

紹介は以上です。ご静聴ありがとうございました。