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

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

AssumeRoleTokenProviderNotSetErrorでdockerコマンドが打てなくなった時の対処法

`AssumeRoleTokenProviderNotSetError`がでて、調べて出てきたdockerコマンドがうてない、なんならdocker停止しちゃった人へ。

とりあえず、`~/.docker/config.json`のなかを空にして、docker desktop再起動すれば応急処置になるかも。

“`config.init
{
“credsStore”: “”
}
“`

バックアップ忘れずに。それとassumu roleの対応も忘れずに。

元記事を表示

AWS Dev Day 2023 Tokyo 参加の個人メモ -ゼネラルセッション編-

ジャーニーマン( @beajourneyman )です。

4年強寝かしていたQiitaを再始動します。

再始動に際して少しだけ自己紹介を書きます(短めに)。IT業界に入ってCOBOLプログラマ、SE、PMなどを経て、コンテンツマーケティング(オウンドメディア)・PR(SNS運用)を経て、AWS上で稼働しているシステムのPM兼SEに復帰しました。昨年10月から担当になり、9ヶ月のAWS初心者です。(本稿でのPMはプロジェクトマネージャです)

「AWS Dev Day 2023 Tokyo」のいくつかのセッションをピックアップして個人メモを残します。ご参加されなかった方も2023/08/31(木)までオンデマンド配信中なので是非ご覧ください。

https://aws.amazon.com/jp/events/devday/japan/

# Day 1 ゼネラルセッション(基調講演)
## 『質とスピード』特別編 〜 現代のソフトウェア開発にキャッチアップしていくヒント〜 和田さん
テスト駆動開発の第一人者、和田さん(@t_wada)のセッションのメモと簡単な感想を書きます。

*

元記事を表示

Serverless Express rootディレクトリのPOSTメソッドで403発生

# rootディレクトリのPOSTメソッドで403発生

### 結論

API Gatewayの特定のリソース配下にProxを配置してる場合、Expressでルートはproxyのルートを指定すること!

“`jsx
//account (POST)
|-//abc(GET/POST)
|-//efg(GET/POST)
“`

![API Gatewayの設定](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5968e051-e33f-46e5-975c-a1a78beddfc3/Untitled.png)

API Gatewayの設定

“`jsx
a.app.use(‘/’, accountRouter);
b.app.use(‘/account’, accountRouter);
c.app.use(‘/abc’, abcRouter);
d.app.use(‘/efg’, efgRouter);
“`

Q: 次のパスへのリクエストは、上記どのルーティング処理が実行されるでしょうか。

元記事を表示

CORS対応localhost:3030Node.js(Express)からAPIGateway

■内容

ローカルで立ち上げたExpressからAPI Gateway経由でLambdaを実行しようとすると、下記エラーがレスポンスされる。

