「JAWS DAYS 2017」に参加してきました

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

  • Dockerによるアプリ開発の復旧で再注目
  • サーバレスコンピュート
  • セッション情報はDynamoとかElasticacheに入れておく

DevOps

  • クラウドだとやりやすい親和性が高い
  • ビジネスのスピード多様性に対応
    • 素早い変化に対応
  • culture practice tool(文化 実践 ツール)
  • jenkinsを入れたらDevOpsではない
  • ツールありきじゃないcultureとpractieを実現するために使うもの
  • 開発とフィードバックのスピードをあげる
AWSのサービスでは
  • ほどんどのサービスでAPIが用意されている
  • sdkがあったりとか
  • 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がベストプラクティス

DevOpsとか言う前にAWSエンジニアが知るべきアプリケーションのこと

The AWS Japan Mafia トークセッション