タグ

ブックマーク / dev.classmethod.jp (127)

  • Amazon API Gateway プライベート API の「プライベート」を誤解してると、とても危ないという話。 | DevelopersIO

    API Gateway にはパブリック API と、プライベート API が作成できますが、「プライベート」という言葉を正しく理解していますでしょうか? 「自分の AWS アカウント内からのみアクセスできる API でしょ?」 と考えたあたなに質問です。図にすると、このようなイメージでしょうか? あなたのアカウント内にプライベートな API Gateway が存在し、他の AWS アカウントから接続するには承認しないと接続できない。それが「プライベート」だと。 このようにお考えの場合、API Gateway にはリソースポリシーでアクセス元を制限したり、API Gateway で認証なども実装できますが「今回はプライベートなので、特に制限は必要ありません。」と考え、以下のようなリソースポリシーを設定していたりするでしょうか? { "Version": "2012-10-17", "Stat

    Amazon API Gateway プライベート API の「プライベート」を誤解してると、とても危ないという話。 | DevelopersIO
    ryonext
    ryonext 2020/07/11
    ほんまそれ。
  • LambdaからRDS/RDBを利用する際に意識したいポイント5選 | DevelopersIO

    こちらの記事はRDS ProxyがGAされる前に執筆した記事です。現在はLambdaからRDSを利用する場合、間にRDS Proxyを挟むという選択肢が増えているので、まずはRDS Proxyを使う/使わないの検討をお願いします。以後で紹介しているトピックの一部はRDS Proxy利用時は考え方が変わってきます。 CX事業部@大阪の岩田です。私が現在関わっているプロジェクトではLambda × RDSというアーキテクチャを採用して開発を進めています。開発を進める中でLambda × RDS(RDB)という構成についてある程度ノウハウが貯まってきたので、注意したいポイントやオススメの設定をTIPS的に紹介していきます。 環境 以後の説明では以下の環境の一部もしくは組み合わせを利用しています。具体的なコードやSQLの例はプログラミング言語やDBエンジンに依存しますが、根底の考え方はどの言語、

    LambdaからRDS/RDBを利用する際に意識したいポイント5選 | DevelopersIO
    ryonext
    ryonext 2020/06/09
  • AWS SAM (AWS Serverless Application Model) で実現するカナリアリリース! | DevelopersIO

    どうやらSAMのデプロイメントでは、常にベースバージョン(prod)にデプロイされるようです。 で、先程3回目のSAMのデプロイメントがエラーになった理由ですが、こちらのドキュメントの最後の方に理由が記載されています。 Canary がステージで有効になっていると、デプロイは Canary リリースのデプロイになります。Canary 設定がステージから削除されるまで、ステージは非 Canary のデプロイに関連付けることはできません。 悲しい結末 結論として、 API Gateway Canary パターン をSAMのデプロイフローで利用するのは無理っぽいです。。。 理由は、 AWS SAMでCanarySettingは設定はできるが、カナリアバージョンへのデプロイが実質機能しない 仮に上記が可能だとしても、、、 API Gatewayの設定が変更されている必要がある ( = Lambda

    AWS SAM (AWS Serverless Application Model) で実現するカナリアリリース! | DevelopersIO
    ryonext
    ryonext 2019/04/03
  • 機械学習とかDeep Learningを学ぶ前に知っておくべき基礎の基礎 | DevelopersIO

    はじめに 数年ほど前から、「機械学習」や「Deep Learning(深層学習)」という言葉をよく聞きます。 どうやらこれを使えば売上予測ができたり画像の識別ができたり自動運転の車が実現できたりする、 すごい技術といわれています。 たしかにすごそうな技術だということはわかるのですが、「機械学習や深層学習をやってみよう!」 と思い立って、適当にググってTensorFlowとかをはじめようとすると、 いきなり壁にぶち当たるのではないでしょうか。(自分は当たった) 「機械学習でコンピュータが、がどういうものであるか人間に教えられること無く理解したんです!」 とかいわれても、いまいちピンときません。 機械学習は最近注目されていますが、1951年に最初のニューラルネットワーク(後述)が作成されたそうで、 それなりに歴史のある技術のようです。 やはりここは機械学習とかその周りの技術や用語についてゼロ

    機械学習とかDeep Learningを学ぶ前に知っておくべき基礎の基礎 | DevelopersIO
    ryonext
    ryonext 2019/01/15
  • AWS Architecture Icons、新しいAWS製品アイコンがリリースされました | DevelopersIO

    はじめに AWSチームのすずきです。 AWS構成図の作成に便利なAWSシンプルアイコンが、装いも新たに AWS Architecture Icons としてリリースされました。 従来のAWSシンプルアイコン(2017版)との違いを確認する機会がありましたので、紹介させていただきます。 公式ページ AWS Architecture Icons ダウンロードリンク PowerPointAWS アーキテクチャアイコン AWS-Architecture-Icons-Deck_20181009.pptx AWS_Simple_Icons_PPT_v17.1.19.zip 比較 AWS Architecture Icons のページ別に、2017年のAWSシンプルアイコンとの差異を確認してみました。 Analytics Glueと、Kinesis Video Streamsのアイコンが追加されま

    AWS Architecture Icons、新しいAWS製品アイコンがリリースされました | DevelopersIO
    ryonext
    ryonext 2018/10/30
  • [Amazon Connect] 星占いをメールで受け取るシステムを雑に作ってみた | DevelopersIO

    1 はじめに Amazon Connect(以下、Connect)では、発信元の電話番号の取得やLambdaの実行が可能です。 今回は、Connectで星占いのメールを受け取るサービスを雑に作ってみました。 最初に使ってみたようすです。 2 問い合わせフロー 設定した問い合わせフローは、次のようなものです。内容は、概ね以下のとおり。 言語を日語に設定 アナウンスと共にユーザーの入力を受け付ける Lambdaの実行 結果のアナウンス そして、Lambdaの実行時には、システムの保存済みのお客様入力をパラメータ(inputData)として送っています。 3 Lambdaの実装 下記のJSONは、Lambdaが呼び出された際に、Connectから送られてくるJSONです。 発信元の電話番号は、Details.ContactData.CustomerEndpoint.Addressから、ユーザー

    [Amazon Connect] 星占いをメールで受け取るシステムを雑に作ってみた | DevelopersIO
    ryonext
    ryonext 2018/10/22
  • Lambda+SQSを使ってDynamoDBの特定のデータを別アカウントのDynamoDBへコピー(移行)させてみる | DevelopersIO

    どうも!大阪オフィスの西村祐二です。 開発環境で使っていたデータを番環境など別環境でも使いたい場面はよくあると思います。 私もあるAWSアカウント上にあるDynamoDBの特定のデータを別のアカウントのDynamoDBへコピーしたい場面に出くわしましたので、Lambda+SQSを使ってDynamoDBの負荷をあげずにコピーする仕組みを作ってみました。 ※今回紹介する方法以外にも色んな方法があります。こんな方法もあるんだな程度で考えてもらえれば幸いです。 構成図 この構成の良さそうな点 個人的に思うこの構成の良さそうな点をあげてみます。 アカウントを跨ぐときの設定がSQSで許可するだけで簡単 ある程度速度調整ができる(今回は負荷をあげないようにゆっくりコピーするようにしているが速くもできる) コスト削減できるかも? ただ、以下を考慮しないといけないです。 複数回DynamoDBに書き込まれ

    Lambda+SQSを使ってDynamoDBの特定のデータを別アカウントのDynamoDBへコピー(移行)させてみる | DevelopersIO
    ryonext
    ryonext 2018/09/12
    Lambda 側の同時実行数1にしてスロットリング起きないのかな。 SQS -> Lambda の連携の際はある程度に並列実行されたと思うんだけど秒間1レコードだからうまく回ってるのかな。
  • 【小ネタ】Pythonで書いたLambda関数からnullしか返ってこない時の対処法 | DevelopersIO

    どうも、福岡のmeです。 今回はLambdaからDynamoDBのデータを取得するというシンプルな実装をしていたのですが、 嵌りどころがあったので同じことが繰り返されぬよう静かにここに書き記しておきます。 やろうとしていたこと Lambda関数からDynamodbへアクセスし、データを取得 環境 Python 3.6 + Boto3 問題のコード 必要な処理を getUsers() 内に書きLambda_handlerから呼び出すような形で実装していました。 import boto3 import os from boto3.dynamodb.conditions import Key, Attr from botocore.exceptions import ClientError dynamodb = boto3.resource('dynamodb') table = dynamod

    【小ネタ】Pythonで書いたLambda関数からnullしか返ってこない時の対処法 | DevelopersIO
    ryonext
    ryonext 2018/08/08
    これ Lambda 云々というよりは return 書かない場合に戻り値を返してくれる言語、そんなにないよ、という話なのでは。(Ruby に慣れているとよくやる)
  • 知らなかった。RIが小さいインスタンスタイプから順に適用されることを | DevelopersIO

    ご機嫌いかがでしょうか、豊崎です。 Reserved Instance(以降RI)を利用いただいているお客様のご利用明細にわかりづらい箇所があり、調べていたところ勉強になった点がありましたので書き残しておこうと思います。 具体的にはRIがインスタンスにどのように適用されるか?についてです。 発生した現象 「m3.xlarge」のRIを購入しているアカウントで、RIを適用する想定だった「m3.xlarge」インスタンスの月額料金の半分しか減額されていないように見えました。 なんで?? ドキュメントを読んでみました。 https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/apply_ri.html インスタンスサイズの柔軟性は、インスタンスサイズの正規化係数によって決定されます。割引は、予約したインスタンスサイズによって、同じインス

    知らなかった。RIが小さいインスタンスタイプから順に適用されることを | DevelopersIO
    ryonext
    ryonext 2018/08/08
  • CloudWatch Logsの保存期間を一括設定する | DevelopersIO

    渡辺です。 CloudWatch Logsは便利なのです。 しかし、開発や検証を行っている時、不要なログがずっと残ってしまい、無駄なコストになりがちです。 デフォルトではログは残り続けるので、都度失効時間を設定しなければなりません。 というわけで、全てのロググループの失効期間を一括設定するスクリプトを作成しました。 Node.js 8.x 以上でお試しください。 また、AWS-SDKを利用しているので、モジュールの追加を忘れずに。 なお、ローカルで実行するよりも、Lambdaで実行する方が確実で簡単でしょう。 const AWS = require('aws-sdk'); const cwl = new AWS.CloudWatchLogs(); // 1, 3, 5, 7, 14, 30, 60, 90, 120, 150, 180, 365, 400, 545, 731, 1827,

    CloudWatch Logsの保存期間を一括設定する | DevelopersIO
    ryonext
    ryonext 2018/07/29
  • Amazon Comprehendを使ってチャット中のユーザーの感情を判定する | DevelopersIO

    はじめに 機械学習を利用した自然言語処理サービス「Amazon Comprehend」(以下、Comprehend)には、テキストから感情の検出を行える機能があります。 【Amazon Web Services ブログ】Amazon Comprehend – 継続的に学習される自然言語処理 自然言語処理サービスの Amazon Comprehend についてまとめてみた #reinvent 今回は、Comprehendの感情検出機能とLexを利用して、チャット上で入力されたテキストを元にユーザーの感情を判定する仕組みを作ってみます。 (ComprehendおよびLexは2018年6月11日時点で日語に対応していないため、英語で実装します) ボットの準備 まず、Lexでチャット用のボットを作成します。 Lexを初めて触る場合は、以下を参考にするとよいでしょう。 Amazon Lex で H

    Amazon Comprehendを使ってチャット中のユーザーの感情を判定する | DevelopersIO
    ryonext
    ryonext 2018/06/13
    これ弊社業務でも必要では
  • API GatewayのLambda オーソライザーから後続のLambdaにデータを引き渡す | DevelopersIO

    API GatewayLambdaオーソライザー(カスタムオーソライザー)から後続処理にデータを引渡す方法について調査してみました。 サーバーレス開発部@大阪の岩田です。 API GatewayLambda オーソライザー (以前のカスタムオーソライザー)について調べる機会があったので、調査したことをまとめます。 Lambdaオーソライザーとは? 以前はカスタムオーソライザーと呼ばれていた機能で、Lambdaを使用してAPIメソッドへのアクセスを制御する機能です。 以前こちらの記事でも紹介されています。 Amazon API Gateway で Custom Authorization を使ってクライアントの認可を行う 現在開発しているアプリの中で、単なる認可処理だけではなく 処理の中で取得した情報を後続のLambdaに引き渡したい Lambdaオーソライザーで認証が失敗した場合のエラ

    API GatewayのLambda オーソライザーから後続のLambdaにデータを引き渡す | DevelopersIO
    ryonext
    ryonext 2018/05/27
  • Step Functionsのステートマシンを利用した正規表現エンジンを作成する | DevelopersIO

    引用 : 正規表現エンジンを作ろう (3) 構文解析 構文解析処理では、字句解析処理で作成されたトークンをもとに構文的なチェックを行い、同時に構文木の作成を行います。 構文解析を行うにあたって、事前に正規表現の文法規則を整理しておく必要があります。ここではバッカス・ナウア記法(BNF)と呼ばれる記法を用いて、文法規則を記述します。この文法規則に従って正規表現を分解することで、正規表現として与えられた文字列が構文として正しいかどうかを確認することができます。 <expression> ::= <subexpr> <EOF> <subexpr> ::= <seq> "|" <subexpr> | <seq> <seq> ::= <subseq> | "" <subseq> ::= <star> <subseq> | <star> <star> ::= <factor> "*" | <facto

    Step Functionsのステートマシンを利用した正規表現エンジンを作成する | DevelopersIO
    ryonext
    ryonext 2018/05/23
    “本手法が有効な場面等は特に思いつかないため、皆様におかれましてはこれまで通りStep FunctionsをLambda等と共にご利用いただければと思います。”
  • [新機能] API のアクセスコントロールが簡単に!API Gateway でリソースポリシーが設定可能になりました | DevelopersIO

    こんにちは、菊池です。 今回紹介する新機能はこちら。 Amazon API Gateway Supports Resource Policies for APIs API Gatewayでリソースポリシーが設定可能になり、IAMユーザやIPアドレスでのアクセス制御ができるようになりました。 API Gatewayにリソースポリシーを設定する さっそく試してみます。公式ドキュメントに、リソースポリシーのサンプルも公開されていますので参考に設定します。 API Gateway Resource Policy Examples | Amazon API Gateway Developer Guide マネジメントコンソールからは、対象のAPIを選択すると、左のメニューに「リソースポリシー」があります。 画面下の、「AWSアカウントのホワイトリスト」「IP範囲のブラックリスト」を選択すると、サンプ

    [新機能] API のアクセスコントロールが簡単に!API Gateway でリソースポリシーが設定可能になりました | DevelopersIO
    ryonext
    ryonext 2018/04/05
  • 【完全新機能】DB認証情報やOAuthキーを一元管理可能なAWS Secrets Managerが発表されました! | DevelopersIO

    現在開催されている、AWS Summits 2018 | San Franciscoにおいて、AWS Secrets Managerが発表されました。 AWS Secrets Manager: Store, Distribute, and Rotate Credentials Securely | AWS News Blog 2018年4月9日更新 AWS Secrets Managerを学ぶ時に便利なリソースや、概要、構造、チュートリアルなどをまとめた記事を公開しました。こちらも合わせて御覧ください。 機密情報を一元管理できる「AWS Secrets Manager」とは?概要と主要機能、動作原理、各種リソースまとめ __ (祭) ∧ ∧ Y  ( ゚Д゚) Φ[_ソ__y_l〉     Secrets Managerダワッショイ |_|_| し'´J AWS Secrets Mana

    【完全新機能】DB認証情報やOAuthキーを一元管理可能なAWS Secrets Managerが発表されました! | DevelopersIO
    ryonext
    ryonext 2018/04/05
  • 【小ネタ】AWS SAMでLambda関数を作成する場合はCloudWatch LogsのLog Groupも同時に作った方がいいという話 | DevelopersIO

    【小ネタ】AWS SAMでLambda関数を作成する場合はCloudWatch LogsのLog Groupも同時に作った方がいいという話 はじめに こんにちは、中山です。 現在私が関わっている案件ではサーバーレスアプリケーションをAWS SAMとCloudFormationで構成管理しています。API GatewayLambda関数などのアプリケーションレイヤをAWS SAMで、IAMやS3、DynamoDBなどのインフラレイヤをCloudFormationでといった具合に使い分けてます。この理由については以下のエントリの「AWS SAMの責任範囲を考える」を参照してください。 AWS SAM/CircleCI/LocalStackを利用した実践的なCI/CD – ClassmethodサーバーレスAdvent Calendar 2017 #serverless #adventcale

    【小ネタ】AWS SAMでLambda関数を作成する場合はCloudWatch LogsのLog Groupも同時に作った方がいいという話 | DevelopersIO
    ryonext
    ryonext 2018/03/19
  • LambdaではじめてのLINE Botを作る | DevelopersIO

    最近AppleWatchを買いました。早く札幌の外を走りたい!と思っている中村です。 今日はAmazon API Gateway(以下 API Gateway)とLambdaLINEのMessaging APILINEBotを作ります。 これは言ったことを言い返してくれるBotです。 お品書き LINEデベロッパー登録して、APIキーを取得する API Gateway & Lambdaを設定する 実際に投稿する LINEデベロッパー登録 1.Messaging APIを利用するにはを参考に、LINEアカウントでログインし開発者登録する。 ・Messaging APIは、サービスとLINEユーザーの双方向コミュニケーションを可能にする機能。 2.続いて"プロバイダー"と"チャネル"を作成する。今回はどちらも"やまびこくん"とする。(詳細は画像を参照) ・プロバイダーは、アプリを提供する組

    LambdaではじめてのLINE Botを作る | DevelopersIO
    ryonext
    ryonext 2018/03/15
  • AWS Lambda(Python) の開発環境・テスト・デプロイ・CI 考察 | DevelopersIO

    作るもの ヒーローを管理する Lambda Function を書きます。ヒーロー情報は DynamoDB の ヒーローテーブルに格納するものとします。リポジトリは以下。 * Python Lambda SAM + SAM Local Project コーディング作業 すべてはコードを書くところから始めます。いきなりプロジェクトルートにファイルを置いて書き始めるのも良いですが、後々テストやデプロイも行うことになるので少し整理してみます。以下のようにしました。 . ├── buildspec.yml ├── deploy.sh ├── docker-compose.yml ├── environments │   ├── common.sh │   └── sam-local.json ├── integration_test.sh ├── requirements.txt ├── src

    AWS Lambda(Python) の開発環境・テスト・デプロイ・CI 考察 | DevelopersIO
    ryonext
    ryonext 2018/03/12
  • AWS Serverless Application Repositoryに社内で利用している住所情報検索APIを公開してみた | DevelopersIO

    はじめに こんにちは、中山です。 先週ついにGAとなったAWS Serverless Application Repository、みなさん利用されていますか?AWS SAMで作成したサーバーレスアプリケーションを簡単に公開できる期待のサービスです。すでに多くのパブリッシャーがアプリケーションを公開しています。ビッグウェーブの高まりを感じたので早速私も公開してみました! 北部バージニアリージョン で利用できます。 何を公開したの? 郵便番号や都道府県コードを元に住所/都市情報を返すAPIです。詳細はREADMEに記載してますが、構成図を添付します。 お客様向けに開発しているモバイルアプリのバックエンドで実際に利用しているAPIです。ユーザ登録時などの都道府県情報を登録する際に活用しています。数百万ダウンロードされているアプリからのリクエストを受けても、$10/月以下で運用できているところが

    AWS Serverless Application Repositoryに社内で利用している住所情報検索APIを公開してみた | DevelopersIO
    ryonext
    ryonext 2018/03/01
  • EC2インスタンスの比較検討が超効率的にできるサイト[EC2Instances.info]の紹介 | DevelopersIO

    「うーん、だいたいWebサーバは、vCPU2で、メモリ8GBぐらいで良いんだけれど、どのインスタンスが一番お得なんだろう? よくわかんねぇ・・・(;´Д`)」 現在、EC2インスタンスは現行世代だけでもタイプが18種類。旧世代も合わせて、全ての世代・サイズを合わせると、その種類は100を超えます。 それぞれのユースケースを想定して多数のインスタンスタイプが用意されているわけなので、EC2の進化には驚くものがあるのですが、最初に軽くインスタンスを選ぼうと思っても、種類が多すぎて選ぶ時の敷居が高くなっているかなぁと感じるときもあります。 今日は、そんなインスタンスタイプの選択に迷っている方に向けて、EC2インスタンスの比較検討が、非常に効率的にできるサイトを紹介します。あと、インスタンスタイプ比較検討マニアにも受けるかもね! ほな、行ってみよ。 サイト「EC2Instances.info」の紹

    EC2インスタンスの比較検討が超効率的にできるサイト[EC2Instances.info]の紹介 | DevelopersIO
    ryonext
    ryonext 2018/01/01