AWS

AWS IoT Greengrass V2をTerraformとAnsibleでRaspberry Piに導入するサンプル作った

タイトルの通り、AWS IoT Greengrass V2をTerraformとAnsibleでRaspberry Piに導入するサンプル作りました。 github.com 概要は以下になります。最終的にはRaspberry Piから発行されたMQTTメッセージがAWS IoTで確認できるはずです。 前提 実行手順 事前準備…

AWS App Runner+ECRをTerraformでデプロイするサンプルコード(Docker化済み)

AWS

BeeX Advent Calendar 2022 4日目の記事です。 タイトルの内容を作りました。 github.com やっていること 前提 使い方 ポイント ECRのPush 挙動確認 実装ポイント Docker 掃除 参考URL やっていること ECRとApp RunnerをTerraformでデプロイしています。ECR…

MkDocsをCognito認証付きでS3+CloudFrontでサーバーレスホスティング

AWS

MkDocsが便利なので、AWSでサーバーレスかつ認証付きでホスティングできないか試してみました。 MkDocsを題材にしてますが、静的ファイルのポスティングするなら流用できると思います。 やること コード 前提 デプロイしてみる 設定 AWSリソースのデプロイ M…

AWS App RunnerでホストしたNginxをCognito認証で保護する

AWS

AWS App RunnnerでWEBサーバーをホスティングしたい。ついでにCognitoの認証を使いたいということで調べてみてます。 以下のIssueで関連する内容が提案されているので、どこかで対応されるかもしれません。 github.com 利用技術 事前設定 Cognitoの設定確認 …

PythonからCognitoのUSER_PASSWORD_AUTHとUSER_SRP_AUTHでのトークン取得

AWS

Amazon Cognitoの認証フローは複数ありますが、サーバーサイドの処理のパターンから代表的な USER_PASSWORD_AUTH と USER_SRP_AUTH を行う方法を書きます。 AWSの資料から引用した以下の表の〇部分です。 引用元:https://d1.awsstatic.com/webinars/jp/pdf/…

GPVデータで格子点毎の気象要素をAWS上で時系列分析する方法を考えた課程

GPVデータ データ形式や特性について フォーマット サンプルデータ データの特性 要件 やりたいこと その他ポイント データロード データ容量 クエリ 検討 データ形式調査 パターン別に試行 RDBに行持ちで保持 データロード データ容量 S3+ Parquet + Athena…

AWS IAM Role AnywhereをDocker+OpenSSLのRootCAで試してみる

AWS

PKIベースでAWSのIAMロールを使える IAM Role Anywhereが発表されました。早速使えるようだったのでOpenSSLでCA構築して使ってみた手順を残しておきます。 環境汚さないためにDocker使っています。 AWS Identity and Access Management introduces IAM Roles…

ESP32-DevKitC-32D>Raspbery Pi WiFi Router>SORACOM Beam>AWS IoTでMQTT通信してみた

やりたいこと 構成 コード AWS IoT側確認 参考 やりたいこと 手元のESP32-DevKitC-32Dの情報を手っ取り早くAWS IoTに繋ぎたいと考えて、以下で作ったRaspberry PiのSORACOMルーター通してBeamで送ってみることにしました。 yomon.hatenablog.com 構成 構成は…

AWS Lambdaにおける並列データ処理におけるパフォーマンス対応のメモ

AWS

Lambdaで並列処理のパフォーマンス対応をしたので残しておきます。 目的 要件 アプローチ① 単一Lambdaシーケンシャル アプローチ② 単一Lambda 並列ダウンロード・並列処理・EFS利用 参考 アプローチ➂ 並列Lambda 並列ダウンロード・並列処理・EFS利用 参考 …

AWS CDK PythonのバージョンをV1からV2にアップデートした

AWS CDKのV2がGAとなりました。 aws.amazon.com 開発中のプロジェクトのバージョンを更新するための変更部分を書いておきます。 参考資料 PyPiパッケージ更新 bootstrapが大きく異なる V1のリソース V2のリソース import文の変更 参考資料 こちらの内容を主…

