Raspberry Pi実機無しでゴールデンイメージを作成する(SORACOM接続用サンプル)

Raspberry Piの構築をAnsibleで行っていましたが、最初にネットワーク使えるようにするまでに、ほんの少しだけ手作業の設定が必要でした。 そこで、ネットワーク設定を含む全てのマシンで必要な共通のゴールデンイメージとして持って、マシンごとの個別部分…

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

AWS

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

Ubuntuのunattended-upgradesを調べてみた

Ubuntuバージョン パッケージ情報 GitHub apt info スケジューリング anacron (今は使われていない) systemdによるスケジュール スケジュール確認 スケジュール設定(Systemd Timerファイル) スケジュール設定 処理概要 systemd Serviceファイル apt.system…

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

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

Raspberry Piのケースを複数購入してみたので負荷をかけCPU温度を計測・比較してみました(公式ファン、UCTRONICS、いちご缶)

いくつかRaspbery Piのケースを購入してみたので、負荷をかけてCPU温度を計測、比較してみました。 最初に書いておきますが、特定環境でのCPUの温度の計測をしただけなので、これだけで何かの優劣をつけるようなものでは無いと思っています。なるほどーくら…

Microsoft認定の更新が凄く簡単になったのでAzure Solutions Architect Expertを更新してみた

このブログのサイドバーにあるように、大量のクラウド系の認定を保持しています。 ここまで来ると毎年のように何らかの認定が期限切れが起きるので、認定資格取得します。お金は会社から出るのですが、正直忙しいと辛いです。更に更新となると余計にモチベー…

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イメージの準備 以下のよ…

Modbus TCPでLinuxから機器に対して接続確認する時の確認手順

Raspberry Pi等のLinuxマシンのIoT GatewayからModbus TCP通信を行うことが多いのですが、繋がらない場合に確認しているポイントを書きます。 ネットワークの基本的な手順なのですが、機器の仕様書読んで、実機繋いで、そこからの手順は大体いつも同じなので…

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 フェーズなので、今後変わる可能性があります…

OCPP (Open Charge Point Protocol) をPythonとOSSのSteVeで使ってみる

世の中はEV普及に向けて進んでいますが、EVが普及するためには必須事項として充電環境があります。充電器を管理するオープンなプロトコルのOCPP(Open Charge Point Protocol)を触る機会があり記事を書きます。 OCPPとは OCPPを触りたい Charge Point側開発…

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

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

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

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

Ansibleからsetup_air.shを実行してRaspberry PiとSORACOM Airを設定する

SORACOMでSIMカードとUSBドングルを購入して、さあRaspberry Piで設定となった時にドライバとかどうしようとなるのですが、SORACOMから設定スクリプトの setup_air.sh というものが提供されています。 dev.soracom.io 基本はこのスクリプトを実行すればSIMの…

AZ-220 Microsoft Azure IoT Developerに合格してきました

動機 勉強方法 Azure IoT関連サービスへの 所感 最後に久々のオンライン試験について 午前中に合格してきました。点数もまあ及第点かなと思います。 動機 実際の仕事ではAWS IoTやGreengrassを利用しているのですが、設計アプローチに幅を持たせたいと思い、…

M5StickC Plusを使ってRS485でModbus RTU通信してみる

IoT

M5StickC Plusを手に入れたので少し動かしてみました。 www.switch-science.com はじめに 開発環境を整える IDEの準備 M5StickC Plusの開発環境準備 Modbus-RTU通信準備 RS485通信用のHatの購入 Modbus通信に利用するライブラリを導入 コード 動かしてみる …

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

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

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

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

SORACOM Napterで複数SIMからSSH先を選択して接続できるスクリプト作った

この記事はBeeX Advent Calendar 2020の12/15の記事です。 SORACOM NapterはオンデマンドでデバイスへのテンポラリかつセキュアなSSH接続を開けるサービスで、コロナ禍で現場に行くのが難しくなった中、自分の中でますます活躍の場が増えてるサービスです。 …

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ビットフラグの整数が渡されてきた場合、以下の関数…

DataflowのWriteToBigQueryでRuntimeValueProviderで渡した日付のパーティション分割テーブルを作る

DataflowでRuntimeValueProviderで渡した値を使って、BigQueryのパーティション分割テーブルを作成しようとしたら、WriteToBigQueryでハマったので書いておきます。 課題 対策 参考URL 課題 日付のパーティション分割テーブル自体をWriteToBigQueryで作成す…

MFA必須の環境下でAmazon EKSでkubectlを使う方法

MFA必須の環境下のEKSでkubectlを実行するための方法です。 結論としては、kubectlは内部的にAWS CLIを打っているので、AWS CLIのMFA設定の手順と同じとなります。 まず ~/.aws/credentials に自身のIAMユーザを登録します。 [base_cred] aws_access_key_id …

Amazon EKSの [system:masters] はどこから来たかWebhookトークン認証まで追ってみた

EKSを作ったユーザ、またはロールに紐付く system:masters というグループがどこから来ているのか、自分の目で確かめたくて掘り進めたので記録を残しておきます。 EKSのsystem:mastersって EKSの認証の仕組み ステップバイステップで追ってみる kubectlの認…