のぴぴのメモ

自分用のLinuxとかの技術メモ

AutoScaling Groupや起動テンプレートでEC2インスタンスの送信元/送信先チェックを変更する方法

EC2インスタンスの送信元/送信先チェック(source/destination checking)を、AutoScalingするインスタンスに設定しようとしても、Auto Scalingグループや起動テンプレートでは、送信元/送信先チェックの設定用のパラメータがないため設定できない。そのため、…

AWS CLIのAssumeRoleするプロファイル設定を使って、AssumeRoleのクレデンシャルを取得し環境変数に設定するシェル芸 ワンライナーを作ってみた

見やすいようにバックスラッシュで行を分けてますが、ワンライナーです。 terraformをローカルマシンで実行する時に、AWSプロバイダーの部分にローカルマシン固有のプロファイルとか埋め込みたくないけど、都度クレデンシャルを手で環境変数に設定するのは手…

terraformでSlackチャンネルを作成するための手順

概要 terraformからpablovarela/slackプロバイダーを利用し、slackのchannelを作成するための手順です。slackを外部のアプリケーションから操作するためには、slackでアプリケーション(App)を作成する必要があります。作成したAppに必要な権限を付与し、App…

Red Hat Developer ProgramのサブスクリプションはRed Hat DeveloperからRHELイメージをダウンロードすると自動的に付与される件

Red Hat Developer Programのに参加すると、無料のRed Hat Enterprise Linuxサブスクリプションを取得することができます。RHELのを取得できるのも嬉しいですが、redhatの ナレッジベースを参照できるようになるのが嬉しいです。 ちなみに、この無償プログラ…

Lambda(python)で特定のロググループ & ログストリームにログ出力するサンプルコード

Lambdaで特定のロググループ & ログストリームにログ出力するコードのサンプルです。 この例では、eventの内容をLogsに出力しています。コードは以下の記事の内容をベースに一部最適化してます。 Python (Boto3) @ Lambda で CloudWatch Logs の特定のログス…

macOS zshのプロンプトにgitブランチをカラー表示してみる

やりたいこと macOSのzshのプロンプトにgitのブランチを表示するようにします。 表示はカラー表示させます。今回の環境は以下の通りです。 ProductName: Mac OS X ProductVersion: 10.15.7 BuildVersion: 19H1323 gitセットアップに関する他の関連記事はこち…

AWS Organizationsのメンバーアカウントで予算設定するためには、先に管理アカウントでAWS Cost Explorerを有効化しないといけない件

困ったこと AWS Organizationsのメンバーアカウントで予算設定をしようとしたところ、先にpayer account(AWS Organizationsの管理アカウント)側でbudgetsを有効化するようにというメッセージが出てエラーになりました。 BUDGET_CONFIG_JSON=' { "BudgetName"…

gitのpull reqやpushで更新があったディレクトリを抽出しJOSNの配列にするシェル芸

やりたいこと system毎にディレクトリが分かれているterraformがあり(下記イメージ)、パイプラインで更新があったプロジェクトのディレクトリを判別してterraformを実行したい。 具体的には、git diffを使って差分があるディレクトリを抽出し、それをJOSNの…

GitHubでSAML SSO認証が必要なレポジトリ用にgitコマンドでのアクセスが必要になった時のメモ

とある経緯で新しい案件のレポジトリをgit coneしようとして認証エラーになった時の対処メモです。 発生したgitのエラーはこちらです。 git clone https://github.com/XXXXXX/XXXXXX.git Cloning into 'XXXXXX'... remote: The `XXXXXX' organization has en…

Windows ServerでDNSサーバをPowerShellでセットアップする手順

手順 DNSサーバのインストール DNSサーバと管理ツールのインストール Install-WindowsFeature DNS -IncludeManagementTools 有効化するためにWindowsを再起動 Restart-Computer -Force DNSサーバの管理ツールの実行 GUIでDNSサーバを管理する GUIは、DNS Man…