GitHub ActionsにてAWS_ACCESS_KEY_IDやAWS_SECRET_ACCESS_KEYを取得する

GitHub Actionsの中で立ち上げるDockerコンテナに AWS_ACCESS_KEY_ID や AWS_SECRET_ACCESS_KEY 、 AWS_SESSION_TOKEN を渡してAWS認証を行いたいと思い調べていました。 どうやら以下のモジュールを使うことで、OIDCでWebIdentityとしてIAM RoleをAssumeで…

Serverless FrameworkでEFS for AWS Lambdaをデプロイする

コード Lambda関数 (handler.py) 設定ファイル(.env) Serverless Framework定義(serverless.yml) ポイント LambdaのEFSマウント設定 LambdaのDependsOn設定 LambdaのUID/GID 実行してみる 実行 結果確認 Lambdaで発生するこちらのエラー。 /tmp 領域を…

CloudWatchアラームを別アカウントのEventBusに転送・処理するCloudformationテンプレート

AWS

やりたいこと Cloudformation パラメータ コード event_source.cfn.yaml event_target.cfn.yaml 使い方 やりたいこと CloudWatchアラートの発生元アカウントと、ハンドリングアカウントを分けたいと思い、以下の構成を作成します。 Cloudformation パラメー…

AthenaのUNLOADとPREPAREでパラメータ化したクエリを組み合わせCSVをParquetに変換してみる

AWS

始めに CSVテーブル準備 利用するCSV形式のデータ Athenaに読み込み DB作成 テーブル作成 パーティション読み込み CSVをクエリしてみる PREPARE文による処理の準備 PREPAREによる処理作成 PREPARE文の説明 EXECUTE文による処理実行 Parquet変換結果確認 最後…

M5Stack Core2 for AWSのSecure Element ATECC608Aをインタラクティブに触ってみる

