My Note

自己理解のためのブログ

AWS

Lambdaレイヤーを利用してラインタイムPython上でgoバイナリを実行 & レイヤーをバージョン管理する

Lambdaレイヤーとは 試してみる レイヤーをバージョン管理する 今回はLambdaレイヤーについて簡単な検証とレイヤーのバージョン管理について検証しました。 Lambdaレイヤーとは docs.aws.amazon.com Lambda レイヤーは、Lambda 関数で使用できるライブラリと…

APIGateway + Lambda + Go(Echo)をSAM(Serverless Application Model)でAWSとローカルにデプロイする

はじめに 前回、APIGW + Lambda + Go(Echo)のローカル環境をSAMで構築しました。 今回は、samでローカルではなく、AWS環境にデプロイをしました。ローカルも同じ設定で利用可能です。 yhidetoshi.hatenablog.com 本記事ではAWSにデプロイする部分にだけ記載…

APIGateway + Lambda + Go(Echo)で開発するためのローカル環境をSAM(Serverless Application Model)で再現する

はじめに ローカル環境構築 デプロイと動作確認 さいごに はじめに 前回の記事では、サーバレス環境をローカルに用意するためにserverless frameworkを利用しました。そこで今回はSAMを利用して同じ環境を構築してみます。 基本的にServerlessFrameworkを利…

APIGateway + Lambda + Go(Echo)で開発するためのローカル環境をServerlessFrameworkで再現する

はじめに 構成 ローカル環境 デプロイと動作確認 さいごに はじめに 以前の記事で APIGW + Lambdaで GoのフレームワークであるEchoを動かす検証を実施しました。 実際にデプロイすることができたので今回は開発を行うためにローカル環境をServerlessFramewor…

APIGateway(HTTP API) + Lambda環境に echo(Goのweb Framework) を ServerlessFramework でデプロイする

はじめに 変更部分 ServerlessFramework 動作確認 さいごに はじめに 前回の記事で APIGatewayの REST API で EchoをAWS Lambdaで簡単なAPIをデプロイしました。 今回は、APIGatewayの HTTP API に変更します。差分について記述していきます。 yhidetoshi.ha…

APIGateway(REST API) + Lambda環境に echo(Goのweb Framework) を ServerlessFramework でデプロイする

はじめに コード echoのコード ライブラリをざっくり確認 環境構築 ( ServerlessFramework ) 作成されるリソース Lambda APIGateway APIGWのリソース 動作確認 備考 さいごに はじめに 今回は goのwebフレームワークであるEchoをLambdaにデプロイして簡単なA…

GitHub Actions からCodeBuildを呼び出してdocker build する

概要 github-actions 概要 以前にGitHub Actionsでビルドする内容について書きました。そこで今回はビルドの処理をGitHub ActionsからCodeBuildを呼び出して CodeBuildでビルド処理を実行します。 yhidetoshi.hatenablog.com この記事の DockerビルドとECRへ…

GitHub Actonsで利用するOIDCプロバイダをTerraform(AWS IAM)で作成する

はじめに Terraform はじめに 前回の記事で Github AcrtionsにOIDCでAWS認証してECRにコンテナイメージを登録しました。 前回は手動でAWSコンソールでポチポチ作成したので今回は OIDCをプロバイダをTerraformで作成しました。 terraform以外の部分は前回記…

GitHub ActionsでOIDCを利用してECRにコンテナイメージを登録する

はじめに OIDCプロバイダーを作成 Github Actionsを設定 はじめに Github Actionsで AWSのアークセスキーとシークレットキーを設定しなくてもOIDC ( OpenID Connect) で認証できるようになりました。 鍵情報をセットしなくて済み鍵を管理する必要もないので…

【アップデート】GuardDutyの結果をLambda ( Go ) でSlackに通知する

はじめに SlackAppを利用する パッケージ構成 EventBridgeについて Slack通知について さいごに はじめに 今回は以前に書いた "GuardDutyの結果をLambda ( Go ) でSlackに通知する" 内容をアップデートしました。 主な目的はslack通知に利用するライブラリを…

Lambda@Edge( Nodejs )でリダイレクト設定をする

はじめに Lambda@Edgeについて コードと動作確認 はじめに 今回はLambda@Edge( Python3 )を使ってリダイレクト設定しました。 本記事ではLambda@Edgeについてしか触れないので、構成やCloudFront、Lambda@Edgeの設定については下記の記事に記載しています。 …

CloudFrontとLambda@Edge ( Nodejs )とS3で静的ページにIPアドレス制限とBasic認証を設定する

はじめに Lambda@Edgeについて Basic認証とIP制限について 動作確認について はじめに 今回はLambda@Edge( Nodejs14 )を使ってBasic認証とIP制限を設定しました。 本記事ではLambda@Edgeについてしか触れないので、構成やCloudFront、Lambda@Edgeの設定につ…

CloudFrontとLambda@Edge(Python3)とS3でリダイレクト設定をする

