ablog

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

2019-01-01から1年間の記事一覧

pgbench でカスタムクエリを実行する

AWS

準備 pgbench(PostgreSQL)をインストールする。 $ sudo yum -y install postgresql $ sudo yum -y install postgresql-contrib pgbench でデータを登録する。 $ pgbench -i -s 10000 -U awsuser -h aurora-postgres107.cluster-************.ap-northeast-1.…

クロスアカウントS3バケット間コピー時にコピー元の CloudTrail に記録されるログ

AWS

クロスアカウントS3バケット間コピー時にコピー元AWSアカウントの CloudTrail にログに記録されるログを調べたメモ。コピー先アカウントの EC2 から AWS CLI(aws s3 cp) でオブジェクトをコピーしてコピー元アカウントの CloudTrail をダウンロードして jq …

AWS managed CMK はリージョンが異なると別の鍵

AWS

AWSサービスの AWS managed CMK はリージョンが異なると別の Customer Master Key になる。以下は DynamoDBの東京リージョンとバージニア北部リージョンのスクリーンショット、キーエイリアスは同じ aws/dynamodb だがキーIDは異なる。 東京リージョンの aws…

Amazon DynamoDB Accelerator (DAX) のアラームで他アカウントのSNSトピックに通知できるか

AWS

DAX のアラームで他アカウントのSNSトピックに通知できることを確認したメモ。 セットアップ手順 DAX $ cat <<EOF > dax-assume-role-policy-document.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dax.amazo</eof>…

Route53の特定HostedZoneしか変更できないIAMユーザーを作る

AWS

