ablog

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

AWS Pricing Calculator は1ヶ月を約30.4日(730時間)で算出している

AWS

Q: 見積りと実際の請求額が異なるのはなぜですか? A: AWS Pricing Calculator では、標準の 1 か月あたりのタイムフレームをもとにサービスのコストが計算されます。Calculator では、1 か月は 730 時間 (365 日 * 24 時間 / 1 年につき 12 か月) あることが…

Aurora PostgreSQL で S3 のファイルのインポート/エクスポートする

AWS

Aurora PostgreSQL で S3 のファイルのインポート/エクスポートは aws_s3.table_import_from_s3 、aws_s3.query_export_to_s3 でできる。 参考 PostgreSQL と互換性がある Amazon Aurora にデータを移行する - Amazon Aurora データを Aurora PostgreSQL DB…

ECS の fargate タスクを AWS CLI で停止したメモ

AWS

$ aws ecs list-tasks --cluster fargate-test $ aws ecs describe-tasks --cluster fargate-test --tasks arn:aws:ecs:ap-northeast-1:123456789012:task/fargate-test/2db44988c2564237b85bebabc6ac37af $ curl 172.31.29.36 $ aws ecs stop-task --cluste…

IIS のアクセスログを Amazon Athena でクエリする

AWS

S3 バケットにデータを保存する。 s3://iis-log/w3c-log/ IIS のアクセスログのフィールドを確認する。 #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-…

EC2 で AWS Glue ETL ライブラリを使ってみる

AWS

ディレクトリ作成 $ cd /opt $ sudo mkdir apache-spark apache-maven Open JDK 1.8 をインストール $ sudo yum -y install java-1.8.0-openjdk-devel.x86_64 $ java -version Maven をインストール $ curl -O https://aws-glue-etl-artifacts.s3.amazonaws.…

iPhone で紙をスキャンして PDF にする

iPhone で紙をスキャンして PDF にする方法。 [ファイル] アプリを開く。 右上の […] - [書類をスキャン] を選択する。 書類をスキャンして保存する。 参考 iPadの「ファイル」アプリで書類をスキャンしてPDFで保存する方法 | iPad Wave

AWS Lambda から Amazon RDS Proxy に IAM 認証する際のIAMポリシー設定例

AWS

AWS Lambda から Amazon RDS Proxy に IAM 認証する際のIAMポリシー設定例。以下のような IAM ポリシーを Lambda 実行用の IAM ロールにアタッチする。 IAM ポリシー例 リージョン: ap-northeast-1 AWSアカウントID: 234567890123 RDS Proxy の arn: arn:aws…

AWS Resource Access Manager を利用するには Organizations で「すべての機能」の有効化が必要

AWS

Requirements Only the management account can enable sharing with AWS Organizations. The organization must be enabled for all features. For more information, see Enabling All Features in Your Organization in the AWS Organizations User Guide…

VPCピアリング接続のトラブルシューティング

AWS

VPC Reachability Analyzer を使うと便利。 【速報】VPC内の接続性テストとトラブルシューティングを簡単にする!VPC Reachability Analyzerが発表されました! #reinvent | DevelopersIO

Amazon RDS Proxy の制約

AWS

Your RDS Proxy must be in the same VPC as the database. The proxy can't be publicly accessible, although the database can be. Amazon RDS Proxy による接続の管理 - Amazon Relational Database Service

Aurora PostgreSQL に RDS Proxy 経由で IAM 認証で接続する

AWS

Aurora PostgreSQL に RDS Proxy 経由で IAM 認証で接続する手順。 前提 RDS Proxy で [IAM 認証] が [必須] になっていること。 AWS CLI がインストールされていること*1。 psql がインストールされていること*2。 $ sudo yum -y install postgresql 手順 …

Private Subnet の EC2 にセッションマネージャーで接続できない

AWS

IAM ロールも VPC エンドポイントも正しく設定しているのに、Private Subnet の EC2 にセッションマネージャーで接続できない場合の原因と解決策。 事象 Private Subnet の EC2 にセッションマネージャーで接続できない 。 以下の VPC エンドポイントは作成…

PySpark で Parquet から行数をカウントしたメモ

