ServerlessConf Day1

どうも、セクションナイン吉田真吾@yoshidashingo)です。

My computer is #serverless than yours!!

ServerlessConfに参加した1日目のレポートです。

ServerlessConf Day1 report

Intro

  • Bernard Golden (CIO Magazineのクラウドブロガーで、Wiredに「クラウドコンピューティングで最も影響力のある10人」と言われた人)の司会でスタート

Keynote

  • Tim Wagner - Amazon Web Services
    • AWS LambdaのGeneral Manager、最近API Gatewayのマネージャーにもなった模様

f:id:yoshidashingo:20160526101727j:plain

まずはバットを取りだして、、、、

f:id:yoshidashingo:20160526101806j:plain

サーバーをどーーーーん!!!!!サーバーよさらばーーーー!!!

f:id:yoshidashingo:20160526101807j:plain

Serverless Computing、そしてLambdaの話

  • PaaSというのは管理的ででしゃばりでスケール単位がモノリシックでよくない

  • サーバーレスがなぜ上手くいくか
    • 規模の経済性:使う人が多くなれば多くなるほどコスト集約され、リソースのムラがなくなる
    • リクエストがプラットフォームで可視化される
  • サーバーレス(コンピューティング)・マニフェスト
    • ファンクションはデプロイ単位/拡張可能単位で管理する
    • 機器や仮想サーバーやコンテナがプログラミングモデルから見えてはいけない
    • データを永続化するストレージは他の場所に確保する
    • リクエスト単位にスケールが管理される。ユーザーはキャパシティの調達不足も超過もしない
    • アイドル時間に課金されてはいけない(待機サーバー/コンテナや課金)
    • ファンクションはどこでも実行できるので、暗黙的に耐障害性を持つ
    • Bring your own code. コードだけ持ってくればいい
    • メトリクス収集やログ取得は絶対的正義である

Serverless Manifesto

  • Lambdaは100ms単位で買えるコンピューティング環境、安くて、ハードウェアに関する費用は一切ない
  • サーバーレスコンピューティングとはなにか
    • キャパシティ管理の予測可能な、目的別に構築された大規模な「プログラミング言語実行環境 as a Service」
    • 世界でもっとも大規模なビンパッキングアルゴリズムとして、高速に、高度に処理を分散配置する
  • サーバーレスアプリケーションかどうか
    • YES
      • 独立したファンクション
      • RESTful APIかイベントドリブン
      • BYOC(コードを持ち込むだけでよい)
      • 複雑なアルゴリズムを採用
      • 水平スケール
      • 同期、非同期、スケジューリング
    • NO
      • サーバー上で稼働
      • モノリシックなtarボールになっている
      • モノリシックなデプロイ方法
      • 重量級フレームワーク
      • 分散配置されたシステムコード
      • 単調作業(ログ取得など)が必要

  • アプリケーション管理をもっと楽にするもの
    • コード主導の場合:Serverless Framework
    • デザイン主導の場合:SwaggerHub

  • Flourish : ランタイムアプリケーションモデル
    • Microserviceのフォーマット定義
    • IDEプロジェクトとのマッピング
    • ビルドをおこなったり、ZIPによるデプロイ
    • 共有コンテナ上での実行
    • 1箇所のダッシュボード上での監視
    • 利用料金の集約
  • モノリス(一枚岩)を避けるためのサーバーレスのFlourish
    • Lambdaファンクションは独立したアップデート機能を備えている
    • Flourishのバージョンコレクション
      • コードと設定の組合せによる一貫性のあるロールバック機能
      • モノリシックなデプロイ方法は不要
  • サーバーレス・デザインパターン
    • サーバーレスなWebアプリケーション
      • 静的コンテンツをS3から配信
      • 動的コンテンツをLambdaで生成
      • HTTPSアクセスにAPI Gatewayを使う
      • NoSQLデータストレージにDynamoDBを使う
    • スケーラブルなモバイル・アプリケーションやIoTのバックエンド
      • モバイルアプリ:AWS Mobile SDK + Amazon Cognito (認証)
      • IoTデバイス:AWS IoT
      • Lambdaの"モバイルバックエンド"の設計図
      • NoSQLデータストレージにDynamoDBを使う
    • S3バケットトリガ
      • S3 Lambda設計図の選択
      • イベント発火元のバケットを選択
    • DynamoDBの動作の抽象化のためのファンクション
    • イベントとイベントハンドリング
      • S3のイベント発火とLambdaファンクション実行のインピーダンスマッチング:発火するイベントに応じたスケールの調整
    • 既存コードの利用:ハイブリッドへの挑戦
      • VPCを用いた接続性の制限
      • 接続プール
      • ギャップの橋渡し
    • 新しいアプリケーションのエコシステム:Akexa Apps + Slack = Serverlessボット

