かべぎわブログ

技術的なことについてかけたらいいな…

AWS

AnsibleでWindowsにAWS CLIをインストールする

今回はAnsibleでWindows環境にAWS CLIをインストールしてみたいと思います。 事前準備 AWS公式からAWS CLIのインストーラをダウンロードしてきます。 aws.amazon.com 以下の赤枠から32ビットまたは64ビットのものをダウンロードします。 Ansibleを実行する …

Auto Scalingでスケールインしたときの動作まとめ

AWS

概要 Auto Scalingを利用していて、スケールインしたときの動きについてまとめてみます。 AWSドキュメントによると、スケールイン時のうごきが以下の通り。 Auto Scaling は、選択したアベイラビリティーゾーンで、保護されていないどのインスタンスが最も古…

boto3でDynamoDBのテーブルの内容をscanしてすべて取得してみる

boto3を利用してDynamoDBのテーブルの内容をscanしてすべて取得してみたいと思います。 前提 以下のようなテーブルを用意しています。 これをすべてscanして取得します。 コード コードは以下の通りです。単純ですね! python 以下のような結果が返ってくる…

PackerでWindowsServerのAMIを作成する

PackerでWindowsServerのAMIをつくってみます。 これが考えられる最小構成だと思います。 これに肉付けすることでカスタムAMIを作成することができると思います。 環境 Packer v1.1.3 Packerが動いているサーバ : Amazon Linux 2 PackerがつくるWindowsServe…

Amazon Linux 2でPacker を実行したところ/usr/share/cracklib/pw_dict.pwd: Permission deniedのエラーがでる

事象 Amazon Linux 2 でPackerを実行しようとしたところ、以下のようなエラーが出てしまいました。 $ packer /usr/share/cracklib/pw_dict.pwd: Permission denied /usr/share/cracklib/pw_dict: Permission denied 原因 どうやら以下のPackerを実行してしま…

EC2 External InventoryでプライベートIPで取得したい

