モリユウキ|YM202110

モリユウキ|YM202110

マガジン

記事一覧

Golang_reflectパッケージを使ってみる #499

Golangは静的型付け言語として知られていますが、reflectパッケージを使用すると、プログラムの実行中に型情報にアクセスしたり、動的に操作を加えたりすることが可能です…

1

Snowflake QUALIFYの概要と使い方 #498

Snowflakeには独自のキーワードであるQUALIFYがあります。このQUALIFYは、ウィンドウ関数の結果をフィルタリングするために使用される機能です。 他のデータベースでのWHE…

Snowflake ROW_NUMBER()の概要と使い方 #497

ROW_NUMBER()は、データベースでよく使われるウィンドウ関数の一つで、データの順序に基づいて連続した行番号を割り当てるために使用します。Snowflakeにおいても、データ…

アドテク_Cookieとドメインについて #496

前回まとめたこちらの記事の続きです。 Cookieとドメインの基本Cookieがブラウザにセットされる際、どのドメインでセットされたものか記憶しています。これはDomain属性で…

アドテク_Cookieの書き込みと読み込み #495

WebアプリケーションにおけるCookieは、ユーザーのセッション情報や設定を保存するために広く使われています。 Cookieはクライアント(ブラウザ)に保存され、サーバーと…

AWS_Step Functionsの並行処理とかエラーハンドリングとか #494

Step Functionsの設定に関するアプトプットの続きです。 こちらの2つの記事でメインのTask処理の部分については触れました。 今回は並行処理やエラーハンドリングについて…

AWS_Step Functionsのステップ間で値を受け渡す(ECS) #493

こちらでまとめた内容の応用編です。 値の受け渡しにおいて、StepFunctionsでECSタスクを起動して、受け取った値をコンテナ内で使う方法を整理します。 StepFunctionsの…

AWS_Step Functionsのステップ間で値を受け渡す(lambda_handler) #492

Step Functionsの基本的な使い方と、ステップ間でデータをどのように受け渡すかをまとめてみたいと思います。今回、受け渡された値はlambda_handlerで処理する前提で記述し…

RDSのポートフォワーディングをシェルスクリプトでいい感じに実行する #491

こちらの中で割愛した、ポートフォワーディングを実行する部分のシェルスクリプトについてです。 ポートフォワーディングとは単純に表現すると「あるポートにきたデータを…

RDSにローカルから接続する踏み台EC2をTerraformで作成する #490

大まかな手順以下の手順で実行できます。 踏み台サーバーを起動する SSMでポートフォワーディングを実行する ローカルからmysqlコマンドでRDSに接続する 前提ローカル…

VPCエンドポイントを作ってS3にアクセスできるようにする #489

S3を作って、ECSコンテナからアクセスしようとして上手くいきませんでした。S3に関するIAMポリシーを付与したロールになっているし、S3バケット名も間違っていないし、なん…

Github ActionsでTerraformコマンドを実行する #488

Terraformコマンドを本番環境に向けて実行する手段はいくつかありますが、Github Actionsを活用すると、認証系の情報を一元管理したり、管理する情報を減らせたりしてセキ…

Route53にALBのレコードを追加 #487

以前ALBの設定に関する記事を書きましたが、今回はその続きで、DNS周りの設定についてメモします。 今回はこちらのブログを全面的に参考にさせていただき、無事にRoute53…

Cognito × ALBで実装した時のerror=redirect_mismatchを解決する #486

Cognitoでアプリケーションへの認証機能を追加しようとして、ハマったので対応方法をメモしておきます。 ALBのリスナールールにCognitoを追加してルーティングするところ…

terraform apply_chdirオプションの罠 #485

terraformコマンドには -chdir オプションがあり、これでコマンド実行するディレクトリを指定できます。 私は当初 terraform apply をする時にこのオプションを使って…

TerraformでECSの構築 #484

現在のタスクでインフラ構築をやらせていただいていて、これまで机上でしか触れてこなかった部分に関われているので、記憶が鮮明なうちにアウトプットしようと思います。 …

Golang_reflectパッケージを使ってみる #499

Golang_reflectパッケージを使ってみる #499

Golangは静的型付け言語として知られていますが、reflectパッケージを使用すると、プログラムの実行中に型情報にアクセスしたり、動的に操作を加えたりすることが可能です。