thenewstack.io

  • サーバーレスの大衆化
    • ベンダードリブンなサーバーレスコンピューティング環境とストレージの提供→エコシステムドリブンなフレームワークや開発ツールの提供→開発者ドリブンなサーバーレスアプリケーションの流行(音声アプリやチャットアプリなど)
  • サーバーレスなエコシステムの構築
    • 開発ツール
      • CI/CD
      • IDE(統合開発環境)のプラグイン
      • テストフレームワーク
    • Webフレームワーク
      • Express
      • Flask/WSGI
      • React
    • ドメイン
      • Scipy
      • R/stats
      • Media
    • データプロセッシング
      • ビデオ
      • ファイル/文書
      • 散布/収集
    • 監視
      • ダッシュボード
      • 監査ツール
      • 統合フレームワーク
    • ワークロード
      • チャット/ボット
      • IoTデバイス
      • ERP/CRM
  • 4つの予言(5つめはネタなので割愛)
    • すべてのデータはストリームになるだろう
    • 自然言語のインターフェースが、マン-マシンの対話に浸透するだろう
    • サーバーレスなアプローチが競争有意をもたらすだろう
    • コードはクラウドにホストされるようになるだろう:サンドボックステスト対ローカルテスト

※資料が公開されてないようなので、翌週のAWS Summit Tokyo 2016での動画を掲載しておきます。こっちはサーバーは壊してません。

www.youtube.com

Building Serverless (Mobile) Applications with OpenWhisk and other Bluemix Services

  • Stephen Fink - IBM & Frederic Lavigne - IBM
  • IBMのBlueMix上での画像処理/ビデオ処理のデモ
  • オープンソースで提供されているOpenWhiskの紹介

f:id:yoshidashingo:20160526110505j:plain

https://developer.ibm.com/openwhisk/2016/06/14/conference-report-ibm-bluemix-openwhisk-serverlessconference/developer.ibm.com

www.slideshare.net

From Serverless to Servicefull: how the role of devops is evolving

  • Patrick Debois - Small Town Heroes

f:id:yoshidashingo:20160526130946j:plain

