BioErrorLog Tech Blog

試行錯誤の記録

AWS

AWS CLIで利用可能な全サービス名を取得する

AWS CLIでAPIが提供されているAWSサービス名(サブコマンド名)を全て取得する方法の備忘録です。 はじめに AWS CLIで利用可能な全サービス名を取得する やり方 実行例 おわりに 参考 はじめに aws ec2やaws s3のように、aws XXXのXXX部分に当たるサービス名の…

AWS CLIのhelp結果がgrepできない問題の対処法

aws help結果をgrepしようとしても上手くできない問題の対処法です。 はじめに AWS CLIのhelp結果がgrepできない問題 原因 対処法 実行例 おわりに 参考 はじめに aws help | grep 'XXX'のように、aws help結果をgrepやsedしようとすると、想定通りに動作し…

AWS CLIでDEBUGレベルのログを出力する

AWS CLIでDEBUGレベルのログを出力する方法の備忘録です。 はじめに AWS CLIでDEBUGレベルのログを出力する やり方 実行例 おわりに 参考 はじめに AWS CLIをDEBUGモードで実行したくなったので、やり方の備忘録メモを残します。 The English translation of…

Terraform backendの設定を動的に行う

Terraform stateファイルを格納するバックエンドの情報を動的に設定する方法の備忘録です。 はじめに Terraform backendの設定を動的に行う方法 おわりに 参考 はじめに Terraformのstateファイルを管理するためのバックエンド(S3/DynamoDBなど)の設定を、Te…

Amazon ECSの正式名称の変遷 | Amazon EC2 Container Service -> Amazon Elastic Container Service

Amazon ECSの正式名称はAmazon Elastic Container Service? それともAmazon EC2 Container Service? いつ変わったの? はじめに Amazon ECSの正式名称 名前の変遷 根拠 おわりに 参考 はじめに ECSに関する古い記事を読んでいると、その正式名称を"Amazon …

CloudShellをVPCで起動する | AWS

AWS CloudShellのVPC起動をやってみます。 はじめに CloudShellをVPCで起動する やってみる 制約 おわりに 参考 はじめに 先日 (2024/06/26)、CloudShellがVPC内で起動できるようになる機能がGAされました。 AWS CloudShell now supports Amazon Virtual Pri…

Private SubnetのCloud9からAWS APIが叩けない問題 | AWS managed temporary credentials

AWS managed temporary credentialsを使うと、Private Subnetに構築したCloud9からAWS APIが叩けない、ということの備忘録です。 はじめに Private SubnetのCloud9からAWS APIが叩けない問題 起きた現象 なぜAWS APIが叩けないのか 対処法 おわりに 参考 は…

Private SubnetにCloud9を構築する | AWS

AWS Cloud9をPrivate Subnetで作成する方法を整理します。 はじめに 前提: Private SubnetでのCloud9の仕組み Private SubnetでCloud9を構築する Internet Gateway / NATありの場合 Internet Gateway / NATなしの閉域Private Subnetの場合 おわりに 参考 は…

TerraformでAWSリージョンを取得する

TerraformでAWSリージョンを取得する方法の備忘録です。 はじめに TerraformでAWSリージョンを取得する やり方 おまけ: Terraformソースコードを読む おわりに 参考 はじめに TerraformでAWSリソースを書いていると、ARNの指定などでアカウントidやリージョ…

Terraform backend(S3/DynamoDB)をCloudFormationでデプロイする

Terraformのstateを格納するbackend(S3/DynamoDB)を構築する、CloudFormationテンプレートの備忘録です。 はじめに Terraform backendを構築するCloudFormationテンプレート おわりに 参考 はじめに Terraformのstateを格納するbackend自身をどのように構築…

Parquetファイルのダミーデータを生成する | Python

Pythonでparquetファイルのダミーデータを生成する方法の備忘録です。 はじめに Parquetファイルのダミーデータを生成する 補足:S3に配置する おわりに 参考 はじめに ちょっとした検証のために、ダミーデータのparquetファイルを用意する機会がありました…

GitHubのSecret scanningを有効化してアラート動作を実際に確認してみる

GitHubのSecret scanningを有効化し、実際にsecretsをpushしてみてアラート動作を確認します。 はじめに GitHubのSecret scanningアラートの動作を確認する GitHubのSecret scanningを有効化する Secretキーをレポジトリにpushしてみる おわりに 参考 はじめ…

リソース名に"リソース種名"を含めるべきか | AWS命名規則

含めるべきではない、と感じているので考えを整理します。 はじめに リソース名に"リソース種名"を含めるべきか デメリット リソース名実装ロジックの複雑性が増す リソース名の文字数上限を圧迫する リソース種名の略語の決定に時間と労力を消費する メリッ…

SageMakerでlocal training jobが実行できない時の対処法 | Unable to locate credentials

Unable to locate credentials のエラーで、SageMaker instanceのlocal training jobが実行できないときの対処法をまとめます。 はじめに SageMakerでlocal training jobが実行できない時の対処法 事象 原因 対処法 おわりに 参考 はじめに SageMakerでは、S…

Terraform module設計時に考慮すべき3つの観点

Terraform moduleスコープ設計時に役立つ3つの観点をまとめます。 はじめに Terraform module設計の考え方 Moduleスコープ設計の3つの観点 Encapsulation / カプセル化 Privileges / 特権性 Volatility /変動性 Module設計例 Network module Web module Ap…

