かべぎわブログ

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

AWS

AnsibleでIAMポリシーを作成する

概要 Ansibleを利用してIAMポリシーを作成してみたいと思います。 playbook playbookとそれでつかうJSONはこんなかんじ。 JSONに記載したポリシーのとおりにIAMポリシーが作成されます。 実行結果確認 ポリシーができている。 $ aws iam list-policies --que…

AWSのEC2のLinuxにssh接続するときのユーザ名まとめ

AWS

AWSのEC2のLinuxにssh接続するときのユーザ名をまとめてみた。 まとめ こんなかんじ。 ディストリビューション ユーザ名 Amazon Linux ec2-user CentOS centos Debian admin または root Fedora ec2-user または fedora RHEL ec2-user または root SUSE ec2-…

CloudFormationで作ったインスタンスを削除したときにEBSがそのまま残ることがある

AWS

CloudFormationで作成したインスタンスにアタッチされていたEBSが削除されずにそのまま残ってしまうことがあります。 その対処法です。 template これの15行目みたいなかんじでDeleteOnTermination: Trueを設定してあげる。 おわりに わすれがち。 クラウド…

EFSを作成してEC2のCentOSでマウントする(EFSマウントヘルパーつかわない)

AWS

EFSを作成して、EC2インスタンスのCentOSでマウントしてみたいと思います。 (EFSマウントヘルパーはつかわないバージョンです。) 手順 手順 EFS用のセキュリティグループをつくる EFSを作成する CentOSにNFSクライアントをインストールする おわりに EFS用の…

CloudFormationでAn error occurred (InsufficientCapabilitiesException)が出たときの対処法

AWS