http://www.slideshare.net/jedi4ever/from-serverless-to-service-full-how-the-role-of-devops-is-evolvingwww.slideshare.net

  • サーバーレスな構成のために積極的にSaaSを使うことが増えた
    • ITサポートサービス:DataDog, GitHub, CircleCIなど
    • オフィスサービス:Gppgle Apps, Slack, Dropbox, Google Calendar, Skype, Trello, Google Hangoutなど
    • コミュニティサービス:npm, ubuntu, coreos, NTP, Docker Registryなど
    • フロントエンドサービス:jQuery, Google font api, AngularJS, Google Analytics
    • モバイルサービス:AWS Device Farm, Amazon Mobile Analytics, SNS, Cognito, App Annie, AppStore, Google Play Store, fabric, New Relic, ComScore
  • サービスの可用性に依存しているので、GitHubが落ちたらシゴトができない、みたいなことがよく起きる
  • 文書化されてない変更が入ったりする(CircleCIの例)
  • ELBは事前暖機が必要で、忘れて急にトラフィック受けると何もできずにエラーが大量に返ってしまう
  • サーバーレス、というかサービスフルな状態で【SaaSがダウンしてサービスが継続できないリスクが上昇している】
  • 「約束」モデルで考えてみる ※以下の「約束(Promise)」はSLOやコミットメントといったニュアンスで使われています
    • (1)あなた(エージェント)はシステム内の他のエージェントに約束をする
    • (2)あなたの約束は検証可能でなければならない
    • (3)ただしあなたの約束は成果を保証するものではない
    • (4)条件が約束の一部でないといけない
    • (5)約束は言語化して共有されなければならない
    • (6)しかし、あなたは他のエージェントに代わって約束をすることはできない(ボトムアップ vs トップダウン)
    • (7)しかし競合は(他者の約束の責任を負うことができないように)内部的な約束に由来するかもしれない
    • (8)約束を守るために選択すべきことは「Push」か「Pull」か
    • (9)抽象化は選択的無知だが、コンピュータサイエンスのすべての問題は抽象化の別のレベルで解決することができる
    • (10)すべての約束の結合が関係性の基本形である
    • (11)同様の目的を持つエージェントは、スーパーエージェントに分類することができる
    • (12)再選択のためには複数のスーパーエージェントが必要:単一スーパーエージェントはSPOFになる
    • (13)約束を守るためにエージェントは違った世界観(とバージョン)で構成される必要がある
    • (14)スーパーエージェントの遅延は内部通信スピードによる影響かもしれない
    • (15)Lambdaのサービスの内部仕様について
      • Lambdaのコンテナの再利用ルールは非決定
      • スケールは常に無限というわけではない
    • (16)DevOpsを採用してもらい、リモートAPIを駆使することにした
      • RSSでAWSの障害を監視
      • Google Scanningを用いたGoogle Appsのデータのバックアップ
    • (17)Slackを用いて約束のステータス変更を素早くフィードバックできるようにする
    • (18)(ポストモーテムなどを読んで)何に依存しているか、また他のサービスでも同様の期待値(依存性)を明らかにする
    • (19)カンファレンスでサービスへの希望を共有する
    • (20)他のエージェントに状況をフィードバックする
    • (21)自分を頼りにしてくれる人たちにも聞いたことを伝えてあげる
    • (22)同僚のエンジニアたちにおそれずに情報交換すべきであるということを示してあげる
    • (23)要望されていることに対する責任を持つ
    • (24)約束の変更を行い他のエージェントに影響をおよぼす
  • DevとOpsのコラボレーションはいまや外部のサードパーティベンダーにまで広がっていることを認識する
  • そして他のエージェントの約束を確認しておく

Lessons Learned and Detailed Architecture from Building Two Serverless Applications

  • Joe Emison - BuildFax

  • 製品がマーケットにフィットするかどうかが最も重要である
  • ビジネスに関連するコードの開発時間に極力時間を使うべきである
  • 顧客とまわすイテレーションを最大化すべきである
  • 依存性を最小化すべきである:仕様確定待ちで開発者を待たせたり、運用やDBAやその他の開発者の影響で待たせることを極力避けるべきである
  • サーバーレスアプリケーション Commercial Search の事例
    • 2人の開発者で4ヶ月で作った
    • 13,307行のTypeScript
    • 開発者の稼働は95%以上だった(なにかに依存した待ち時間はほとんどなかった)
    • コンセプトはMicroservicesだが、自分たちはコアしか書いていない
    • ペインポイント
      • Firebaseのダッシュボードでは大きなデータセットが扱えない(APIであればOK)
      • RDBMSからFirebaseに移行する開発者のラーニングカーブは人それぞれ、非常識ってほどではないけど

  • サーバーレスアプリケーション Property Tour Pro の事例
    • ペインポイント
      • AngularFireは使ってはいけない:トリプルバインディングはとても遅い
      • CORSではサードパーティのAPIは直接叩けない、Webtaskを使おう
      • Auth0は素晴らしい、ただしドキュメントにはイライラさせられる
      • DocRaptorはPDFや画像の圧縮がうまくできない、Cloudinaryを使おう

  • AWSを使わない理由
    • AWSのサーバーレスはバックエンドプロセッシングのアウトソース。フロントエンドからまるごとアウトソースはできない
    • AWSのサーバーレスは複雑:IAM + Cognito + API Gateway + Lambda
      • Auth0 Webtask = Lambda + API Gateway + IAM + Cognito
      • Firebase = Lambda + API Gateway + IAM + Cognito + DynamoDB
      • Firebase Queues = Lambda + API Gateway + IAM + Cognito + SQS

www.slideshare.net

