「フロントエンドエンジニアに伝えたいインフラの話」参加メモ 関西フロントエンドUG 2017/02/18

関西フロントエンドUG勉強会
「フロントエンドエンジニアに伝えたいインフラの話」
https://kfug.connpass.com/event/49305/
の参加メモです。

全般的にAWSいいね！という話ばかりでした。
サービスの内容については、書き取った内容を記載していますが、
最新の正確な情報は各サービス公式サイトの確認をお願いいたします。

---

## フロントエンドで捗るAWS ｰ WordPress の事例と共に
岡本 秀高 さん

> AMIMOTOでは、AWSクラウド上で動くWordPressホスティングサービスを提供しています。なぜクラウド上でWordPressを利用するようになったのか。ケーススタディと共にご紹介します。（CMSユーザー・管理者向け）

- クラウドは環境の規模を柔軟に変えられる
- 料金は使った分だけ
- マネージドサービスならインフラレイヤのメンテを丸投げできる

AWSの豊富なサービス群を活用できる

- Amazon Elasticsearch
- Amazon lightsail
- Amazon Cognito User Pools (ユーザ認証)
- Amazon API Gateway
- AWS Certificate Manager (SSL)

---

## Frontend Meets a Service
後藤 知宏 さん

> Serverless を使用すれば Javascript を使用して簡単に 公開API を実装することが出来ます。
> バックエンドのJSにつきものな面倒なExpress の学習も抜きにさっと始められる Serverless のAPI 実装を、 Serverless と Webpack の活用を通じて紹介していきます。

便利なサービスを使うことで、バックエンドを組まなくても、作れるものがある。

- PaaS
- Baas
- FaaS

### PaaS - Platform as a Service -
サービスの構築をしなくても自動でサーバーを立ち上げてくれる。
構築まではやってくれるが、保守・スケール・監視は自分で。
バックエンドアプリケーションの構築必要。
簡単なAPIサーバの構築や、APIモックなどをサッと上げてしまうには楽。

### BaaS - Backend as a Service -
データの管理、検索、Push通知、メール配信、認証など、機能ごとに様々なモノがある。
サービスから提供されれるAPIなどを通じて機能を利用できる。
一方で認証周り等でフロントエンドでの活用は難しく、
バックエンド内での実装負担削減に用いられる。

### FaaS - Function as a Service -
Javascriptのfunctionが書ければ、バックエンドを構築することができる。
サーバーサイドに関する知識は殆ど不要。

#### AWS Lambda
関数をデプロイしたら、API Gateway やスケジューラなどと連動させて様々な処理を行わせることが可能。
構成管理は Serverless framework を通じて簡単に行うことができる。
Serverless は Lambda の面倒なデプロイなどのタスクを自動で処理してくれるツール。
機能単位では無く関数単位でデプロイできる。

---

## 常時SSLとCDNの話
岩本貴久さん

### 常時SSL対応していますか？

- 通常(非SSL)のインターネット通信は傍受可能
- 個人情報、クレジットカード情報等をそのまま通信することは危険
- 通信の暗号化の仕組み
- HTTP/2は常時SSLが必須

- メリット 暗号化される
- デメリット サーバー負荷 SSL証明書の手配・更新

### SSL証明書

- 通信を暗号化するための、鍵と鍵穴
- 証明書の取得が面倒くさい
- WEBサーバーへの割り当て作業
- 証明書の更新

### CDN

検索やログイン画面などがキャッシュされないよう注意
キャッシュ時間を考慮

### AWSなら快適

AWS Certificate Manager - 無料でSSL
Amazon CloudFront のみで利用可能、自動更新

Elastic Load Balancing - ロードバランサ
複数台のマシンで負荷分散

CloudFront ｰ CDN
都度の利用 従量課金 最低利用期間無し、安い

ｰｰｰ

## VPSからクラウドサーバーに移ったらこんなに快適に！
榊原昌彦 さん

>某VPSからAWSに移ったメリットを中心にご紹介します。EC2, RDS, S3, SNSあたりの話をします。初心者向け。

### 1. 自宅サーバー

- 構築が大変
- 電源抜いたら死ぬ
- 自由度は高い

### 2. レンタルサーバー

- とにかく安い
- 自由はない
- 最近はgitやssh等使えて便利

### 3. VPS

- 融通が利くけれど、融通が利かない
- 構築の煩雑さ
- セキュリティの心配
- 他の同居VPSにパフォーマンスを阻害される
- プラン変更時の移転が大変

### 4. AWS

- メモリの増強も簡単数クリック
- スナップショットがとれる
- 便利だがお高い

#### サービス群

RDS　データベースサービス
VPS上にDBを入れるのでは無く、データベース専用サービスがある。
DBだけだから、バックアップも高速。かつバックアップの復元も楽。
DB単位でアクセス制限できるから、データ管理を寄り強固にできる。

S3 静的ファイルの保管サービス

Elastic Transcoder メディア変換サービス

Cloud Front 高速コンテンツ配信

プッシュ通知、ユーザー制御サービスなど...

----

## LT

### 5分でブログ公開する話
しまきょうすけ さん

Netlify

スタティックサイトジェネレーター選んで、cloneして、ドメイン設定するだけ。

### 開発環境を構築する話
小渕周 さん

AppleMusicを使って100GBあいた話

技術書は Amazon Unlimited を使うと捗る

環境 VartualBox Vagrant bento


### フロントエンドとインフラ層をつなぐ知識
pastelInc さん

インフラ層の学習すべきか？

学ぶ機会はある

- トラブルに遭遇
- パフォーマンスの話
- 層の違いを跨ぐ技術 Vagrant Docker 文字エンコード
- 所属する組織が提供するサービスであれば構成の知識を吸収
- フロントエンドも層の違う知識を、隠蔽化されているだけで使っている

知らないはずは無い

- 層の違うエンジニアとコミュニケーションする
- 層の違いを埋める知識には人や組織によって差がある
- 完全な分業は無理なので繋ぎの知識を知っている

どう学ぼう

- 全部を学ぶ方法は無いとき付いている
- 学ぶ題材は今までの歴史の積み重ね
- テーマを決めて時間をかけてゆっくり学ぶ
- そしきが押さえておくべき最低限の繋ぎの知識は最優先で学ぶ

所感

- CPU、メモリのブレイクスルーが起こるかもしれない
- ここまで変化に富んだ業界は珍しい
- 変化を柔軟に楽しむ事が大切

### 運用していくことについて考えてみた
モリカワタカユキ さん

速さは大事

- 速く実装
- 速く動かせればテストに工数を割ける
- 想定外を減らせる

速さはやっつけ仕事では無い

- デプロイまでが作業期間ではない。

何を意識していくのか

- そのループ本当に必要か
- そのデータ必要か
- 他の人がコードの意味が分かるか

現実甘くないよね

- 納期が最優先
- 本当にこのやり方で大丈夫なのかと 考える余地を持つ,,