のぴぴのメモ

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

AWS

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認証)の構成を作成します。またキャッシュリフレッシュ、ソフトウェアップデー…

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をコピーする場合、鍵はどうなるのかということを確認するための検証手順です。 結論と…

AWS CLIでVPCエンドポイントを作成する時のポリシー(JSON)の指定方法

AWS

CLIでVPCエンドポイントを作成するときに、エンドポイントポリシーのJSONをどうやって渡せばいいのかを悩んだので、そのメモ書きです。 JSONの文字列をシェルの変数に投入してあげるという解決策です。 実行例 AWS_PROFILE=default POLICY=' { "Statement": …

EC2の有償OSの課金コード("billingProducts")

AWS

インスタンスのメタデータの"http://169.254.169.254/latest/dynamic/instance-identity/document/"の中のbillingProducts"がそれっぽいです。”curl http://169.254.169.254/latest/dynamic/instance-identity/document/ "で参照できます。

AWS CodeCommitでgit認証にAWS CLIの認証情報ヘルパーを使用する

AWS

CodeCommitに作成したgitレポジトリに接続するための認証に、AWS CLIを利用する方法です。gitの認証ヘルパーに"aws codecommit credential-helper"を利用するのがポイントです。

AWS CloudFormation 起動テンプレート+CloudFormationヘルパースクリプトを使ってFowardProxyインスタンスを複数作成する

AWS

CloudFormationでsquidのFowardProxyインスタンスをCloudFormationヘルパーを利用してインスタンス起動時にセットアップするようにしています。このインスタンスをAutoscalingは使用せず複数個作成したいと思い、EC2の起動テンプレートを組み合わせることで…

(AWS) UserDataとCloudFormationヘルパースクリプトの定義情報取得や実行契機の違い

AWS

UserDataはインスタンスのメタデータから情報を取得するため、実質VPC設定やIAMロールを考慮する必要がありません。一方CloudFormationヘルパースクリプトは、CloudFormationのパブリックにあるエンドポイントから取得するためInternet GatewayやCloudFormat…

Amazon RDSのIOPS&容量変更をCLIで実行するサンプル

RDS プロビジョンド IOPSで、IOPSを変更して、DBがAvailableになるまでWaitするシェル(+AWS CLI)のサンプルです。 AWS CLIで”aws rds modify-db-instance”で変更をします。 RDS&プロビジョンド IOPSで、IOPS設定によるBLOBファイルインサートのパフォーマン…

CloudTrailの「組織の証跡」でOrganizationsメンバアカウントに一括CloudTrailを設定する手順 (ロギング専用アカウント+KMS暗号化)

AWS

AWS Oraganizationsを利用したマルチアカウント構成で、Oraganizationsの機能で、配下のAWSアカウントに共通のCloudTrail設定を行うことができる「組織の証跡」があります。ドキュメントは以下になりますが、logging専用のAWSアカウントのS3バケットを利用し…

Lambdaの実行ロールのクレデンシャルを確認してみた

AWS

Lambdaの関数からAWS APIを実行する場合、Lambdaに付与した実行ロール(Execution role)の権限が利用されますが、この実行ロールのクレデンシャルをLambda上でどう取得しているかがパッとわからなかったので、実機で確認しました。 結論を述べると、Lambdaを…

Amazon SNSとiOSでモバイルプッシュを試してみる

Amazon SNSでiOS(iPhone)へのモバイルプッシュの検証を行うために準備した環境構築のメモです。

macOSにAWS CLIをセットアップする手順

MacにAWS CLIをセットアップした時のメモです。python3ベースです。macOSバージョンは、macOS High Sierra Version 10.13.16で、OS標準のpythonは、python2.7ですの。そのため、個別にpython3をインストールして、pipインストールして、aws cliをインストー…

AWS Secrets ManagerをVPC閉域空間で利用するメモ

AWS

ここではAWS Secrets ManagerをVPC閉塞空間で利用するためにVPC Endpointでアクセスできるよう設定し、かつリソースポリシーでシークレット情報を取得可能なVPCを制限する手順を説明します。

お名前.comドメイン取得し、Route53のDNS登録をしてLet's Encryptの無料の証明証を取得する手順の全体説明

検証で自己署名証明書(オレオレ証明書)でない証明書が必要だったのですが、お金がかけられなかったのでお名前.comで安いドメインを取得し、Let's Encryptで無料証明書を取得してAWS上で検証をしました。この記事はその時の手順をまとめたものです。

AmazonLinux2でLet's EncryptでCertbot改造せずに証明書を取得する手順