AnsibleのEC2 External InventoryでEC2インスタンスの情報を取得したとき、デフォルトのままだと以下のようにIPアドレスがパブリックIPで表示されるかと思います。 $ ./ec2.py { "_meta": { "ap-northeast-1a": [ "54.xxx.xxx.xxx", "13.yyy.yyy.yyy" ], "ta…

EC2 External Inventoryを利用してAnsibleのhostsを動的に管理する

Ansibleを利用した構成管理では、実行対象のホストをインベントリファイルと呼ばれるファイルに記載しておく必要があります。 以下のようなかんじ [local] localhosts [test_server] 192.140.1.1 192.140.1.2 [web_server] 192.140.2.1 これだと、AWSでAutoS…

AnsibleでS3からファイルをダウンロードする3つの方法

AnsibleでS3からファイルをダウンロードする方法を紹介します! ① s3_getを利用する AnsibleのCloudModuleであるs3_getを利用する方法です。 前提条件 ターゲットノードにS3へのアクセス許可が必要 実行コマンド $ ansible-playbook -i ansible_hosts s3_get…

S3上のテキストファイルをLambda(Python)で取得する

今回はS3の中に入っているテキストファイルの内容をLambda(Python)で取得してみたいと思います。 S3上には内閣府が公表している国民の休日のcsvファイルの文字コードをutf-8に変換したものを格納しています。 ↓これをsjijsからutf-8に変換 http://www8.cao.g…

LambdaのトリガにCloudWatchを設定した際にWe currently do not support adding policies for $LATEST. のエラーがでた場合の対処法

AWS

LambdaのトリガにCloudWatchを設定した際にWe currently do not support adding policies for $LATEST.のエラーがでた場合の対処法をご紹介します。 事象 バージョンが$LATESTのLambda関数のトリガにCloudWatch Eventsを追加しようとしたところ以下のような…

停止中のインスタンスのIAMロールを置換するとエラーになる

AWS

だいたいタイトルのとおりです。 停止中のEC2インスタンスのIAMロールを置換しようとするとエラーがでて、置換することができません。 以下のようなエラーがでます。 when calling the ReplaceIamInstanceProfileAssociation operation: The association iip…

AWSCLI describe-instances でよく使うコマンドまとめ【随時更新】

AWS

EC2インスタンスの一覧を見るAWS CLIのdescribe-instancesコマンドでよくつかっているコマンドを紹介します。 リージョン内のすべてのインスタンスの情報を取得 aws ec2 describe-instances 特定のインスタンスIDの情報を取得 aws ec2 describe-instances --…

S3で一定期間が経過したファイルをGlacierに格納する

AWS

S3上にアクセスログを定期的に書き込むようなシステムがあったとして、古いアクセスログも残しておこなければならないんだけどそんなに頻繁に利用するわけではないから安価に保存したいといった場合があります。 これらを実現するために S3バケットにライフ…

Ubuntu16.04で拡張ネットワーキングをONにする【AWS】

AWS

EC2で拡張ネットワーキングを有効化する設定方法をご紹介します。 そもそも拡張ネットワーキングとは? 設定方法 環境 ネットワークインターフェイスドライバーを確認する ixgbevfモジュールをインストールする 拡張ネットワーキングの設定を行う そもそも拡…

S3で一定期間が経過したファイルをライフサイクルで削除したい

AWS

S3上にアクセスログを定期的に書き込むようなシステムがあったとして、古いアクセスログを自動的に消す仕組みを作ってみたいと思います。 これらを実現するために S3バケットにライフサイクルルールを設定し、古いログを削除するよう設定します。 ライフサイ…

S3で有効期限付きの署名付きURLを作成する

AWS

S3で署名付きURLを利用してユーザごとに別々のURLを発行できるようにしてみたいと思います。 手順 手順 対象のディレクトリに対するアクセス権を無効にする 署名付きURLをつくる 対象のディレクトリに対するアクセス権を無効にする まずは署名付きURLを利用…

S3へのアクセスログを記録する

AWS

S3にはアクセスログを記録する機能があります。 その機能を有効にすると、別のS3バケットにログを記録することができます。 手順 手順 ログ格納用のバケットを作成する バケットのログ記録を有効にする アクセスログを確認してみる まとめ ログ格納用のバケ…

S3と独自ドメインでウェブサーバを構築する

AWS

S3にはストレージとして利用する以外にもうひとつの使い方があります。 それは静的コンテンツを公開するWebサーバとしての使い方です。 S3には静的ウェブホスティング機能というものがあり、この機能を有効にするとS3に保存したファイルをWebサイトとして公…

Amazon Linux で snmpwalk を利用する

Amazon Linuxでsnmpwalkを利用しようとしたときにCommand not foundって言われたので簡易メモ。 インストール sudo yum -y install net-snmp-utils 確認 snmpwalk -v 2c -c public localhost Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂…

Windows Server 2016 にSNMPサービスをインストールする(英語版)

zabbix 3.0でWindows Server 2016 SNMPサービスを入れる方法をご紹介します。 環境 以下のAWS環境標準のWindows Server 2016のAMIを利用。 Microsoft Windows Server 2016 Base - ami-4325fa25 Microsoft Windows 2016 Datacenter edition. [English] 手順 …

Windows Server 2016 で拡張ネットワーキングをONにする【AWS】

AWS上のWindows Server 2016で拡張ネットワーキングをONにして見たいと思います。 そもそも拡張ネットワーキングとは? 拡張ネットワーキングは、高い帯域幅、1 秒あたりのパケット (PPS) の高いパフォーマンス、常に低いインスタンス間レイテンシーを実現し…

AWSのキー管理を比較してみた【KMS/CloudHSM】

AWS

AWSで利用できるキー管理のそれぞれの利点についてまとめてみました。 KMS キーの保存場所/制御方法 AWSにキーが保存される AWSのサービスや、その環境で動作するアプリケーションでキーが利用できる キーの管理 定義ポリシーをAWSが実行してキーの仕様を制…

VGWのパス決定の優先順位まとめ

AWS

VGWの外のトラフィックのパスに複数のオプションがある場合は、以下のようにパスが特定されます。 パス決定の優先順位 1→2→3→4の順にパスが特定されます。 範囲の狭いIPアドレスプレフィックス 172.24.0.0/16より172.24.1.0/24より172.24.1.1が優先される 静…

AWS Well-Architected Framework 5つの柱まとめ

AWS

AWS Well-Architected Framework 5つの柱について自分なりにまとめてみました。 セキュリティ 信頼性 パフォーマンス効率 コストの最適化 運用上の優秀性 セキュリティ すべてのレイヤーをセキュリティで保護する。 リソースの変更やインスタンス内部へのロ…

EC2Schedulerをつかってみる

AWS

今回はEC2SchedulerというAWS公式が提供しているEC2インスタンスの起動停止をスケジューリングできるツールを利用してみたいと思います。 EC2Schedulerとは? EC2Schedulerをつかってみる CloudFormationテンプレートのダウンロード CloudFormationスタックを…

ALBでターゲットが全てunhealthyとなったときの動き

AWS

ALBでの動作 ALBでは対象のターゲットがヘルスチェックでunhealthyとなっても通信がターゲットに対して行われます。 そして、ALBでは正常なターゲットが含まれているAZがない場合、すべてのターゲットにリクエストをルーティングします。 おそらくフェイルオ…

Route53でTTLに0を設定したときの動作

AWS

Route53のTTLの設定は0から2147483647の間で設定することができます。 0を設定した場合は以下のような動作になります。 Route53でTTLに0を設定したときの動作 キャッシュせずに毎回、名前解決が実行されます。 そして、Route53からはTTL:0のレコードが返却さ…

旧バージョンのAmazonLinuxを利用する

AWS

マネジメントコンソール上からでは最新版Amazon Linuxしか選択することができません。 基本的には最新版の利用でかまいませんが、現行環境と環境を統一したいときなど、古いバージョンのAmazon Linuxを利用したいときがあるかと思います。 今回は最新ではな…

AWSCLIでS3全体を暗号化する

AWS

AWSCLIのaws s3 cpコマンドではオプションで--sseを指定することでAES256で暗号化することが可能です。 この際にコピー元とコピー先に同一のパスを指定することでパスを変えずに、オブジェクトを暗号化することが可能です。 具体的には以下のようにコマンド…

AWSCLIでS3のオブジェクトをサーバーサイドで暗号化するやりかたまとめ

AWS

サーバーサイドでS3のオブジェクトを暗号化して格納する方法をご紹介します。 (クライアントサイド暗号化はSDKなどで実装する必要があるのですこし敷居が高いです) SSE-S3で暗号化する SSE-S3はデフォルトの暗号化方式ですのでオプションで--sse AES256と指…