かべぎわブログ

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

AWS

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

Amazon Linux2 に自作サービスを追加する

今回はAmazonLinux2のSystemdに自作サービスを追加してみようと思います。 手順 サービスとして追加するスクリプトの準備 ユニットファイルを作成する 各項目のちょっとした解説 サービスとして認識されたかどうか確認する サービスを有効化(enable)する サ…

Amazon Linux2 にepelリポジトリを追加する

概要 AmazonLinux2で利用できるamzn2-coreリポジトリではインストールできないものがでてきたのでリポジトリを追加する方法をメモ。 RHEL7用のリポジトリを追加しているだけ リポジトリを追加する手順 概要 リポジトリを追加する手順 すでに追加されているyu…

AWSCLIですべてのLambdaについているタグの一覧を表示するシェルスクリプト

概要 AWSCLIでLambdaのすべての関数についているタグの一覧を取得するシェルスクリプトを作成してみました。 aws lambda list-tagsはARNを指定することでその関数にアタッチされているタグを表示することができます。 ARN指定ですのですべての関数を見に行く…

Amazon Linux2からGitHubのリポジトリへPushする

Amazon Linux2からGitHub上のリポジトリへPushするやりかたです。 環境 Pushするまでの手順 事前準備 Gitをインストールする ローカルリポジトリを作成する git configでユーザ名とメールアドレスを設定する GitHubにssh接続するための鍵を作成する GitHubに…

Windowsインスタンスの停止時にログをS3に転送する

概要 Windowsインスタンスの停止時にS3にローカルのログファイルを転送する処理をご紹介します! 前提 Windows Server 2016 AWSCLIが利用可能な環境 シャットダウンスクリプトの設定手順 スタートメニューの「ファイル名を指定して実行」に「gpedit.msc」と…

最大公約数を求めるLambda(Python3)

なんかまったく需要がなさそうだけど気の迷いでつくりました。 概要 変数のxとyに整数を入力してあげると、printで結果を返してくれます。 以下のコードでは84と16の最大公約数を求めています。 かんたんな説明 最大公約数は以下のようにして求めることがで…