Disrupting old business models: the story of a serverless startup

  • Sam Kroonenburg - A Cloud Guru & Peter Sbarski - A Cloud Guru
  • 前日のワークショップの講師をした A Cloud Guruの二人

  • サーバーレスアーキテクチャ原則
    • オンデマンドなコードの実行のためにコンピュートリソースを使う
    • 単一目的のステートレスなファンクションを書こう
    • pushベースでイベントドリブンなパイプラインを設計しよう
    • リッチでパワフルなフロントエンドを構築しよう
    • サードパーティサービスを使おう
  • 書籍:Serverless Architectures on AWSを執筆中

www.slideshare.net

Changing the tires of a moving car: moving Spotify’s Data Infrastructure from on-premise to GCP

  • Wouter De Bie - Spotify
  • すでにオンプレミスで運用しているHadoopクラスタ(30PBのデータ)をGCPに移行した話

  • オンプレミス→GCPインフラ
    • 2300ノードのHadoopクラスタ → 分割されたDataProcクラスタ
    • 単一のHDFS上の30PBのデータ → プロジェクトごとに分割されたGCSのそれぞれのバケット
    • Hiveのアドホッククエリ → BigQueryのアドホッククエリ
    • Luigiを使ったスケジューリング → Dockerを使った新しいスケジューリングシステム
    • Apache Kafka → Google Pub/Sub
    • Cassandra → BigTable
  • 30PBのデータをどう移動したか
    • 自社DCとGCPをピアリングしてDistCpでHDFSからGCSにコピー
  • 依存性をどう解決したか?
    • オンプレミスで生成されたデータをGCPへ
    • GCPで生成されたデータをオンプレミスへ(必要に応じて)
    • 各チーム自身で必要な作業はやってもらった
  • 移行の優先度
    • 各チームの緊急度に応じて
    • クラウド環境でいろいろできるという価値(とくにBigQueryは大きな牽引役だった)を各チームに提供した

Webtascalifragilisticexpialidocious

  • Tomasz Janczuk - Auth0

  • WebhookがSaaSの拡張性のキモ
  • 2015年以降のWebhook
    • 非同期
  • Webtaskはサーバーレスなwebhook
    • 簡単に始められて準備要らず
    • フルHTTPコントロール
    • スケジュールジョブが実行可能
    • コンテナのプロビジョニングのリードタイムで実行時間がばらつくことを防止するために独自のプレウォーミング機構を備えている

www.slideshare.net

Serverless architecture for the Internet of Things

  • Ben Kehoe - iRobot
  • RoombaやBraavaなどを開発・販売するロボット企業における、サーバーレスなIoTの使い方
  • iRobotは100カ国で販売しており、北米は40%程度
  • 去年はロボットを240万台出荷した

  • ルンバの実機、モバイルアプリ、クラウドはそれぞれAPI GatewayやAWS IoTを用いてデータ連携している

www.slideshare.net

