- 2017/3/11
- http://jawsdays2017.jaws-ug.jp/
AWSでアプリ開発するなら知っておくべきこと
クラウドでスケーラビリティを活用するために話
スケーラビリティ
- スケールアップダウン
- 一台のマシンのスペックを返る
- スケールインアウト
- 横に並べるから論理的には無限
Desifn for Failure
Build security in evry layer
- 一箇所でも穴があればそこをつかれる
Leverage many storage options
- 万能なデータストアは存在しない
- 特徴ごとに使い分ける
- 想定外のユースケースで使うと予期せぬトラブルにもなる
Implement elasticity
- IPを直接参照しないとか
Think parallel
- 並列アーキテクチャ
Loose coupling
- コンポーネントを独立させる
Service discoverry
- 位置透過性が大切
Asynchronous integration
- 同期処理である必要がなければ非同期にする
- 処理がブロックされない
Dont fear constrraints
12factor
DevOps
- クラウドだとやりやすい親和性が高い
- ビジネスのスピード多様性に対応
- 素早い変化に対応
- culture practice tool(文化 実践 ツール)
- jenkinsを入れたらDevOpsではない
- ツールありきじゃないcultureとpractieを実現するために使うもの
- 開発とフィードバックのスピードをあげる
AWSのサービスでは
- ほどんどのサービスでAPIが用意されている
- sdkがあったりとか
- eclipse用とかもある
- codexxxxxっていうDevOpsのサービスも用意している
- 組み合わせて使うとよい
- たとえばBeanstalk
- cloudformation
- jenkins + Docker
- dockerおメージをビルドしてプッシュ
- ECS dockerクラスタを管理する
サーバーレスでシステムを開発する時に大切な事
- 特になし
DataDog
- 監視するサービス
- データを全部集めておく場所
- AWSのいろんなコンポーネントのAPIを叩いてデータをとってくる
- 取ってきた情報をダッシュボードで表示するサービス
- マネジメントコンソールであっちこっちみていたものが集約できる
EC2の管理で学ぶ、AWS Lambda入門
- blueprintというテンプレートがある
- これ使えばすぐ動かせる
- lambdaは標準ログをCloudWatchに出力する
サーバレスの今と未来
- Labmdaは動かした分だけ課金だからEC2より安く済む
- 3層で考えていたような仕組みではだめ
- FaaS
- firebase auth0
- サーバレスアーキテクチャの構成
- UIドリブン
- イベント(メッセージ)ドリブン
- AWS Serverless Application Model (SAM)
- cloudformationを使う?
- なぜサーバレスなのか
- デプロイメントを高速化
- FaaSをフル活用して自分の開発に集中
- SPAの例
- lambdaをはさんでDBにアクセス
- アクセス制御とかLabmdaでする
- Serverless Single Page Apps という本がある
- ServerlessでjQueryのSPAを作る本
- 日本語がそろそろ出る?
- Serverless Conf というコミュニティ?
コンテナ
https://speakerdeck.com/toricls/a-letter-to-uncontainerized-apps
VMとコンテナの違い
- Dockerの方がVMより1つ下のレイヤーから入ってる
- EC2にDckerエンジンその上にDockerイメージ
- なぜDocker
- テストしたものをそのまま本番に持っていけるポータビリティ
- Dockerの定義がファイルだからgit管理できる
- コンテナの中から外が見えないから隔離性高い
- 共有簡単
- 起動速い
- 履き簡単
- デリバリの高速化
- とりあえず12factorがベストプラクティス