- 1. サーバーレスに触れる
- 2. lambroll & GitLab CI/CD Pipelineを使ってみた
- 3. 知識ゼロからSlackで匿名チャンネルを作ってみた話
- 4. API Gateway 経由で Lambda 呼び出して CORS ではまったのでメモ。
- 5. 1ヶ月〇〇○円で速度改善!?事業でも個人開発でも導入できる画像リサイズのAPI
- 6. Slackで動的なユーザグループを作成しようと試行錯誤した物語
- 7. 簡易的な社内向けAtlassian製品のクラウドサービスを構築してみた話
- 8. サーバーレス将棋 AI – WebSocket 編
- 9. 【Python用】AWS Lambda Layerへのアップロードファイルをササッと作る
- 10. 【待望リリース!】もう Lambda×RDS は怖くない!LambdaでRDSプロキシを徹底的に検証してみた 〜全てがサーバレスになる〜
- 11. AWS Lambda + DynamoDB + SES で作るServerlessメール配信機能
- 12. StepFunctionsの入力方法サンプルメモ集
- 13. Provisioned Concurrency for Lambda Functions ちょっと試してみた。
- 14. re:Invent 2019 – Lambda Provisioned Concurrency やってみた
- 15. ECSタスクの終了ステータスを見てLambdaを発火させる
- 16. 本当にあったAWSでやらかした話と対策?
- 17. 社内chatworkにVIPチャンネルを作った話
- 18. らくらく?スタートアップ用片手間手抜き分析プラットフォーム作り(BigQuery+Tableau)
- 19. 【AWS】RustでServerlessFrameworkを使ってみる
- 20. 【サーバレス機械学習入門】AWS Lambda レイヤーの使い方
サーバーレスに触れる
# はじめに
APIGateway、Lambda、DynamoDBを使って
簡単なサーバーレスアプリケーションを作成して
サーバレスに触れてみようと思います。
自分用の備忘録として記述しようと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510859/c91bc177-ba4d-dd2e-acc0-c51ea8e9b578.png)# 1.DynamoDBを作成
DynamoDBの説明は[こちら](https://www.slideshare.net/shimy_net/amazon-dynamodb-23315068)を参考にしてみて下さい。## テーブル作成
コンソール画面からDynamoDBの画面に移動します。
そして[テーブル作成]をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510859/53079572-e15b-36ee-0137-9c829
lambroll & GitLab CI/CD Pipelineを使ってみた
## Lambdaのコードだけ入れ替えしたい
サーバーレスが気になって夜も6時間しか眠れないサーバーレス気になる人間「ながの」です。
AWSでサーバーレスと言えばAWS Lambdaですよね。みなさん、AWS Lambda使ってますか?
Lambdaを使っていると`コードだけ入れ替えたいなあ`ってときありますよね?
基本的にはAWSリソースはCloudFormationで管理していますが、ちょっとしたコードの変更なのにCloudFormation動かしたくないですね。CloudFormationを動かした事でリソースが予期せぬ変更をする可能性もないとは言えないですし。
でも都度都度CLIでやるのも面倒ですし、コードをコピペして書き換えるのはもっといやですよね。
じゃあどうすればいいんだー!?
ってことで`lambroll`を使ってみました。
## lambrollとは?
[GitHub – fujiwara/lambroll: lambroll is a minimal deployment tool for AWS Lambda.](https://github.c
知識ゼロからSlackで匿名チャンネルを作ってみた話
#はじめに
AWSの知識もLambdaの知識もPythonの知識も全くない状態でSlackに匿名チャンネルを作ろうと四苦八苦したときの備忘録。#きっかけ
Advent Calendarに誘われQiitaで何か記事書かないと…と考えてきた時に
>社内slackにVIPチャンネルを作った話
>https://qiita.com/peisuke/items/80984db8b47cd8243019この記事を読んでこれは面白そうだ自分が参加しているSlackにも導入してみたい!と軽い気持ちで手を出したのが悪夢の始まり。
全く知識なくてもコード書いてあるしこれ使えば簡単に導入できると思ったんです。##botの作成
貼られてるSlack APIのサイトからSlack botの設定をすればいいんだね。
ふむふむbot作るの初めてだけどこれくらいフィーリングでわかる。
設定も書かれてるしこの通りに設定完了!##最初の躓き(Lambdaの準備)
次は順番通りにLambdaの準備…Lambda…Lambda…って何?
>色々な所に解説が乗っているので、Lambda+API Gatewayの
API Gateway 経由で Lambda 呼び出して CORS ではまったのでメモ。
## 概要
Vue.js から API Gateway 経由で Lambda 関数を呼び出したら CORS のエラーが出てはまったので書きます。状況としては、Vue.js で axios の get を使用して、認証ありの API Gateway 経由で Lambda 関数を呼び出したら、console に “Access to XMLHttpRequest at ‘< API の URL >‘ from origin ‘< フロントの URL >‘ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.” というエラーが出ました。ちなみに、API Gateway で CORS の有効化は既に行なっている状況でした。## CORS を有効化
念のため、CORS を有効化するところから書きます。詳しい方法は AWS 公式ドキュメントの [こちらのページ](https://docs.aws.amazon.com/ja_jp
1ヶ月〇〇○円で速度改善!?事業でも個人開発でも導入できる画像リサイズのAPI
この記事は[Ateam Brides Inc. Advent Calendar 2019](https://qiita.com/advent-calendar/2019/a-t-brides) 6日目の記事です。
3日目に続きまた書きます[@fussy113](https://qiita.com/fussy113)です。
今回は実際に担当をしているWEBサービス、[HIMARI](https://hi-ma-ri.net/)で行なった簡単速度改善のお話です。
少し前の話にはなりますが、速度改善の一貫として画像のリサイズ、CDNサービスに利用したキャッシュをAWSサービスのみで実装しました。
# この記事のターゲット
– ページスピード改善を目指すエンジニア
– 一つのやり方として参考にしてなれば!# システムの構成
導入したHIMARIはRailsで作られています。
active_storageを利用して一部画像をS3は置いてあります。画像のリサイズ、CDN利用により、どれほどの効果が見込めるのかの検証をするため、ミニマムに一部分だけ導入を進めることとなりました
Slackで動的なユーザグループを作成しようと試行錯誤した物語
この記事は [JSL \(日本システム技研\) Advent Calendar 2019 \- Qiita](https://qiita.com/advent-calendar/2019/jsl) の12月6日の記事です。 昨年のカレンダーは[こちら!!](https://qiita.com/advent-calendar/2018/jsl)
## TL;DR
* Slackで動的なユーザグループがあると便利そう
* `@here` みたいな
* Slackの `usergroups.users.update` APIを使うと行けるのでは?
* `Chalice` (Python)と `AWS Lambda` 使って定期実行したらできた
* できたけど問題が発生したので辞めた
* 用途にあってるのか技術検証大事## 前置き
弊社は歴史が古いながらも、「コアタイムなしのフルフレックス&リモートワーク推奨」な自由な働き方を売りにしている会社です。
出社時間はみんなバラバラですし、3割ぐらいはリモートワーカーです。よって、オフィスを構えているものの全員が出社することは稀です。
簡易的な社内向けAtlassian製品のクラウドサービスを構築してみた話
私の所属している[リックソフト株式会社](https://www.ricksoft.jp/)では、Atlassian製品をはじめとしたツール製品の販売を行っています。
今回、製品を購入検討中のお客様向け評価環境提供や、社内向けの検証環境として使える、簡易的な社内向けAtlassianサーバ製品のクラウドサービスを構築してみました。(当社が提供している[リッククラウド](https://www.ricksoft.jp/cloud/rickcloud/)とは別のものです)
社内では「インスタできる君」と呼ばれているもので、今回はこの社内向けクラウドサービスについて、技術的な内容を含めながらご紹介します。
## 概要
Atlassianのサーバ製品を、Web上から簡単に作成して利用できるシステムです。
本システムを利用することで、お客様への評価環境や、社内向けの検証環境を、数分で準備することが出来ます。
次より、具体的な環境作成の流れを説明していきます。## アプリケーション環境作成の流れ
フロントエンド(管理画面)から「追加」をクリックします。
![image.png](h
サーバーレス将棋 AI – WebSocket 編
Web ブラウザからクラウド上の将棋 AI を呼ぶアプリケーションを作りました。
https://d3iczbzr06u2at.cloudfront.net/将棋 AI が [伝説の ▲52 銀](https://book.mynavi.jp/shogi/detail/id=88815) を発見する瞬間を、ブラウザで体験できます!
# 背景
三年前、[サーバーレス将棋 AI ☖](https://qiita.com/na-o-ys/items/b04ce27732c82b6beb9b) という記事を書きましたが、あれから
【Python用】AWS Lambda Layerへのアップロードファイルをササッと作る
# 前提
Dockerを利用して、Lambdaで使うPythonライブラリのLayerアップロード用zipを作る。
手順はrequestsをzipにする場合のサンプル。# 手順
ホストOSで、ライブラリを使うバージョンのPythonコンテナにアタッチする。
“`sh
$ docker pull python:3.8
$ docker images
$ docker run -itd ImageID bash
$ docker attach ContainerID
“`コンテナ側では、pipでライブラリを取得し、zipにまとめる。
“`sh
$ apt-get update & apt-get install zip
$ mkdir python & pip install requests -t ./python
$ zip -r upload.zip python
“`「Ctrl + p, Ctrl + q」でコンテナから抜け、コンテナからホストにzipをコピーし、コンテナを終了させる。
“`sh
$ docker cp ContainerID:/roo
【待望リリース!】もう Lambda×RDS は怖くない!LambdaでRDSプロキシを徹底的に検証してみた 〜全てがサーバレスになる〜
本日の reinvent でのリリースで衝撃のアップデートがたくさん出ましたね。EKS on Fargate や SageMaker の大幅アップデートも魅力的ですが Lambda の常識をくつがえす RDS のプロキシ機能が登場しました ?
ついに出ました!これでLambdaからRDS使うの怖くなくなります。Lambdaからも使えるコネクションプールマネージャ。これでLambdaとRDBMSの相性問題は先日のVPCの改善と合わせて解消されますー。SQL最高!! / “Using Amazon RDS Proxy with AWS Lambda | AWS Compute Blog” https://t.co/YWgIu19GoH
— Keisuke69@AWS re:Invent (@Keisuke69) AWS Lambda + DynamoDB + SES で作るServerlessメール配信機能
今までは大量にメールを配信するシステムをつくるのは簡単なことではなかた。
ですが、AWSが提供している複数のサービスを組み合わせることで大量のメールを配信する機能も簡単に作れるようになりましたね。いろいろなユーズケースによって、様々設計方法があるかと思いますが今回はAWS Lambda + SQS + DynamoDB + S3の組み合わせでつくるメール配信機能を設計してみました。# 作成したい機能
テンプレートで作成したメールマガジンデータファイルをS3にアップして、おなじく対象のユーザリストをcsv形式のファイルをアップすると、配信希望の時間になったら大量のユーザに対してメールを配信する。配信したメールの配信履歴を6月間保存してそれ以前の配信履歴を削除する。# 設計図
### パタン1:事前準備しないで送信
![plantuml(1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120301/82b15e31-0780-650e-cd4f-fa82297f3455.png)###
StepFunctionsの入力方法サンプルメモ集
# メモ
## 前提
### 検証用Lambdaファンクション
引数を出力するだけ“`ruby
require ‘json’def lambda_handler(event:, context:)
puts event
puts context
{ statusCode: 200, body: JSON.generate(‘Hello from Lambda!’) }
end“`
## InputPath
StepFunctionsの実行の入力のうちで、Lambdaファンクションにわたす引数を抽出する。
### ステートマシン定義
“`json
{
“Comment”: “test”,
“StartAt”: “Hello”,
“States”: {
“Hello”: {
“Type”: “Task”,
“Resource”: “arn:aws:lambda:ap-northeast-1:xxx:function:inputparameter-test”,
“InputPath”:
Provisioned Concurrency for Lambda Functions ちょっと試してみた。
AWSの一番好きなサービスはAWS Lambda な人です。
—
re:invnet 2019真っ最中で、量子コンピューティングサービス出てきたり、EKS for Fargateとか出ている中で、Lambdaのアップデートがいくつかありました。
その中で、過去の経緯上、個人にちょっと熱かった
[Provisioned Concurrency for Lambda Functions](https://aws.amazon.com/jp/blogs/aws/new-provisioned-concurrency-for-lambda-functions/)
についてやってみたので、所感のメモです。
※リンクは日本語でたら変えるかも例によって、クラスメソッドさんが速報を上げてくれているので、こちらも
[[速報]コールドスタート対策のLambda定期実行とサヨナラ!! LambdaにProvisioned concurrencyの設定が追加されました #reinvent | Developers.IO](https://dev.classmethod.jp/cloud/aw
re:Invent 2019 – Lambda Provisioned Concurrency やってみた
## Provisioned Concurrency とは
Lambda のコードスタート対策として、CloudWatch Events から定期的に Lambda を呼び出すという処理を、一般機能として提供されます。## 前提条件
– **$LATEST** バージョンに設定できない
– **エイリアス** か **バージョン** の設定が必要
– 無料枠に適用されない## どう設定する
Lambda の設定画面で設定できます![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160072/5b62a02c-91bc-2446-f910-3490139fdcb0.png)
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/160072/44983f90-c15d-3d97-5186-e77f541c762b.png)## 料金設定 (東京リージョン)
||Price|
|—|—|
プロビジ
ECSタスクの終了ステータスを見てLambdaを発火させる
LIFULLでSETとしてテスト自動化やCI/CDの改善をやってます。
弊チームの自動テストはECSタスクで実行しています。
その自動テストの運用改善の一環で調べたことを書き綴ります。# 自動システムテストのアーキテクチャ
下記の流れでテスト実行・テスト終了通知を行っていました。
Scheduled task(定時実行)
↓
ECS Run task(自動テスト実行)
↓
Cloudwatch Rules(ECS Taskの完了を検知)
↓
Lambda(チャットツールへ通知)# 要求・要件
従来のままだとテストがすべてPassしても通知が来てしまいました。
ある自動テストプロジェクトの際に「テストがFailしたときだけチャットに通知させたい」という要求が生まれました。
よく考えれば当たり前の要求です。(たまたま私達の運用ではいらなかった)要件に落とし込むと
「ECS Run taskで実行したテスト実行コンテナの終了ステータスが異常値の場合だけLambdaを発火させたい」
となりました。# やったこと①:ECSイベントを調査
ECSタスクはある状態から別の状態に
本当にあったAWSでやらかした話と対策?
# 概要
みなさんこんにちは?
「[フォトリ](https://photream.com/)」という家族写真の撮影サービスを運用している会社でCTOをしてるカイトズズキと申します。この記事では、先日会社のAWSで割と高額の請求が来てしまい?死にたくなる思いをしたので、そのお話についてしていきます。
AWSは便利だけど、お金使いすぎたりしないか不安になりますよね。
特に僕はそんなにAWSには詳しくない人間なので、なおさらドキドキです。この記事を通して、僕がやっちまった失敗をみなさんに知ってもらい、
同じような失敗をする人が1人でも減ることを祈ってます?# やらかした話
### やらかしレベル
まず、結果としてどれくらいやらかしたかと言うと、
普段の使用料金以外に、
– `Lambda` で **10万円** くらい
– `S3` で **30万円** くらい
の請求が来てしまいました、、、普段は数万円程度で2つのWebサービスを運用しているため、
最初に気づいたときは驚きすぎて理解に苦しみました、、、笑なお、結果的に `Lambda` の方はAWS様にご返金いただき
社内chatworkにVIPチャンネルを作った話
# がいよう
[社内slackにVIPチャンネルを作った話](https://qiita.com/peisuke/items/80984db8b47cd8243019)上記エントリが面白かったのでchatwork版を作りました。
# やりたいこと
– 匿名チャンネルと、発言するbotアカウントを用意する。
– botアカウントで[Chatwork Webhook](http://developer.chatwork.com/ja/webhook.html)を使う。
– WebhookをAWS API Gatewayで受け取り、Lambdaを発火する。
– Lambdaから[Chatwork API](http://developer.chatwork.com/ja/endpoint_rooms.html#POST-rooms-room_id-messages)を使いbotアカウントで匿名チャンネルへ発言する。やっていきましょう
# Chatworkをやる
匿名チャンネルと、発言するbotアカウントを作ります。
匿名チャンネルには一緒に遊びたいユーザーを全員追加して
らくらく?スタートアップ用片手間手抜き分析プラットフォーム作り(BigQuery+Tableau)
# TL;DR
入社当初、社員10-20名の小さいスタートアップでプロダクトのデータをもろもろまとめたい、ディレクター職や何か数値をまとめたいときに簡単に低予算、手間かけないで分析基盤を用意したことをおさらいします
# 背景
Moff AdventCalender第4号は私が入社してすぐに取り掛かったことで、低予算+抵工数の分析基盤作りについて紹介します。どういう変遷だったか詳しくは覚えていないんですが、Moffが介護事業所や医療機関に提供するサービスでは、MoffBandを装着したユーザーが、あるトレーニング・動作を実施することで、そのトレーニング結果・動作結果(可動域の角度や速さ、回数、腕振りの腕の向きデータや歩行のバランスにまつわる数字データetc)を記録しております。
また、初期ローンチを少人数でカバーするために当時Serverless(API Gateway + Lambda + DynamoDB、ところによりKinesis Data Stream)にてプロダクトをリリースしてたので、ユーザーデータ含め、運動動作にまつわるデータは全てKVS(DynamoDB)で管理され
【AWS】RustでServerlessFrameworkを使ってみる
この記事は Rustその2 Advent Calendar 2019 12/3 の記事です。
以前ブログでも書いたのですが、今回はRustを使ってServerlessFramework用のプロジェクトを作るための最小限のことだけ書いていきます。
## 環境構築
### Rust
||バージョン|
|—|—|
|rustc|1.41.0-nightly|
|rustup|1.20.2|
|cargo|1.41.0-nightly|### ServerlessFramework
||バージョン|
|—|—|
|yarn|1.19.2|
|serverless|1.58.0|
|serverless-rust|0.3.7|### Rustインストール
“`bash:console
curl –proto ‘=https’ –tlsv1.2 -sSf https://sh.rustup.rs | sh
“``.profile`にPATHが更新されるので確認して、読み込みます。
“`bash:console
$ cat ~/.profile
【サーバレス機械学習入門】AWS Lambda レイヤーの使い方
## はじめに
これは[機械学習ツールを掘り下げる by 日経 xTECH ビジネスAI③ Advent Calendar 2019](https://qiita.com/advent-calendar/2019/machine-learning-02)の1日目の記事です。
12/20に記事を書こうと思っていたのですが1日目が埋まっていなかったので突貫工事で記事を書きました。
私はAWS Lambdaが大好きなので、Lambdaで機械学習するノウハウを書いていこうと思います。
本記事では**Lambda関数でPandasなどの外部ライブラリを使う方法**をまとめておきます。[^ase]
[^ase]: 1日目がこんなんでいいのか…?
## これまでのAWS Lambda
これまでのAWS Lambdaでは、外部ライブラリを用いる場合[^built-in]
– Lambda関数のソースコード
– ライブラリのソースコードこれらをZipファイル(デプロイパッケージ)にまとめてアップロードする必要がありました。
[^built-in]: [組み込み関数](https: