かべぎわブログ

ブログです

AWS

CloudFrontでS3に307リダイレクトされるときの下人と対処法

AWS

概要 CloudFrontでオリジンをS3にしているときに、設定は間違っていないのにCloudFrontのURLからS3のURLにリダイレクトされてしまって、Access Deiniedってなってんーーーーーーーーーー??????ってなるときの原因と対処法です。 原因 基本的に全部以下…

CloudFront経由でのみS3のコンテンツにアクセスさせる

AWS

概要 CloudFrontのオリジンアクセスアイデンティティを使用して、CloudFront経由でのみS3バケット内のコンテンツにアクセスさせてみます。 手順 CloudFrontのオリジンの設定で以下のように設定します。 RestrictBucketAccessをYesに、 Origin Access Identit…

AWSCLIでAWSアカウントを作成する

AWS

概要 AWSCLIを利用してAWSアカウントをコマンド一撃で作成してみます。 前提 AWS Organizationsのマスターアカウントである アカウント作成の権限がある コマンド これでいけます。 アカウント名とルートアカウントのメールアドレスを指定してあげるだけです…

ECS上でApacheを動かしてアクセスする

AWS

概要 ECS上でApacheを動かしてアクセスするだけのおはなしです。 具体的には以下のような構成です。 手順 ALBを作成する ECSに接続するLBを事前に作成しておきます。 リスナーをHTTPSで ターゲットグループはポートを8080にします。ヘルスチェックは/health…

ALBにACM/SSL証明書を関連付ける

AWS

概要 ALBにACM/SSL証明書を関連付けてみます。 画像のような感じです。 基本的なかたちですね。 ユーザからALBまではHTTPSで、ALBからEC2までの内部通信はHTTPです。 手順 1. ACMで証明書を取得する 以下ですこしやりました。 www.kabegiwablog.com 2. EC2イ…

お名前.comで取得したドメインの証明書をACMで取得する

AWS

概要 お名前.comで取得したドメインの証明書をACMで取得してみます。 手順 こんなかんじの手順です。 1. Route53 Hosted Zoneを作成 Route53でACMを取得するドメイン名でHosted Zoneを作成します。 作成されたときにできるNSレコードを控えておきます。 次の…

EKSクラスタを作成してpodをたてるまで

概要 EKSクラスタを作成してpodをつくるまでのメモです。 手順 手順です。 EKSクラスタの作成 こんなかんじ podはひとつだけ 作成に10分くらいかかる $ eksctl create cluster --name test --nodes 1 確認 クラスタができている。 $ eksctl get cluster NAME…

別のstateファイルの値を参照する

概要 リモートステートをつかって別のstateファイルの値を参照して見たいと思います。 これによって stateをまたいでいろいろできたりするのでstateの分離等もしやすくなるかもしれないしならないかもしれない。 EC2インスタンスを作成するstateと、それにEI…

tfstateファイルをS3バケットで管理する

