AWS

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の認…

Amazon InspectorでProxy環境内のAmazon EKSのマネージドノードグループを検査する

こちらに続きEKSをProxy環境内で利用する方法です。 yomon.hatenablog.com ネットワーク Inspector AgentにProxy設定 EKSのマネージドノードに設定追加 起動テンプレートのUserDataでProxyを設定 Cloudformation化 Inspectorを実行してみる ネットワーク eks…

Amazon EKSでProxy環境内の マネージドノードグループから外部イメージを利用する

最初に、この記事にたどり着くような要件の場合は、高いセキュリティが必要な環境だと思っています。その場合はインターネット上のレジストリにあるイメージを使うことは本来推奨できるものでは無いと思います。この手順もかなり限定的な用途での利用となる…

AWS GreengrassのLocal Shadowを利用してLambdaの設定値の変更・永続化をする

Raspberry PiのGatewayにGreengrassを入れて使っていますが、機器からの値を取得する周期や、パラメータ等、Gateway側のLambdaから利用するパラメータを永続値として持っておきたいと思いました。 その上、その値はAWS IoT側を通して変更したい。 ということ…

AnsibleでAWS IoT Greengrass CoreをRaspberry Pi上にインストールする

RaspbianにAWS IoT Greengrass Coreをインストールする手順をAnsible化しました。 処理の元ネタ 前提 リポジトリの取得 変数の設定 Ansible実行 github.com 処理の元ネタ Qiita側に書いたこの記事の内容です。 qiita.com 前提 piユーザにSSHでパスワード認証…

AWS IoT GreengrassでRaspberry Piに接続されたModbusのデータを取得

こちらの記事で作成したModbus通信の温湿度計を、AWS IoT GreenGrass経由で操作してみました。 yomon.hatenablog.com 概要 Lambda作成 GreenGrass設定 Lambda設定 サブスクリプション設定 デプロイ 動かしてみる プロトコルアダプター 概要 やりたいことの概…

ローカルPCのDocker上でCloudWatch Logs Insights連携の簡易分析基盤(Elasticsearch)を使う

AWSを運用しているCloudWatch Logsを分析することが良くあると思います。 数年前はCloudWatch Logsのファイルをダウンロードしてきて、分析していて面倒でしたが、 CloudWatch Logs Insights が出てきてそれもかなり楽になりました。 それでも毎回調べながら…

Amazon CognitoのIDトークンのJWTをPyJWTを使って検証する

Cognitoの認証により発行されるA JSON Web Token (JWT) に対して、Pythonで検証処理を自前実装する方法を記載します。 JWT検証に利用するライブラリ Amazon CognitoのJWTの検証方法 サンプルコード 補足 Cognitoの設定 補足 jwt.decode()について JWT検証に…

Apache BeamでJavaのObjectをParquet形式でS3とGCSとローカルに出力する

GCPのCloud Dataflowでも使われている、Apache BeamでJavaの内部で持っているデータをParquetに出力するやり方です。 サンプルコードの構成 元にしたMaven ArcheType 利用するPOJO GenericRecordへの変換 出力先の切り替え ローカルに出力してみる GCSに出力…

AWS Certified Data Analytics - Specialtyの試験に合格してきました

AWS 認定データアナリティクス(AWS Certified Data Analytics - Specialty)の試験に合格してきました。 AWS 認定データアナリティクス – 専門知識 試験概要 試験準備 オンライン試験の失敗談 1回目 2回目 さいごに 試験概要 180分で65問の試験でした。AWS…

CloudFormationでメール承認つきのCode PipelineでEC2にデプロイする

AWS

今更感ありますが、メール承認付きのCode PipelineでEC2にファイルデプロイするところをCloudFormationでデプロイする方法です。 前提 CfnのYAML定義 Cfn適用 パイプラインを動かす ソースをCodeCommitにPush 承認依頼メール 参考 前提 IAMの設定からGitComm…

IP制限かかっているS3バケットにAthenaでアクセスする

IP制限されたS3バケットポリシーの例 Athenaからのアクセス方法 方法① IAMロールをホワイトリストに登録(userid) ポイント 考慮点 方法② Athenaからのアクセスをホワイトリストに登録(CalledVia) ポイント 考慮点 S3では、以下の記事のようなリソースポ…

TableauからAthenaにIAMロールで接続するためJDBC利用してみる

最初に 前提 設定 TDCファイル作成(Tableau Datasource Customizatio) JDBC接続文字列作成 TableauからAthenaに接続してみる 最初に TableauからAthenaに繋ぐウィザードを立ち上げると、Access KeyとSecret Access Keyを求められます。 やはりロールで繋ぎた…

Amazon Elasticsearch ServiceにJDBCで接続してSQL実行する

Amazon Elasticsearch Service(以下、AES)にJDBC接続する方法です。 AESのSQL機能 AESのSQL機能はOpen Distro for ElasticsearchというAWS主導のプロジェクトで開発されています。 github.com この辺りは、AESのSQLのエンドポイントやプラグイン名にも表れ…

PowerShellでS3のサーバーアクセスログをTSV形式に変換しEXCELで分析

