2020-01-01から1年間の記事一覧
2020年の仕事を振り返ってみようと思います。 書いて見返してみると、本当に技術のことばかりですね。仕事と言うより、技術好きのただの趣味みたいな感じなのでしょうがないか。 はじめに 今年仕事で使った技術 AWS Azure GCP Other 全てのプロジェクトにIaC…
Lambdaのコンテナイメージからkubectlを実行してEKSを操作してみます。AWS Lambda runtime API 辺りが少し面倒ですが、総じてとても便利です。 なじみの人が多いだろうシェルスクリプトで実装していきます。 はじめに 最初に読んでおくべきもの 実装 Lambda…
この記事はBeeX Advent Calendar 2020の12/15の記事です。 SORACOM NapterはオンデマンドでデバイスへのテンポラリかつセキュアなSSH接続を開けるサービスで、コロナ禍で現場に行くのが難しくなった中、自分の中でますます活躍の場が増えてるサービスです。 …
この記事はBeeX Advent Calendar 2020の12/12の記事です。 EKSのデータプレーンをどう選ぶか考えたとき、個人的にはFargateを積極的に使いたいところですが、まだ制限も多くて要件にフィットしない場合もあります。 そんな時に選択肢として挙がるManaged Nod…
この記事はBeeX Advent Calendar 2020の12/4の記事です。 直接インターネット接続不可の環境に構築したEKSのPrivate ClusterでContainer Insightsを動かそうとしたら、ハマりどころが多かったので残しておきます。 前提 方針 Container Insights設定事前作業…
この記事はBeeX Advent Calendar 2020の12/3の記事です。 Service Accountの仕組みを理解するために、Step By Stepでスクリプト化してみました。 スクリプト 使ってみる 名前空間の作成 スクリプトの実行 ServiceAccountの確認 やっていることを少し解説 1.O…
OPA Gatekeeperとは 作業環境 インストール 必須Labelを強制する ポリシーテンプレートの作成(ラベル強制) 制約の作成・適用(ラベル強制) ポリシー違反のテスト ポリシー違反のテスト(正常系) 掃除 Container Registryを強制する ポリシーテンプレート…
PrivateSubnetに構築したEKSにInternalのALBをIngress Controllerとして構築する作業のメモです。 参考URL PrivateSubnetへのタグ付け EC2ロール作成 CRDの登録 Helmでaws-load-balancer-controllerをインストール テストサーバーのデプロイ 掃除 参考URL 最…
課題 対応 課題 AWS IoTに飛んできていたINT等の整数データが実はビットのフラグが並んだものだった場合、AWS IoT SQL使うとフラグに直して後続に渡すことも可能です。 対応 例えば my_data という項目に8ビットフラグの整数が渡されてきた場合、以下の関数…
DataflowでRuntimeValueProviderで渡した値を使って、BigQueryのパーティション分割テーブルを作成しようとしたら、WriteToBigQueryでハマったので書いておきます。 課題 対策 参考URL 課題 日付のパーティション分割テーブル自体をWriteToBigQueryで作成す…
MFA必須の環境下のEKSでkubectlを実行するための方法です。 結論としては、kubectlは内部的にAWS CLIを打っているので、AWS CLIのMFA設定の手順と同じとなります。 まず ~/.aws/credentials に自身のIAMユーザを登録します。 [base_cred] aws_access_key_id …
EKSを作ったユーザ、またはロールに紐付く system:masters というグループがどこから来ているのか、自分の目で確かめたくて掘り進めたので記録を残しておきます。 EKSのsystem:mastersって EKSの認証の仕組み ステップバイステップで追ってみる kubectlの認…
GCPのサポート使ったので、そのメモです。 短期的にはDataflowのRunnerのVersion 2のバグ(というか実装漏れ?)だったので同じ問題で悩んでいる方もググって辿り着けるように残しておきます。 使っているのは$100の開発環境のサポートプランなので、プラン…
こちらに続きEKSをProxy環境内で利用する方法です。 yomon.hatenablog.com ネットワーク Inspector AgentにProxy設定 EKSのマネージドノードに設定追加 起動テンプレートのUserDataでProxyを設定 Cloudformation化 Inspectorを実行してみる ネットワーク eks…
最初に、この記事にたどり着くような要件の場合は、高いセキュリティが必要な環境だと思っています。その場合はインターネット上のレジストリにあるイメージを使うことは本来推奨できるものでは無いと思います。この手順もかなり限定的な用途での利用となる…
GCPのCloud DataflowでのOS系のエラーが出た場合の調査方法の例です。 事象 調査 エラー内容 Dockerイメージを特定する Dockerイメージを起動してみる 修正 まとめ 事象 yomon.hatenablog.com こちらの記事で書いたようにJDBCを使ったジョブの、Apache Beam…
Raspberry PiのGatewayにGreengrassを入れて使っていますが、機器からの値を取得する周期や、パラメータ等、Gateway側のLambdaから利用するパラメータを永続値として持っておきたいと思いました。 その上、その値はAWS IoT側を通して変更したい。 ということ…
サーバーサイドでは、見ることほとんど無くなった32bit Linux。 ただ、最近使うこと多くなっているRaspberry PiのOSである、Raspberry Pi OS(旧 Raspbian)は32bit Linuxです。 もし、Raspberry Piを配置して今後18年動き続ければ、2038年問題引っかかります…
仕事の中でECHONET Lite(エコーネットライト)というプロトコルを知ったのですが、このプロトコルで部屋にあるSharp製のエアコン(型番 AY-H22S-W ) を操作できそうなので使ってみました。 ECHONET Liteとは 部屋のエアコンが対応しているか調べてみた 調べ…
RaspbianにAWS IoT Greengrass Coreをインストールする手順をAnsible化しました。 処理の元ネタ 前提 リポジトリの取得 変数の設定 Ansible実行 github.com 処理の元ネタ Qiita側に書いたこの記事の内容です。 qiita.com 前提 piユーザにSSHでパスワード認証…
こちらの記事で作成したModbus通信の温湿度計を、AWS IoT GreenGrass経由で操作してみました。 yomon.hatenablog.com 概要 Lambda作成 GreenGrass設定 Lambda設定 サブスクリプション設定 デプロイ 動かしてみる プロトコルアダプター 概要 やりたいことの概…
Raspberry Piを使う時には電源の取り回しが面倒でモバイルバッテリーをよく使います。 家の無線LANに繋いでいる時はSSHで入れば良いのですが、SIMカード通して動かしていたり、Wifi周りの設定を調整したりLANから外れる作業も以外と多く、そういう場合は、余…
はじめに Modbus(モドバス)って? PCのUSBから繋いでみる GPIOから繋いでみる Raspberry PIでUART通信の準備 MAX485購入(UART -> RS485変換) 配線 Pythonで通信してみる 参考URL はじめに 仕事でModbusを勉強する必要が出てきたので、試しに何か動かそうと…
以下の記事でAzure Data Catalogでやったような機能追いをGCPのData Catalogでも行ってみました。 yomon.hatenablog.com 2020/08/21時点の内容なのでご注意ください。 GCP Data Catalog 利用するデータ メタデータの登録方法 メタデータの登録手順 データカ…
Azure Data Catalogについて書きます。 azure.microsoft.com データカタログって Azure Data Catalog 対応しているデータソース データカタログ準備 MySQLサンプルデータの準備 Azure Data Catalogにメタデータ発行用の登録ツールインストール MySQLコネクタ…
AWSを運用しているCloudWatch Logsを分析することが良くあると思います。 数年前はCloudWatch Logsのファイルをダウンロードしてきて、分析していて面倒でしたが、 CloudWatch Logs Insights が出てきてそれもかなり楽になりました。 それでも毎回調べながら…
Cognitoの認証により発行されるA JSON Web Token (JWT) に対して、Pythonで検証処理を自前実装する方法を記載します。 JWT検証に利用するライブラリ Amazon CognitoのJWTの検証方法 サンプルコード 補足 Cognitoの設定 補足 jwt.decode()について JWT検証に…
タイトルの通り、*.soなどの形式で提供されるNative Libraryを必要とするjarファイルをDataflowで使おうとして、ハマったので記録しておきます。 問題となっていたエラー 調査 サンプルコード 問題となっていたエラー まず出たエラーはこちら。このエラーの…
HashicorpからTerraformのイメージが公式でDocker Hubに公開されています。 https://hub.docker.com/r/hashicorp/terraform こちらを利用してGCPにインフラをデプロイします。その際に認証の部分もDockerの公式イメージだけで対応してみようと思います。 利…
GCPのCloud Dataflowでも使われている、Apache BeamでJavaの内部で持っているデータをParquetに出力するやり方です。 サンプルコードの構成 元にしたMaven ArcheType 利用するPOJO GenericRecordへの変換 出力先の切り替え ローカルに出力してみる GCSに出力…