Let's Encryptから無料のサーバ証明書(ワイルドカード証明書)を取得し、(複数の)apacheサーバに証明書を組み込む手順を説明してます。Amazon Linux2でLet's EncryptをググるとCertbotを改造するケースが多いですが、この手順では引数を工夫することで改造な…

お名前.comでのドメイン取得とRoute 53との連携(お名前.comへのRoute 53DNS登録)

AWS

「お名前.com」で取得したドメインに任意のサブドメインを作成し、そのサブドメインの管理をAmazon Route53に委任する手順を説明しています。

RHEL7.1でENA(Elastic Network Adapter)を利用する手順

ENA(Elastic Network Adapter)は、シングルルート I/O 仮想化 (SR-IOV) を使用したAWSの拡張ネットワーキングです。RHEL7.1にはこのENAのドライバが含まれていないため、RHEL7.1環境でENAを利用する場合は個別にインストールする必要があります。この記事は…

RHUIとredhat社のインストールメディアのrpmパッケージファイルの中身に差異があるか確認してみた→結果差異はない

概要 RHUIとredhat社がカスタマーポータルで提供しているrpmパッケージの中身に差異があるのかどうかという話があったので、2つのファイルのdiffをとって確かめてみた。 →結果、差異はなかった。 確認方法 redhat社のカスタマーポータルRHEL7.5のDVDを取得(…

yumで特定のバージョンのrpmパッケージとそのパッケージの依存パッケージをダウンロードする

yumレポジトリに接続できない環境の場合、別の環境で"yumdownloader --resolve 対象パッケージ"で必要なrpmパッケージをダウンロードして持ち込むことでアップデートできます。またyumレポジトリの古いバージョンのパッケージを表示する場合は、”yum --showd…

EC2 A1(ARM base:AWS Graviton Processors)インスタンスを見てみる

AWS

今日Re:Inventで発表されたA1インスタンスのcpuinfoを見てみたら、”CPU part : 0xd08”と表示されて、"Cortex-A72 processor”の設計を利用していることがわかります。"Cortex-A72 processor”は、2015年にARMが発表した64bitのARMのCPU コア IP で、Android携…

ECRにdockerログインしてImageをpush/pullしたりリポジトリやイメージ一覧取得)する手順

dockerdでECRの認証情報を取得して、ECRリポジトリを作成し、docker イメージを/push/pullする手順

S3クロスリージョンレプリケーションのレプリ時間を計測してみた

AWS

東京リージョンとシンガポールリージョンで、S3のクロスリージョンレプリケーションの転送時間を測定。測定結果を見ると、転送時間はオブジェクトサイズに比例し、1GBのオブジェクトで20秒〜1分程度、10GBのオブジェクトで3〜4分、80GBのオブジェクトになる…

AWS CloudFormationのヘルパーのコマンド実行文字列にクロススタックリファレンスの値を埋め込む方法

AWS

自分用のメモです。 CloudFormationのヘルパーに埋め込む実行コマンドの文字列に、他のスタックで作成した値をクロススタックリファレンスで埋め込む方法が、なかなか分からなかったので。 方法 Fn::Joinの文字列結合とFn::ImportValueのクロススタックリフ…

AWS 各リージョンのデフォルトVPCをまとめて削除するpythonスクリプト(boto3利用)

AWS

AWS SDK for Python (Boto3)の練習用に、各リージョンのデフォルトVPCをまとめて削除するpythonツールを作りました。 github.com 前提環境 python 2.7 AWS SDK for Python(boto3) 利用方法 (1) boto3をインストールする インストールは下記ドキュメントを参…

VPC 閉域空間でCloudFormationのcfnヘルパーを使うときは、CFnのEndpointがいる話

AWS

インターネット接続していないVPC環境で、CloudFormationのcfnヘルパーを利用するばあいは、CloudFormationのVPC Endpoint(Interface型)が必要です。

VPC閉塞網からyumリポジトリにアクセスする(Amazon Linux & RHEL)

VPCからインターネットへの外の通信をさせないようにしている環境を想定した検証環境で、rpmパケケージ追加をしようとして、yumリポジトリとの通信ができずハマったのでまとめました。結論は、(1)Amazon Linuxは、「S3のVPC Endpointを設ける」、(2)RHELは、…

AWS 特定のAMIの各リージョンのImageID一覧を取得するシェル

特定の種類のAMIについて、各リージョンのImageIDを取得し、CSV形式で出力するシェルスクリプトです。 例えば、SQL Server Web Editionが含まれているLicense-includeなwindowsインスタンスの各リージョンのImageIDを知りたいとかいうときに利用します。