記事一覧
Golang_reflectパッケージを使ってみる #499
Golangは静的型付け言語として知られていますが、reflectパッケージを使用すると、プログラムの実行中に型情報にアクセスしたり、動的に操作を加えたりすることが可能です。
reflectパッケージとはreflectパッケージは、Goのランタイム型情報(型システム)にアクセスするために使用します。これにより、型情報に基づいてデータの動的操作が可能になります。一般的な用途として、以下のような場面
Snowflake QUALIFYの概要と使い方 #498
Snowflakeには独自のキーワードであるQUALIFYがあります。このQUALIFYは、ウィンドウ関数の結果をフィルタリングするために使用される機能です。
他のデータベースでのWHEREやHAVINGに似た役割を果たしますが、QUALIFYはウィンドウ関数と組み合わせてフィルタリングを行うために使用されます。
QUALIFYの基本構文QUALIFYはウィンドウ関数の結果に対してフィルタをか
Snowflake ROW_NUMBER()の概要と使い方 #497
ROW_NUMBER()は、データベースでよく使われるウィンドウ関数の一つで、データの順序に基づいて連続した行番号を割り当てるために使用します。Snowflakeにおいても、データセットに対して順序を付けたり、グループ内での順位付けを行いたい場合に役立ちます。
ROW_NUMBER()の基本構文SnowflakeにおけるROW_NUMBER()の基本的な構文は以下の通りです
ROW_NUMBE
アドテク_Cookieとドメインについて #496
前回まとめたこちらの記事の続きです。
Cookieとドメインの基本Cookieがブラウザにセットされる際、どのドメインでセットされたものか記憶しています。これはDomain属性で制御されますが、これを設定しない(デフォルト)場合と設定する場合で挙動が変わります。
Domain属性を設定しない場合
Domainに何も設定しなければ、同一のオリジン(完全なホスト名)でのみ利用可能なCookieと
アドテク_Cookieの書き込みと読み込み #495
WebアプリケーションにおけるCookieは、ユーザーのセッション情報や設定を保存するために広く使われています。
Cookieはクライアント(ブラウザ)に保存され、サーバーとのやり取りで利用されます。今回はそもそもCookieをどうやって書き込むのか・読み込むのか、について整理ます。
Cookieの書き込みと読み込み書き込みと読み込みの方法として、HTTPを使う方法とJavaScriptを使う
AWS_Step Functionsの並行処理とかエラーハンドリングとか #494
Step Functionsの設定に関するアプトプットの続きです。
こちらの2つの記事でメインのTask処理の部分については触れました。
今回は並行処理やエラーハンドリングについて簡単にコード例を示します。
並列処理複数のLambda関数を並列に実行したり、配列に対して繰り返し処理を行う場合には、ParallelステートやMapステートを使います。
Parallelステート
複数のステート
AWS_Step Functionsのステップ間で値を受け渡す(ECS) #493
こちらでまとめた内容の応用編です。
値の受け渡しにおいて、StepFunctionsでECSタスクを起動して、受け取った値をコンテナ内で使う方法を整理します。
StepFunctionsの設定まず、ECS上のサービスを呼び出すStep Functionsの設定を確認します。ここでは、ECS上のAPIを呼び出すために、Step FunctionsがLambdaではなく、ECSのタスクを実行する設
AWS_Step Functionsのステップ間で値を受け渡す(lambda_handler) #492
Step Functionsの基本的な使い方と、ステップ間でデータをどのように受け渡すかをまとめてみたいと思います。今回、受け渡された値はlambda_handlerで処理する前提で記述しています。
Step FunctionsとはAWS Step Functionsでは、状態機械(State Machine)を定義し、それぞれのステップ(状態)が実行されるたびに結果を次のステップに渡すことがで
RDSのポートフォワーディングをシェルスクリプトでいい感じに実行する #491
こちらの中で割愛した、ポートフォワーディングを実行する部分のシェルスクリプトについてです。
ポートフォワーディングとは単純に表現すると「あるポートにきたデータを別のところに転送する」という意味です。ここでは、ローカルのポートに来たリクエストをRDSのポートに転送して、ローカルのPCからRDSに対するCRUDを実行できるようにすることを意図しています。
ポートフォワーディングには踏み台サーバーの
RDSにローカルから接続する踏み台EC2をTerraformで作成する #490
大まかな手順以下の手順で実行できます。
踏み台サーバーを起動する
SSMでポートフォワーディングを実行する
ローカルからmysqlコマンドでRDSに接続する
前提ローカルでaws cliを実行できる状態にしておく必要があります。当然認証も突破していないといけません。今回はこの部分は割愛します。
また、RDSはMySQLを使っている想定です。
それでは各手順を見ていきます。
踏み台サー
VPCエンドポイントを作ってS3にアクセスできるようにする #489
S3を作って、ECSコンテナからアクセスしようとして上手くいきませんでした。S3に関するIAMポリシーを付与したロールになっているし、S3バケット名も間違っていないし、なんで疎通しないんだろう?と少し悩みましたが、、
答えはVPCエンドポイントが抜けていた、でした。
AWSの設計でVPCとS3でプライベートな接続をしたい時は、VPCエンドポイントが必要です。今回S3はパブリックアクセスを無効に
Github ActionsでTerraformコマンドを実行する #488
Terraformコマンドを本番環境に向けて実行する手段はいくつかありますが、Github Actionsを活用すると、認証系の情報を一元管理したり、管理する情報を減らせたりしてセキュアに運用できます。
今回はアクセスキーなどは使わずに、IAMロールから認証情報を取得する方法をシェアします。
Github ActionsでIAMロールから認証情報を取得するIAMロールの一時的なクレデンシャルで
Route53にALBのレコードを追加 #487
以前ALBの設定に関する記事を書きましたが、今回はその続きで、DNS周りの設定についてメモします。
今回はこちらのブログを全面的に参考にさせていただき、無事にRoute53に設定したドメインでALBにルーティングすることができました。
前提として、ドメインの購入とRoute53への登録は完了しているところからのスタートです。今回はサブドメインを使い、かつALBも作成済みなので、Route53に
Cognito × ALBで実装した時のerror=redirect_mismatchを解決する #486
Cognitoでアプリケーションへの認証機能を追加しようとして、ハマったので対応方法をメモしておきます。
ALBのリスナールールにCognitoを追加してルーティングするところまでは難なく終わったのですが、ルーティングした先でerror=redirect_mismatchが出てしまい認証ページまで飛べませんでした。
基本構成参考ブログにある「以下のアーキテクチャ図の通り、Cognitoだけで認
terraform apply_chdirオプションの罠 #485
terraformコマンドには -chdir オプションがあり、これでコマンド実行するディレクトリを指定できます。
私は当初 terraform apply をする時にこのオプションを使っており、各ディレクトリを指定してinitとapplyをするようにしてしまっていました。
そうした方が丁寧かな?と考えたのと、-chdirのようなオプションがわざわざ存在しているので、それを使わないといけないよ
TerraformでECSの構築 #484
現在のタスクでインフラ構築をやらせていただいていて、これまで机上でしか触れてこなかった部分に関われているので、記憶が鮮明なうちにアウトプットしようと思います。
今回はその構築のなかでもECSに関してです。
ECSの概要Amazon Elastic Container Serviceは、コンテナ化されたアプリケーションをAWS上でデプロイ、管理するためのサービスです。ECSはDockerコンテナ