概要 TerraformのtfstateファイルをS3バケットで管理してみます。 仕事でチームでやるときはだいたいこの設定でやると思う。 こんなかんじ こんなかんじで設定してあげます。 terraform { backend "s3" { bucket = "mybucket" key = "terraform.tfstate" reg…

Beanstalkで作成されたバケットができないときの対処法

AWS

概要 Elastic Beanstalkで作成されたS3バケットを削除しようとしたときに以下のようなエラーがでた。 botocore.exceptions.ClientError: An error occurred (AccessDenied) when calling the DeleteBucket operation: Access Denied 権限は足りてるはずなの…

TerraformでS3バケットを作成する(ランダムな数値列をサフィックスにして)

概要 Terraformでランダムな数値列をサフィックスにして、バケットの名前がかぶらないようにしつつ、バケットを作成してみます。 前提 terraformのバージョン等はこんなかんじ。 $ terraform --version Terraform v0.12.18 + provider.aws v2.43.0 + provide…

TerraformでAWSのアカウント番号を利用する

概要 TerraformでAWSアカウント番号(アカウントID)を取得してみます。 前提 Terraformのバージョンはこんなかんじ。 $ terraform --version Terraform v0.12.18 + provider.aws v2.43.0 こんなかんじ みんなだいすきcaller_identityです。 data "aws_caller_…

Terraformでアカウントエイリアスを利用する

概要 TerraformでAWSのアカウントエイリアスを利用してみます。 前提 前提はこう $ terraform --version Terraform v0.12.18 + provider.aws v2.43.0 こんなかんじ data "aws_iam_account_alias" "wawawa" {} output "account_alias" { value = "data.aws_ia…

AMIといっしょにスナップショットも削除してくれるPythonをかいた

概要 AMIといっしょにスナップショットも削除してくれるPythonをかいたので見てください。 これです これです。 github.com つかいかた helpです $ python ./delete_ami_snapshot.py --help usage: ./delete_ami_snapshot.py [-h] --image_id IMAGE_ID [--pr…

Terraformで複数ルールのセキュリティグループを作成する

概要 Terraformで複数のルールが記載されたセキュリティグループを作成してみます。 こんなかんじのやつ $ aws ec2 describe-security-groups --filters Name=group-id,Values=sg-XXXXXX --output text SECURITYGROUPS Managed by Terraform sg-XXXXXX wawaw…

Terraformで最新版のAmazonLinux2を取得する

概要 Terraformで最新版のAmazonLinux2をつかってEC2インスタンスを作成します。 こんなかんじ filterでしぼっています。 provider "aws" { region = "ap-northeast-1" } data "aws_ami" "recent_amazon_linux2" { most_recent = true owners = ["amazon"] f…

S3バケットの中のオブジェクトを数えてくれるPythonをかきました

概要 S3バケットの中にあるオブジェクトを数えてくれるPythonをかきました。 これです これです 値はCloudWatchメトリクスから持ってきています。 github.com つかいかた こうやってつかうのだ $ python get_object_count.py --help usage: get_object_count…

CloudWatch Logs InsightsでLambdaの実行時間の長いものを取得する

AWS

関数 CloudWatch Logs InsightsをつかってLambda関数の実行時間の長いものを取得してみたいと思います。 やってみる やってみる。 クエリ クエリはこんなかんじです。 filter @type = "REPORT" | fields @requestId, @billedDuration, @duration | sort by @…

DockerでCentOS8のAWSCLI環境を作成する

概要 DockerでCentOS8のイメージをつかってAWSCLIの動作環境を作ってみたいと思います。 Dockerfile こんなかんじ。 FROM centos:8 RUN dnf install -y wget python3 RUN wget https://bootstrap.pypa.io/get-pip.py RUN python3 get-pip.py RUN pip install…

S3バケットのサイズを取得してくれるPythonをかいた

概要 S3バケットのサイズ(オブジェクトのサイズの合計)を取得してくれます。 CloudWatchメトリクスの値をもとにしています。 コード これです。 github.com つかいかた usage: 'get_bucket_size.py [-h] --bucket BUCKET [--profile [PROFILE]] optional arg…

AWSマネジメントコンソールのヘッダーに色をつけるChrome/Firefox拡張

概要 AWSのマネジメントコンソールのヘッダーに色つけてくれるChrome/Firefox拡張です。 AWS console regions colorです。 リージョンがわかりやすくなります。 まねこんポチポチしてたらオレゴンにインスタンスつくってたわみたいなことがたぶんなくなりま…

オブジェクトをすべて削除してからS3バケットを削除してくれるPythonをかきました

概要 かんたんにS3バケットを削除してくれるPythonをかきました。 バケットを削除するときはすべてのオブジェクトを削除してからじゃないと削除できなくてめんどくさいなーってかんじだったのでかいた。 スクリプト これです。 github.com import boto3, arg…

S3上のアーカイブファイルの中身を展開して出力してくれるPythonを書きました

概要 S3上のアーカイブファイルの中身を展開して出力してくれるPythonを書きました。 github.com つかいかた $ python uncomp_s3.py --help usage: uncomp_s3.py [-h] [--profile [PROFILE]] path required arguments: path example s3://mybucket/archive.z…

AZIDを確認する方法

AWS

概要 AZIDを確認する方法まとめです。 マネジメントコンソール Resource Access Managerから確認することができます。 AWSCLI こんなかんじで確認できます。 aws ec2 describe-availability-zones { "AvailabilityZones": [ { "State": "available", "Messag…

motoでboto3のテストをする

AWS

概要 motoをつかってboto3のテストをしてみたいと思います。 そもそもmotoとは AWSサービスのモックをつくることができるやつです。 mock botoでmotoです(たぶん) motoでテストしてみる 実際にやってみます。 こんかいはS3にオブジェクトを置くスクリプトの…

PythonでIAMグループとかIAMロールをかんたんに削除してくれるPythonをかいた

概要 PythonでIAMグループとかIAMロールをかんたんに削除してくれるPythonをかきました。 これと IAMグループをかんたんに削除してくれるPythonをかいた - かべぎわブログ これ IAMロールをかんたんに削除してくれるPythonを書いた - かべぎわブログ りょう…

IAMグループをかんたんに削除してくれるPythonをかいた

概要 IAMグループをかんたんに削除してくれるPythonをかきました。 グループを削除する際にはポリシーをデタッチしたりユーザをリムーブしたりいろいろしなければいけないですがこのスクリプトはそれらを解決します。 いろいろデタッチしたりしてからグルー…

IAMロールをかんたんに削除してくれるPythonを書いた

概要 IAMロールをかんたんに削除してくれるPythonをかきました。 ロールを削除する際にはポリシーをデタッチしたりインスタンスプロファイルをリムーブしたりいろいろしなければいけないですがこのスクリプトはそれらを解決します。 いろいろデタッチしたり…

自分のインスタンスIDを取得する方法まとめ

AWS

自分のインスタンスIDを取得する方法をまとめてみた。 メタデータを取得する cloud-utilを実行する cloudinitのディレクトリを参照する メタデータを取得する メタデータをcurlなりwgetなりで取得する。 curl http://169.254.169.254/latest/meta-data/insta…

AWSCLIで任意のタグのついたすべてのサービスのリソースを取得する

AWS

概要 AWSCLIを利用して任意のタグのついているすべてのサービス(すべてとは言っていない)のリソースを取得してみたいと思います。 このコマンドを利用することによりタグの--filterオプションが存在しないサービスのリソースも取得することができます。 コマ…