遅れながらこちらを購入して触ってみました。 www.switch-science.com 触ってみる 触ってみるには、こちらの公式のハンズオンを見てみたり、 edukit.workshop.aws こちらの記事を参考にすることをオススメします。 qiita.com インタラクティブかつ簡単にSE(…

Amazon FreeRTOSのHello World用のリポジトリを作ってみた(WindowsとESP-WROOM-32にて作業)

FreeRTOSのビルド環境を勉強していましたが、最小限のHello Worldから始めたくて、作ったリポジトリです。 github.com 前提条件 ビルド作業 リポジトリの取得 ESP-IDF v4.2 のインストール ビルドファイルの生成 デバイスへ書き込み 動作確認 補足 M5StickC …

FreeRTOSをM5StickC PlusにインストールしてAWS IoTにメッセージを飛ばす(Windowsにて作業)

Amazon FreeRTOSを触ってみたくて、手元にあったM5StickC Plusにインストールしようとしたのですが、WEBや書籍の情報通りやったらバージョン依存等でかなりハマったので、最終的に纏めた手順を残しておきます。 作業は全てブラウザ(AWS Management Console…

ECSのFargateからEFSをマウントするための最小限サンプル設定

FargateからEFSを利用するための動きを確認したい場合に使える、最小限の構成設定を準備したので記載します。 Dockerイメージの準備 Cloudformation適用 動かしてみる EFSの中身を見てみる EFSのマウント EFSの中身確認 掃除 Dockerイメージの準備 以下のよ…

ECSでECR利用監査するAWS Configをrdkを使って適用

コンテナセキュリティを検討していると、ECSで利用されているイメージはECRから取得されているかチェックしたいという要望はあると思います。 EKSの場合はこちらの記事で書かせていただいたOPA などを利用すると良いですが、ECSの場合はAWS Configを使うこと…

BottlerocketをECSのAutoScalingに組み込むCloudformation定義と手順

AWSのコンテナ専用OSである Bottlerocket をECSクラスタに付けてオートスケールしてみました。 この記事ではBottlerocket OSの aws-ecs-1 というバリアントを利用しますが、このバリアントは developer preview フェーズなので、今後変わる可能性があります…

新しくクラウドサービスを学ぶ時Infrastructure as Codeから始めてる話

背景 クラウドサービスのキャッチアップにおける課題 サービス間連携が多い 新機能追加のスピードが速い すぐ忘れる 勉強時にインフラコードを書くようにしてみた 以前のステップ 現在のステップ Infrastructure as Codeについて 使っているツール メリット …

Amazon ECSをInternal ALB公開する基本構成のCloudformation

ECSにデプロイしたWEBサービスを内部ALBで公開するためのベースとなるCloudformationを作りました。 構成概要 パラメータ ソースコード 使い方 Cfn補足説明 ALB ECS Role ECS Cluster ECS Task さいごに 構成概要 実際は要件次第で色々付け加えると思うので…

2020年の仕事で使った技術を振り返る

2020年の仕事を振り返ってみようと思います。 書いて見返してみると、本当に技術のことばかりですね。仕事と言うより、技術好きのただの趣味みたいな感じなのでしょうがないか。 はじめに 今年仕事で使った技術 AWS Azure GCP Other 全てのプロジェクトにIaC…

AWS Lambdaのコンテナイメージ上のkubectlコマンド実行してEKSを管理してみる

Lambdaのコンテナイメージからkubectlを実行してEKSを操作してみます。AWS Lambda runtime API 辺りが少し面倒ですが、総じてとても便利です。 なじみの人が多いだろうシェルスクリプトで実装していきます。 はじめに 最初に読んでおくべきもの 実装 Lambda…

Falcoとaws-for-fluent-bitを使ってCloudWatchにEKSノード上の危険なシステムコール情報を収集する(Proxy環境)

この記事はBeeX Advent Calendar 2020の12/12の記事です。 EKSのデータプレーンをどう選ぶか考えたとき、個人的にはFargateを積極的に使いたいところですが、まだ制限も多くて要件にフィットしない場合もあります。 そんな時に選択肢として挙がるManaged Nod…

Amazon EKSのPrivate ClusterでContainer Insightsを動かす(インターネット接続不可環境)

この記事はBeeX Advent Calendar 2020の12/4の記事です。 直接インターネット接続不可の環境に構築したEKSのPrivate ClusterでContainer Insightsを動かそうとしたら、ハマりどころが多かったので残しておきます。 前提 方針 Container Insights設定事前作業…

Amazon EKSのService Accountをawscliやkubectl使ったスクリプトで作成する

この記事はBeeX Advent Calendar 2020の12/3の記事です。 Service Accountの仕組みを理解するために、Step By Stepでスクリプト化してみました。 スクリプト 使ってみる 名前空間の作成 スクリプトの実行 ServiceAccountの確認 やっていることを少し解説 1.O…

EKSにOPA GatekeeperをHelmでインストールしてポリシー強制をしてみる

OPA Gatekeeperとは 作業環境 インストール 必須Labelを強制する ポリシーテンプレートの作成(ラベル強制) 制約の作成・適用(ラベル強制) ポリシー違反のテスト ポリシー違反のテスト(正常系) 掃除 Container Registryを強制する ポリシーテンプレート…

EKSでaws-load-balancer-controller使ってInternalのALB Ingress Controllerを作成する

PrivateSubnetに構築したEKSにInternalのALBをIngress Controllerとして構築する作業のメモです。 参考URL PrivateSubnetへのタグ付け EC2ロール作成 CRDの登録 Helmでaws-load-balancer-controllerをインストール テストサーバーのデプロイ 掃除 参考URL 最…

AWS IoT SQLでINT等の整数で渡されたBIT FLAGの値を取り出す

課題 対応 課題 AWS IoTに飛んできていたINT等の整数データが実はビットのフラグが並んだものだった場合、AWS IoT SQL使うとフラグに直して後続に渡すことも可能です。 対応 例えば my_data という項目に8ビットフラグの整数が渡されてきた場合、以下の関数…