BioErrorLog Tech Blog

試行錯誤の記録

AWS

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

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

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ソースコードを読む おわりに 参考 はじめに こんにちは、@bioerrorlogです。 Terraformを書いているとき、arnの指定等でAW…

エラー対処: 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の中で使う おわりに 参考 はじめに こんにちは、@bioerrorlogです。 CloudFormationの!Subは値を代入/置換 ("substitute")できる関数、!FindInMapはMappingsか…

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 コード例 おわりに 参考 はじめに こんにちは、@bioerrorlogです。 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 おわりに 参考 はじめに こんにちは、@bioerrorlogです。 boto3クライアントの宣言…

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の変更が反映されないときの対処法 起こったこと 原因 対処法 おわりに 参考 はじめに おはよう。@bioerrorlogです。…

AWS CDKでTagを付与する

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

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

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

Session Managerで自動実行コマンドを設定する | AWS Systems Manager

Session Managerでセッション開始時の自動実行コマンド(shell profiles)を指定する方法と、その利用例を整理します。 はじめに 環境 Session Managerの自動実行コマンドを設定する 自動実行コマンド(shell profiles)の設定方法 利用例) デフォルトshellをbas…

Session Managerの"sh-4.2$"をbashに切り替える | AWS Systems Manager

Session Managerで表示される sh-4.2$の正体と、それをbashに切り替える方法の備忘録です。 はじめに 環境 Session Managerの"sh-4.2$"をbashに切り替える sh-4.2$の正体は何か bashに切り替える方法 おわりに 参考 はじめに こんにちは、@bioerrorlogです。…

Lambdaのboto3バージョンを確認する | AWS SDK for Python

Lambdaのboto3/botocoreバージョンを確認する方法の備忘録です。 はじめに Lambdaのboto3バージョンを確認する方法 ドキュメントから確認する Lambda上から確認する おわりに 参考 はじめに こんにちは、@bioerrorlogです。 Lambdaからboto3を用いてAWS API…

aws s3 cpコマンドで標準入出力をデータ出力/入力先に指定する | AWS CLI

AWS CLIのs3 cpコマンドにて、データの出力/入力先に標準入出力を指定する方法の備忘録です。 はじめに 環境 cpコマンドで標準入出力を活用する 標準入出力の指定方法 具体例 おわりに 参考 はじめに こんにちは、@bioerrorlogです。 AWS CLIのs3 cpコマンド…

S3 ListBucketsの実行に必要なIAM権限 | AWS

S3 ListBucketsの実行に必要なIAM PolicyのAction権限について整理します。 はじめに 検証方法 S3 ListBucketsの実行に必要なIAM権限 結論 検証 おわりに 参考 はじめに おはよう。@bioerrorlogです。 S3のAPIを利用する際のIAM Policy設定にはしばしば悩ま…

IAM Policyの"Action"に指定できる権限の一覧はどこにあるのか

IAM Policyの"Action"区内に指定できるaction権限の一覧が記載されている場所の備忘録です。 はじめに IAM Policyの"Action"に指定できるaction権限の一覧 場所 使い方 おわりに 参考 はじめに こんにちは、@bioerrorlogです。 IAM Policyの"Action"には、各…

エラー対処: Object of type datetime is not JSON serializable | Python

Pythonのjsonモジュールを利用してjson変換する際に発生した、以下のエラーの対処法です。 "Object of type datetime is not JSON serializable" はじめに 背景 対処法 defaultパラメータ 対処法1:string変換 対処法2:カスタム変換 おわりに 関連記事 参…

特定のIAM RoleがアタッチされたEC2インスタンスを列挙する | AWS CLI

AWS CLIを用いて、特定のIAM RoleがアタッチされたEC2インスタンスを列挙する方法の備忘録です。 はじめに 特定のIAM RoleがアタッチされたEC2を列挙する やり方 解説 ec2 describe-instances --filters --query --output おわりに 関連記事 参考 はじめに …

S3バケットポリシーとIAMポリシーの関係を整理する

S3バケットポリシーとIAMポリシーの関係を、同一アカウント・クロスアカウントそれぞれにおいて整理します。 はじめに S3バケットポリシーとIAMポリシーの関係 結論 検証準備 同一アカウント内アクセス クロスアカウントアクセス おわりに 参考 はじめに こ…

LambdaでAWS CLIを実行する | AWS Lambda Layer

Lambda Layerを利用して、Lambda上でAWS CLIを実行する方法をメモします。 はじめに LambdaでAWS CLIを実行する Python仮想環境の作成 仮想環境にAWS CLIをインストール Python実行パスの変更 AWS CLI関連パッケージをzipファイルにまとめる Lambda Layerの…

S3既存オブジェクトに一括でbucket-owner-full-controlを付与する | AWS CLI

S3バケットの既存の全オブジェクトに--acl bucket-owner-full-controlを一括付与するやり方の備忘録です。 はじめに 既存オブジェクトにbucket-owner-full-controllを一括付与する 追記バージョンコマンドの解説 旧バージョンコマンドの解説 おわりに 関連記…

Boto3でAssumeRoleする | AWS SDK for Python

Boto3でAssumeRoleするやり方をまとめます。 はじめに Boto3でAssumeRoleする AssumeRole関数の実装 使用例 おわりに 参考 はじめに こんにちは、@bioerrorlogです。 Boto3を利用したPythonスクリプトで、AssumeRoleしたい状況はよくあります。 その度にAssu…

aws s3 cpとsyncの違い | AWS CLI

AWS CLIのs3 cpとs3 syncの違いをまとめます。 はじめに cpとsyncの違い Descriptionを比較する コマンドオプションを比較する コマンドの挙動を比較する おわりに 参考 はじめに こんにちは、@bioerrorlogです。 あるS3バケットのオブジェクトを別のS3バケ…

CloudWatch EventsでS3への特定オブジェクトのアップロードを検知する

S3への特定オブジェクトのアップロードをトリガーに、CloudWatch Eventsを起動するやり方の備忘録を残します。 はじめに CloudWatch Eventsのイベントソースを調べる S3トリガーで起動するCloudWatch Eventsを作成する CloudTrail証跡を作成する CloudWatch …

Amplify & GraphQLでのデータモデル設計事例集

AWS Amplify & GraphQLでのデータモデル (スキーマ) 設計例をまとめます。 はじめに スキーマ設計例 Todoアプリ イベントアプリ チャットアプリ Eコマースアプリ WhatsAppクローン Redditクローン マルチユーザーチャットアプリ インスタグラムクローン カン…