reflectパッケージとはreflectパッケージは、Goのランタイム型情報(型システム)にアクセスするために使用します。これにより、型情報に基づいてデータの動的操作が可能になります。一般的な用途として、以下のような場面

もっとみる
Snowflake QUALIFYの概要と使い方 #498

Snowflake QUALIFYの概要と使い方 #498

Snowflakeには独自のキーワードであるQUALIFYがあります。このQUALIFYは、ウィンドウ関数の結果をフィルタリングするために使用される機能です。

他のデータベースでのWHEREやHAVINGに似た役割を果たしますが、QUALIFYはウィンドウ関数と組み合わせてフィルタリングを行うために使用されます。

QUALIFYの基本構文QUALIFYはウィンドウ関数の結果に対してフィルタをか

もっとみる
Snowflake ROW_NUMBER()の概要と使い方 #497

Snowflake ROW_NUMBER()の概要と使い方 #497

ROW_NUMBER()は、データベースでよく使われるウィンドウ関数の一つで、データの順序に基づいて連続した行番号を割り当てるために使用します。Snowflakeにおいても、データセットに対して順序を付けたり、グループ内での順位付けを行いたい場合に役立ちます。

ROW_NUMBER()の基本構文SnowflakeにおけるROW_NUMBER()の基本的な構文は以下の通りです

ROW_NUMBE

もっとみる
アドテク_Cookieとドメインについて #496

アドテク_Cookieとドメインについて #496

前回まとめたこちらの記事の続きです。

Cookieとドメインの基本Cookieがブラウザにセットされる際、どのドメインでセットされたものか記憶しています。これはDomain属性で制御されますが、これを設定しない(デフォルト)場合と設定する場合で挙動が変わります。

Domain属性を設定しない場合

Domainに何も設定しなければ、同一のオリジン(完全なホスト名)でのみ利用可能なCookieと

もっとみる
アドテク_Cookieの書き込みと読み込み #495

アドテク_Cookieの書き込みと読み込み #495

WebアプリケーションにおけるCookieは、ユーザーのセッション情報や設定を保存するために広く使われています。

Cookieはクライアント(ブラウザ)に保存され、サーバーとのやり取りで利用されます。今回はそもそもCookieをどうやって書き込むのか・読み込むのか、について整理ます。

Cookieの書き込みと読み込み書き込みと読み込みの方法として、HTTPを使う方法とJavaScriptを使う

もっとみる
AWS_Step Functionsの並行処理とかエラーハンドリングとか #494

AWS_Step Functionsの並行処理とかエラーハンドリングとか #494

Step Functionsの設定に関するアプトプットの続きです。
こちらの2つの記事でメインのTask処理の部分については触れました。

今回は並行処理やエラーハンドリングについて簡単にコード例を示します。

並列処理複数のLambda関数を並列に実行したり、配列に対して繰り返し処理を行う場合には、ParallelステートやMapステートを使います。

Parallelステート

複数のステート

もっとみる
AWS_Step Functionsのステップ間で値を受け渡す(ECS) #493

AWS_Step Functionsのステップ間で値を受け渡す(ECS) #493

こちらでまとめた内容の応用編です。

値の受け渡しにおいて、StepFunctionsでECSタスクを起動して、受け取った値をコンテナ内で使う方法を整理します。

StepFunctionsの設定まず、ECS上のサービスを呼び出すStep Functionsの設定を確認します。ここでは、ECS上のAPIを呼び出すために、Step FunctionsがLambdaではなく、ECSのタスクを実行する設

もっとみる
AWS_Step Functionsのステップ間で値を受け渡す(lambda_handler) #492

AWS_Step Functionsのステップ間で値を受け渡す(lambda_handler) #492

Step Functionsの基本的な使い方と、ステップ間でデータをどのように受け渡すかをまとめてみたいと思います。今回、受け渡された値はlambda_handlerで処理する前提で記述しています。

Step FunctionsとはAWS Step Functionsでは、状態機械(State Machine)を定義し、それぞれのステップ(状態)が実行されるたびに結果を次のステップに渡すことがで

もっとみる
RDSのポートフォワーディングをシェルスクリプトでいい感じに実行する #491