Serverlessness, NoOps and the Tooth Fairy

  • Charity Majors - Hound

  • "In the glorious Future, we eill be Serverless, and there will be NoOps. - thought leaders" と言われている
  • 昔、Parseというサービスを作っていて、100万以上のモバイルアプリをホストしていた
  • 誰も運用をしたくない
  • サービス(SaaS)は「魔法の妖精の粉」か、いやそうではない
  • 来たるサーバーレスな未来では、アプリケーション開発者がもっと運用品質に対する責任を担うことになる
  • 「私はソフトウェアエンジニア、インフラはすべてお金を払ってホストしてもらっているので、運用のことは考えたくない!」と考えていても、アプリは落ちているかもしれないという状況においてはどんな変更があったか、サービス側の問題か、などを切り分ける必要性がある
  • 運用とはなにか?
    • 運用は自分の組織の技術スキルや練習、デザイン周りの文化づくり、システムの構築やメンテナンス、ソフトウェアのデリバリー、技術的な問題の解決
  • 運用エンジニアのコアコンピテンシー
    • スケーラビリティ
    • レジリエンシー
    • 可用性
    • メンテナンス性
    • 複雑なシステムを簡素化する
    • モニタリングの実装と可視性
    • グレイスフル デグラデーション:ソフトウェアのアップグレードなど
  • サーバーレス運用工学のベストプラクティス
    • あなたのプロダクトの問題はあなた以上にちゃんと直せる人はいない
    • クリティカルパスを理解する
    • できるかぎり小さく維持する
    • SaaSプロバイダの技術情報と、何にどう依存しているか理解する
      • アウトソース先に問題が起きても、自身のサービスにおけるそれによる結果については依然としてあなたが責任を持たなければいけない
  • トレードオフ
    • 可視性が下がる
    • 自分自身で問題をfixできないし、新機能を実装することもできない
    • サービスはあなたの支払うお金で維持されている:※ここはParseの元エンジニアだったということですごくぐっとくる部分ですね
    • 制限や制約は公開されることもあるし、公開されないこともある
    • 共同利用はよくない、ツールも未熟
  • 他者のプラットフォームを利用する場合
    • 共同利用形態はどういうものか?
    • パフォーマンスの差異はあるか?
    • ベンダーロックインに対抗するあなたの対抗意欲はどうか?
    • サービスに問題が合った場合の透明性はどうか?
  • データ衛生
    • データについてもあなたが責任を担う部分
    • データ保持やリカバリーポリシーについて尋ねる
    • オフサイトバックアップを取得する
    • リストアを評価する - もしテストしてないならあなたのバックアップは「シュレディンガーのバックアップ」だ(※存在するかどうか蓋を開けるまで分からないという意味
    • 不思議なストレージシステムを契約してはいけない、ブラックボックス、クエリチューニング、やってられない
  • 可視性とデバッグしやすさ
    • 商用環境と同じ環境に載せてはいけない、リスク分散しよう
    • メトリクスを集約しよう
    • 動作したものはすべて即グラフ化するようにしよう、クライアントやアプリケーション、クエリなどすべて
  • Opsとしてレベルアップするには
    • ソフトウェアエンジニアを自分のサービスのオンコールに入れよう
    • 運用やデバッグに関するすべてのことを聞かせてもらおう
    • これらのスキルもパフォーマンスレビューや昇進の評価に使おう

www.slideshare.net

ServerlessConfにきた

どうも、セクションナイン吉田真吾@yoshidashingo)です。

ServerlessConfというイベントに来ています。

just arrived #serverless #serverlessconf

serverlessconf.io

ServerlessConfとは

今年から始まったServerlessのカンファレンス。もともとLambdaの大ファンだったRyan Brown氏がServerless Codeというサイトを運営しており、本人がイベントをやるぞーと言い出したのをきっかけに、この分野で有名な A Cloud GuruやAWS、Microsoft、IBMなどがスピーカーに名乗りを上げ、スポンサーシップを申し出たイベントっぽいです。

Serverless Code -- Serverless Code

イベント概要

0日目:ワークショップ

API Gateway / Lambda / Elastic Transcoder / Auth0 / Firebase を使ったYoutubeっぽい動画共有サイトをサーバーレスで作るワークショップ

すべての教材は以下のリポジトリで公開されています(※が、明日には非公開にするそうです)

github.com

ちなみに私もチケットは持っていたのですが、当日までde:codeに参加していたため予定を繰り下げてこちらには不参加としました。帰ってから試してみようと思います。

さらっと眺めた感じ、この構成はサーバーレスアーキテクチャのお手本になるなと思いました。サーバーレスが流行り始めたきっかけはAWSのFunction as a ServiceであるLambdaのローンチによることが大きいと思いますが、今日現在、サーバーレスを構成する要素としては「"認証"のインタフェースおよびデータベース=Auth0」「"API"のインタフェースやスロットリング=API Gateway」「"Notification"の管理、データベース=Firebase」あたりまで含めて、実際に動作するアプリケーションを、プラットフォームを利用してどう構成するかというのが主軸だからです。(かといって、イベント処理を連携するインフラの"糊"としての実装や、システムの内部で利用する1つのMicroserviceの構成としてのAPI実装を否定するわけではないです。もっと、ビジネスを背負って稼ぐ役割におけるサーバーレスアーキテクチャが主眼になりつつあるという意味で)

1日目、2日目:セッション

