ablog

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

2021-06-01から1ヶ月間の記事一覧

CloudFront で1つのディストリビューションで複数オリジンのコンテンツを配信する方法

AWS

はい、単一の CloudFront ウェブディストリビューションを設定して、複数のオリジンからさまざまなタイプのリクエストを提供できます。たとえば、Amazon Simple Storage Service (Amazon S3) バケットとロードバランサーの動的コンテンツから静的コンテンツ…

ECS Faragete でタスク最小数=必要数=1 & Multi-AZ 構成

AWS

ElastiCache(Redis)クラスター

AWS

クラスターに後からシャードやレプリカの追加可能 AWS Black Belt Online Seminar 2017 Amazon ElastiCache from Amazon Web Services Japan Redis Cluster は Redis 3.0 で実装されました。Redis Cluster はマルチマスター構成をとり、データは複数のRedis…

ElastiCache(Redis)の認証

AWS

ElastiCache(Redis)の認証には以下の3種類がある 認証なし 設定: アクセスコントロールオプション: アクセスコントロールなし 認証あり 設定: アクセスコントロールオプション: Redis AUTH デフォルトユーザー ユーザーはなく、認証があるだけ 認証に成功す…

ElastiCache(Redis) の接続エンドポイントを調べる

AWS

クラスターモード無効の場合 プライマリエンドポイント リーダーエンドポイント クラスターモード有効の場合 設定エンドポイント 参考 接続エンドポイントの検索 - Redis 用 Amazon ElastiCache

Amazon Linux 2 に Redisクライアントをインストールする

AWS

インストール $ sudo amazon-linux-extras install epel -y $ sudo yum install -y gcc jemalloc-devel openssl-devel tcl tcl-devel $ sudo wget http://download.redis.io/redis-stable.tar.gz $ sudo tar xvzf redis-stable.tar.gz $ cd redis-stable $ s…

Amazon Linux 2 から ElastiCache(Redis) に接続する

AWS