S3はのサーバのアクセスログを取得することが可能です。 通情、このログを分析するなら、Athenaが便利です。公式にもわかりやすい手順が出ています。 Athena を使用したアクセスログの分析 ただ、色々な制約でAthenaが使えない、Pandasも使えない、ましてやD…

LambdaでElasticsearch Serviceの手動スナップショットを取得する仕組みをCFnで一括デプロイ

Amazon Elasticsearch Service (AES) で手動スナップショット取得の仕組みをCloudformationで一気にデプロイします。かつCurator使って古いスナップショットは自動的に削除する設定になっています。スナップショット取るだけで意外に大変です。 Pythonスクリ…

Amazon Elasticsearch Serviceクラスタ構成を対障害性の観点から検討してみる

Amazon Elasticsearch Serviceクラスタ構成を検討したので、そのメモを残しておきます。 ※Elasticsearch Serviceの インスタンス ですが、資料によっては ノード と表記されています。この記事ではManagement Consoleの表記に合わせて インスタンス に統一し…

fluent-plugin-aws-elasticsearch-service使ってElasticsearch Serviceに疎通確認作業

fluent-plugin-aws-elasticsearch-serviceでIAM権限でAmazon Elasticsearch Service繋ごうと思うのですが、IAM権限やアクセスポリシー変更しながらの疎通テストをしたいと思い。簡単に疎通テスト用の手順書きました。 github.com Amazon Linux2にログオン td…

AthenaにVPCエンドポイント経由でJDBC接続できるようになったが少し詰まった話

こちらのリリースにあるようにAthenaにVPCエンドポイント経由で接続できるようになりました。これで、プライベートなサブネットからもJDBC接続できるようになりました! aws.amazon.com 試してみる 早速、前に記事書いたこちらのDockerイメージでテストして…

AWS CloudformationでSecurity Groupの自己参照の設定を行う

AWS

Glue使っているとSecurity Groupに自己参照の設定をしなければいけない時があります。 AWS Glue がコンポーネントと通信できるようにするには、すべての TCP ポートに対して自己参照のインバウンドルールを持つセキュリティグループを指定します。 https://d…

AWS Certified Security - Specialty取得してきました

最近、認定試験の記事ばかり書いている気がします・・ ちょうど個人的繁忙期で、個別技術追う時間が無くて試験予約だけして直前に勉強くらいしか時間が無いのが実情です・・ただ、そういう忙しい時でも、お金かかっているので意地でも勉強するので試験は便利…

AWS Fargate使ってサーバーレスでSelenium+Headless Chromeを実行する

この記事に行き着いた方でしたら、日々自動化を進めている中にも、ブラウザでのクリック、クリック、入力、クリック、みたいな作業が残っている人が多いと思います。 REST等でAPIが公開されていれば良いのですが、そういうAPIが提供されていないサービスもた…

AWS Glue Python Shellでloggingを使ったログ出力について

GlueのPython Shellでloggingモジュールを利用してログを取得を考えてた時のメモです。 ログ出力先 loggingモジュールのデフォルトの出力先 ログ設定パターン デフォルト 全て /aws-glue/python-jobs/error に出力するパターン ストリームを使い分けるパター…

Amazon Elasticsearch ServiceのKibanaでWMSマップを使う

Amazon Elasticsearch ServiceのKibanaで地図を使おうと思ったのですが、どの情報も kibana.yml を設定するものばかり。 以下の記事には大変救われました。WMSについても書いてあります。 qiita.com 上記の記事を参考にこちらのサイトにたどり着きました。 w…

Redshift Spectrumのパフォーマンスチューニングが必要なら統計情報を確認する

一番下の参考情報にも載せている通り、Redshift Spectrumのチューニングには、パーティショニングやファイルフォーマット等色々なポイントがありますが、ここでは特に見落としやすい、かつ効果の高い統計情報について書いていきます。 利用するデータ 環境準…

AWS GlueでS3上にあるPythonの外部ライブラリをインポートして利用する

題名の件、Glueで外部ライブラリをインポートしたので、その方法を書いておきます。 外部ライブラリ 参照元 アップロードパッケージ作成 GlueジョブにPythonの外部パッケージ設定 GlueのPySparkコードから実行 出力結果 本当はこんなことしたかったわけでは…

AWS Glueのワークフロー機能がリリースされたようなので触ってみました

AWS Summitで発表されたようですが、Glueの標準機能でワークフローが組めるようになったと聞いたので早速試してみました。 Glueでワークフローを組むのは大変だった やってみる CrawlerとJobを用意 ワークフロー作成 トリガー作成 ワークフロー作成 ワークフ…

Redshift Spectrumでは1400年1月1日より古いDATE型は読み込めない

同じエラーに出くわす人いると思ったので書いておきます。 S3にParquet形式で保存したデータをRedshift Spectrumで読み込むと以下のエラーが発生することがあります。 > select * from some_spectrum_table; Assert DETAIL: -------------------------------…

Amazon Elasticsearch Serviceの検索でSQLが使えるようになったので使ってみました

開発しているサービスの一部でElasticearch使っているのですが、ElasticsearchのクエリDSLって少し触ってないだけで忘れてしまいます。 昨日もGroupByに当たる、Aggregationを複数フィールドでやるのどうやるんだっけと、素人みたいなことで悩んでググってい…