継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

サーバーレスシングルページアプリケーション 6章

タダです。

今回はサーバーレスシングルページアプリケーション6章で勉強したことをまとめていきます。 www.oreilly.co.jp

章立ては以下のようになっています。

  • 1章 シンプルにはじめる
  • 2章 ハッシュイベントによるビューのルーティング
  • 3章 シングルページアプリケーションに必要なもの
  • 4章 Amazon CognitoによるIdentity as a Service
  • 5章 DynamoDBにデータを格納する
  • 6章 Lambdaを使って(マイクロ)サービスを作る
  • 7章 サーバーレスのセキュリティ
  • 8章 スケールアップする

6章のまとめ

  • 本章ではLambda環境の基本とその動作、CLIを使ってサービスを定義し、サービスのコードをデプロイする
    • 最後にCognito認証、HTTPを使った手法の2つの手法でサービス実行方法を紹介する
  • Lambdaはサーバーレスのサービス
    • 512MBのディスクスペースがある(/tmpにある)が、関数を実行されているもので永続化されない
    • Linuxコマンドを実行できるし、静的リンクされた独自のLinuxバイナリをアップロードして関数実行できる
    • 300秒以上の時間をかけられない
  • Lambdaの課金の仕組みでは、GB/秒で課金される
  • まずはデプロイする ./sspa build_bundle でバンドルを作成する
    • ./sspa create_service conf/lambda/functions/echo で関数をデプロイする
    • メモリサイズを128->512へサイズアップし、LambdaのIAMロールにDynamoDBを追加する
  • アプリケーションのコード同様にLambdaもテストからはじめる
    • ./sspa test でテストを実行する
  • API Gatewayを使うことで、認証されてないHTTPリクエスト経由でLambda関数にアクセスさせることができる
    • API GatewayのアクションはPOSTで設定し、Lambda関数に投げる設定をする
    • 以下のようなレスポンスが帰ってきたらOK
$ curl -d '{"problemNumber":1}' <<API Gatewayのエンドポイント>>
{"true":2, "!false":1}

次は7章ではサーバーレスのセキュリティーを学びます。

【7日目】毎日勉強や

タダです。

Pocketに保存した記事をSlackに連携

普段SlackにRSSで情報を収集しています いいなーと思った記事をPocketに保存して記録して行っています Pocketに保存したい記事をSlackに投げといて日毎にすぐに見えるようにしたいと思っていました

今回、IFTTで連携し、ぴったりな機能があったので使ってみました f:id:sadayoshi_tada:20180716113400p:plain

指定したチェンネルにURLを含めて投げる設定にしました f:id:sadayoshi_tada:20180716112945p:plain f:id:sadayoshi_tada:20180716112948p:plain

こんな感じに投稿されます f:id:sadayoshi_tada:20180716112952p:plain

また明日

【6日目】毎日勉強や

タダです。

機械学習の開発の流れ

機械学習の開発をやるときの流れを整理します

1、教師データ(訓練用data)の収集

2、教師データのラベル付け/加工作業

3、学習モデルの設計(NNの設計)

4、学習処理

5、評価

6、サービスやアプリに学習済みモデルを組み込む

Spinnakerについて

最近、よく見る「Spinnaker」について調べてみました、後日実際に触ってみたブログを書きます SpinnakerはNetflixが開発したマルチクラウド対応のCDツールです

特徴

  • インテグレーション、システムテストクラスタ管理、モニタリングを提供
  • 既存CIツールとの統合(Jenkinsからトリガーやパイプライン実行などできる)
  • マルチクラウド対応
  • クラスタ管理
    • サーバグループ、ロードバランサ、セキュリティグループなどに管理操作を行える
  • モニタリング連携
    • Datadog、Prometheusなどと連携可能
  • OSS済み

参考

www.spinnaker.io

www.ossnews.jp

knowledge.sakura.ad.jp

Codenize

今更ですが、Codenize.toolsについて調べてみようと思って調べてみました

Codenizeは、AWSのRoute53、SG、IAMなどをDSLのコードで管理するためのツール群を指します 簡単かつ直感的に支えるため、インフラをコードで定義して、管理・適用・変更時のレビューなどができるため、IaC時代にあっているという謳い文句つきのものです

最近、コード化して標準化することをやったりするのでSpinnaker同様何か触ってみてブログに書きます。

ラインナップ

  • AWS
    • Roadworker -Route53
    • Piculet - SG
    • Kelbim - ELB
    • Miam - IAM
    • Kumogata2 - CFn
    • Eipmap - EIP
    • Radiosonde - CW Alarm
    • Meteorlog - CW Logs
    • Monosasi - CW Events
    • Mappru - VPC Route Table
    • Bukelatta - S3 Bucket Policy
    • Repol - ECR Policy
    • Cfdef - CloudFront
  • その他
    • Ridgepole -DB(Rails)
    • Grantan - MySQL priveleges
    • watch_list - Uptime Robot
    • Cronicle - Job Runner / Job Sceduler
    • Posgra - Postgre SQL priveleges
    • Barkdog - Datadog monitors
    • Lbrt - Librato
    • Rcman - EasyCron

参考

codenize.tools

また明日

7/9~7/14 AWSブログ

タダです。

今週のAWSブログアップデートをまとめていきます。

1、SAP HANA on AWSクイックスタートを更新し、シングルノード構成のマルチAZ配置をサポート

  • SAP HANA on AWSクイックスタートのテンプレートがアップデートされました
    • 高可用性のためのシングルノード構成のマルチAZ配置が追加されてます

2、Lambda@Edge デザインベストプラクティス

  • Lambda@Edgeのアーキテクチャデザインに関するベストプラクティスの紹介記事です
  • 以下のような内容になってます

3、Discover Financial Services が Amazon SageMaker で動作する Robocar イベントで機械学習を活用

  • re:Inventで行った自動運転のハッカソンイベントをDiscover社で再現したイベントレポート記事です

今週のアップデートまとめは以上です。

【5日目】毎日勉強や

タダです。

PWAとAMP

PWA = Progressive Web Apps. AMP = Accelerated Mobile Pages.

どちらもGoogleが関わっているプロジェクトおよび技術。 AMPの方が採用のハードルが低くく、導入が進みそう。一方PWAは既存のAppsからの置き換えが難しく、UX向上やコスト削減の手法で使われる可能性はあるとのこと。

参考

mizchi.hatenablog.com qiita.com

Go言語での機械学習

イメージ的にはPythonが多くライブラリなどが揃っているイメージだが、ちょくちょくGolangでも機械学習という文字を見かけるので周辺技術を調べてみました。 調べてみた感じですが、機械学習ができないわけではなさそうだけど、Pythonの方がやりやすそうという感想です。 今後のライブラリがどれくらい揃うのか次第かなーと。

機械学習系のライブラリ

Go Learn - Machine Learning for Go

go-pr - Pattern recognition package in Go lang.

go-ml - Linear / Logistic regression, Neural Networks, Collaborative Filtering and Gaussian Multivariate Distribution

bayesian - Naive Bayesian Classification for Golang

go-galib - Genetic Algorithms library written in Go / golang

Cloudforest - Ensembles of decision trees in go/golang

gobrain - Neural Networks written in go

参考

qiita.com プログラミング言語のGoは、Pythonよりも簡単でパフォーマンスに優れているため、データサイエンスやディープラーニングなどに広く使われるようになると思いますか? - Quora

また明日