ゆーき|YM202110

ゆーき|YM202110

マガジン

最近の記事

  • 固定された記事

【500回記念】 迷ったら前へ! #500

前置きこのnoteは、普段は技術ブログとして投稿していますが100回ずつの区切りで技術以外の投稿をしています。 今回は500回目で、5回目の区切りです。 ここまで続けてこられたのは、環境を整えてくださった方々、導いてくださった方、応援してくださった方々のお陰に他なりません。このブログが届くか分かりませんが、本当にありがとうございます。 ↓懐かしい100回目の時の記事です。この時はまだ、本当にエンジニアになれるかどうか不安との闘いでした。 そしてこちらは最初の投稿です。

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

      Golangは静的型付け言語として知られていますが、reflectパッケージを使用すると、プログラムの実行中に型情報にアクセスしたり、動的に操作を加えたりすることが可能です。 reflectパッケージとはreflectパッケージは、Goのランタイム型情報(型システム)にアクセスするために使用します。これにより、型情報に基づいてデータの動的操作が可能になります。一般的な用途として、以下のような場面でreflectが使われます。 インターフェース型の具体的な型を調べる 型の

      • Snowflake QUALIFYの概要と使い方 #498

        Snowflakeには独自のキーワードであるQUALIFYがあります。このQUALIFYは、ウィンドウ関数の結果をフィルタリングするために使用される機能です。 他のデータベースでのWHEREやHAVINGに似た役割を果たしますが、QUALIFYはウィンドウ関数と組み合わせてフィルタリングを行うために使用されます。 QUALIFYの基本構文QUALIFYはウィンドウ関数の結果に対してフィルタをかけるための句です。ウィンドウ関数によって計算された値に基づいて、データを絞り込む

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

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

        • 固定された記事

        【500回記念】 迷ったら前へ! #500

        マガジン

        • Golang
          21本
        • その他_Tips
          39本
        • AWS関係
          66本
        • Redis
          6本
        • Django関連
          69本
        • Computer Science関連
          27本

        記事

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

          前回まとめたこちらの記事の続きです。 Cookieとドメインの基本Cookieがブラウザにセットされる際、どのドメインでセットされたものか記憶しています。これはDomain属性で制御されますが、これを設定しない(デフォルト)場合と設定する場合で挙動が変わります。 Domain属性を設定しない場合 Domainに何も設定しなければ、同一のオリジン(完全なホスト名)でのみ利用可能なCookieとなります。 例えばホスト名が「sub.example.com」で、以下のように

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

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

          WebアプリケーションにおけるCookieは、ユーザーのセッション情報や設定を保存するために広く使われています。 Cookieはクライアント(ブラウザ)に保存され、サーバーとのやり取りで利用されます。今回はそもそもCookieをどうやって書き込むのか・読み込むのか、について整理ます。 Cookieの書き込みと読み込み書き込みと読み込みの方法として、HTTPを使う方法とJavaScriptを使う方法があります。 HTTPレスポンスでのCookie書き込み Cookieは

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

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

          Step Functionsの設定に関するアプトプットの続きです。 こちらの2つの記事でメインのTask処理の部分については触れました。 今回は並行処理やエラーハンドリングについて簡単にコード例を示します。 並列処理複数のLambda関数を並列に実行したり、配列に対して繰り返し処理を行う場合には、ParallelステートやMapステートを使います。 Parallelステート 複数のステートを同時に並列実行できるステートです。Branchesフィールドに複数のステートを

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

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

          こちらでまとめた内容の応用編です。 値の受け渡しにおいて、StepFunctionsでECSタスクを起動して、受け取った値をコンテナ内で使う方法を整理します。 StepFunctionsの設定まず、ECS上のサービスを呼び出すStep Functionsの設定を確認します。ここでは、ECS上のAPIを呼び出すために、Step FunctionsがLambdaではなく、ECSのタスクを実行する設定を使用します。 { "StartAt": "RunEcsTask", "

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

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

          Step Functionsの基本的な使い方と、ステップ間でデータをどのように受け渡すかをまとめてみたいと思います。今回、受け渡された値はlambda_handlerで処理する前提で記述しています。 Step FunctionsとはAWS Step Functionsでは、状態機械(State Machine)を定義し、それぞれのステップ(状態)が実行されるたびに結果を次のステップに渡すことができます。状態機械は、JSONベースの構成ファイルで定義されるAmazon Sta

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

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

          こちらの中で割愛した、ポートフォワーディングを実行する部分のシェルスクリプトについてです。 ポートフォワーディングとは単純に表現すると「あるポートにきたデータを別のところに転送する」という意味です。ここでは、ローカルのポートに来たリクエストをRDSのポートに転送して、ローカルのPCからRDSに対するCRUDを実行できるようにすることを意図しています。 ポートフォワーディングには踏み台サーバーのインスタンスIDが必要ですが、EC2をTerraformで作成していると、何かの

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

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

          大まかな手順以下の手順で実行できます。 踏み台サーバーを起動する SSMでポートフォワーディングを実行する ローカルからmysqlコマンドでRDSに接続する 前提ローカルでaws cliを実行できる状態にしておく必要があります。当然認証も突破していないといけません。今回はこの部分は割愛します。 また、RDSはMySQLを使っている想定です。 それでは各手順を見ていきます。 踏み台サーバーを起動する踏み台サーバーの設定(EC2) EC2サーバーを定義します。ちょ

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

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

          S3を作って、ECSコンテナからアクセスしようとして上手くいきませんでした。S3に関するIAMポリシーを付与したロールになっているし、S3バケット名も間違っていないし、なんで疎通しないんだろう?と少し悩みましたが、、 答えはVPCエンドポイントが抜けていた、でした。 AWSの設計でVPCとS3でプライベートな接続をしたい時は、VPCエンドポイントが必要です。今回S3はパブリックアクセスを無効にしていたので、これが必要でした。 VPCエンドポイントをTerraformで設

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

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

          Terraformコマンドを本番環境に向けて実行する手段はいくつかありますが、Github Actionsを活用すると、認証系の情報を一元管理したり、管理する情報を減らせたりしてセキュアに運用できます。 今回はアクセスキーなどは使わずに、IAMロールから認証情報を取得する方法をシェアします。 Github ActionsでIAMロールから認証情報を取得するIAMロールの一時的なクレデンシャルでアクセスできる方法です。 以下のサイトにほぼ全て網羅されていました。 IAMコ

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

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

          以前ALBの設定に関する記事を書きましたが、今回はその続きで、DNS周りの設定についてメモします。 今回はこちらのブログを全面的に参考にさせていただき、無事にRoute53に設定したドメインでALBにルーティングすることができました。 前提として、ドメインの購入とRoute53への登録は完了しているところからのスタートです。今回はサブドメインを使い、かつALBも作成済みなので、Route53にALBのレコードを追加するだけで終わります。 Route53にALBのレコード

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

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

          Cognitoでアプリケーションへの認証機能を追加しようとして、ハマったので対応方法をメモしておきます。 ALBのリスナールールにCognitoを追加してルーティングするところまでは難なく終わったのですが、ルーティングした先でerror=redirect_mismatchが出てしまい認証ページまで飛べませんでした。 基本構成参考ブログにある「以下のアーキテクチャ図の通り、Cognitoだけで認証機能を追加しました。アプリケーション側には何も追加していません。 起きたこと

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

          terraform apply_chdirオプションの罠 #485

          terraformコマンドには -chdir オプションがあり、これでコマンド実行するディレクトリを指定できます。 私は当初 terraform apply をする時にこのオプションを使っており、各ディレクトリを指定してinitとapplyをするようにしてしまっていました。 そうした方が丁寧かな?と考えたのと、-chdirのようなオプションがわざわざ存在しているので、それを使わないといけないような気がしてしまいまして。 しかし-chdirを使うべきかどうかはもちろんケー

          terraform apply_chdirオプションの罠 #485