> Access to XMLHttpRequest at ‘[https://{hostname}/xx’](https://vtravelapi.dtai-entrancepoc.com/auth%27)
from origin ‘http://localhost:3030’
has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
>

![Untitled](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ed0d86d2-0d1d-4827-a3cd-d8b319809fde/Untitled.png)

FrontEnd   ー>  BackEnd

(Express)     (AWS API

元記事を表示

Lambda(Node.js18) SystemParameter(SDK v3)

# Lambda(Node.js18) SystemParameter(SDK v3)

### 注意書き

– AWSに関する説明は省略します。(Lambda、SystemParameterの実装/設定方法など)
– C#でLambdaの実装経験がありますが、Node.jsでのLambda作成が初めてでいろいろつまずいたので、備忘録として残しています。

# やること

1. Node.js14ラインタイムのLambdaで、SystemParameterに登録したSecureStringを取得する
2. Node.js14→Node.js18ランタイムへのアップデート対応
3. SDKを利用せずに、SystemParameterから値を取得する (未対応)

## 1.SDKを利用してSystemParameterの値を取得する(Node.js14)

“`jsx
const AWS = require(“aws-sdk”);

exports.handler = async (event) => {
console.log(“Test”);

// // 新規 A

元記事を表示

GitHub ActionsとOpenID Connectを使ってNext.jsのアプリケーションをS3にデプロイしてみよう!

## 概要
GitHub Actionsを使ってNext.jsのアプリケーションをS3バケットにデプロイする方法について
– Next.jsのアプリケーションの作成と設定
– デプロイ先のS3バケットの作成と設定
– IAM Roleを使ったOpenID Connectの設定
– GitHub Actionsのワークフローの作成

の順で解説していきたいと思います
かなり分量がある上にある程度AWSの知識が必要ですが一緒に頑張りましょう

## 前提
– S3へデプロイする用のGitHubのリポジトリを作成済み
– AWSのアカウントとIAMユーザを作成済み
– AWSとGitHub Actionsの基礎的な知識を有していること
– 今回はCloud Frontを使用していません

## S3バケットにデプロイする理由
AWSへアプリケーションをデプロイする手段としてECS(コンテナ)もありますが
フロントエンドのソースコードをコンテナではなく、S3へデプロイする利点としては以下のとおりです

– 一般的にS3バケットは静的なファイルのホスティングに適している
– S3はCloud F

元記事を表示

aws-cliからEventBridge SchedulerでECSタスクを起動する

EventBridge SchedulerからECSタスク(Fargete)を起動したいので、
自分が使う分だけ覚え書きします。

## create-schedule
スケジュールを作成します。
ruleでは「put-rule」と「put-targets」の2段階に分かれていましたが、このコマンドは1つでtargetまで指定します。

“`sh
# ECSタスクを実行する場合、長いので下記の–cli-input-jsonを使った方が良い……
aws scheduler create-schedule –name ecs-schedule \
–schedule-expression ‘cron(0 15 * * ? *)’ \
–schedule-expression-timezone ‘Asia/Tokyo’ \
–flexible-time-window ‘{“Mode”:”OFF”}’ \
–target ‘{“Arn”:”arn:aws:ecs:us-west-2:999999999999:cluster/some-cluster”,”RoleA

元記事を表示

AWS EC2 の Ubuntu 22.04 インスタンスに Tera Term で、SSH接続する方法

AWS EC2 で作成した `Ubuntu Server 22.04 LTS` インスタンスに `Tera Term` を使った SSH接続ができず、詰みかけたので備忘録として残します。

# 環境
今回の環境は下記のとおりです。

– ホストOS:Windows 11 Pro
– Tera Term:Ver 4.106

# 現象
AWS EC2 で作った Ubuntu Server にアクセスする場合、本来であれば下記の情報で接続ができるはずです。
しかし、なぜか接続ができませんでした!\(^o^)/オワタ

– ユーザー名:ubuntu
– パスフレーズ:空欄
– 秘密鍵:インスタンス作成時に設定したキーペア(.ppkファイル)

# 原因と解決方法
この原因は Ubuntu の OS アップデートで SSH 接続時のセキュリティが強化され、 `SHA-1 RSA認証` がデフォルトで無効化されたためです。
そして、 `Teraterm Ver 5.0 beta 1` 以前のバージョンでは `rsa-sha2-256` や `

元記事を表示

direnvでディレクトリごとに環境変数を切り替える

タイトル通りでdirenvを使うとディレクトリごとに環境変数を定義することができて便利だと感じたのでメモ。[サイバーエージェントのMLOps資料](https://github.com/nsakki55/aws-mlops-handson)で知ったのをきっかけに使い始めました。

例えば、aws cliを使用する際に–profileオプションで認証情報を指定することができるが、つけ忘れる可能性があるし面倒なのでもっと楽にしたい時などに使ってます。

本記事の実行環境:Ubuntu 22.04.2 LTS(WSL 2)

# 使ってみる
“`.envrc“`を作成し環境変数を記述します。例えば、/work/sample_direnv/に以下の“`.envrc“`を作成します。=と文字間はスペースを入れずに詰めてください。
“`.envrc
export HOGE=hoge
export FUGA=111
“`
ちなみに“`export“`コマンドは環境変数を設定するときに使用するコマンドです。
“`
direnv: error /home/user/work/samp

元記事を表示

【AWS】pythonで、異なるS3間の差分をコピーする

# はじめに
pythonを使用して、異なる環境に存在するS3から別のS3へ、差分のオブジェクトのみをコピーする方法をご紹介します。

移行元、移行先のバケットのみ設定すれば、勝手に比較して差分をコピーしてくれるイメージです。

![前後.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3337466/1a09311f-1429-c738-e427-f5d3def8c0aa.png)

また、余計な情報が混ざってしまうのもあれなので、あえてエラーハンドリングなどは割愛しています。ご了承ください。

# 前提
移行元と移行先、どちらにもアクセスできる環境(EC2など)で動作させる前提です。

もしアクセス権限がない場合は、一時的な認証トークンなどを使用すれば可能ですが、本記事は割愛します。

その他のバージョン等は下記です。

“`Shell
python -V
>> Python 3.10.9
“`

# 全体の流れ
全体の流れは下記です。
1. 両者のS3からオブジェクトキーの一覧を取得
1. そ

元記事を表示

JEF漢字コードについて調べてみた

オンプレで動いている既存システムをAWS上へ移行する際にJEF漢字コードを扱っている箇所があったので調べてみた際のメモ
誰得?な内容です

# JEF漢字コードとは?
富士通の大型機で使用されている漢字コード
– JIS第1、2水準はJISコードに `0x8080` を足したコード
ただし全角のスペースは `0x4040`
– 漢字には字形重視型と領域重視型の2つを持つものがある(人名などで使用される旧漢字など)
– 全角文字の開始(KI)には `0x28` or `0x38`、全角文字の終了(KO)には `0x29` が用いられる
– 半角文字はEBCDICを使用している
– 加えて外字がある

# 他の漢字コードに変換するには?
ざっと調べた限りでは下の4つしか見当たらなかった
– 富士通製の商用ソフトなら変換できる(当然)
– Solarisのiconvはサポートしているらしい
– Win3.1用のフリーソフト [JHTc](http://www.vector.co.jp/soft/winnt/util/se094205.html)
– Java用ライブラリ [jef4j]

元記事を表示

ブラウザからプライベートサブネットにあるEC2にあるアプリケーションのAPIを呼び出す

今回3層アプリケーションを作成する際に直面した課題とその解決策を共有します。
私の構造は以下の通りです。![スクリーンショット 2023-07-14 094434.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3321327/6a20def0-42a9-1fd1-4266-720e6629263a.png)

構成紹介:
1層目:フロントエンド(画面)
2層目:バックエンド(API)
3層目:DB

一連の流れ:要はフロントエンドに入力した指令をバックエンドに流して、バックエンドで処理した上で必要なデータをデータペースに保存するという構成です。

直面した課題:
ブラウザがバックエンドのAPIを呼び出せません。

具体的なエラー:
APIを実行するとブラウザのコンソールにこのようなエラーが出ます。
“`
POST http://ec2 private ip:8000/api/path net::ERR_CONNECTION_TIMED_OUT
“`

その際にフロント側ではこのURLを使ってAPIを

元記事を表示

Security HubとGuardDutyを使った発見的統制

30歳になり新しいことを始めようと思い、今まで避け気味だったアウトプットに取り組み始めました。
拙い文かと思いますが、どうぞよろしくお願いします。

# はじめに
※AWSのマルチアカウントと、関連サービスの詳細な説明は省略します

Supershipで取り組んでいるAWSのセキュリティ施策について紹介します。
AWS Control Towerと AWS Organizationsを導入し、マルチアカウントな統制管理を行っています。

# ガードレール
AWSのセキュリティ・ガバナンスの統制について、ガードレールという考え方があります。
ガードレールは大きく2つの考え方で構成されています。
– あらかじめセキュリティ上問題のある操作を定義し、その操作を禁止すること(予防的統制)
– リスクがある構成、脅威などを検知・通知すること(発見的統制)

弊社ではガードレール型のセキュリティ対策を採用しています。
今回は発見的統制について記載します。

# AWS Security Hub
AWSの定めるベストプラクティスに違反していないかなど、セキュリティ上問題がある設定などを検知することが

元記事を表示

Amazon Connectで、フリーダイヤル(0120)発行に必要だった全てのコト

## 書いてあること

2022年12月に Amazon Connect にて
フリーダイヤル(0120)電番を取得しました。
備忘を兼ね、実際のやり取りや準備した書類を
所感と共にまとめています。

## 実際の対応
### 1.フリーダイヤルを取得したいアカウントからサポートセンターを開く
![1_opensupport.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3500899/3e031777-4aad-4dad-55fa-a13650b4b72a.png)

### 2.技術カテゴリから電話番号のリクエストを行う
※個人的にサービスから「Connect (Contact Center)」を選ぶところで毎回引っかかります
![2_choicecase.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3500899/a1807271-62cd-c3fb-e9ed-a966cc6fc98c.png)

#

元記事を表示

AWS IAM Identity Center環境におけるAWS CLIの利用方法

# はじめに
本記事はAWS IAM Identity Center環境におけるAWS CLIの利用方法について記載しています。

AWS IAM Identity Centerを利用している環境でAWS CLIを使用する際は、profileを使い分けて操作するなどの運用が発生すると思います。

本記事ではIAM ロールを利用して、他のアカウントにログインすることなく、コマンドを実行するtipsを記載しています。

## CLI + SSO
AWS IAM Identity Center環境におけるAWS CLIの設定については、公式ドキュメントの[AWS IAM Identity Center (successor to AWS Single Sign-On) を使用するための AWS CLI の設定](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-sso.html)より確認できます。

### SSOログイン
前提として、ホームディレクトリ以下の`~/.aws/config`ファイルには以下

元記事を表示

CloudFrontとS3で公開期間を指定したWebサイトを構築する

## はじめに

AWSで静的Webサイトを構築する際は、CloudFront + S3の構成が一般的かと思います。

S3のバケットポリシーとCloudFrontのカスタムエラーレスポンスを組み合わせて、
特定の期間内のみアクセスを受け付け、
期間外はエラーページを表示するサイトを構築しました。

AWS環境はTerraformで作成します。

参考:

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/GeneratingCustomErrorResponses.html

https://cloud-aws-gcp.hateblo.jp/entry/2019/11/20/024813

## 実行環境

– macOS Ventura 13.2.1
– Terraform v1.5.2
– aws-cli 2.9.12

## 環境構築

構成はCloudFrontディストリビューションが1つに、S3バケットが2つです。
1つのS3バケット(公開用バケット)に公開用ページを格納し、

元記事を表示

(Python)jsonオブジェクト内のfloat⇔Decimal一括型変換

## 概要
AWSでLambdaからDynamoDBを操作していると、jsonオブジェクトのfloat⇔Decimalの型変換が必要なタイミングが多々発生する。
ネストされたjsonの構造をいちいち調べて変換するのは大変であるため、一括での変換方法を作成してみた。

実行環境:Python 3.10

## Decimal→floatの場合
こちらは検索でも何件かヒットした。
json.dumpsのdefaultを利用する。
“`python
import json
from decimal import Decimal

#Decimal->float変換用の関数を作成
def decimal_to_float(obj):
if isinstance(obj, Decimal):
return float(obj)

#ネストされたDecimal型の要素を持つjsonを定義
json_decimal = {‘key1’: ‘value1’, ‘key2’: Decimal(‘12.3’), ‘key3’: {‘key4’: Decimal(‘456.7’),

元記事を表示

[AWS Q&A 365][ECR]AWSのよくある問題の毎日5選 #94

# Q1: Amazon ECRとは何ですか?
A1: Amazon Elastic Container Registry(Amazon ECR)は、AWSが提供するマネージドコンテナイメージレジストリサービスです。ユーザーはこれを使用して、安全にコンテナイメージをストア、管理、デプロイすることができます。また、AWS IAMを用いてリソースベースの権限を持つプライベートリポジトリをサポートします。

# Q2: Amazon ECRのコンポーネントは何ですか?
A2: Amazon ECRのコンポーネントには、レジストリ、認証トークン、リポジトリ、リポジトリポリシー、イメージが含まれます。レジストリは、各AWSアカウントに提供されるプライベートレジストリです。認証トークンはレジストリへの認証に必要です。リポジトリはDockerイメージ、OCIイメージ、およびOCI互換アーティファクトをストアするために使用されます。リポジトリポリシーはリポジトリへのアクセスを制御します。イメージはリポジトリにプッシュおよびプルされます。

# Q3: Amazon ECRはどのような機能を提供しますか

元記事を表示

[AWS Q&A 365][ECR]Daily Five Common Questions #94

# Q1: What is Amazon ECR?
A1: Amazon Elastic Container Registry (Amazon ECR) is a managed container image registry service provided by AWS. It allows users to securely store, manage, and deploy container images. It supports private repositories with resource-based permissions using AWS IAM.

# Q2: What are the components of Amazon ECR?
A2: The components of Amazon ECR include the registry, authorization token, repository, repository policy, and image. The registry is a private registry provid

元記事を表示

【参加レポート】Azure OpenAI×マルチクラウドTech Night

普段の業務ではAWSを扱っているのですが、「最近話題のAzure OpenAIもキャッチアップしないと。。。」という焦りを隠しきれない私です

そんな中、Azure初心者向けのイベントが開催されていたので参加してきました!

https://msdevjp.connpass.com/event/287530/

開催目的から分かる通り、「クラウドは使ってるけどAzureは正直あんまり。。。」という方向けのイベントでした

> 開催目的
最近多くの企業様より AzureとOpenAI が初めてAzure を利用する方が増えてきております。マルチクラウド環境に初めて触れるエンジニアたちのための学びと発見の場を提供することを目指しています。Azure の始め方、Azure OpenAIを活用したマルチクラウド設計の独自のポイントやその設計における注意点など、新たな Azure OpenAI の世界に飛び込むエンジニアが直面する可能性のある課題を共有し、解決策を模索します。

目的の通り、Azureをそこまで知らない自分もとっつきやすい内容になっていました
簡単ではありますが、各登壇者の発表内

元記事を表示

OTHERカテゴリの最新記事