Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
事の発端 社内から静的コンテンツをホストしてHTTPS使える環境が欲しいんだよねー。と要望を受けた。 私はAWSが得意なので考えた。 「静的コンテンツならs3か」 「s3でHTTPSならs3の前段にCloudFrontでSSL証明書入れるか(ちょっと面倒だな)」 「CloudFrontにSSL入れるなら無料のACMだな」 「ACM使うならメール認証だしSES要るな(面倒くせぇ)」 「SESでメール受信するならs3・・・・・・・・・・」 ガシャーン!(ちゃぶ台の音) 「俺がしたいのはこれじゃない感」 ということで 何か上の環境を一発で作れるツールあるかなぁ。と調べているとNetlifyというサービスが引っかかった。 Netlifyってなに? どうも静的コンテンツをホストしてくれて、SSLが使えるとな。Githubと連携して? ふむふむ。使ってみよう。 ということでGithubにリポジトリを作
facebookのドキュメントに記載されているクイックスタートを使ってMessenger Botを作ります。 用意すべきもの Node.jsが動くサーバー(herokuなど, SSLに対応できることが必須) facebookアカウント 手順 アクセストークンの取得順序などが前後してる場合があります. 適当に進めてみてください. Facebookページを作る. Facebook Developersに登録. 適当にアプリを作る. アプリにMessengerを追加. GitHubからサンプルをダウンロード default.jsonの全ての項目を埋める. (validationTokenは適当に決める) index.htmlのappIdなどを埋める. サーバーにデプロイ アプリのダッシュボードに戻りwebhookを設定. URLはサーバーのURL + /webhookとなる. Validatio
2017/8: GA版にあわせて書き直しました CloudFront + S3オリジン構成の場合、Basic認証を使ったコンテンツ保護が出来ませんでしたが、Lambda@Edgeによって可能になりました。 下記の機能を提供しています。 一部のパスだけを認証の対象にできる。この例では、パスにsecretが含まれるものだけが認証の対象です Authorizationヘッダがなかった場合に401ではなく403を返すことで、ブラウザの認証ダイアログが表示される 認証エラー時にBodyを返却する 複数のクレデンシャルに対応している 今のバージョンは、クレデンシャルがそのままハードコードされてるので、ソースの取り扱いにご注意を。 パスワードはハッシュをかけた方が安全ですが、これはTODOとします。 'use strict'; exports.handler = (event, context, cal
概要 現在開発しているburariというおでかけアプリでは、APIGatewayからLambdaを実行し、RDSのデータを取得している。 以前まで、LambdaからRDSへの安全な接続にはVPCが必須となっており、AWS Lambdaの定期実行をSAMを使って実装するにも書いたとおり、コールドスタート問題が懸念になっていたが、IAM認証でLambdaからRDSに接続できるようになったため、ついにVPCから解放される日がきた。VPCから解放されることにより、LambdaからSNSやKMSへの接続にNATが不要になるため、お財布にも優しいサービス運営が待ち受けている。 今回は接続まわりを実装してみる 💪💪 環境 Amazon RDS (MySQL v5.7.17, t2.micro) AWS Lambda (Node.js v8.10) Sequelize (ORM for Node.js
背景 herokuでRailsアプリを動かしていましたが、いかんせん無料なので起動が遅かったり、デプロイ時にR10(60sでタイムアウトする)に引っかかったりと辛くなってきました。 herokuへの課金や移行先を考えるにあたり、折角なのでGoogle Container Engine (GKE)も試してみました。 その際ちょいちょい躓く所があったので、備忘録として手順を残しておきます。 なお、とりあえず動かすことにフォーカスしています。 参考にされる場合、productionとして必要なNginxやSSLなどの諸々は追加で設定してください。 前提 dockerコマンドはインストールされているものとします 動くRailsアプリがあるとします 無ければRails newしたものでも良いですが、DBとの通信を確認できた方が良いです migrationファイルを適当に用意しましょう MySQLで考
Standard 1xまでは、1 Dynoに割り当てられるメモリは512MB 無料枠は全アプリケーション合計で月1000時間まで 現在(2016/06/01-)の料金体系では、Freeプランだと1アカウントあたりすべてのアプリケーションやアドオンを含めて1000時間までが無料枠となります(ref)。なので、例えば開発環境用と本番環境用で2つDynoを稼働していて、さらにnewrelicのアドオンを使用していると、その3つの使用時間の合計が1000時間になるまでが無料となります。よって、例えばwebアプリケーションを運用していてひと月常時稼働させようとすると、まず本番環境用のDynoだけで 24時間 x 30(日) = 720時間 ぶんを消費します。またFreeプランで常時稼働するためには上記の表にある30分sleep制限を回避するスクリプトなどを含める必要があるので、それもHerokuで設
AWS SESをちゃんと使う AWS SESは安価で簡単にメールの送信/受信トリガーが実現できるサービスです。AWSを使っているサービスの場合、けっこう使うことになると思います。が、ハマりどころや注意すべき所があるため、サービスの特性を理解して使ったほうが良いと思い、まとめてみました。 やること SESの制限解除申請をする DKIMに対応する/逆にSPFは対応しなくてOK バウンスと苦情の対応をSNS/SQSなどを使い自動化する 25番ポートは使用せず、465/587を使用する 配信メトリクスを監視する SESの制限解除申請 新規AWSアカウントの場合、SESはサンドボックスモードになる サンドボックスモードだと、検証済みEmail/ドメイン宛にしか送信できない 24時間あたり200通までの送信制限 / 1秒あたり1メッセージの受信制限 サンドボックスモードを解除するには申請する 制限はリ
始めに Chromebook愛用者向けの記事です。 Chromebook大好き。WindowsよりもUbuntuよりもArchよりもMacよりも好き。 シンプルで使いやすくてすごくいい。 そう思ってやまないのですが、プログラミングに関しては色々と悩むことが多く困ってました。 Chromebookのプログラミング環境について とりあえず現状とりうる手段と感じたメリット、デメリットを挙げてみます。 Cloud9等のクラウドIDEを使う メリット:特にローカルにインストールはいらない。(Chromebookらしい!!) デメリット;対応した言語以外を使うのがきつい。スペックが低い。スペック上げると案外値段が高い。 croutonでローカルにUbuntuをインストール メリット:Cloud IDEでは対応していないような言語にも対応できる(Elixirとか) デメリット:ローカルの管理が面倒くさい
こんにちはsekitakaです。 serverlessな環境での開発も随分慣れてきましたが、コードの再利用性についてどうしようか悩んでいるので考えたこと&暫定結論を公開します。 ベストプラクティスを模索中なのでコメントでの議論も大歓迎です。 前提条件 共通するDynamoDBのテーブル(例:User)を参照する3つのプロジェクトがある。 プロジェクトP1 プロジェクトP2 プロジェクトJ1 以下のような状況になっている。 プロジェクトP1には既にUserデータのデータを取得する関数がある プロジェクトP1,P2はPythonで実装されており、プロジェクトJ1はJavaScriptで実装されている。 プロジェクトは全てLambda関数郡としてデプロイされる。 お題 Userテーブルからのデータ取得を各プロジェクトに組み込むにはどんな方法がよいか考える 案 案1 - 車輪の再発明を恐れない 各
$ gcloud -v Google Cloud SDK 0.9.46 bq 2.0.18 bq-nix 2.0.18 compute 2015.01.22 core 2015.02.05 core-nix 2014.10.20 dns 2015.01.15 gcutil 1.16.5 gcutil-nix 1.16.5 gsutil 4.8 gsutil-nix 4.6 sql 2015.01.31 $ gcloud compute copy-files -h Usage: gcloud compute copy-files [[USER@]INSTANCE:]SRC [[[USER@]INSTANCE:]SRC ...] [[USER@]INSTANCE:]DEST [optional flags] Copy files to and from Google Compute Engin
やること TwitterのストリームデータをKinesisを経由してDynamoDBに保存します。 DynamoDB Streamにデータを流し、ブラウザでストリームデータを可視化する 構成図 Twitter Stream → Kinesis → DynamoDB AWS Lambda Reference Architecture: Real-time Stream Processing awslabsのアカウントにそのままやりたいことがありました。動かすとKinesisにデータを流して、キャプチャの通りDynamoDBにデータを保存してくれます。 DynamoDB → DynamoDB Stream → Lambda → SNS http Notification DynamoDB Streamの有効化 キャプチャの箇所からDynamoDB Streamを有効化します トリガーを有効化し
AWSのElasticCacheに関する基本的な内容をまとめてみたものです。ElasticCacheに関する、Web上にすでにある解説コンテンツをまとめたサイトの抜粋です。 [ElasticCache 典型的な利用構成] (https://www.techcrowd.jp/elasticcache/configurations/) [Stateシェアリングパターン] (https://www.techcrowd.jp/elasticcache/configurations/) ロードバランサーを使って複数のWebサーバーやAPサーバーを動かしている場合は、障害発生時にステート情報が消失してしまうことがある。 このようなステート情報の消失を防ぐためには、個々のサーバーに情報を格納するのではなく、共有のデータストアにステート情報を持たせるState Sharingパターンが有効です。 AWSで
すでに何人かの方が記事を書かれていますが、Go言語の情報が少ないので書いてみました。 基本的にはDevelopers.IOの藤本さんの記事を元に、Apex Goで実装してみました。 AWS Lambda Funcion作成 完成版のLambdaコードはGistを見てください。以下、要点のみ説明します。 全体の流れ ELBがアクセスログをS3に書き込むと、メタ情報がS3イベントとしてLambdaに渡され、該当のLambdaファンクションを実行します。 以下、処理詳細になります。 LambdaハンドラーがS3イベントを引数として受け取る。 S3イベントにはスライスで複数のアクセスログファイル名が格納されているのでループで処理する。 S3に接続し、アクセスログファイルのコンテンツを取得する。 取得したファイルを1行ごとループで処理する。(1行が1HTTPリクエスト) ログをJSON形式に変換する
はじめに 最近サーバレスアーキテクチャに興味を持っています。以下2エントリーはGoogle Apps ScriptでJava Scriptを使った時の記事ですが、今回はAWS上のLambdaを使って、サーバーレスでPythonコードを実行させることをやっていきたいと思います。記事の内容は、Pythonほぼ初めまして&&AWSほぼ初めましての人が、LambdaとDynamoDBでいろいろできるようになるまでの記録を書いていきます。 また最初AWS分かんなさすぎて最初は絶望していたし、Lambdaはエラー出まくって初見殺しだし、Python興味はあるけど使ったこと少なめと、かなり初心者目線で記事を書いていきたいと思ってます。写真多め、初心者がわかる程度の内容を、ひとつずつ書いていく感じですので、PythonistとAWS上級者の方は新しいことはないかと思いますが、どうぞよろしくお願いします。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く