AWS BackupのOrganizations連携やクロスアカウントの機能をCLIで設定する方法

AWS

AWS Backupの権限分掌の設計を行うにあたって、それぞれの機能の設定をどのロールの人が実施できるのか明確化するために確認したものです。 確認結果としては、「バックアップポリシー」と「クロスアカウントモニタリング」はAWS Organizationsの機能、「ク…

Amazon ECS タスク定義の"タスクサイズのCPU"と”コンテナのCPUユニット”の違いを調べてみた

こちらはAWS Containers Advent Calendar 2020の13日目の記事です。 本記事は個人の意見であり、所属する組織の見解とは関係ありません。とてもこまか〜い話ですが、Amazon ECSのタスク定義設定ではCPUのリソース設定に関して以下の2つのパラメータがありま…

AWS環境のRHEL7/8にDNSキャッシュ(dnsmasq)を設定してみた

AWS環境にRHEL8とRHEL7にdnsmasqを利用したDNSキャッシュを設定した時の手順メモです。ネットワーク設定にDHCPを利用している環境の場合、DHCPとの整合性を合わせる部分が鍵となります。 RHEL8とRHEL7の違いですが、RHEL8はNetworkManagerがよろしくやってく…

アカウントに対してS3 block public accessをCLIで設定してみた

AWS

AWS CLIを利用してS3のパブリックアクセス ブロックを設定しようとしたら、設定対象によってCLIのコマンドが異なるという面倒な仕様だったのでメモを書いておきます。またAccess Pointは、Access Pointの作成時しかパブリックアクセス ブロックの設定ができ…

C言語/glibc getaddrinfo()を使ってホスト名からIPアドレスに変換するサンプル

getaddrinfo()による名前解決とIPアドレスに解決した情報の参照方法のサンプルコードを以下に記載します。またおまけで、getaddrinfo()を実行した時の挙動をざっくり説明します。

AWSで動くRHEL 7のレポジトリ名称がいつの間にか変わっていた件について(RHUI2->RHUI3)

RHEL7にdockerをインストールしようとして、二年前に確認した手順でセットアップしようとしたらうまくいかず、2時間ぐらい唸っていたら、いつの間にかRHUIがバージョンアップしてレポジトリ名称がごっそり変わっていたらしい。 access.redhat.com 変更例 以…

BINDのResolverを UserDataとAWS CLIの"ec2 run-instances"で作成する

検証などでVPCの中にDNSリゾルバーを個別に立てる場合に、bindのインストールや設定をUserDataに埋め込んでしまうことで、OSへのログインをせずにbindによるDNSリゾルバーを作る手順です。かつマネコンではなくAWS CLIで作っています。

Amazon S3のバケットのバージョニング設定とオブジェクトのバージョンの遷移を確認してみた

AWS

はじめに バケットのバージョニング設定により、オブジェクトのバージョンがどのように遷移するのかがいまいちわかっていなかったので、実際に動かして整理してみました。 まとめ バケットのバージョニング未設定の場合、オブジェクトのVersionIdはnullにな…

バージョニングが有効なS3バケットをAWS CLIで空にする手順(オブジェクト1000個以下)

AWS

S3のバケットを削除する場合、まずバケットを空にする必要があります。ここではAWS CLIを利用しバケットを空にし、その後にバケットを削除する手順を記載します。 具体的には list-object-versionsでオブジェクトをリストアップし、delete-objectでオブジェ…

AWS NitroインスタンスのLinuxでEBSボリュームを特定する手順

m5・c5・t3などのNitroタイプのインスタンスを利用している場合にOS上で認識しているボリュームがどのEBSボリュームかを、Volume IDベースで確認する手順です。 なおXenベースのインスタンス(m4以前、c5以前、t2以前など)は調べた限りでは、残念ながらVolume…

PostgreSQL11.6のクライアントの共有ライブラリ&開発ツール(32bit)をソースコードからビルドする手順(on RHEL8)