AWSCLIでCloudFormationのスタックを作成またはアップデートしようとしたときにこんなかんじのエラーがでた。 An error occurred (InsufficientCapabilitiesException) when calling the CreateStack operation: Requires capabilities : [CAPABILITY_NAMED_…

CloudFormationでDependencyViolationが出たときの対処法

AWS

CloudFormationでもう使わないスタックを削除しようとしたらこんなかんじのエラーがでて、セキュリティグループが削除できなかった。 resource sg-XXXXXXXX has a dependent object (Service: AmazonEC2; Status Code: 400; DependencyViolation; Request ID…

CodePipelineでGitHub上のコードをS3にデプロイする

AWS

概要 CodePipelineを利用してGitHub上のコードをS3にデプロイしてみたいと思います。 やりたいことはだいたい以下のようなかんじ。 手順 こんなかんじでできます。 マネジメントコンソールのCodePipelineから「パイプラインの作成」を選択します。 適当にパ…

CloudFormationでIAMロールアタッチしたEC2インスタンスを作成する

AWS

概要 CloudFormationを利用してIAMロールをアタッチした状態のEC2インスタンスを構築してみたいと思います。 template CloudFormationのテンプレートはこんなかんじ。 ちょっとした説明 マネジメントコンソールをポチポチしているとなにも意識しませんが、EC…

Cannot delete entity, must detach all policies firstの対処法

AWS

CloudFormation Stackを削除しようと思ったらこんなかんじのエラーがでてスタックが削除されなくなった。(DELETE_FAILEDになった) のでその対処法です。 Cannot delete entity, must detach all policies first. (Service: AmazonIdentityManagement; Status…

Ansibleでgoofysをインストールする

概要 AnsibleでgoofysをインストールするPlaybookを書いた。 playbook こんなかんじ。 おわりに epel-releaseとfuse,golangを分けたのはなんかそうしないとうまくいかなかったんだよね。 Ansible実践ガイド 第2版 (impress top gear)作者: 北山晋吾,塚本正隆…

CentOS7にgoofysをインストールしてS3をマウントしてみる

概要 CentOS7にS3をマウントできるツールであるgoofysをインストールして、S3バケットをマウントしてみたいと思います。 インストール手順 epelリポジトリを追加する $ sudo yum install epel-release fuseをインストールする $ sudo yum install fuse goを…

CloudFormationでセキュリティグループとそれをアタッチしたインスタンスをつくる

AWS

こんなかんじでつくれます。 セキュリティグループの指定のところで!RefをつかってあげるとそのリソースID(sg-xxxxxxみたいなやつ)がわたされます。 徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書作者: ??部昭寛,宮?光平,菖蒲淳司,株式…

CloudFormationでセキュリティグループをつくる

AWS

こんなかんじでつくれる。 SecurityGroupIngressがインバウンドでSecurityGroupEgressがアウトバウンド 徹底攻略 AWS認定 ソリューションアーキテクト ? アソシエイト教科書作者: ??部昭寛,宮?光平,菖蒲淳司,株式会社ソキウス・ジャパン出版社/メーカー: イ…

AWSCLIとCloudtrailでインスタンスを停止した犯人をさがす

AWS

概要 AWSCLIでCloudtrailを操作してインスタンスを停止した犯人をコマンド一発でさがしだしてみたいとおもいます。 コマンド コマンドはこんなかんじ。 $ aws cloudtrail lookup-events --start-time 2019-01-23T17:00:02+0900 --end-time 2019-01-24T17:1 1…

AWSCLIでキーペアを作成する

AWS

概要 AWSCLIを利用してキーペアを作成してみます。 環境 Amazon Linux2 キーペアをつくれる権限のIAMロールがアタッチされている 手順 キーペアをつくれる権限のIAMロールがアタッチされているAmazonLinux2で以下のコマンドを実行します。 wawawa_keyの部分…

WSLのUbuntuにAWSCLIをインストールする

AWS

概要 Windows Subsystem for Linux上のUbuntuにAWSCLIをインストールしてみたいと思います。 手順 こんなかんじでやるとインストールできます。 pipをインストールする curlでpipをもってきて $ curl -O https://bootstrap.pypa.io/get-pip.py 実行する $ py…

AWSCLIでcloudtrailを利用してインスタンスになにがあったのかを調べる

AWS

概要 AWSCLIとcloudtrailを利用して特定のインスタンスになにがあったのかを調べてみたいと思います。 だれかが雑にインスタンスを停止してしまって誰が止めたんだ!!!!みたいな犯人探しのときにつかえます(遠い目) コマンド例 コマンドは以下のとおり。 …

AWSCLIでS3バケットを削除する

AWS

概要 AWSCLIをつかってS3バケット自体を削除してみようと思います。 削除する 以下のコマンドで削除することができます。 $ aws s3api delete-bucket --bucket wawawa-dst ちなみに バケットの中にオブジェクトが残っている場合 以下のようにエラーが出ます…

同じリージョンのS3同士を同期させる

AWS

概要 同じリージョンにあるS3バケットを同期させてみようと思います。 同期させる方法 AWSCLIをつかいます。 以下のようにすることでS3バケット2つを同期させることができます。 $ aws s3 sync s3://wawawa-src s3://wawawa-dst 実際にやってみる 実際にやっ…

複数のEC2インスタンスに一気にIAMロールをつけるシェルスクリプト

概要 複数のEC2インスタンスに一気にIAMロールを付ける必要があって、マネコンでポチポチするのめんどくさいなーと思ったのでつくった。 スクリプト つかいかた ./role_fukusuu.sh IAMロール名 インスタンスID インスタンスID... $ ./role_fukusuu.sh wawawa…

シェルスクリプトで複数インスタンスに一気にタグをつける

概要 シェルスクリプトとAWSCLIを利用して複数のインスタンスに一気にタグを付けてみたいと思います。 スクリプト こんなかんじでやってます。 肝心のAWSCLI実行部がJSONのなかに変数をしこむために地獄の様相を呈していますけれど仕方がなかった。 実行して…

AWSCLIの出力にjoinで文字列をくっつけて出力する

概要 AWSCLIの出力結果にjoin()をつかって任意の文字列をくっつけて出力してみたいと思います。 実際にやってみる インスタンスIDを出力してみると通常はこんな感じですが $ aws ec2 describe-instances --query 'Reservations[].Instances[].InstanceId' --…

AWSCLIの結果をソートする

AWS

概要 AWSCLIの出力結果をソートする2パターンをご紹介します。 sort_byでソートする 以下の例ではインスタンスの一覧からインスタンスIDとプライベートIPを表示して、それをインスタンスIDでソートしています。 --queryので指定する項目をsort_by()で囲って…

boto3のclientとresourceのちがい

AWS

概要 boto3におけるclientとresourceのちがいについて雑に調べたのでまとめる。 client 低レベルのサービスアクセスAPI 呼び出すたびにターゲットとなるリソースを明示的に指定する必要がある そのため抽象化するには不向きかも レスポンスがJSON形式 resour…

Lambda(Python)でAMIとそれに紐付いたスナップショットの世代管理をする

概要 Lambda(Python) を利用してAMIとそれに紐付いているスナップショットの世代管理をしてみようと思います。 スクリプト例 ちょっとした説明 タグにauto_backupと書いてあるAMIの世代管理をしてくれます。 上の方の変数generationに指定した数だけAMIを保…

Route53のホストゾーンを削除するときはレコードセットを全部削除しておく

AWS

概要 Route53でHosted Zoneを削除するときになんかエラーがでたのでそれの解決方法 こんなエラーがでた Before you can delete a hosted zone, you must first delete all resource record sets except the NS and SOA resource record sets for the zone ap…

Lambda(Python)でインスタンスの特定のタグの値がなんなのかを出力する

概要 Lambda(Python3)をつかってEC2インスタンスについているあるタグの値がなんなのかを出力してみます。 スクリプト tag_keyに出力したいタグのkeyを指定します。 実行結果 たとえば、こんなかんじでタグがついていたとします。 それをこのLambdaを実行す…

Lambda(Python)で特定のVPCの中のサブネットの一覧を出力する

概要 Lambda(Python)を利用して、特定のVPCの中のサブネットの一覧を出力してみたいと思います。 スクリプト例 Lambdaのスクリプト的にはこんなかんじ。 実行結果 { 'Subnets': [{ 'AvailabilityZone': 'ap-northeast-1c', 'AvailableIpAddressCount': 250, …

CloudWatchで日と曜日を指定するときはどちらかに?をつかう

AWS

わりと忘れがちなのでメモ。 概要 CloudWatchのスケジュールのcron式で日と曜日を指定するときに、ちゃんと設定しているはずなのに以下のようなメッセージがでてきたのでそれの回避方法です。 Parameter ScheduleExpression is not valid. 回避方法 こんなか…

複数のAWSマネジメントコンソールを利用するときのChromeの設定のすすめ

AWS

概要 AWSのマネジメントコンソールを複数アカウント/ユーザ分利用することがまれによくあると思います。 別のアカウントでマネジメントコンソールを立ち上げたときに以下のような画面が出てしまって、セッションが全部切り替わってしまって、あーーーーーー …