結構ギリギリまで公開されなかったタイムテーブルですが、公開されてみて驚くのは、サーバーレスを支えるベンダー企業からは、AWSからはLambdaのGenaral Manager、MicrosoftからはAzure FunctionsのPM、IBMからはOpenWhisk/BlueMixのデベロッパーアドボケイト(エバみたいなロール)が参加。その他ユーザー企業としてはSpotifyやCapitalOne、iRobot(ルンバ)からもスピーカーが参加していることです。

ゲリラ的に始まろうとしたイベントでここまで仕上がるというのはホントに面白いですよね。

www.youtube.com

参加だけでなく主催もやりたいな

ということで、まあ色々参考になりそうなことは持って帰ろうと思いますけど、日本でも同様にサーバーレスなイベントを主催したいなと思っているところです。興味のある方はTwitterでもFacebookでも適当にご連絡くださいな。

先週のAWS関連ブログ〜5/11(水)

どうも、セクションナイン吉田真吾@yoshidashingo)です。

今週はだいぶ遅れてしまいましたが、先週もいろいろと便利なエントリーがありました。ということで行ってみましょう。

AWS公式

1. AWS CodePipeline が AWS CodeCommit との連携をサポートしました

  • CodePipelineのリポジトリにCodeCommitが指定できるようになったことにより、以下のような組合せが可能になった
  • 現状「CodePipeline」「CodeCommit」がまだ東京リージョンをサポートしていないので、ワークフロー全体は東京で回せない

f:id:yoshidashingo:20160511134535p:plain

f:id:yoshidashingo:20160510132814p:plain

リンク:AWS CodePipeline が AWS CodeCommit との連携をサポートしました | Amazon Web Services ブログ

2. IP Address Reputationリストを自動更新でAWS WAF IP Blacklistsとして使う方法

  • サードパーティから提供されているIP Address Reputationリストを定期的に取得してLambdaを使ってAWS WAFのIP Blacklistsとして登録する方法
  • サンプルとしてCloudFormationでAWS WAFのIP Blacklistsを即座に作成することができる。CloudFrontのWeb ACLに指定すればすぐにできる。元データのIPリストのロケーションを指定することで他のリストも取得が可能

※CloudFormationでAWS WAFのIP Blacklistsを作成する環境の構築は一瞬↓ f:id:yoshidashingo:20160509171721p:plain

※AWS WAFの利用および設定も、CloudFrontから作成されたWeb ACLを選択するだけで一瞬↓ f:id:yoshidashingo:20160509171933p:plain

aws.typepad.com

原文リンク:https://blogs.aws.amazon.com/security/post/Tx8GZBDD7HJ6BS/How-to-Import-IP-Address-Reputation-Lists-to-Automatically-Update-AWS-WAF-IP-Bla

3. AWS WAF, Amazon CloudFrontでリファラチェックして直リンクを弾く方法

  • 画像などのサイトのコンテンツを「サブドメインで運用している場合」「同一ドメイン内で運用している場合」、それぞれについて、AWS WAFのWeb ACL設定でリファラをチェックして、直リンクの場合にはじく設定方法の解説

aws.typepad.com

4. Amaozn ECSがawslogs Logging Driver(Amazon CloudWatch Logs)に対応しました

  • Dockerコンテナ内においてstdout/stderrに吐き出すだけで、CloudWatch Logsにログを投げてくれる「awslogs Logging Driver」に対応した。ECS Agent 1.9.0以上である必要があるので、現行より古いECSのAMIを使っている場合は個別にアップデート要。
  • ECSのEC2からAPI利用できるようにEC2 Roleに権限が必要だが、Managed Policyを利用している場合は自動で追加されているので大丈夫。個別にPolicyを自作している場合はマニュアル参照して権限追加。
  • Task DefinitionでLog Groupとリージョンを指定することで設定はOK

aws.typepad.com

5. AWS Database Migration ServiceがAmazon Redshiftに対応

  • DBレプリケーションサービスであるDMSがRedshiftにも対応し、異種DB間でも特に需要が高い「OLTP用のRDBMS」→「OLAP用のデータウェアハウス」ができるようになった
  • 大規模なデータ連携になると「InsertはCOPYコマンドで」「UPDATE, DELETEはDMLで」となるのが定石だが、設定上COPYコマンドで必要なS3の設定がない(DMSインスタンスのローカルディスクからCOPY?)

dev.classmethod.jp