はじめに 構成 リダイレクト設定(Lambda@Edge) パターン1: すべてのリクエストを別ホストにリダイレクト パターン2: 特定のパス配下のアクセスを同じホストの別パスにリダイレクト パターン3: 特定のパス配下のアクセスを別ホストにリダイレクト(同じパス…

CloudFrontとLambda@Edge ( Python3 )とS3で静的ページにIPアドレス制限とBasic認証を設定する

はじめに 構成 CloudFrontについて Lambda@Edgeについて コードについて( Python3 ) CloudFrontとS3について Behaviorの設定 動作確認 Lambdaの機能を使ったテストイベント クライアントからの実行 さいごに はじめに 今回はCloudFrontとLambda@Edge ( Pytho…

EKS ( Kubernetes ) のWorker NodeとContainerのログをDaemonSetのFluentdでS3に保存する

はじめに 環境と構成 保存するログの対象 DaemonSetについて DaemonSetで利用するFluentdについて IRSAについて kustomizeを利用してデプロイする base/ で用意するマニフェスト daemonset.yamlについて overlays/ で用意するマニフェスト fluent.confについ…

Terraform学習メモ1 ( mapとfor_eachでECRを作成 )

mapとfor_eachについて Terraformのコード MapをイメージするためにGoで定義した場合 Terraformが0.12系がリリースされてから使える関数が増えてきているのでTerraformをまた勉強しはじめました。 そのときの "学習メモ" として書いていきます。(あくまで学…

Amazon EKS on EC2 で mackerel-container-agentを使ってPodを監視する

はじめに 環境構築 マニフェストを作成 commonディレクトリについて ServiceAccountとClusterRoleBindingについて nginxディレクトリについて ConfigMapについて ( pluginを利用した監視設定 ) Deploymentについて Mackerelの管理画面 ( モニタリング結果 ) …

ECS FargateでBlue/Greenデプロイをする

Blue/Greenデプロイについて アーキテクチャとデプロイフロー ALBとターゲットグループを作成する ECS Fargateのサービスを作成する CodePipelineについて CodeBuild buildspec.yml taskdef.jsonについて 機密情報の取り扱いについて ( SSM連携 ) CodeDeploy…

ECS FargateでGoコンテナを起動してローリングアップデートする

はじめに アーキテクチャ GitHub ECRに登録するGoコンテナを作成する docker imageを作成 ECRにdocker imageをpushする ECS Fargateのタスクを作成する ECS Fargateのサービスを作成する ALBを作成する サービスをつくる CodePipelineを作成する Source ( Gi…

Google App Engine(Go)とechoを使ってAPIを作ってみた ( 結果の可視化はMackerelで )

はじめに アーキテクチャとフロー Lambda ( Go )のクライアントについて デプロイについて GoogleAppEngine ( Go ) について echoについて echoでやっていること Basic認証 スクレイピングとjson生成 GAEへのデプロイについて 結果 さいごに はじめに Goとec…

AWS請求額をGoとMackerelで可視化して監視・通知する

はじめに アーキテクチャ Lambda ( Go )について 結果 ( Mackerelの画面 ) 監視設定とアラート通知 ( LINE ) デプロイ さいごに はじめに 今回もMackerelを使ってメトリクスを可視化する系の記事です。今回は監視と通知もしています。 AWSの請求額をグラフ化…

金とプラチナの価格をGoとMackerelで可視化する

はじめに アーキテクチャ Lambda ( Go )について デプロイ 結果 ( Mackerelの画面 ) さいごに はじめに 今回は、Goでスクレイピングして金とプラチナの価格をMackerelで可視化します。 yhidetoshi.hatenablog.com こちらと同様にMackerelを使った可視化です…

GoogleAnalyticsのPV数をGoとMackerelで可視化する

はじめに アーキテクチャ Google Cloud Platformについて GoogleAnalyticsについて Lambda ( Go )について 認証ファイル(json)のセット方法 認証ファイルを環境変数にセットできるように加工 GoogleAnalyticsから欲しい情報を取得する Lambdaの定期実行 Mack…

GuardDutyの結果をLambda ( Go ) でSlackに通知する

はじめに Slack通知を設定 アーキテクチャ 通知結果 CloudWatchの設定 Lambda関数 ServerlessFrameworkを利用したデプロイ まとめ はじめに AWSのセキュリティ対策のひとつにGuardDutyというサービスがあります。 aws.amazon.com GuardDuty はインテリジェン…

AWS アベイラビリティゾーン名とAZ-IDのマッピングを確認する

AWSの大障害がありアベイラビリティーゾーン名とAZ-IDのマッピングを確認した事があったので備忘録的に書きます。 ■ aws-cli docs.aws.amazon.com aws-cliを利用します。バージョンが1.15系だと ZoneId が取得できなかったので、アップデートしました。 $ aw…

S3バケットにアクセス制限を設定する

S3バケットに対してアクセス制限を実施したのでその備忘録です。 以下の接続元を除き(だけを許可)、それら以外はトラフィックを拒否する。という設定をします。 VPC内のリソース (aws:sourceVpce) VPCエンドポイントを指定 特定のGIP (aws:SourceIp) ■ バ…

CodeBuildの実行結果をLambda(Go)でSlackに通知する

目的 アーキテクチャについて 実装について Lambda関数とCloudWatchEventの作成 Lambda関数の実装 Slackの通知結果 デプロイ方法 まとめ 目的 AWS CodeBuildの実行結果をLambdaを使ってSlackに通知するようにしました。 前回のブログで、CodeBuildでMackerel…

TerraformでAWSの環境構築 ( IAM-Role/Policy )

やったこと 実行環境 IAMロールを作成する Terraformのコード全体 追加 (IAMポリシーの作成) コード全体 まとめ やったこと Terraformを利用してAWS環境のIAMロールを作成する。 IAM-Role lambda-functionに付与するロール 信頼されたエンティティ(ID プロバ…

TerraformでAWSの環境構築 ( Lambda )

やったこと 実行環境 lambda-functionをつくる Terraformのコード全体 まとめ やったこと Terraformを利用してAWS環境のlambda-functionを作成する。 lambda-functionの設定 ラインタイム: go1.x ハンドラー: main 環境変数をセット Goのコードをアップロー…

TerraformでAWSの環境構築 ( S3 )

やったこと S3バケットを作成する バージョニングを設定 デフォルト暗号化 ライフサイクルを設定 ブロックパブリックアクセス バケットポリシーを設定 ( dataリソースを使う ) バケットポリシーを設定 ( JSONを使う ) Terraformのコード全体 まとめ やったこ…