久々に溜まったブログネタ放出をしようかなと、その前に下書きから掘り起こしてきた、いまさらなスロークエリ関連で準備運動です。 RDSのスロークエリ情報は当然、集計を自動化していつでも見れるようにしてあるのですが、ちょいと必要があったので、今回はあえて単発ログを集計する形に切り出したものを用意してみました。 スロークエリログの必要性 最近はNewRelicとかで、アプリケーションの処理を分別して処理時間などを集計するので、それで課題となるクエリを確認したりもします。 非常に便利な仕組みですが、アプリケーション外のジョブなどが実行したクエリは集計されないことや、負荷試験で課題を炙り出すときだとテスト環境にエージェントやライブラリを仕込む必要がある、といったデメリットとまでは言わないまでも面倒さがあります。 その点、スロークエリはサーバー側で記録するものなので、0.1秒とかでONにしておけば、対象
こんにちは、クラスメソッドの岡です。 今回Step Functionsを使って簡単なETL処理を試す機会があったので実際に作ったものを公開します。 サーバーレスでETL処理、といえばAWS Glueが浮かぶかと思いますが、今回はGlueは使わず、LambdaのPythonランタイムでPandasを使ってS3のデータとDynamoDBのデータを結合するような処理を行ってみたいと思います。 ちなみに私はデータ分析に関する知識はほぼ皆無ですが、PythonライブラリPandasを使う事で簡単にデータ処理を行えました。 シナリオ 今回はIoTデバイスから送られてくる時系列データがS3に出力されている前提として、そのファイルとDynamoDBにあるデバイスのマスタデータと結合して分析データとして別のS3バケットに出力する、といったシナリオを想定しています。 構成 サンプルコード 今回はServerl
はじめに 前提知識 導入 pytest moto 状況設定 テスト対象のコード テストメソッドを書く フィクスチャーを書く moto だ…! テストを実行してみる おまけ まとめ 参考 はじめに こんにちは、技術4課の保田(ほだ)です。 皆様は現在話題沸騰中の映画 TENET (テネット)をもう観に行かれましたでしょうか?最高に最高ですので、皆様も三密にご注意のうえ是非とも観ていただきたいです。そして考察を語り合いましょう。 というわけで今日は pytest と moto で優勝していきたいと思います。 具体的には DynamoDB への操作を moto でモックして、 pytest で単体テストするサンプルをご紹介します。 前提知識 文章が無限に増えることは避けたいため、以下の知識をお持ちのことを前提とさせていただきます。 Python (の基本的な書き方) boto3 単体テストの概念
はじめに 藤本です。 のんのんびよりは二周目でも癒やされます。 概要 みなさん、ソフトウェアの脆弱性対応をどのように取り組んでいますか? ソフトウェアの多くには潜在的なバグが内在していて、そのバグ、脆弱性を利用されることでシステムが停止したり、情報を漏洩したり、最悪、システムが乗っ取られると言った様々なリスクを抱えています。これらのバグ、脆弱性の情報は様々な組織が運営する脆弱性情報データベースにより公開されることで私達は情報を知ることができます。ただ、脆弱性情報は多くのソフトウェアで小さいものから大きいものまであり、過去3ヶ月で1,790件(NVD検索結果)が報告されています。このように日々報告される情報から必要な情報を探すのは大変な労力を要します。 脆弱性データベース 有名な脆弱性データベースは以下のようなものがあります。 CVE(Common Vulnerabilities and E
Introduction 今コミットしている案件で約 20個以上の Lambda (Python) が手動運用されていて、しかもステージング環境もなく本番環境だけだったので、下の利点をもとに AWS CDK で IaC 化した方が良さそうっていう提案をしました。 メインテナンスのコストが減る 協業がやりやすい デプロイが自動化される テストが書ける ちょうど Python 向けの Lambda モジュール (aws-lambda-python)が Lambda Layer までサポートしていたので、試しに触ってみた経験を共有します。 必須条件 AWS CDK v1.69.0 or later 関連プルリクエスト https://github.com/aws/aws-cdk/pull/9582 https://github.com/aws/aws-cdk/pull/10959 https:/
はじめに 最近ハイボールにハマっているSREのたっち(@TatchNicolas)です。 昨日オンライン開催されたJAWS DAYS 2020にて、JX通信社もサーバレスをテーマとして発表をしました。(by 植本さん) 発表でもありましたように、上記プロジェクトにおいて開発当時はスピードを優先してプロジェクトメンバーの手に馴染んでいて分担もしやすいフレームワークとしてFlaskを採用しました。 一方で、JX通信社としてはFlaskよりもFastAPIを使うプロジェクトが増えてきており、今後もその傾向は続く見込みです。 そこで、特設ページ作成やAPI提供など初動としての開発が一段落したのを機に、JAWS DAYSで発表した仕組みを今後のために発展させる検証をしたので紹介します。 TL; DR; JAWSでは Serverless Framework+awsgi+Flaskな構成でスピーディに
mangum を使うと FastAPI や responder といった ASGI アプリケーションを AWS Lambda + API Gateway 上へ簡単にデプロイすることが出来ます。 今回は FastAPI で書いた ASGI アプリケーションを mangum を使って AWS 上でデプロイする手順をメモしておきます。 mangum init の注意点 最初に mangum init する ハンドラは app/asgi.py に定義する mangum のプロジェクト名は AWS ルールに準拠したものにする mangum cli には削除機能が無い プロジェクトディレクトリを作成する mangum-cli をインストールする AWS CLI をセットアップする AWS S3 上に Bucket を作成する デプロイ用の設定ファイルを作成する requirements.txt を修正
知っている人は知っていると思うが、Qiitaではたびたび大量のスパム記事が投稿されている。 深夜24~26時頃に記事一覧を確認してみて欲しい。 スパム記事がわんさか出てくるはず。 登録したてのQiitaユーザは不安よな。1 ———— @dcm_chida 動きます🧐 はじめに これはNTTドコモサービスイノベーション部AdventCalendar2019の1日目の記事です。 我々の部署では日頃から「KDDCUP2」や「論文読み会」に取り組んでおり、若手から中堅社員まで最先端の技術取得に励んでいます。 そうした活動をもっと外部へと発信していこうと始めたのがこのAdventCalendarです。社員一人一人が書いた記事を通して、少しでも多くの方に興味を持って頂ければ幸いです。 さて、僕は4年目社員ですがプログラミング初心者の頃から現在に至るまで、Qiitaにはかなりお世話になりました。 自分
所属しているコワーキングスペースで書籍の貸出サービスがあるのですが、しばしば書籍が行方不明になることも。。。 「ちゃんと管理した方が良いよね」、「どんなのが誰に借りられてるか見るのも面白そうだし」、ということで貸出を前提とした書籍管理アプリを作ってみました。 多分初スマホアプリ開発。 ゴール 求める機能はこんなとこ。他は随時追加するということで。 管理者が新しい書籍を入れる時は、バーコードを読み込んで書籍情報を取得して登録 ユーザが借りる時は、バーコードを読み込んでアカウントと紐付けて貸出 登録、貸出時にslackで通知 こんな感じ。シンプルに。 1. ISBNを受け取ると書籍情報を取得するAPIサーバ AmazonのProduct Advertising APIを利用します。 Google Books APIでも良いんですが、日本語の書籍(特に新刊)だと割と引っかからなかったりしたので。
こんにちは。takapy(@takapy0210)です。 本記事は、転職カウントダウンカレンダー 4日目の記事です。リフレッシュを兼ねてDocker以外の記事を挟みます。 www.takapy.work はじめに SlackのWorkspaceにIncoming Webhookを登録 AWS Simple Queue Serviceの作成 Lambda関数の作成 python3でlambda関数を作成する テスト実行してみる 毎日定刻につぶやくように設定してみる 感想 はじめに AWS Lambdaというサービスを学ぶために、超簡易的な固定メッセージslack通知を作りました。最終的には、毎日定刻に固定のメッセージをslackへ通知できるようになりました。 SlackのWorkspaceにIncoming Webhookを登録 多くの記事が出回っているので、こちらは割愛させていただきます。
スロークエリを簡単に確認できるようにしたかったので、Lambda を使って Aurora でスロークエリが発生するたびに Slack に通知するようにしてみました。 ログのエクスポート設定 まずは、クラスターの変更から Amazon CloudWatch Logs にスロークエリログを発行するようにします。 パラメータグループを編集 デフォルトのパラメータグループでは slow_query_log が OFF になっており、スロークエリが出力されないようになっているので、パラメータグループを編集して slow_query_log を 1 にして有効にしましょう。 ついでにデフォルトでは long_query_time が 10 になっており、10 秒以上のクエリではないとスロークエリに出力されないので、long_query_time も 1 など小さい数値に変更します。 IAM ロールの作
webフォームからの問い合わせをRedmineに自動登録して対応状況を管理する(API Gateway + Lambda) 先日、検証目的で作成したRedmineの冗長化の一機能として、webフォームから問い合わせがあった場合に、Redmineのチケットを自動登録して対応状況を管理出来るようにしてみました。 webフォームはS3で静的ホスティングを使っています。 CloudFrontでS3をオリジンにしてwebフォームを配信しています。 ACMでSSL証明書を無料で取得しています。 webフォームから送信された情報はAmazon API Gateway、AWS Lambdaを経由してDynamoDBテーブルへ格納されます。 DynamoDBテーブルに格納されたデータはDynamoDB StreamからLambdaが実行されてSQSへキューを送信します。 SQSからキューを受信したLambd
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く