諸事情で、PostgreSQL11.7 クライアントとクライアントの開発環境をRHEL8上で、32bitで準備する必要があって手順を確認したものです。32bitでビルドするポイントはconfigureの時にオプションで"--build="i686-pc-linux-gnu" "CFLAGS=-m32" "CXXFLAGS=-m32" "…

AWS Security Hubのマルチアカウント一括設定スクリプトを使ってみる

AWS

AWSが提供しているAWS Security Hubの一括設定ツールを試したのでそのメモです。 なんでこのツールを利用したかと言うと、AWS Security Hubはリージョン単位のサービスのためリージョンごとの設定が必要で、かつマルチアカウント構成の場合アカウント毎の設…

PowerShell v7.0.0-rc.1 をWindowsServer 2019にセットアップする

手順 PowerShell v7.0.0-rc1をダウンロードする Invoke-WebRequest -Uri https://github.com/PowerShell/PowerShell/releases/download/v7.0.0-rc.1/PowerShell-7.0.0-rc.1-win-x64.msix -OutFile PowerShell-7.0.0-rc.1-win-x64.msix -UseBasicParsing Uri …

AWS CLIで最新のAMI IDを取得する

AWS

タイトルの通り、Amazon Linux2、RHEL8、Windows Server2019の最新AMIのAMI IDを取得するAWS-CLIのコマンドです。(元ネタは、EC2のユーザーガイド) AWS CLIの"ec2 describe-images"でAMI IDを確認しますが、その時に下記オプションを指定することで最新AMIの…

AWS Storage Gateway(VPC エンドポイントあり)環境をCLIで構築し運用する手順

AWS

AWS Storage GatewayのファイルゲートウェイをVPCエンドポイントを利用したVPC閉塞環境を、CLIで構築する手順です。この手順ではNFS接続、SMB(ゲスト接続)、SMB(ActiveDirectory認証)の構成を作成します。またキャッシュリフレッシュ、ソフトウェアップデー…

Windows Server 2019へのWindows Subsystem for Linuxのセットアップと利用Tips

Windows Subsystem for Linuxを使う必要があってPower Shellでセットアップした時のメモ。 (1)Enable-WindowsOptionalFeatureでSubsystem for Linuxを有効かして、(2)Invoke-WebRequest でUbuntuイメージをダウンロードして、(3)Add-AppxPackageでダウンロー…

S3のCopyObjectによるコピーの並列実行によるコピー時間短縮の検証

検証結果から導かれる、S3のCopyObjectによるバケット内でのオブジェクトコピーの並列実行のポイントは、以下の通りです。 CopyObjectを利用したバケット内でのオブジェクトコピーによりコピー処理を高速化可能 S3のプレフィックス単位のAPIスロットリング P…

IAMでサーバ証明書をインポートするCLI手順

AWS

ACM(AWS Certificate Manager)ではなく、IAMでサーバ証明書をインポートするときのCLI手順のメモです。 サーバ証明書のインポート PROFILE=default aws --profile ${PROFILE} iam upload-server-certificate \ --server-certificate-name hoge.com \ --certi…

KMS暗号化されてるEC2インスタンスのAMI取得し別リージョンにコピーする検証(AWS CLI)

AWS

KMS鍵(CMK)で暗号化したEBSを持つEC2インスタンスのAMIを取得し、別リージョンにコピーする場合、鍵がどうなるのかという確認をCLIで確認したエビデンスです。 結論としては、他リージョンにAMIをコピーする時にコピー先リージョンのCMKを指定することになり…

RDS KMS暗号化されてるDBインスタンスをスナップショットで別リージョンにコピーする検証(AWS CLI)

RDSをKMSの鍵で暗号化する場合、RDSインスタンスがあるそれぞれのリージョンKMS鍵(CMK:Customer Master Key)で暗号化しますが、DBスナップショットで、他リージョンにDBをコピーする場合、鍵はどうなるのかということを確認するための検証手順です。 結論と…