のーずいだんぷ

主に自分用メモですが、もしかしたら誰かの役に立つかもしれません

AWS

<AWS>EC2のuser-dataでメインアプリケーションの実行をしてはいけない

はじめに システムの概要 user-dataとは? どういう問題が起こったのか? この問題の特徴 原因と解決策 はじめに 本記事はタイトルについての不具合の備忘録である。 正直、私の未熟さ故の不具合であり普通のエンジニアならこんな失敗はしないものと思うが、…

<AR>Amazon Sumerian で ARをはじめてみた

はじめに 今回やってみたこと 必要な知識 該当のチュートリアル マーカーレスAR Sumerianプロジェクト作成 オブジェクトを配置 ARkitで使用するURLのビルド ARkit側の設定 実行結果 画像認識(マーカーあり)AR Sumerianでオブジェクトを準備 Sumerianエンティ…

Lambdaでseleniumを使ってフォームテストを自動化してみた

はじめに ソースコード Lambdaデプロイパッケージの準備 seleniumとheadless-chromeをインストール lambdaへデプロイ パッケージ構成 Lambdaへデプロイ 参考 はじめに サイトの問い合わせフォームの調子が時折悪くなるため、seleniumとheadless-chromeを使用…

kinesis data firehoseでCloudWatchLogsのログを収集する

概要 kinesis firehoseの設定 step1: Name and source step2: Process Records step3: Choose a destination step4: Configure settings CloudWatchLogsの設定 LogGroupの作成 サブスクリプションフィルター用のIAMロールを作成する LogGroupにサブスクリプ…

kinesis firehose の 変換用Lambda関数によるデータ変換中にエラーが出た場合の対処

どういう問題か? エラーログ 原因 解決策 参考 どういう問題か? CloudWatchLogsのとあるロググループに蓄積されるログをサブスクリプションフィルターで全て取得して、データをS3に出力するkinesis streamを作成した。 その際のログは、出力前にlamba関数…

AWS SNS でモバイルプッシュ通知の再送期間を変更する

概要 具体的にやること説明 使用するAPI 基本的なパラメータ 追加するパラメータ その他再送に関わる話 設定できるTTLの値 再送をそもそも行いたくない場合 FCM APNs 再送期間の設定の優先度 参考 概要 APNsとFCMのモバイルプッシュをSNSでpublish()APIを叩…

<Python>AWS-SDK(boto3)の例外ハンドリング

やろうとしたこと 実際のコード例 コードの解説 ちょっと特殊?な例外ハンドリングのコード コードの解説2 補足 やろうとしたこと AWS-SDKでは沢山の例外が存在するが、実際はいくつかの例外クラス以外はbotocore.errorfactory.****のように実は逐次生成して…

Serverless-FrameworkでLambdaにデプロイしたときの挙動とハマりポイント4点

やろうとしたこと ここでのハマりポイント4点 1. アップロード後のディレクトリ構造 2. ハンドラの指定方法 3. 新機能:既存のs3バケットへのイベント割当 4. Pythonのサードパーティモジュールが見つからない(module *** not found error) やろうとしたこと…

GoogleAdsenseでRoute53でドメイン登録しているはてなブログが見つからないため申請が通らない

どういう問題か? 解決方法 具体的な手順 1. S3にルートドメインのバケットを作成する。 2. バケットのプロパティでリダイレクトの設定 3. Route53でエイリアスレコードを作成する。 再度Adsenseで申請試してみると… その後(11/29更新) 参考 どういう問題か…

chaliceでapi-key認証のAPIをつくる

何をしようとしたのか API GatewayのAPI-key認証について chaliceのスモールアプリでREST APIを作成する。 chaliceアプリケーションの作成 chaliceアプリケーションをデプロイする。 API-keyと使用量プランの作成 実際にリクエストしてみる 認証方法 ハマる…

API GatewayとLambdaで作ったREST APIのレイテンシが大きいときに確認した3つのこと