RDSのポートフォワーディングをシェルスクリプトでいい感じに実行する #491

こちらの中で割愛した、ポートフォワーディングを実行する部分のシェルスクリプトについてです。

ポートフォワーディングとは単純に表現すると「あるポートにきたデータを別のところに転送する」という意味です。ここでは、ローカルのポートに来たリクエストをRDSのポートに転送して、ローカルのPCからRDSに対するCRUDを実行できるようにすることを意図しています。

ポートフォワーディングには踏み台サーバーの

もっとみる
RDSにローカルから接続する踏み台EC2をTerraformで作成する #490

RDSにローカルから接続する踏み台EC2をTerraformで作成する #490

大まかな手順以下の手順で実行できます。

踏み台サーバーを起動する

SSMでポートフォワーディングを実行する

ローカルからmysqlコマンドでRDSに接続する

前提ローカルでaws cliを実行できる状態にしておく必要があります。当然認証も突破していないといけません。今回はこの部分は割愛します。

また、RDSはMySQLを使っている想定です。

それでは各手順を見ていきます。

踏み台サー

もっとみる
VPCエンドポイントを作ってS3にアクセスできるようにする #489

VPCエンドポイントを作ってS3にアクセスできるようにする #489

S3を作って、ECSコンテナからアクセスしようとして上手くいきませんでした。S3に関するIAMポリシーを付与したロールになっているし、S3バケット名も間違っていないし、なんで疎通しないんだろう?と少し悩みましたが、、

答えはVPCエンドポイントが抜けていた、でした。

AWSの設計でVPCとS3でプライベートな接続をしたい時は、VPCエンドポイントが必要です。今回S3はパブリックアクセスを無効に

もっとみる
Github ActionsでTerraformコマンドを実行する #488

Github ActionsでTerraformコマンドを実行する #488

Terraformコマンドを本番環境に向けて実行する手段はいくつかありますが、Github Actionsを活用すると、認証系の情報を一元管理したり、管理する情報を減らせたりしてセキュアに運用できます。

今回はアクセスキーなどは使わずに、IAMロールから認証情報を取得する方法をシェアします。

Github ActionsでIAMロールから認証情報を取得するIAMロールの一時的なクレデンシャルで

もっとみる
Route53にALBのレコードを追加 #487

Route53にALBのレコードを追加 #487

以前ALBの設定に関する記事を書きましたが、今回はその続きで、DNS周りの設定についてメモします。

今回はこちらのブログを全面的に参考にさせていただき、無事にRoute53に設定したドメインでALBにルーティングすることができました。

前提として、ドメインの購入とRoute53への登録は完了しているところからのスタートです。今回はサブドメインを使い、かつALBも作成済みなので、Route53に

もっとみる
Cognito × ALBで実装した時のerror=redirect_mismatchを解決する #486

Cognito × ALBで実装した時のerror=redirect_mismatchを解決する #486

Cognitoでアプリケーションへの認証機能を追加しようとして、ハマったので対応方法をメモしておきます。

ALBのリスナールールにCognitoを追加してルーティングするところまでは難なく終わったのですが、ルーティングした先でerror=redirect_mismatchが出てしまい認証ページまで飛べませんでした。

基本構成参考ブログにある「以下のアーキテクチャ図の通り、Cognitoだけで認

もっとみる
terraform apply_chdirオプションの罠 #485

terraform apply_chdirオプションの罠 #485

terraformコマンドには -chdir オプションがあり、これでコマンド実行するディレクトリを指定できます。

私は当初 terraform apply をする時にこのオプションを使っており、各ディレクトリを指定してinitとapplyをするようにしてしまっていました。

そうした方が丁寧かな?と考えたのと、-chdirのようなオプションがわざわざ存在しているので、それを使わないといけないよ

もっとみる
TerraformでECSの構築 #484

TerraformでECSの構築 #484

現在のタスクでインフラ構築をやらせていただいていて、これまで机上でしか触れてこなかった部分に関われているので、記憶が鮮明なうちにアウトプットしようと思います。

今回はその構築のなかでもECSに関してです。

ECSの概要Amazon Elastic Container Serviceは、コンテナ化されたアプリケーションをAWS上でデプロイ、管理するためのサービスです。ECSはDockerコンテナ

もっとみる