新しいことにはウェルカム

技術 | 電子工作 | ガジェット | ゲーム のメモ書き

Amazon Web Service

AWS Redshiftで連番・カレンダーテーブルを作る方法

AWS RedshiftからGoogle BigQueryに移行して、ここ数年Redshiftを使っていませんでした。 しかし、ついに従量課金のRedshiftこと、Redshift Serverlessが登場して気になりはじめ、久しぶりに遊び程度ですがRedshiftを使ってみました。 案の定、使い方は完全…

AWS Amplify + React で必要最小限の認証サイトを作る方法メモ

認証機能付きReactサイトを手軽に作りたかったのですが、都度バックエンドを構築するのが面倒で諦めてました。 しかし、AWS Amplifyを使えば、手軽にバックエンドを構築できるのではと試してみました。 一通り欲しかった機能は試したので、再利用可能なよう…

AWS Amplify のLambda FunctionをTypeScriptで書く方法

AWS AmplifyでLambda Functionを追加すると、JavaScriptで雛形が生成されるので、それをTypeScriptにする方法メモです。 下記ドキュメントを参考にしました。 https://docs.amplify.aws/cli/function/build-options 手順 Functionを追加すると、下記のフォル…

Google Firebase と AWS Amplify の両方を使ってみた感想

思い立ったらサクッとSPAサイトが作れたらいいなぁと思っていたのですが、Reactはちょっとしたサイトを作るにも大掛かりになってしまうので諦めていました。 しかし、最近ReactのRecoilを触り始めたのですが、Recoilを使うと、Reactも随分シンプルに書けるよ…

CloudFormationは、AWS CDKから使うのが正解な気がしてきた

以前、AWS CloudFormationテンプレートを手書きしようとして挫折しました…。 www.kwbtblog.com その時学んだのは、CloudFormationテンプレートは人の手で書く類のものではなく、何かしらのツールを使って生成するものだなと。 そして、そのためのツールが、A…

AWS CLI設定方法メモ

久しぶりにAWS CLIをインストールしました。バージョン2になっているんですね。 一度設定すると中々触れる機会がなくて忘れてしまうので、自分用設定方法メモです。 基本的な仕組み ~/.aws/config でプロファイルを設定する ~/.aws/credentials でユーザー…

Dockerfileのタグでlatestは使っちゃいけないなぁと思った

定期的に、AWS S3のファイルを、Google Cloud Storageにコピーしています。 コピーのやり方は色々あるのですが、ここではGoogle Cloud SDKのgsutilコマンドを使っていて、 Google Cloud SDKは、Alpine LinuxのDockerイメージを使用しています。 しかし、ある…

Google Cloud Storageでファイルとディレクトリを区別する方法

Google Cloud Storageで、サブディレクトリ内のファイル一覧を取得して、それらのファイルの処理をしようとしました。 しかし、ファイルがおかしいとエラーが出るので見てみたら、取得したファイル一覧に、サブディレクトリが含まれていました。 原因 前に勘…

クラウドを利用するということは、常時メンテコストが発生するということ

Google Cloud Platformからメールが来ていました。 Gooble Cloud Functionsで、当初作ったFunctionのNode.jsのバージョンが6だったのですが、今回バージョン6のサービスが終わるので、そのバージョンアップ要請のメールでした。 薄々意識はしていたのですが…

AWS Glueを使った感想

以前、AWS Glueを試しに使ってみたのですが、その感想です。 AWS GlueはApache Sparkでできていて、その時初めてSparkを触って面白かったので、 そのうちGlueを本格的に使うようになったら、追々使い方をまとめようかと思っていました。 しかし、データ出力…

Spark(Google Dataproc)からAWS S3にアクセスする方法

Spark(Google Dataproc)から、AWS S3にアクセスする方法です。 手順 Spark設定 下記のSpark・Haddopの設定をすると、SparkからAWS S3ファイルの読み書きができるようになります。 Sparkに下記AWS関連のjarファイルを読み込みます aws-java-sdk-bundle-xxxx…

AWS Lambda + Serverless Framework でサクッと Slack Bot (ボット)を作る方法

AWS Lambda と Serverless Framework を使って、簡単なSlack Bot(ボット)を作ってみたので、その作業メモです。 Slack Botの作成は手順が多く手間なのですが、AWS Lambdaを使うとサーバー周りのことを気にしなくて済みます。 また、Lambdaの開発にServerless…

結局 AWS Lambda と API Gateway の管理は Serverless にした話

AWS CloudFormationの記事でも書いたのですが、AWS Lambda と API Gateway の管理は Serverless でやっています。 そこに至るまでの経緯のポエムおよび、Serverlessの使い方の簡単な説明です。 きっかけ LambdaがどういったURLで呼び出されるかは、Lambdaで…

ServerlessでAPI GatewayのオーソライザーをCORS対応する方法

本記事について API GatewayのオーソライザーをCORSできるようにするための設定を、Serverless Framework上で行う方法について記載します。 詳しくは下記に記載されているものを、概要を加えて転記いたします。 https://serverless.com/blog/cors-api-gatewa…

Serverlessでオーソライザーを複数のLambdaから使うための設定方法

本記事について Serverless Framework を使ってLambdaをデプロイする時、オーソライザーを複数のLambdaから使えるようにするための設定について記載 手順 公式マニュアルに記載の通り、オーソライザーを使う全てのhttpイベントにおいて、resultTtlInSeconds:…

AWS Redshift Spectrum / Athena を使った感想

元々AWS Redshiftを使っていたのですが、結構お高く、Google BigQueryに乗り換えました。 その後、Redshift Spectrum が出て、ひょっとしたらBigQueryよりいいのではと気になっていたので触ってみた感想です。 また、Redshift Spectrumが使えるようセットア…

AWS CloudFormation を使ってみたが、人が扱える限界を超えていた話

タイトルそのままですが、AWS CloudFormation を使ってみた感想です。 きっかけ AWS LambdaをURLから呼び出す時は、AWS API GatewayのGUIを使って、「このURLのこのメソッドの時はこのLambdaを呼び出す」などのマッピングをポチポチやっていくのですが、これ…

AWS アカウントをまたいでS3ファイルにアクセスできるようにする方法

あるアカウントから、他のアカウントのS3ファイルを取得したい時があります。 そんな時は、そのS3ファイルをダウンロードできる専用のユーザーを作成して、そのユーザーでダウンロードするのが手っ取り早いですが、取得先S3へのアクセス権限を、取得元アカウ…

AWS S3でディレクトリ一覧をJSONで取得する方法

下記のようなディレクトリ構造において、バケット直下や、「dir_A1/dir_B1」直下のディレクトリ一覧をJSONで取得する方法。 s3://bucket_1/ dir_A1/ dir_B1/ dir_C1/ dir_C2/ dir_C3/ dir_A2/ dir_A3/ バケット直下の場合 $ aws s3api list-object-v2 --buck…

AWSでサーバーレスな開発用シングルページアプリケーションを立ち上げる方法

シングルページアプリケーションを作っていて、外部には公開したくないが、ローカル以外のサーバーに置いて配信テストをしたいことがあったので、その時の構築メモです。 要件 静的配信だし、S3を使えばサーバー立てなくてもAWSのサービスだけでできそうな感…