はじめに 確認ポイント1: Lambdaのメモリ 確認ポイント2: Lambdaのコールドスタート 確認ポイント3: API Gatewayのエンドポイントのタイプ その他の速度改善方法 確認するための方法 参考 はじめに 最近仕事で初めてネットワーク外に公開するAPIを作成したの…

Python のサーバレスwebフレームワークのchaliceのconfig.jsonで設定できることをまとめた

chaliceとは? ざっくりまとめ API Gateway Lambda ディレクトリ構成(設定ファイルの場所) 設定内容 設定を分ける方法 API Gatewayのstage毎に設定を分ける Lambda関数ごとに設定を分ける 例外としてREST APIのlambda関数は名前が決まっている 簡単な例 IAM…

CloudWatchLogsエージェント(awslogs)がS3に保存している設定ファイルをフェッチできない

何をしようとしたのか 詳しい状況(調査履歴、結論だけでも十分です) プロセスはちゃんとrunning ログを確認 設定ファイル確認 手動でエージェントに設定をフェッチ 結論 うまく行った場合のログ AWSで挙動がおかしい時、頭の片隅にIAMの権限不足を入れとこう…

Serverless Frameworkでlayerをデプロイ&そのままデプロイしたlambda関数でも使用する

やろうとしたこと 設定する内容 結論 Ref:ってなに? 参考 やろうとしたこと Serverless Frameworkを使用するとlambdaのlayerを簡単にデプロイできる。 layerは複数のプロジェクトで同じライブラリを使いたい時等に非常に役に立つが、たまに一緒にデプロイし…

Route53で管理しているドメインからサブドメインを作成して、別アカウントのAPI Gatewayのカスタムドメインと紐付ける

やること整理 1. アカウントBでサブドメインを作成する。 2. アカウントAの親ドメインとサブドメインのトラフィックをを紐付ける 3 アカウントBのAPI Gatewayでサブドメインをカスタムドメインとして設定する。 3.1 ACMでサブドメインのTLS証明書を取得する …

AWS DynamoDBでエラー 'One or more parameter values were invalid: Condition parameter type does not match schema type' がでた。

何をしたのか? エラー内容(タイトルと同じ) 問題の引数param 原因は? 修正結果 何をしたのか? 先日同様にAWS SDK(Node.js)のdocumentClientクラスでqueryを投げようとしていた。 エラー内容(タイトルと同じ) One or more parameter values were invalid: …

AWS DynamoDBでエラー[Invalid KeyConditionExpression: Syntax error; token: -, near]が発生する

何をしようとしたのか エラー本文 メソッドに渡すパラメータ 結局原因は? 対策した つまりどういうことなのか? 何をしようとしたのか Node.jsのAWS SDKを使用して、query( )を行いたかった。 (DocumentClientクラスを使用) 以下のようなparamを設定したと…

作成したIAMロールがEC2インスタンスに設定できない問題

どういう問題か? 何が原因だったのか?? 設定(信頼関係の編集) 設定(インスタンスプロファイルARN) 設定完了! どういう問題か? EC2は起動する時、もしくは起動中のインスタンスにたいしてIAMロールを設定できる。 AWSのリソースをこのインスタンスから使…

Javaのloggingモジュールでログローテーション

Javaのログローテーション loggingモジュールの設定 ローテションする際の設定と注意 注意点 小ネタ Javaのログローテーション 仕事でjavaを多少触ることがあるが、先日ログローテーション周りでハマったのでメモしておく。 なお使用しているjavaはopenjdk 1…

EC2インスタンスのユーザーデータを後から追加する際の躓きポイント

EC2インスタンスのユーザーデータは2種類の設定方法があるけど用途が異なるという話 EC2インスタンスのユーザーデータは2種類の設定方法があるけど用途が異なるという話 先日、aws-cliでec2のユーザーデータを追加する際に引っかかった。 結論、ユーザーデー…

CloudWatchLogsにログを保存する際に便利なこと

はじめに CloudWatchLogsはログをjsonで引き渡すとよいという話 はじめに webサーバやアプリケーションサーバ等を構築する際に、ログをどう集め分析するかが課題になるが 単一のサーバでの分析であれば、CloudWatchLogsエージェントを使用すれば簡単なログの…