6. EC2 Windowsインスタンスを自動的にMicrosoft ADにジョインさせる方法

  • 1つめの方法はSSMを使ってリモートで設定コマンドを実行する方法
  • 2つめはAuto Scalingを使ってlaunch configurationでPowerShellでSSMコマンドを実行させてジョインさせる方法

http://blogs.aws.amazon.com/security/post/Tx3STQFDZPA0319/How-to-Configure-Your-EC2-Instances-to-Automatically-Join-a-Microsoft-Active-Dir

7. Amazon ECSでディスク使用率を最適化する方法

  • ECSのクラスタ内の各インスタンスからCloudWatchにディスク使用量を定期的に送信する方法と、定期的にコンテナの削除とキャッシュされたDockerイメージを削除する方法
  • コンテナ内のログは上のポストのようにawslogs Logging Driverで集約できていれば、この対応でステートレスでクリーンなクラスタが維持できるようになる

Optimizing Disk Usage on Amazon ECS | AWS Compute Blog

8. Cloudwatch eventからLambda Functionに固定値を渡す

  • CloudWatch eventsでLambdaを呼び出すときに固定値をJSON形式で渡す方法(そのまま!)

Simply Serverless: Use constant values in Cloudwatch event triggered Lambda functions | AWS Compute Blog

9. Amazon Auroraの重要なメトリック

  • DataDogのゲストポスト
  • AuroraについてCloudWatchで取得可能な各種メトリックの説明と、CloudWatchで取得できないメトリックを、EC2を立ててMySQL Workbenchで見る方法や、DataDogを使って見る方法

Key Metrics for Amazon Aurora | AWS Partner Network (APN) Blog

10. 次世代のNATをCloudFormationのテンプレートで作成する

  • 次世代のNAT=NAT Gateway(マネージドで冗長化されているので)
  • 記述もEC2で自作する場合よりもシンプル

Taking NAT to the Next Level in AWS CloudFormation Templates | AWS Partner Network (APN) Blog

AWS関連

11. サーバなのに?サーバがない?サーバレスアーキテクチャの使いどころ

  • 昨年あたりから話題の「Serverless」というキーワードについて、特徴の整理、同期/非同期処理を分離するMulti-tier Architectureとの違い、サーバレスアーキテクチャの使いどころの三点を整理したナイスなエントリ
  • (1)サーバレスアーキテクチャの整理
    • 柔軟なコンピュートリソースのスケール
    • アプリケーションからは、ウェブAPIを通じて透過的に目的にアクセスができる
    • APIのコールはキューで管理される
    • キューから取り出した処理をWorkerが処理する
    • 各タスクは並列で処理することができる
    • タスクはさまざまな処理を行うことができる
  • (2)Multi-tier Architectureとの違い
    • Multi-tier Architectureはサーバーのティアの分割にフォーカスしているので実装がファットになりがち。サーバーレスはその実装をコンテナ仮想化を用いて「実行環境(コード)をSandbox化」することで手軽に扱えるようにしたのが主眼の一つではないかとのこと。もう一つ、最近クラウド事業者いずれからも提供されているFunction as a Serviceについていえば「APIで提供される」「全体のキューの管理は任せられる」「コードを書くだけでよい」「実際のリソース消費のみの課金」という特徴もある
    • リソースの共有レベルを上げているため、俗にいうノイジーネイバーの制御やリソース監視、スロットリングや割当て制限など、ある程度の制約が発生しうる
  • (3)サーバレスアーキテクチャの使いどころ
    • 外部APIなども利用する必要がでてくるとは思うが、ざっと以下のようなものが提案されている
    • 画像処理、ドキュメント処理、ウェブクローラ、プッシュ通知、汎用テキスト処理、SMSの送受信、メールの送信、CRONなどのスケジューラの置き換え、Webhookのイベントの処理、ログ格納

japan.zdnet.com

その他

12. Docker、Dockerイメージをスキャンし、脆弱性を発見、通知してくれる「Docker Security Scanning」発表

  • Dockerのホスティングサービス「Docker Cloud」に、Docker Hubに保存したイメージのセキュリティ脆弱性をスキャンしてくれるサービスが追加された

www.publickey1.jp

今週は以上です。