AWS関連のことを調べてみた2023年09月20日

AWS関連のことを調べてみた2023年09月20日

【AWS Batch】エラー「exec format error」の原因と解決方法

# 概要
ECRにイメージをプッシュして、AWS Batchのジョブからコマンドを実行すると`exec format error`になりました。本記事ではその原因と解決方法を記載します。

# エラー内容

AWS Batchのコマンドに、試しに`[“pwd”]`をジョブに入れて実行しました。
しかし、ログを見ると以下のエラーになりました。

“`
exec /bin/pwd: exec format error
“`

このエラーは、コンテナイメージが実行しようとしているバイナリまたはコマンドの実行形式が正しくない場合に発生するよう。コンテナイメージがEC2インスタンスの実行環境と互換性がないっぽい。

# 原因
`docker inspect`を実行してDockerイメージの中身を見てみる

“`
“Architecture”: “arm64”,
“Variant”: “v8”,
“Os”: “linux”,
“`

`”Architecture”`フィールドが`”arm64″`であることは、コンテナイメージがARM64アーキテクチャ向

元記事を表示

HULFT SquareでAmazon S3のバケットにファイルを格納してみた

# はじめに
こんにちは。すぎもんです。?
前回の記事 **[『DataSpiderでAmazon S3のバケットにファイルを格納してみた』](https://qiita.com/sugimon/items/b13395cfe5217e8f90c0 “DataSpiderでAmazon S3のバケットにファイルを格納してみた”)** の通り、DataSpiderでやってみたことをHULFT Squareでもやってみました。
今回は、その違いについても触れていきます。

:::note warn
下記が**DataSpider Servista と HULFT Squareの比較**になります。
:::

| | DataSpider Servista | HULFT Square |
|:-:|:-:|:-:|
| **サービス形態** | パッケージ製品 | iPaaS |
| **導入サーバ** | 自身で環境を用意 | クラウド環境 |
| **拡張性** | サーバ環境に依存 | コンソール画面より自由にリソース割り当て可能 |
| **セットアップ** | インストール

元記事を表示

AWS CLIを使ってOrganizations環境のIAM Access Analyzerを有効化する

aws accessanalyzer list-analyzers
{
“analyzers”: [
{
“arn”: “arn:aws:access-analyzer:ap-northeast-1:xxxxxx:analyzer/ConsoleAnalyzer-fasd”,
“name”: “ConsoleAnalyzer-xdaf”,
“type”: “ORGANIZATION”,
“createdAt”: “2023-09-20T00:07:32+00:00”,
“lastResourceAnalyzed”: “arn:aws:ecr:ap-northeast-1:xxxx:repository/hello-eks”,
“lastResourceAnalyzedAt”: “2023-09-20T00:08:13.522000+00:00”,
“tags”: {},

元記事を表示

S3 バケットポリシーのNotPrincipalによるロール制限ではまった話

# はじめに
今回、バケットポリシーで使えると便利だけど使い方ではまってしまったNotPrincipalの設定について解説をしたいと思います。

とあるKinesis DataFirehoseからS3へのDirect PUT接続を構築したときのことです。
構築自体は難なく完了。次にセキュリティを高めようと思い、“NotPrincipal“を使ったバケットポリシーを以下のように設定してみました。
“NotPrincipal“でFirehoseに付与したロール以外からのS3アクセスを拒否したつもりでした。
しかしながら、これを設定した瞬間にS3 Access Denied のアクセスエラーが出てしまいました…:sob:

“`JSON:Bucket Policy (Bad)
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Deny”,
“NotPrincipal”: {
“AWS”: [

元記事を表示

Security Hubでコントロールの一覧とARNを取得する

aws securityhub get-enabled-standards
{
“StandardsSubscriptions”: [
{
“StandardsSubscriptionArn”: “arn:aws:securityhub:ap-northeast-1:<アカウントID>:subscription/aws-foundational-security-best-practices/v/1.0.0″,
“StandardsArn”: “arn:aws:securityhub:ap-northeast-1::standards/aws-foundational-security-best-practices/v/1.0.0”,
“StandardsStatus”: “INCOMPLETE”
},
{
“StandardsSubscriptionArn”: “arn:aws:securityhub:ap-northeast-1:7

元記事を表示

AWS Terraform – Cloud Watch Logs のサブスクリプションフィルタ + Lambda連携を Terraform管理

# 概要

Cloud Watch Logs のサブスクリプションフィルタを使うと
ログのパターンを検出してLambdaを起動できる

AWSコンソールからの作り方はCloudWatchのロググループを選んで「アクション」から設定できる

image

これをTerraform管理する

# Terraformのコード例

“`tf
resource “aws_cloudwatch_log_subscription_filter” “xxx” {
name = “xxx”
log_group_name = “/path/to/log_group”
filter_pattern = “<フィルタパターン>”
destination_arn =
}
“`

# エラー

元記事を表示

データ活用基盤を作ってみたその4(詳細設計)

## はじめに

こんにちは、NTTデータ先端技術の白木です。
本記事はデータ活用基盤を作ってみた連載記事のその4(詳細設計)です。
本シリーズの取り組みの内容については[その1(構成シナリオ)](https://qiita.com/kamein/private/81df29ef9d32bf0a0810)をご覧ください。
前の記事は、[その3(基本設計)](https://qiita.com/shiraki_ils/items/86c40a8c4676572650ab)からご覧ください。
今回は、詳細設計の考え方・進め方について記載します。

## 目次
– 前提
– 詳細設計の考え方
– 詳細設計で実施したこと
– 詳細設計で注意したこと

## 前提
設計工程の前提については、前記事にて記載しておりますのでそちらをご覧ください。

## 詳細設計の考え方
今回のPJでは、設計工程は基本設計→詳細設計(パラメータ設計)の二段階で進めることとしました。

そのうえで、今回のPJにおける詳細設計は、
「基本設計の内容を実現するために製品・サービスに設定するパラメータを表現するフェーズ」

元記事を表示

データ活用基盤を作ってみたその3(基本設計)

## はじめに

こんにちは、NTTデータ先端技術の白木(@shiraki_ils)です。
本記事は、データ活用基盤を作ってみた連載記事のその3(基本設計)です。
本シリーズの取り組みの内容については[その1(構成シナリオ)](https://qiita.com/kamein/private/81df29ef9d32bf0a0810)をご覧ください。
前の記事は、[その2(要件定義)](https://qiita.com/kamein/items/c55ec0fe3f3a9d64dff7)からご覧ください。
今回は、基本設計の考え方・進め方について記載します。

## 目次
– 前提
– 基本設計の考え方
– 基本設計で実施したこと
– 基本設計で注意したこと
– クラウドPJ特有の注意事項について
– 学習を目的としたPJ特有の注意事項について

## 前提
前提として、いわゆるウォーターフォールの進め方のように、「基本設計」「詳細設計」といった形で工程を分けて進めるやり方が良いかが論点となりました。
内部向けかつ小規模の開発、加えてAWS上での開発ですので、工程を分

元記事を表示

AWS SAA-C03に一発合格した話

# はじめに
AWS SAA-C03に一発合格できました。
これから受験する方の参考になればと思い学習内容とかをまとめてみました。

:::note alert
実際に受験する際はAWS認定やPearsonVUEで最新の情報を確認してください。
:::

# プロフィール
* 業界4年目
* phpとかjsとか触り始めて2年目
* AWSの使用経験なし
* GCEなら個人的にちょっと触った程度
* 基本情報と応用情報は持ってる

# SAAって何?
[AWS Certified Solutions Architect – Associate](https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/)
> AWS 認定ソリューションアーキテクト – アソシエイトは、幅広い AWS のサービスにわたる AWS テクノロジーに関する知識とスキルを示します。この認定の焦点は、コストとパフォーマンスが最適化されたソリューションの設計にあり、AWS Well-Architected フレームワ

元記事を表示

AWS Lambda Node.js dockerイメージでmecab (+neologd)を実行する

試験的にmecabが必要になったのですが、PHP8に対応していないので、EC2ではなく、Lambdaにインストールして、EC2のPHPから叩くようにしました。neologdができるようにしたのはおまけ。pythonがわからないので、nodeでイメージを作成しています。neologdの辞書まで含めた場合、数GB程度になりますが、LambdaのECRイメージデプロイは、10GBまで対応しているので、問題なくデプロイ、実行できました。Dockerなので、ローカル確認もできます。

ファイル構成

Dockerfile
app.js
docker-compose.yml
package.json
deploy.sh

Dockerfile
基本イメージは、public.ecr.aws/lambda/nodejs:18 2023年9月17日現在、20は出ていませんでした。
makeに必要なライブラリをインストールして、makeする形。
ipadic-neologdは、gitプロトコルでcloneすると鍵の問題解決が難しそうだったので、https:からのclone。
cdコマンドも、Docke

元記事を表示

データ活用基盤を作ってみたその2(要件定義)

# はじめに
こんにちは。NTTデータ先端技術の亀井(@kamein)です。
本記事はデータ活用基盤を作ってみた連載記事のその2(要件定義)です。
本シリーズの取り組みの内容については[その1(構成シナリオ)](https://qiita.com/kamein/items/81df29ef9d32bf0a0810)をご覧ください。
本記事では、データ活用基盤の要件定義の考え方・進め方についてご紹介します。

# 目次
+ 要件定義の考え方
+ 要件定義で実施したこと
+ 要件定義で注意したこと

# 要件定義の考え方
要件定義では、システム化で実現する仕様(必要な機能や非機能目標)を定義付けします。定義付けを行うことで、使用する製品・技術選定や開発工数を具体的に見積ることができるようになります。そのため、要件定義は「様々な観点からから仕様を検討すること」、「責任分界点を明確化し、システム化範囲を定めること」が重要です。

要件定義が曖昧なまま後続工程に進むと、想定外のシステム開発を求められたり、低品質なシステム納品を迎えて顧客満足度下がる事態となります。
システム開発はどの工程も重要

元記事を表示

Terraform×AWS 環境設定編

## はじめに

こんにちは!
RedPullといいます。

今までアウトプットをほぼ全くしておらず、危機感を覚えたので、モチベーションのアップも兼ねて、現在学習している内容を投稿していきたいと思います。

今回は「Terraform」についてです。


## 対象者
– AWSの設定が毎度手動でやるのが面倒と感じてきた方
– Terraformって何?と思った方

## Terraformとは?

Terraformは、Infrastructure_as_Code(IaC)ツールであり、HashiCorp社より提供されています。
これを使うことで、クラウドサービスによるリソース(サーバーなど)の設定・構築を自動で行うことが可能になるようです。

僕は業務で簡易的にAWSを触っているのですが、その設定を毎度スクラップ&ビルドしなければいけないのが億劫になり、こちらの技術に興味を持ちました。

今回はまだ学習中なので、
他のPCでも環境を再現できるように、まずは導入の手順を備忘録として残しておこうと思います。

初回設定

今回の学習では、AWSでの利用を前提に行っていきま

元記事を表示

データ活用基盤を作ってみたその1(構成シナリオ)

# はじめに
こんにちは。NTTデータ先端技術の亀井(@kamein)です。
最近はクラウド化がさらに進んでデータ活用市場がますます大きくなってきています。筆者らは市場動向に追随できるように若手中心で集まって簡単なデータ活用環境を構築し、データ活用基盤の概要を学ぼうと取り組みました。また、近年、暗黙の了解になりつつあるウォーターフォール型での各工程の動き方の振り返りも行いました。

本記事では、データ活用基盤の構築内容および各工程の動作内容についてご紹介します。

# 目次
+ 本シリーズの読者イメージ
+ シリーズの目次構成
+ シナリオ構成
+ シナリオ目的
+ 実現したいこと
+ 機能要望
+ 非機能要望
+ システム概要図
+ 実案件での基盤構成検討ポイントについて

# 本シリーズの読者イメージ
以下に当てはまる方は、本記事をご一読頂いてご参考になれば幸いです。

+ データ活用基盤を作りたいが何から始めたら良いかわからない人(構成検討のポイントをご紹介)
+ データ活用基盤をsmallstartしたいけど基盤構成イメージが湧かない人(データ活用基盤の構

元記事を表示

AWSで、Terraformを利用する方法をまとめてみた(4/10)

変数(概要)

__変数にはローカル変数と外部変数の2種類があります。__

1. ローカル変数 ローカル変数は、TerraformのHCLコード内で定義され、同じファイル内でのみ使用される変数です。ローカル変数を使用することで、HCLコード内で再利用可能な値を定義できます。ローカル変数は locals ブロック内で定義されます。

__ローカル変数の例__
~~~
locals {
region = “us-west-2”
vpc_id = “vpc-1234567890abcdefg”
subnet_ids = [
“subnet-1234567890abcdefg”,
“subnet-0987654321hgfedcba”
]
}
~~~

2. 外部変数 外部変数は、TerraformのHCLコード外から渡される変数であり、terraform.tfvars ファイル、コマンドラインフラグ、環境変数、またはリモートステートから取得されます。外部変数を使用することで、TerraformのHCLコードを実行するたびに変数の値を変更することができ

元記事を表示

AWS-SAAの模試直し

# 現状
Udemyの講座をすべて視聴完了(約1ヶ月半かかった)
AWS-CLI取得済

# 今回の模試の結果
![スクリーンショット (83).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957298/57092de8-0abb-cf7e-30e7-54606842fcb4.png)

なんと半分以下。非常にまずい。

# 原因
・CLI合格してから1か月以上経っている。
・Udemyの動画視聴が400個あり、途方もなく感じて見ていない日があり視聴に時間がかかった。
・実際の試験問題の形式に慣れていなくどういう部分が覚えるべきかわかっていなかった。

# 感想
・前回も1回目の模試は半分前後を取っていたので、復習をしっかりすることで合格に近づくと思う。
・また前回は問題演習期間が1週間と短く、今回は試験日程も9月末を予定しているので2週間しっかりと時間を取ろうと思う。
・また前回は解く問題も限られており、模試2回分とアプリを使用していたが、今回はUdemyの別コースの模試も購入したので、問題の数を

元記事を表示

Spring BootからDynamoDBへのアクセス(Spring Cloud AWS 3.0)

## はじめに

Spring Cloud AWS 3.0を利用してDynamoDBへのアクセス方法をまとめる

## 環境

+ Java 17
+ Spring Boot 3.1.3
+ Spring Cloud AWS 3.0.2
+ DynamoDB local
+ Gradle 8.2.1

## DynamoDB localの設定

+ docker-compose.yamlに下記の定義を行いDynamoDB Localのコンテナを起動
+ dynamodb-adminを追加しているので、`http://localhost:8001/`にアクセスすればGUIでDynaamoDBに接続できる

“`docker-compose.yml
version: ‘3.8’
services:
dynamodb-local:
image: amazon/dynamodb-local:latest
container_name: dynamodb-local
user: root
command: -jar DynamoDBLocal.jar

元記事を表示

クラウド日記(9月18日)

Amazon SES受信機能が東京リージョンに対応

https://aws.amazon.com/jp/about-aws/whats-new/2023/09/amazon-ses-email-service-7-regions/

少し前になりますが、Amazon SES受信機能が東京リージョンに、ついに対応しました。
6~7年前に、某公共系のクラウド案件の支援を行っていた際に、海外へパケットを一切飛ばすことがNGといった要件がありました。
まだまだガバメントクラウドと言われる言葉もなく、当時はクラウドって可能性あるのだろうか・・・とSESの海外へのパケットを飛ばすことを顧客へ説明しながら、クラウド使う可能性ってありますかね??と会話した記憶が懐かしいです。
まだまだ東京リージョンで出来ることが少なく、こうした機能が地味に嬉しかったりします。

色々触って検証したいところですが、時間が無いのでIDの有効化だけして、本日の作業は終わりにします。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.c

元記事を表示

Delete a version of a AWS Lambda function from awscli

There are several ways to delete a version of a lambda function. All the followings have the same effect. See [the manual](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/delete-function.html) for details.

## With the function name followed by the version

“`
aws lambda delete-function –function-name ${FUNCTION_NAME}:${VERSION}
“`

Example:

“`
aws lambda delete-function –function-name my-function:1
“`

## With the function name and the qualifier option

“`
aws

元記事を表示

AWS Chatbotのカスタム通知機能で通知内容をいい感じにする。

# はじめに
`AWS Chatbot`で`Slack`等に送信する通知内容をカスタマイズできるようになり、通知内容をいい感じにして送信することができるようになったようなので、試してみたいと思います。

– [Custom notifications are now available for AWS Chatbot](https://aws.amazon.com/jp/about-aws/whats-new/2023/09/custom-notifications-aws-chatbot/)

# AWS Chatbotによるメッセージの送信
以前は`Chatbot`を使って送信されるメッセージに加工を加えることが出来なかったため、どうしても加工を加えて`Slack`等に送信したい場合は、`Chatbot`を使わずに`Lambda`でコードを書いて送信する必要がありました。

しかし、今回のアップデートで`EventBridge`のターゲット入力トランスフォーマーを使って`Chatbot`にわたすメッセージを加工することで`Slack`等に送信するメッセージに加工を加えることができる

元記事を表示

【AWS】S3ファイルのストレージクラスを表形式で出力してみた

# 1.前書き
S3の特定バケット内にあるファイルのストレージクラスをCLIから確認したくなり、やり方を調べてみた。
[s3apiコマンド](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-services-s3-apicommands.html)を使用すれば、json形式でストレージクラスを確認できることが分かった。

“`<出力イメージ>.json
{
“Contents”: [
{
“Key”: “hoge.txt”,
“LastModified”: “2023-09-01T02:22:22+00:00”,
“ETag”: “\”999999999999\””,
“Size”: 99,
“StorageClass”: “STANDARD”,
“Owner”: {
“DisplayName”: “hogehoge

元記事を表示

OTHERカテゴリの最新記事