boto3とbotoの違い | AWS SDK for Pythonの歴史を調べる

boto3とbotoの違いや、そもそもの"boto"の由来など、AWS SDK for Pythonの歴史を調べてまとめます。 はじめに AWS SDK for Pythonの歴史 boto3とbotoの違い boto2はどこに行ったのか "boto"の由来 おわりに 参考 はじめに AWS SDK for Pythonとしてboto3をい…

RustのAWS LambdaをTerraformで実装する

Rustで書いたAWS LambdaをTerraformでデプロイする方法の備忘録です。 はじめに RustのAWS LambdaをTerraformで実装する 作ったもの Terraformの実装 Lambda用Rustパッケージの実装 1. cargo-lambdaのインストール 2. 新規Lambdaパッケージを生成 3. Rustコ…

AWSデータ分析基盤の良質な学習資料をまとめる

データ基盤領域について、AWS公式から出ている良質な学習資料/参考資料をまとめます。 はじめに AWSデータ分析基盤の学習資料まとめ AWS Well-Architected Framework - Data Analytics Lens AWS Whitepapers - Analytics & Big Data AWS Reference Architect…

TerraformでAWSアカウントIDを取得する

Terraformで現在のAWSアカウントIDを取得する方法の備忘録です。 はじめに TerraformでAWSアカウントIDを取得する やり方 おまけ: Terraformソースコードを読む おわりに 参考< はじめに Terraformを書いているとき、arnの指定等でAWSアカウントIDを取得&設…

エラー対処: YAML_FILE_ERROR Message: Expected Commands[0] to be of string type | CodeBuild

CodeBuildにおける下記エラーの原因と対処法を整理します。 YAML_FILE_ERROR Message: Expected Commands[0] to be of string type: found subkeys instead at line 6, value of the key tag on line 5 might be empty はじめに 原因は"コロン+スペース" 解…

!FindInMapを!Subの中で使う | CloudFormation

AWS CloudFormationで!FindInMapを!Sub内で使うやり方をまとめます。 はじめに !FindInMapを!Subの中で使う おわりに 参考 はじめに CloudFormationの!Subは値を代入/置換 ("substitute")できる関数、!FindInMapはMappingsから値を取得できる関数です。 (!Su…

Athena経由でpandas DataFrameを作成する

Amazon Athena経由でpandas DataFrameを作成するやり方をまとめます。 はじめに awswrangler (AWS SDK for pandas)とは Athena経由でpandas DataFrameを作成する おわりに 参考 はじめに こんにちは、@bioerrorlogです。 Amazon Athenaクエリ経由でpandas Da…

boto3でエラーハンドリングする方法をまとめる | AWS SDK for Python

boto3でエラーハンドリングする方法を整理します。 はじめに boto3でエラーハンドリングする client.exceptions botocore.exceptions コード例 おわりに 参考 はじめに boto3で発生するエラーをcatchしようとしたときに、少しハマったことがありました。 例…

AWS Config advanced queyのスキーマ定義の記載場所と使い方をまとめる

AWS Config advanced queyで指定できるスキーマ定義 (カラム名/propertiesの一覧) がある場所と、使い方をまとめます。 はじめに AWS Config advanced queyのスキーマ定義はどこにあるのか 場所 使用例 おわりに 参考 はじめに こんにちは、@bioerrorlogです…

boto3 clientのendpoint URLを確認する | AWS SDK for Python

作成済みboto3 clientのendpoint URLを確認する方法をまとめます。 はじめに 環境 boto3 clientのendpoint URLを確認する client.meta.endpoint_url client._endpoint.host おわりに 参考 はじめに boto3クライアントの宣言時には、endpoint URLを独自のURL…

Fargateでエフェメラルストレージを拡張する

FargateのエフェメラルストレージをAWS CLIを用いて拡張する方法をまとめます。 はじめに 前提条件 Fargateでエフェメラルストレージを拡張する Task Definition作成時にエフェメラルストレージを指定する Run Task時にエフェメラルストレージを指定する お…

Lambdaコンソールでコードが読めない時の対処法 | too large to enable inline code editing

The deployment package of your Lambda function XXX is too large to enable inline code editing. However, you can still invoke your function. Lambdaコンソールにて上記のエラーが出てコードが読めない時に、コードを取得する方法をメモします。 はじ…

DeletionPolicyの変更が反映されないときの対処法 | CDK/CloudFormation

CDKやCloudFormationにて、変更したDeletionPolicy (RemovalPolicy)がStackに反映されない時の対処法を残します。 はじめに DeletionPolicyの変更が反映されないときの対処法 起こったこと 原因 対処法 おわりに 参考 はじめに 先日、CDKで作成したリソース…

AWS CDKでTagを付与する

AWS CDKでTagを付与する方法の備忘録です。 はじめに 環境 CDKでTagを付与する 具体例 Stack単位でTagを付与する Construct単位でTagを付与する 補足: 非推奨のTag付与方法 おわりに 参考 はじめに CDKでリソースにTagを付与するとき、やり方を忘れてググり…

CI/CDとは何か | 定義を改めて整理する

CI/CDの定義と概念を改めて整理します。 はじめに CI/CDとは Continuous Integration/継続的インテグレーションとは Continuous Delivery/継続的デリバリーとは Continuous Deployment/継続的デプロイとは おわりに 参考 はじめに こんにちは、@bioerrorlog…