設定 IAMポリシー Route53HostedzoneAPolicy を作成する ポリシーはテスト用に適当に作成しています。 { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPublicHostedZonePermissions", "Effect": "Allow", "Action": [ "route53:ListHostedZones"…

Amazon DynamoDB Accelerator (DAX) のサンプル Java アプリを動かしてみる

AWS

まずは動かしてみる インストール・コンパイル手順 $ pwd /home/ec2-user $ mkdir trydax $ cd trydax $ sudo yum install -y java-devel $ wget http://sdk-for-java.amazonwebservices.com/latest/aws-java-sdk.zip $ unzip aws-java-sdk.zip $ wget http:…

Amazon DynamoDB Accelerator (DAX) のサンプル Java アプリを実行すると "Unsupported major.minor version 52.0" と怒られる

AWS

Java と DAX - Amazon DynamoDB のサンプルJavaアプリを実行したら、"Unsupported major.minor version 52.0" と怒られたので解決策をメモ。 事象 $ java TryDax Exception in thread "main" java.lang.UnsupportedClassVersionError: TryDax : Unsupported …

AWS Service Catalog の IAMポリシー AWSServiceCatalogEndUserFullAccess と ServiceCatalogEndUserAccess の違い

AWS

AWS Service Catalog の IAMポリシー AWSServiceCatalogEndUserFullAccess とServiceCatalogEndUserAccess の違い ドキュメント(日本語) AWSServiceCatalogEndUserFullAccess — エンドユーザーコンソールビューへのフルアクセス権を付与します。製品を起動…

Ubuntu に psql をインストールする

$ sudo apt-get install -y postgresql 参考 UbuntuでPostgreSQLをインストールからリモートアクセスまでの手順 - Qiita

Athena で CloudTrail から S3 イベントを集計する

AWS

クエリ select eventname, count(1) cnt from cloudtrail_logs where eventsource = 's3.amazonaws.com' group by eventname order by cnt desc 実行結果 eventname count ListObjects 263702 PutObject 200075 GetObject 134911 HeadObject 83034 UploadPar…

Amazon Redshift の監査ログの種類

AWS

デフォルトで Amazon Redshift の監査ログは設定したバケットに以下のパスで出力されるが、 AWSLogs/AccountID/ServiceName/Region/Year/Month/Day/ AccountID_ServiceName_Region_ClusterName_LogType_Timestamp.gzLogType は connectionlog、useractivityl…

S3 のアクセスログのオペレーションを集計する

AWS

ちょっとした量のS3 のアクセスログのオペレーションを集計する。 S3 のアクセスログを EC2 にダウンロードする。 $ aws s3 cp --recursive s3://s3-accesslog-az/ ./ オペレーションで集計する。 $ find . -type f -print0|xargs -0 -I{} perl -lane 'print…

アカウント毎にアクセス可能な S3 Prefix を制御する S3 バケットポリシー例

AWS

やりたいこと データレイクアカウントと連携相手の複数アカウントの間で1対多のクロスアカウントアクセス制御を行う。 連携相手のアカウントから特定S3バケットの特定 prefix 以下のみへの Put/Get/Delete を許可。 連携相手のアカウント毎に Put/Get/Delete…

AWS CLI で IAM Role の Unique ID を取得する

AWS

$ aws iam get-role --role-name EC2AdminRole { "Role": { "Description": "Allows EC2 instances to call AWS services on your behalf.", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect…

特定のVPC EndpointからのみPut/Get/Deleteを許可するS3バケットポリシー

AWS

特定のVPC EndpointからのみPut/Get/Deleteを許可するS3バケットポリシーの記述例。 { "Version": "2012-10-17", "Statement": [ { "Sid": "Access-to-specific-VPCE-only", "Effect": "Deny", "Principal": "*", "Action": [ "s3:PutObject", "s3:GetObject…

AWRレポートを一括出力する

set pages 0 spool awr_tmp.sql select 'define report_type=html' || chr(10) || 'define dbid=2144341034' || chr(10) || 'define inst_num=1' || chr(10) || 'define num_days=40' || chr(10) || 'define begin_snap=' || SNAP_ID || chr(10) || 'define …

Oracle Database 12.1 EE on EC2 をサクッと作る

AWS Marketplace: Oracle Database 12.1 Enterprise Edition - Oracle Enterprise Linux 7.5 でEC2インスタンスを作成する。 ssh で接続する。 $ ssh -i ~/mykey.pem clckwrk@ec2-*-***-***-**.ap-northeast-1.compute.amazonaws.com Oracle Database を起動…

RDS Oracle で DataPump のダンプファイルをS3にアップロードする

RDS Oracle で DataPump のダンプファイルをS3にアップロードするには rdsadmin.rdsadmin_s3_tasks.upload_to_s3 を使うとよい。 例 SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3( p_bucket_name => 'mys3bucket', p_prefix => '', p_s3_prefix => '', p…

AWRのリポジトリデータをまるっとエクスポートして他のDBにインポートする

AWRのリポジトリデータを Data Pump export file にエクスポートして他のデータベースにインポートする手順。 インポート ダンプファイルをEC2にアップロードする。 $ scp -i ~/mykey.pem awrdump.dmp clckwrk@ec2-*-***-***-**.ap-northeast-1.compute.amaz…

ThinkPad X280 でタッチパッドを無効化する

手順 ThinkPad をシャットダウンしてから電源オンにする。 ThinkPad ロゴが表示されたら、「 F1 」キーを連打して BIOS設定ユーティリティに入る。 「Config > Keyboard/Mouse」を選択する。 TrackPad/TouchPad を選択して、設定を有効から無効に切り替える…

DataPumpでメタデータ(DDL)のみエクスポートする

書式 $ expdp <username>/<password> directory=<directory object> content=metadata_only schemas=<schema name> dumpfile=<dump file name> LOGFILE=<log file name> 実行例 $ expdp system/manager directory=pump_dir content=metadata_only schemas=scott,hr dumpfile=ddl_scott_hr.dmp LOGFILE=exp_ddl_scott_hr.log 参考 h…</log></dump></schema></directory></password></username>

AWS Summit Tokyo 2019 で登壇した

2019/6/13に AWS Summit Tokyo 2019で「データレイク構築における成功の秘訣~マインドと進め方、設計ベストプラクティス~」というタイトルで登壇した。以下はストリーミング配信のスクリーンショットより。 スライドと動画 スライド 動画 アジェンダ デー…

海外出張備忘録

事前準備 アメリカの ESTA など 通常は申請から約3日間(72時間)以内に審査結果が出る*1。早めに申請して審査結果の確認も忘れずに。有効期限のチェックはESTA申請状況の確認。 Netflix や Youtube(Premium)、Kindle、 Safari books online などで iPad や …

Java アプリから S3 にアクセス時に必要な証明書がない場合に発生する例外

発生する例外 証明書ファイルが存在しない、もしくは存在するが中身が空の場合 java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty 証明書ファイルが存在する…

AWS SDK for Java v1.11 を使った Java サンプルプログラムを実行してみる

AWS

aws-doc-sdk-examples/java at master · awsdocs/aws-doc-sdk-examples · GitHub をビルドして、S3 バケットをリスト表示する Java サンプルプログラムを動かしてみた。 インストール git をインストールする。 $ sudo yum -y install git OpenJDK をインス…

Linux で Java のバージョンを切り替える

手順 java のバージョンを切り替える $ sudo update-alternatives --config java There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- * 1 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java + 2…

AWS CLI で 1TB の S3 オブジェクトをリスト表示する

AWS

準備 EC2インスタンス作成 インスタンスタイプ: m5.4xlarge AMI: Amazon Linux 2 AMI 2.0.20190508 x86_64 HVM gp2 6000GiBのEBSをアタッチ ボリュームタイプ: io1 IOPS: 64000 暗号化なし S3バケット作成 バケット名: az-20190609 オブジェクトレベルのログ…

JREに同梱されている証明書を確認する

Javaのバージョンを確認 $ JAVA_HOME/bin/java -version openjdk version "1.8.0_191" OpenJDK Runtime Environment (build 1.8.0_191-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode) 証明書をリスト表示する $ keytool -list -keystore $JA…

Amazon Linux に node.js をインストールする

AWS

# curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - # yum install -y nodejs $ npm install aws-sdk 参考 AmazonLinuxへのシステムワイドなNode.jsインストール方法(yum編) - Qiita GitHub - nodesource/distributions: NodeSour…

DynamoDB->DynamoDB Streams->Lambda->Amazon Kinesis Firehose->Aurora に連携する

AWS

Amazon DynamoDB からのデータストリームを AWS Lambda と Amazon Kinesis Firehose を活用して Amazon Aurora に格納する | Amazon Web Services ブログ を試してみた。 必要なファイルをダウンロードする。 $ git clone https://github.com/awslabs/dynamo…