タグ

ブックマーク / qiita.com (1,794)

  • Github, CircleCI, S3, CloudFront, Middlemanを活用して、https対応のサーバレスで自動deployなWEBサイト構築 - Qiita

    Github, CircleCI, S3, CloudFront, Middlemanを活用して、https対応のサーバレスで自動deployなWEBサイト構築AWSS3middlemanCircleCICloudFront この記事は リクルートライフスタイル Advent Calendar 2016 の15日目の記事です。 @MomokoAsai です。社内ではFirebaseの推進を行っております。 それではさっそく題に。 実現すること 「Github, CircleCI, S3, CloudFront, Middlemanを活用して、https対応のサーバレスで自動deployなWEBサイト構築」です。 コーポレイトサイトなどの動的要素がないサイトは、簡単実装&低コスト運用が出来るような構成にしてしまいましょう。 そして、https対応をしていると、SEO的な優遇があり、将来的に

    Github, CircleCI, S3, CloudFront, Middlemanを活用して、https対応のサーバレスで自動deployなWEBサイト構築 - Qiita
  • Serverless+TypeScriptの開発環境を作る - Qiita

    Serverless(2) Advent Calendar 2016の記事です。 投稿がギリギリになってしまいました。 私の現在携わっているプロジェクトではServerless+TypeScriptでアプリケーションを実装しています。 今のプロジェクトではまだserverless v0.5系なのですが、そろそろv1に移行したいと思っているので serverless v1系とTypeScriptの組み合わせの開発環境を作って検証してみたいと思います。

    Serverless+TypeScriptの開発環境を作る - Qiita
  • Slackで単語当てゲームのボットを作ってみた(Haskell版もあるよ) - Qiita

    ヴァル研究所 Advent Calendar 2016の15日目です。 私が所属する新規事業開発の部署では、月1回部内勉強会を行っています。誰か一人が先生役となって、テーマとなる技術をハンズオン形式でみんなに体験してもらい、場合によっては何かを作って発表するところまでします。時間は4時間取っています。 10月のテーマはPythonLambdaSlackボットを作るだったのですが、今回はそこで作ったボットの話です。 ニャンコが問題を出してくるので、穴埋めして正しい英単語を答えるというゲームです。 ニャンコが「homeless」という単語を出題して一同ざわつく場面も… 仕組みとしてはSlackのOutgoing WebhookとIncoming Webhookを使っています。 こちらのページを参考にさせて頂きました(というかほとんどそのまんまです…)。 slackのbotをAWS Lamb

    Slackで単語当てゲームのボットを作ってみた(Haskell版もあるよ) - Qiita
  • AWS Lambdaによるサーバーレスな機械学習APIの作り方 - Qiita

    この記事は、Python Advent Calendar 2016の14日目の記事です。 概要 NewsDigestでは、配信するニュース記事のカテゴリを機械学習アルゴリズムによって分類しています。具体的には、1日約1000件の記事を「エンタメ」「政治」「スポーツ」といった10種類のカテゴリに分類しています。 NewsDigestでは、そのようなカテゴリ分類をサーバーモジュールに密結合で行うのではなく、社内に分類のための汎用APIを設けています。 この汎用 API を実現するにあたって、よりスケーラブルにするために、サーバーレス(AWS Lambda)な機械学習 API を検討したので、その紹介というか、サーバーレス API を作るためのチュートリアルになります。 実際に動く API は https://3lxb3g0cx5.execute-api.us-east-1.amazonaws.

    AWS Lambdaによるサーバーレスな機械学習APIの作り方 - Qiita
  • S3 のクロスアカウント書き込みにまつわる厳しい現実 - Qiita

    tl;dr AWS アカウントをまたいだ S3 バケットへの書き込みが色々とアレなので Lambda で無理矢理アレした。 ※1年半ぶりに追記: 解決策はあまりにも無理矢理だったが問題の知見としては有用なのでタイトルを変更しておく 背景 S3 は AWS 最古参のサービスであり、 S3 が登場した頃は IAM も存在しなかった。このため、今では AWS サービスの標準アクセス権限管理になった IAM とは異なる、独自のアクセス権限管理の仕組みが S3 にはある。 この歴史的経緯により、ある状況で非常に面倒な事態が発生する。 バケットオーナー != オブジェクトオーナー の場合に発生するつらみ 凡例 つらくない現実 つらい現実 バケットポリシーで他アカウントへの認可を設定すると、別の AWS アカウント(と、その配下の IAM User など)がバケットへの書き込みを行えるようになる バケッ

    S3 のクロスアカウント書き込みにまつわる厳しい現実 - Qiita
  • 1年を振り返るサービスをStep Functionsで実装してみる - Qiita

    この記事はServerless Advent Calendar 2016の12日目の記事になります。 遅くなり失礼いたしました。 ここ数年、年末になると1年を振り返るサービスを開発しておりまして、簡単なシステムながら毎年多くの方にご利用頂いております。(毎年、年末年始がほぼない状況でお仕事しており、年明け早々家庭内で険悪なムードが流れることも) 基構成 現在提供しているサービスの概要ですが、 1. 対象ユーザのIDを入力してもらう 2. 暫く待つ 3. 1年間の写真の中から最も人気のあった写真9枚がまとめった画像が表示される といった極めてシンプルなサービスです。 フルAWSで構築しておりまして、構成はこの通り、一般的な構成となっております。 DNSをRoute53で管理 ロードバランサとしてELB(ACMから証明書利用) webサーバ群はt2インスタンスでCloudWatchを活用した

    1年を振り返るサービスをStep Functionsで実装してみる - Qiita
  • サーバーレスにWebビーコンをつくってみる。 - Qiita

    まずおまじない置いておきます。 投稿内容は私個人の意見であり、所属企業・部門見解を代表するものではありません。 はじめに ネタ的には今更感あると思いますが、アクセス解析とかしたときにサーバーレスにつくってみたので 設定からDWHに突っ込むまでをまとめてみました。 Webビーコンとは? Webビーコン型とは、サイトの各ページにJSや特殊なイメージ(縦横1pxの透明なgif画像など)を貼り付けておいて、貼り付けたページがブラウザで表示されるたびに、サーバーにユーザーがアクセスしたページの情報を送る仕組みのアクセスログ解析です。 Google Analyticsもこの手法が使われてたりしますね。 今回やること 各AWSサービスの設定からDBにアクセスログを貯めるところまでをまとめています。 構成は上記の図のようにいたってシンプルな構成です。 AWS CloudFront キャッシュさせてログとる

    サーバーレスにWebビーコンをつくってみる。 - Qiita
  • Step Functionsで並列分散処理を実現する - Qiita

    みなさんAWSで並列分散処理をやっていますか!! 例えば のようにEC2+SQSのJob Observeパターンを使ったり のようにLambdaを多段実行してるとか、いろいろな方法があると思います。 しかし、どの方法もデメリットがあって、EC2のリソースを使い切れなかったり、失敗時の処理がしにくかったり、並列分散処理の終了判定が難しかったりと、実装していくのに一工夫が必要なことが多いですよね。 そこで、今回はStep Functionsを使ってお手軽並列処理を実現してみます。 Step FunctionsのParallel 見出しを見て「お、もしかしてStep Functionには並列分散処理する機能あるの?」と思った方。そんなうまい話はありません。 AWS Documentation > AWS Step Functions > Developer Guide > Parallel St

    Step Functionsで並列分散処理を実現する - Qiita
  • Amazon Cognito User Poolsをもっと使いこなすためのTips - Qiita

    概要 こんにちは!この記事はServerless(2) Advent Calendar 2016の11日目の記事です。 ユーザの認証基盤を提供するサービスとして提供されているAmazon Cognito User Poolsは非常に柔軟にカスタマイズが出来る素晴らしいサーバレスなサービスなのですが、Tipsや細かいカスタマイズ方法をGoogleで検索してもあまり出てきません。 もう少し突っ込んだ使い方を書いた記事が世の中にあれば、 もっとこのサービスを皆が便利に使いこなせるようになるのでは、という思いでこの記事を書くことにしました。 それではよろしくお願いします! カスタマイズの基礎 僕がNodejsで実装することが多いのでNodeのSDKをベースに説明します。 http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoId

    Amazon Cognito User Poolsをもっと使いこなすためのTips - Qiita
  • AWS Lambda (Node.js)の環境変数をTerraformから設定する - Qiita

    はじめに 先月(2016/11/18)に AWS Lambda が 環境変数をサポート しました。 それに合わせて、Terraform も バージョン0.7.12で対応 しました。 この記事では、TerraformからAWS Lambdaの環境変数を設定する方法を紹介します。 なお、Terraform のバージョンは2016/12/11時点での最新 0.7.13 を使っています。 環境変数のうれしさ 環境変数を使うと、関数(zip)内のパラメータの変更が容易になります。 今までだったらパラメータを使う時、例えば以下のような方法が取っていたかとおもいます。 関数内に直書き 関数名に入れてパース DBに持たせる しかし、関数内に直書きしていると、関数の何かのパラメータが変わるたびにzipファイルを作り直してアップロードしなくてはなりませんでした。 関数名に入れてパースは事故の元になりそうです。

    AWS Lambda (Node.js)の環境変数をTerraformから設定する - Qiita
  • Serverlessで1サービス:多ファンクション管理 - Qiita

    #!/bin/sh errMsg1="Error:第2引数にはHTTPメソッドが必要です(例:get | post)" myDir=$(cd $(dirname $0); pwd) ymlPath=${myDir}"/serverless.yml" # チェック ## serverless.ymlがある場所を起点とする if [ ! -e ${ymlPath} ] then echo "Error:サービスディレクトリ直下に配置してください" exit fi if [ -z ${1} ] then echo "Error:第1引数には作成するディレクトリ名が必要です" exit fi fDir=${myDir}"/"${1} fdFlg="true" if [ -e ${fDir} ] then if [ ! -d ${fDir} ] then echo "Error:作成予定のファイルが

    Serverlessで1サービス:多ファンクション管理 - Qiita
  • Amazon AthenaでCloudFrontのログにクエリを投げたメモ - Qiita

    ※当記事は個人ブログに移行しました AWS re:Invent 2016 で発表された新サービス Amazon Athenaを早速(?)使ってみました。 S3にログを置いたままサーバレスでクエリが発行できるので集計等が捗ります。 すでに同様の記事も見かけましたが、デリミタの指定でうまくいかずにハマったのでメモ。 なお、CloudFrontのLogging設定はこの記事では触れません。 Databaseの作成 CREATE EXTERNAL TABLE IF NOT EXISTS <TableName> ( date DATE, time STRING, xEdgeLocation STRING, scBytes INT, cIp STRING, csMethod STRING, csHost STRING, csUriStem STRING, scStatus INT, csReferer

    Amazon AthenaでCloudFrontのログにクエリを投げたメモ - Qiita
  • AWSのEMRで分散クエリエンジンPrestoクラスタ作成→rubyから接続してS3の大量ファイル操作体験をしてみよう! - Qiita

    AWSEMRで分散クエリエンジンPrestoクラスタ作成→rubyから接続してS3の大量ファイル操作体験をしてみよう!AWSSQLEMRPresto分散処理 この記事はフロムスクラッチ Advent Calendar 2016の9日目の記事です。 筋トレ大好き!プログラミング大好き! あれ?そうすると、、、 筋肉系カレンダーにも投稿しないと、自称筋肉プログラマー失格なのでは!! と気で悩んでいます。 mixです。 最近の事件 そう!AWS、ATHENAが発表されました! Presto信者としては血湧き肉躍るニュースです! 簡単に説明すると、Prestoというfacebookの作ったフレームワークを AWSでサーバーレスに使えるという画期的かつ凄すぎる新サービスです! カレンダー2日連続になっていますが、 AWSの回し者とかじゃないです。。。(>_<) そもそもPrestoってなんじゃい

    AWSのEMRで分散クエリエンジンPrestoクラスタ作成→rubyから接続してS3の大量ファイル操作体験をしてみよう! - Qiita
  • SAM(Serverless Application Model)でStep Functionsを定義する - Qiita

    AWS Step Functions楽しいですね!! 今まではAWSの各種サービスを使ってLambda間を繋いだり、失敗を適切に処理してリトライをするようにしていましたが、Step Functionsがきたことによってその辺りの手間が一気に楽になりました!!! もうこれはバリバリ使うしかないですよ!! と、言いたいところですが、2016年12月現在ではCloudFormationに対応していないため、CloudFormationのラッパーのSAMでも利用することができません。 せっかく、SAMで複数のLambdaAPI Gatewayを定義できるようになったのに、そこにStep Functionsを組み込むことができないのは開発フローに組み込むことができないためとても面倒くさいです。 そこで、ないなら作ればいいじゃない!ということでCloudFormationのLambda-backed

    SAM(Serverless Application Model)でStep Functionsを定義する - Qiita
  • RubyでServerless: AWS Lambda編2016年度版 - Qiita

    RubyでServerless(FaaS)するには この記事はServerless Advent Calendar 2016の8日目の記事になります。 さて。唐突ですが先日のre:Invent速報記事、「[速報]AWS LambdaでC#のサポートを発表。オープンソースの.NET Coreを採用。AWS re:Invent 2016」のはてなブックマーク人気コメントを見てましょう。 (http://b.hatena.ne.jp/entry/www.publickey1.jp/blog/16/aws_lambdacnet_coreaws_reinvent_2016.html) あー。まあ、Rubyistのみなさんの思うことはだいたいそんなところですよね。 re:Invent 2016でAWS Lambdaのサポート言語にC#が加わり、JavaScriptPythonJavaと合わせて4つ

    RubyでServerless: AWS Lambda編2016年度版 - Qiita
  • 秒間500件以上のLOGフローアーキテクチャ - Qiita

    今年の9月、社内でLOGのアーキテクチャの改善を計るチームに参加する事になりました。 その際に経験させていただいた、知見をここでまとめてみようと思います。 背景 チームが作られた経緯としては、社内のLOGアーキテクチャを利用している際、問題が発生したためです。 問題発生した際の簡単なLOGアーキテクチャ図です。 backendのmongodbLOGの流量に耐えきれず落ちた。 log dispatcherまで派生し、他のbackend_serviceへのLOG流入にまで影響を及ぼした。 各種log dispatcherサーバの設定時、backend毎に流量の微調整を行わなくては行けないので障害発生時やサーバ構築時の対応にてインフラチームの人員コストが増大していた。 今回の目標 上記問題をふまえて、今回のLOGアーキテクチャ検討チームの目標は 秒間500件以上を各backendまで流し込むア

    秒間500件以上のLOGフローアーキテクチャ - Qiita
  • terraformでチームのAWSリソースを管理する - Qiita

    seeds company Xチーム、エンジニアの浅野ともうします。 子供からクリスマスプレゼントとしてミニカーをねだられ、amazonで物色していたのですが、気づいたら自分用にもいくつか同じミニカーを買ってしまっていました。 amazonてホント便利でこわいです。 amazonといえばAWSということで、チームのAWSリソースをterraformのコードで管理している話を書きたいと思います。 なぜterraformか(化) なぜcloudformationでなくterraformAWSであればcloudformationでもよいのですが、素のjsonツラいのと個人的にtao of hashicorpが好きなのでterraformにしました。 golang製なので単一のバイナリで動くのもありがたい。 とはいえcloudformationじゃないと実現できない機能もあるみたいですね。 因

    terraformでチームのAWSリソースを管理する - Qiita
  • テキスト処理コマンドをServerLessにしてみる - Qiita

    Serverless Advent Calendar 2016、9日目の記事です。 最近Microsoft Azure Functionを触りはじめてみました。 そこでふと関数毎にデプロイできるのなら、UNIX系OSのシェルコマンドのように、処理をパイプ的な感じで接続したら面白そうかもと思い、どんな感じになるか試してみました。 動作イメージ 動作イメージとしては、以下のようなテキスト処理コマンドをServerLess(というかAzure Functions)上で処理してみる感じになります。 $ cat foo.txt bbb aaa eee ccc bbb ddd fff $ cat foo.txt | sort | uniq | head -n5 | nl 1 aaa 2 bbb 3 ccc 4 ddd 5 eee Functions間でのテキストデータのやりとり Functions間で

    テキスト処理コマンドをServerLessにしてみる - Qiita
  • 運用フェーズにおけるGCPとAWSの違いについて - Qiita

    Google Cloud Platform(2) Advent Calendar 2016 8日目を担当するk-bataです。 Qiitaへ投稿するのは初めてで読みづらい点もあるかと思いますが、最後までお付き合いくださいませ。 今年になってGCPの東京リージョンが発表され、AWSにしか関心がなかった自分がGCPを触ってみたところ、非常に使いやすいと感じました。 特に運用フェーズではGCPの方が使いやすいと感じるところがありましたので、AWSと比較しながら紹介したいと思います。 対象となるかた AWSでたくさんのアカウント(VPC)を管理しているインフラ担当 GCPに興味はあるが、運用で楽できるのか不安に思っている方 ハードウェアメンテナンスで仮想マシンが停止しない AWSで100台以上のインスタンスを運用していると、月に一度はどこかの仮想マシンがメンテナンス再起動の必要に迫られます。 AW

    運用フェーズにおけるGCPとAWSの違いについて - Qiita
  • 〜AWSと介護現場〜API Gateway+Lambda+DynamoDB+SNSで作るナースコール - Qiita

    はじめまして。BRIGHT VIEでサーバサイドのエンジニアをしている @lemonade14 です。 今年弊社として初めてAdvent Calendarに参加しており、 BRIGHT VIE エンジニア Advent Calendar 2016の2日目の記事となります。 今回は、弊社の案件でナースコールシステムを介護現場に導入した際に AWSAPI GatewayLambda+DynamoDBSNSを利用して構築したお話を簡単にさせて頂きます。 介護現場とナースコール 今回担当させて頂いた介護の現場では、ナースコールが呼ばれるとPHSで受信し、 その連絡を受けて各担当者が利用者様のもとへ急行している状況でした。 そのため、いつだれがどのような場所でナースコールを利用されているのかのなどのログを介護記録として残すことが出来ず、 記載をすることが出来たとしても現場の方々が落ち着いたタイ

    〜AWSと介護現場〜API Gateway+Lambda+DynamoDB+SNSで作るナースコール - Qiita