ステップ 2: クラスターの作成 - Redis 用 Amazon ElastiCache ステップ 4: クラスターのノードConnect する - Redis 用 Amazon ElastiCache Redis 用 ElastiCache転送時の暗号化 (TLS) - Redis 用 Amazon ElastiCache ロールベースのアクセスコントロール (…

S3 アクセスポイント経由で S3 にアップロードしてみる

AWS

AWS CLI は v1 でも v2 でも S3 アクセスポイントを使えることを確認した。 AWS CLI v1 $ /usr/bin/aws --version aws-cli/1.18.147 Python/2.7.18 Linux/4.14.232-176.381.amzn2.x86_64 botocore/1.18.6 $ aws s3 cp test.txt s3://arn:aws:s3:ap-northeast…

Amazon Linux 2 に AWS CLI v2 をインストールする

AWS

インストール インストールする $ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" $ unzip awscliv2.zip $ sudo ./aws/install バージョンを確認する $ /usr/local/bin/aws --version aws-cli/2.2.14 Python/3.8.8 Lin…

CloudFront ディストリビューションのオリジンとして S3 REST API エンドポイント(OAI でアクセス許可)を使用すると 403 Access Denied と怒られる

事象 CloudFront ディストリビューションのオリジンとして S3 REST API エンドポイントを使用している(OAIでアクセス許可) 403 Access Denied エラーが発生する 原因 ちゃんと調べてない 解決策 元々、「アクセスが Referer ヘッダーで制限されたオリジン…

04. CloudFront 経由で Amazon S3 のコンテンツを公開する(OAIバージョン)

「匿名 (パブリック) アクセスを許可して、ウェブサイトのエンドポイントをオリジンとして使用する」方式から「OAI によってアクセスが制限されているオリジンとして REST API エンドポイントを使用する」方式に変更した。理由は Origin Access Identity(OAI…

Step Functions から Glue Spark ジョブに引数を渡す

AWS

Glue PySpark でダブルクオートなしタブ区切りで CSV に出力する - ablog で Step Functions からパラメータを渡すパティーン。 Step Functions のステートマシン { "Comment": "This is your state machine", "StartAt": "Glue StartJobRun", "States": { "…

Glue PySpark でダブルクオートなしタブ区切りで CSV に出力する

AWS

Glue で PySpark でダブルクオートなしタブ区切りで CSV に出力したメモ。 書き方 glueContext.write_dynamic_frame の format_options で以下を指定する "quoteChar": -1 でクオートなし "separator": "\t" でタブ区切り 例 datasink2 = glueContext.write_…

S3 Access Points のメリット

AWS

アクセスポイント作成を開始するにあたって追加料金は発生しません。 Amazon S3 Access Points - アマゾン ウェブ サービス S3 Access Points を利用するタイミング S3 Access Points によって、お使いのアプリケーションセットから S3 上の共有データセット…

BOM 付き UTF8 の CSV から BOM を削除する

BOM を削除して、CRLF を LF に変換する例 $ nkf -Lu --oc=UTF-8 utf8_bom_crlf.csv > utf8_lf.csv 参考 【メモ】コマンドでのBOMの追加・削除・確認 - Qiita 文字コード/改行コード変換コマンド nkf メモ - Qiita 【 nkf 】コマンド――文字コードと改行コー…

Amazon Linux 2 に PukiWiki をたてる

EC2 インスタンス(Amazon Linux 2)を作成すする Apache インストールする $ sudo yum -y install httpd 起動する $ sudo systemctl enable httpd.service 自動起動設定を有効化する $ sudo systemctl start httpd.service PHP PHP をインストールする $ su…

ElastiCache(Redis) の障害時動作

AWS

There are a number of instances where ElastiCache for Redis may need to replace a primary node; these include certain types of planned maintenance and the unlikely event of a primary node or Availability Zone failure.This replacement resul…

Docker コンテナで AWS CLI を実行する

AWS

$ docker pull amazon/aws-cli $ docker run --rm -ti -v ~/.aws:/root/.aws amazon/aws-cli s3 ls 参考 Docker Hub

Step Functions から Fargate タスクを実行する

AWS

{ "Comment": "An example of the Amazon States Language for notification on an AWS Fargate task completion", "StartAt": "Run Fargate Task", "TimeoutSeconds": 3600, "States": { "Run Fargate Task": { "Type": "Task", "Resource": "arn:aws:state…

AWS CLI から ECS の Fargate タスクを実行する

AWS

AWS CLI からECS の Fargate タスクを実行したメモ。 クラスターを作成する $ aws ecs create-cluster --cluster-name fargate-batch-task タスクを実行する subnet は複数選択できる $ aws ecs run-task \ --cluster fargate-batch-task \ --task-definitio…

Amazon Linux 2 で Docker を動かす

AWS

Amazon Linux 2 でとりま、Docker を動かす。 Docker をインストールする Amazon Linux 2 に docker をインストールする - ablog 実行してみる # docker pull bash # docker run -it bash:4.4 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS …

Docker コンテナから PostgreSQL に接続してみる

# curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose # chmod +x /usr/local/bin/docker-compose docker-compose.yml version: "2" services: postgres: image…

postgresql12-devel をインストールしていても psycopg2 をインストールしようとすると "pg_config executable not found" と怒られる

事象 Amazon Linux 2 に psycopg2 をインストールしようとすると "Error: pg_config executable not found." というエラーが発生する。 通常、postgresql-devel パッケージをインストールすると解決するが、PostgreSQL 12 ではインストール(yum install pos…

Amazon Linux 2 に postgresql12-devel をインストールしようとするとエラーになる

事象 $ yum install postgresql12-devel (中略) Error: Package: postgresql12-devel-12.3-1PGDG.rhel7.x86_64 (pgdg12) Requires: llvm-toolset-7-clang >= 4.0.1 Error: Package: postgresql12-devel-12.3-1PGDG.rhel7.x86_64 (pgdg12) Requires: llvm5.0-…

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

Yum リポジトリをインストール $ sudo rpm -ivh --nodeps https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm pgdg-redhat-all.repo の $releasever を 7 に置換 $ cd /etc/yum.repos.d $ sudo per…

PySpark でタイムスタンプを UTC から JST に変換する

PySpark でタイムスタンプを UTC から JST に変換する例。 # 文字列をタイムスタンプ型に変換 df = df.withColumn("timestamp", col("timestamp").cast("Timestamp")) # UTC から JST に変換 df = df.withColumn("timestamp", from_utc_timestamp(col("times…

Glue PySpark で CSV 出力時に全カラムをダブルクオートで囲む

Glue PySpark で CSV 出力時に全カラムをダブルクオートで囲みたいときは DataDrame で write するときに quoteAll=True を指定してやればよい。 outputDf = newDf.repartition(1) s3OutputPath ="s3://dl-sfdc-dm/test/newline_test" outputDf.write.mode('…

Glue PySpark で CSV のカラム内の改行コードを置換する

Glue PySpark で CSV のカラム内の改行コードを置換する例。Spark では正規表現は Java の記法になる。 newDf = df.withColumn("col2", regexp_replace(col("col2"), "\\n|\\r", " ")) サンプルコード全量 import sys from awsglue.transforms import * from…

PySpark は Java の正規表現記法を使う

PySpark では Java の正規表現を使う Regex in pyspark internally uses java regex.One of the common issue with regex is escaping backslash as it uses java regex and we will pass raw python string to spark.sql we can see it with a sample examp…

カズ池田鬼十則

出された酒は乾かせ 酒が無くても立てこもるな