エンジニアのはしがき

プログラミングの日々の知見を書き連ねているブログです

AWS

Serverless Framework+AWS Lambda(Java8)でHello worldしようとしたらNoClassDefFoundError

少しずつですがJavaのビルドツール周りも分かりかけてきたなという矢先、エラーで数時間ハマりました…😭

CloudFront+S3でUnity WebGLを配信した

先日S3の静的ウェブサイトホスティングを使ってUnity WebGLを配信しました。 ただhttps化したい場合、S3単独ではできないのでCloudFrontと組み合わせる方法を解説してます。 手順的にはほぼReactやAngular等のフロントエンドアプリを独自ドメイン配信する時…

AWS S3のStatic Website HostingでUnity WebGLを配信してみた

ホビーで作っているUnity製ゲーム(WebGL)をEC2ではなく、S3の静的ホスティング機能でどうにかホスティングできないかと試みていたところ、うまく動かせましたので記録を残しておきたいと思います。

不特定多数のアクセス許可していたS3がCORSでアクセスできなかった話

Javaの勉強の合間にUnity製ゲームのWebGL公開の検証をやっていたのですが、その際にS3の設定で詰まっていた話です。

.NET CoreからGCPのText-to-Speech APIでテキスト読み上げ音声を生成する

様々な企業がテキストから読み上げ音声を生成するAPIを公開していますが、その中でもGCPのText-to-Speech APIは日本語読み上げのクオリティが高かった為、実装をしてみました。 ↓Text-to-Speech APIは過去記事でラズパイ(Python)でのテキスト読み上げの時に…

CloudFront+S3構成で単一ドメインで複数のアプリを配信する

やりたいこと 同一ドメインで複数のSPAアプリケーション(Angular)を配信する要件があった為、今回下記の内容で実装をしました。 単一のCloudFrontから複数のOrigin(S3 static website hosting)にアクセスを振り分ける。 Originへの振り分けルールはパスパタ…

CloudFrontで配信しているサイトをWAFでIP制限する

こんばんは! CloudFrontとS3の静的ホスティングでのWebサイト配信って設定は面倒ですが、コストが安く大変重宝しています。 最近CloudFrontでさくっと検証できる環境を用意したかったのですが、セキュリティ的に社内IP以外からアクセスさせたくないなぁと思…

AWS LambdaでDockerコンテナを動かす

こんばんは!DockerコンテナでごにょごにょしてLambda環境で実行させたいなぁと以前から思ってたので、今回やっと手を出してみました。

開発用EC2サーバの費用をなるべく安くする為の運用

こんばんは! 最近はホビーでAWSのEC2サーバをいくつか稼働させているんですが、そのうち開発用につかっているサーバの運用について今回は紹介しようと思います。

NAT Gatewayの通信量が異常に増えてAWS料金がみるみる膨れ上がった話

夏ももう終わりに近づいていますが、今回は夏にちなんだ怖い…というか肝が冷えた(冷えたくなかった)お話です。

APIGateway+Lambda構成のAPIにlocalhostからPOSTできなくて半日悩んだ

いつも書いてるようなソースコードなのに何故かどうやっても動かない!各種設定値も間違ってない!でも動かない! 今回はそんな出来事を書き残していきたいと思います。

FargateでARM64向けDockerイメージは使えなかった

今回は意図せず開発環境の見直しを迫られた話になります。

S3の署名付きURLへリクエストする際の注意点

AWSを触って3年近くなりました。 勝手が分かってきた頃に便利な新サービスが登場したり、まだまだ学ぶことが多いなと思いながら最近はStepFunctionsを触っています。 さて、今回は先日S3のファイルを参照する際に微妙にハマってしまったことについて書いてい…

RDSのPerformance InsightsでCPUに負荷をかけるSQLを特定する

こんばんは! 運用中のアプリのユーザーが増えてきたある日、RDSのCPU使用率がピーク時に80%前後で推移していることに気づきました。 元々、Lambda+RDSという構成の為、DBのコネクションのプールがされない為に負荷がかかりやすいことは承知していたのです…

AWS Lambdaを運用しての所感

Lambdaを本番環境で約2年程運用してきましたが、機能追加・修正や保守のことを考えると最初からこうしておけばよかったなーと後悔することもありました。 現在までの知見で個人的に考慮した方がいいこと、やっておいた方がいいことを書き連ねてみます!

ポートフォリオサイトが完成しました!

空き時間を見てはちまちまとNext.jsで書いていたポートフォリオサイトを公開しました! 今後も追加する内容があればマイナーアップデートを続けていくつもりです😊 portfolio.ts-soda.net github.com

Serverless FrameworkならLambda(Node.js)をらくらく作れるよ

ちょっとしたLambda関数を作りたい時は、Node.jsやPythonエンジンのLambdaを作ることが多いのですが、実はいままで自前のシェルスクリプトでzip化した後にLambdaへアップロードしてデプロイしていました。 (今思うとなかなかに面倒な作業でした…) しかし、…

RDS Proxyを使いたかったけどNpgsqlから接続できなかった(解決済み)

AWSでLambda+RDSの構成を構築すると、Lambda自身が起動の度にRDSへのコネクションを張る為に負荷が大きく、あまり宜しくない構成であると言われてきました。 そのような構成の場合、RDS ProxyをDBプロキシとしてRDSの手前に配置することでコネクションのプー…

IAMポリシーAWSLambdaFullAccessは廃止された模様

何があったのか 原因 対応 何があったのか .NET CoreをLambdaへデプロイしようとdotnet lambda deploy-serverlessを叩いたところ、CloudFormationからエラーが返りデプロイできなくなりました。 $ dotnet lambda deploy-serverless --region ap-northeast-1 …

AWS CLIバージョン2を使いだしたらlambda invokeが出来なくなった話

何をしたかったのか 何故動かなかったのか 修正後 他の手段 ~/.aws/config ファイルに追記する コマンドに追記する 何をしたかったのか macOSから下記のようなシェルスクリプトでLambda関数を実行しようとしたのですが、 AWS CLIのバージョンを1から2にアッ…

AWS Glue(Python shell)をLambda代わりに使ってタイムアウトを伸ばす

AWS Lambdaは、サーバ自体のお守りが不要なのでさくっとバックエンドを構築したい場合はかなり便利です。 ただ難点を挙げるならば、タイムアウトが15分までしか伸ばせない点。 これは残念ながら仕様となっているのでどうしようもできません。 Lambda のク…

APIGateway+Lambdaによるアプリサーバをバージョン管理する

APIGatewayの統合リクエストとLambdaの組み合わせでバックエンドを構成することが多いのですが、最近になってバージョニングが出来ることを知り、いろいろと調べてみた結果を書き連ねていきたいと思います!

不要なRDSインスタンスはなるべく止めて節約する

こんばんは! AWSでWebアプリを運用していると毎月のRDSの費用も決して安くないことを思い知ります。 しかし、開発環境用に使っているRDSインスタンスなら、基本的に開発者が起きている時間帯だけ動けば良いので、夜間や休日に稼働させる必要はありませんよ…

Lambdaで安易に静的メンバーを扱ってドハマリした

業務では、C#でAWS Lambdaをでゴリゴリに使い倒すことが多いのですが、 先日、短期間に連続してLambdaを実行すると意図したレスポンスが得られないというバグが発生し、半日程溶かしてしまいました。 戒めとして、Lambdaでの静的メンバーの扱いについて調べ…