from pyspark.sql import SparkSession spark = SparkSession.builder. \ appName("ExamplePySparkSubmitTask"). \ config("spark.databricks.hive.metastore.glueCatalog.enabled", "true"). \ enableHiveSupport(). \ getOrCreate() print(spark.sparkCont…

KCL のサンプルコードの sequenceNumberOfPreviousRecord の初期値について

AWS

以下のサンプルコードの sequenceNumberOfPreviousRecord のループの1回目の初期値が何かという話だが、setSequenceNumberForOrdering はシャード内の順序を保証するメソッドで2回目からのループで1回目より後になればよいので、初期値は null でよさそう。 …

AWS Glue から別アカウントの Aurora PostgreSQL に接続する

AWS

AWS Glue で VPC Peering 経由で別アカウントの Aurora PostgreSQL に接続した手順をメモ。 前提 クロスアカウントで VPC Peering 接続されていること。 Aurora PostgreSQL にアタッチしているセキュリティグループのインバウンドでピアリング先 VPC からの …

NATゲートウェイの作成に失敗する

AWS

事象 NATゲートウェイを作成すると、Failed となり、状態メッセージに "Network vpc-****** has no Internet gateway attached" と表示される。 原因 VPC にインターネットゲートウェイがアタッチされていないため。 NAT ゲートウェイの作成に失敗する 問題 …

08. ネットワーク設定

VPC とサブネット # VPC/サブネット名 CIDR Availability Zone 1 design-cookbook-dev-vpc 172.16.0.0/16 ap-northeast-1 2 design-cookbook-public-subnet01 172.24.1.0/24 ap-northeast-1a 3 design-cookbook-public-subnet02 172.24.2.0/24 ap-northeast-…

AWS CLI で VPC エンドポイント経由でアクセスする

AWS

事象 STS に対して EC2 から AWS CLI や AWS SDK を使ったアプリケーションから VPC エンドポイント経由で API を実行すると応答がなくタイムアウトする。 原因 グローバルエンドポイント(sts.amazonaws.com)が使用されているため。 AWS CLI v1 はデフォル…

Python でタイムスタンプのタイムゾーンを変換する

Python でタイムスタンプのタイムゾーンを変換するコード例。例えば、CloudTrail のタイムゾーンを UTC から JST に変換するといった場合。以下のコードは AWS Lambda でも追加モジュール不要で実行可能。 コード import datetime import dateutil.parser de…

MariaDB Connector/J のロギング設定

As Per Lundberg already stated, logging is possible since version 1.5.0, see here.To activate it, I added &log=true to my database URL. However, this was not sufficient. As explained here, the following steps are also needed:First, we need…

MariaDB Connector/J で Aurora MySQL に接続すると INFORMATION_SCHEMA.REPLICA_HOST_STATUS からエンドポイントを取得する?

AWS

Amazon Aurora DB クラスターエンドポイントは、DNS レコードの更新を自動的に伝播しますが、処理は即座に行われるわけではありません。これにより、データベースで発生したイベントへの応答が遅れる可能性があり、イベントがアプリケーションによって処理さ…

macOS に tree コマンドをインストールする

macOS に tree コマンドをインストールする $ brew install tree 日本語ファイル名が文字化けするときは -N オプションをつける。 $ tree -N 参考 Macでtreeコマンド - Qiita tree コマンドで文字化け | qnowp

AWS を使って Web サイトを公開したりしてみる

AWS

ゆるく、AWS を使って Web サイトを公開したり、いろんなサービスを使ってみたりしていくメモ。 AWS アカウント作成後にすぐやるセキュリティ対策 - ablog 01. Amazon S3 でウェブサイトを公開する - ablog 02. Route 53 で独自ドメインを取得する - ablog 0…

07. AWS WAF で CloudFront ディストリビューションに web ACL 作成

マネジメントコンソールで WAF & Shield にアクセスして、[Create web ACL] をクリック。 Resource type: CloudFront distributions add AWS resources で CloudFront distribution を追加 [Add managed rule groups] をクリック。 [AWS managed rule groups…

Amazon DynamoDB の監視設計

AWS

アラート通知 ThrottledRequests メトリクス 説明 ThrottledRequests リソース (テーブルやインデックスなど) でプロビジョニングされたスループットの上限を超える、DynamoDB へのリクエスト。リクエスト内で任意のイベントがプロビジョンドスループットの…

作成済の Aurora クラスターの Performance Insights を有効化する

AWS

クラスター作成後に Performance Insights を有効化する場合は、[クラスターの変更] ではなく [インスタンスの変更] で有効化する。 Aurora MySQL では t2、t3 インスタンスクラスは Performance Insights はサポートされていない。 RDS MySQL から Aurora …

AWS Backup で Amazon DynamoDB のバックアップを定期的に取得する

AWS

AWS Backup で Amazon DynamoDB のバックアップを日次で取得してみた。 マネジメントコンソールで AWS Backup に移動してから以下の手順で作成した。 手順 バックアッププランを作成する バックアップウインドウ: バックアップウインドウをカスタマイズ バッ…

Spark UI で参照している S3 のパスを変更する

AWS

CloudFormation で Spark UI 用に EC2 インスタンスを作成後に、参照する S3 のパスを変更する手順。 /opt/spark/conf/spark-defaults.conf の spark.history.fs.logDirectory を編集する spark.eventLog.enabled true spark.history.fs.logDirectory s3a://…

CloudFormation で Spark UI 作成時にアタッチされる IAM ロール

AWS

Spark UI で Glue ジョブの結果を確認する手順 - ablog で、CloudFormation で Spark UI 用 EC2 を作成したときにアタッチされる IAM ロールに設定されている IAM ポリシーは以下の通り。 AWS 管理ポリシー CloudWatchAgentServerPolicy AmazonS3ReadOnlyAcc…

06. CloudFront でカスタムドメインのSSL証明書を設定する

CloudFront マネジメントコンソールで CloudFront にアクセスする。 [Create Distribution] をクリック、[Get Started] をクリック、以下の通り入力し、[Create Distribution] をクリック。 Origin Domain Name: portfolio.yoheia.com.s3.amazonaws.com Orig…