ablog

不器用で落着きのない技術者のメモ

AWS

Step Functions で Glueジョブの成功/失敗を判定する

AWS

Glueジョブの成功/失敗を Step Functions で判定してジョブ制御する。 ステートマシン { "StartAt": "ReadFilterJob", "States": { "ReadFilterJob": { "Type": "Task", "Resource": "arn:aws:states:::glue:startJobRun.sync", "Parameters":{ "JobName":"…

Glue 開発エンドポイントの Jupyter Notebook で GeoPy を使ってみた

AWS

Glue 開発エンドポイントの Jupyter Notebook で GeoPy を使えることを確認したメモ。 GeoPy を zip で圧縮して S3 バケットにアップロードする GitHub - geopy/geopy: Geocoding library for Python. から [Clone or download] で [Download ZIP] を選択し…

Glueジョブで GeoPy を使ってみた

AWS

Glueジョブで Python ライブラリ GeoPy を使えることを確認したメモ。 GeoPy を zip で圧縮して S3 バケットにアップロードする GitHub - geopy/geopy: Geocoding library for Python. から [Clone or download] で [Download ZIP] を選択して、ダウンロード…

VPN 越しに NLB 経由で ftp を使う

AWS

EC2 EC2 インスタンス作成 $ cat /etc/system-release Amazon Linux AMI release 2018.03 $ uname -r 4.14.165-103.209.amzn1.x86_64 vsftpd をインストール $ sudo yum -y install vsftpd Passive モードの設定 当たり前だが pasv_address を設定しても ftp…

Client VPN 接続する

AWS

AWS Client VPN で macOS からプライベートサブネットに VPN 接続してみた。 macOS で相互認証用のキーを作成 git clone https://github.com/OpenVPN/easy-rsa.git cd easy-rsa/easyrsa3 ./easyrsa init-pki ./easyrsa build-ca nopass Common Name (eg: you…

SageMaker GroundTruth で UpdateWorkforce API の実行権限を付与するIAM権限

AWS

SageMaker GroundTruth で UpdateWorkforce で許可する workforce に対するIPアドレスレンジを指定したい場合は、IAMポリシーで sagemaker:UpdateWorkforce を付与すればよい。逆に権限を与えたくない場合は sagemaker:UpdateWorkforce を付与しなければよい…

Amazon Redshift で取得された結果セットの行数を調べるクエリ

AWS

/* returned_rows */ select a.userid ,a.query ,a.substring sql ,b.rows from svl_qlog a join stl_return b on a.query=b.query where b.slice >= 6411 and a.userid != 1 and sql not like '/* returned_rows */%' union all select a.userid ,a.query ,…

Redshift のリーダーノードのスライス番号

AWS

[追記]スライスに関する情報として、STV_SLICESというテーブルもあるようです。上記SQLに追記する形でノード・スライスの情報を付与してみました。(※これを見る限り、上記のスライス"6411"のような極端に大きな数字についてはリーダーノードの情報になるので…

AWS App Mesh とは

AWS

AWS App Mesh はサービスメッシュのコントロールプレーン。OSS でいうと Envoy はデータプレーンで、Istio はコントロールプレーン。自前で Envoy をデータプレーン、Istio をコントロールプレーンとして構築・運用できるが、AWS App Mesh を使うとコントロ…

S3 の VPC エンドポイントポリシーに必要な arn

AWS

Amazon Linux の Yum リポジトリ arn:aws:s3:::repo.{region}.amazonaws.com arn:aws:s3:::packages.{region}.amazonaws.com ECR リポジトリ arn:aws:s3:::prod-{region}-starport-layer-bucket/* RDS RDS Oracle でファイルをアップロード・ダウンロードす…

Organization 配下のアカウントの S3 バケットのみにアクセス許可する VPC エンドポイントポリシー

AWS

Organization 配下のアカウントのS3バケットのみにアクセス許可する VPC エンドポイントポリシー。 { "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "s3:*", "Resource": "*", "Condition": { "StringEquals":…

VPC 接続を使った Glue ジョブで VPC エンドポイントポリシーを設定すると "An error occurred (403) when calling the HeadObject operation: Forbidden"

AWS

Glue の「接続」を作ってジョブにアタッチすると、VPC エンドポイント経由で S3 にアクセスできる。VPC エンドポイントポリシーでアクセス可能な S3 バケットを絞りたい場合は、業務で使うバケットに加えて Glue ジョブが使うスクリプトディレクトリ(デフォ…

Glue で閉域網に閉じた構成

AWS

Glue 接続(VPCエンドポイント経由で S3 にアクセスするための接続) タイプ: JDBC JDBC URL: jdbc:mysql://dummy.com:1234/dummy # ダミー VPC ID: vpc-b******1 # 任意のVPC サブネット:subnet-1******b # 任意のサブネット セキュリティグループ: sg-0***…

Lake Formation のアクセス制御設定をクリアする手順

AWS

Lake Formation のアクセス制御設定をクリアする手順。 pyenv をインストールして、Python 3 をインストールする、 Amazon Linux 2 に pyenv をインストールする - ablog EC2 にIAMロールをアタッチする。 AWS CLI で対象リージョンを設定する。 $ aws confi…

STS の VPC エンドポイントポリシーのサンプル

AWS

Lambda in VPC から VPC エンドポイント経由で、STS にアクセスする際のVPCエンドポイントポリシーの例。AWSアカウントID: 123456789012 の Role id: A*******************O からの sts:AssumeRole のみを許可している。 STS の VPC エンドポイントポリシー…

CloudWatch Logs の VPC エンドポイントポリシーでアクセス可能なロググループを絞る

AWS

AWSマネジメントコンソールで、[エンドポイント] から CloudWatch Logs のエンドポイント(com.amazonaws.ap-northeast-1.logs)を選択して、[ポリシー]タブを選択、[ポリシーの編集]をクリックして保存する。以下は特定のロググループのみに制限する VPC En…

Lambda in VPC から VPC Endpoint 経由で CloudWatch Logs の API を実行する

AWS

Lambda in VPC から VPC Endpoint (Private Link) 経由で CloudWatch Logs の API を実行してみた。クロスアカウントで Lambda から CloudWatch Logs にアクセスする - ablog と同じものを in VPC でやってみた。ポイントは以下の通り。 STS と CloudWatch L…

クロスアカウントで Lambda から CloudWatch Logs にアクセスする

AWS

アカウントA(123456789012)の Lambda からアカウントB(234567890123)の CloudWatch Logs の API を実行してみた。 実行結果 戻り値 { "events": [ { "timestamp": 1543366128635, "message": "[940dea18-b6de-4851-a4b1-34cd0ed38541] BENCHMARK : Runni…

VPC エンドポイント以外からの読み書きを禁止するS3バケットポリシー

AWS

シンプルに VPC エンドポイント以外からの読み書きを禁止するS3バケットポリシー。 { "Version": "2012-10-17", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Effect": "Deny", "Principal": "*", "Action": [ "s3:PutObject", "s3:GetObject"…

ECS と EKS

AWS

コントロールプレーンとデータプレーン ECS と EKS はコントロールプレーン。 データプレーンは EC2 タイプと Fargate タイプがある。 https://pages.awscloud.com/rs/112-TZM-766/images/A3-02.pdf ECS EC2タイプ 20190731 Black Belt Online Seminar Amazo…

EKSを触ってみる

AWS

EKS を触ってみる EC2インスタンスを作成して、ssh でログインする。 IAMロールを作成してEC2にアタッチする。 eksctl をインストールする。 $ curl --silent --location "https://github.com/weaveworks/eksctl/releases/download/latest_release/eksctl_$(…

PySpark on Glue で S3 上のファイル名をリネームする

AWS

PySpark on Glue で S3 上のファイルをリネームしてみた。 import sys from awsglue.transforms import * from awsglue.utils import getResolvedOptions from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.j…

Amazon Linux 2 に pyenv をインストールする

AWS

パッケージをインストール $ sudo yum -y install git \ bzip2 \ bzip2-devel \ gcc \ git \ libffi-devel \ make \ openssl \ openssl-devel \ readline \ readline-devel \ sqlite \ sqlite-devel \ zlib-devel pyenv をインストール $ curl -L https://ra…

Amazon Linux 2 に pip をインストールする

AWS

$ sudo yum -y install python-pip 参考 Amazon Linux 2でpipをインストール - Qiita

AWS Data Wrangler を使ってみる

AWS

EC2 インスタンス(Amazon Linux 2)を作成して、IAMロールをアタッチする。 ssh でログインする。 pyenv をインストールして、Python 3 をインストールして有効化する。 Amazon Linux 2 に pyenv をインストールする - ablog pip をインストールする。 $ su…

AWS App Mesh とは

AWS

マイクロサービス間のやりとりにおいてビジネスロジックと関係ない汎用的機能をプロキシとして提供するのがサービスメッシュ。昔はライブラリとして提供している時代もあったが、汎用機能を変えたときに全アプリの再コンパイル・デプロイが不要、アプリと異…

AWS App Mesh Workshop をやってみた

AWS

AWS App Mesh Workshop :: Amazon App Mesh Workshop をやってみた。 EC2 インスタンスを作成する。 EC2 にIAMロールをアタッチする。 Install the required tools :: Amazon App Mesh Workshop からスタートする。 ディレクトリを作成する。 $ mkdir -p ~/e…

RDS のメンテナンス時の再起動とフェイルオーバーについて

AWS

RDSのメンテナンス時にDBが再起動されるか? されるときとされないときがある。 ハードウェアメンテナンス メンテナンスの時期と影響を受けるアベイラビリティーゾーンを含む、スケジュールされたハードウェアメンテナンスウィンドウについての E メール通知…

Redshift、Athena(Presto)、Glue(Spark SQL) のSQL仕様比較

AWS

Amazon Redshift 歴史 Amazon Redshift debuted in 2012 as the first cloud data warehouse, and remains the most popular one today. But Redshift wasn't developed in-house. Amazon invested $20 million in a company called ParAccel, and in return…

AWS AppMeshのサンプルを試してみた

AWS

aws-app-mesh-examples/examples at master · aws/aws-app-mesh-examples · GitHub を試してみた。 sudo yum -y install git docker sudo service docker start git clone https://github.com/awslabs/aws-app-mesh-examples.git export AWS_PROFILE="defaul…