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

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

【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をそこまで知らない自分もとっつきやすい内容になっていました
簡単ではありますが、各登壇者の発表内

元記事を表示

Hugo + CloudFront + S3 + GitHub Actions でCI/CD付きブログサイトを構築してみる Part5 GitHub Actionsを実行

## 概要

https://qiita.com/Tanamachi_kaoru/items/f9bc1285c410e52f6bac

の続きです。今回はgitHub Actionsの設定/実行/記事確認まで実施します。

この記事はそのメモやまとめです。
すでに設定済みの項目がいくつかある。
試行錯誤しながらやったので、手順として不要かもしれない。**あくまでメモ用。**

# GitHub Actionsについて学習
今いる現場で利用はしているが、自分で構築した経験がないのでまずは概要から把握します。
以下の2つの記事を読み概要を把握しました。

https://qiita.com/shun198/items/14cdba2d8e58ab96cf95

https://selfnote.work/20220109/programming/begginer-github-actions/

# 完成した資材
基本的には[参考サイト](https://dev.classmethod.jp/articles/cloudfront-and-s3-using-hugo-with-githu

元記事を表示

ゼロETLから学ぶ今後の展望について

re:Inventで発表された ゼロETLについて

文章をツラツラと書くのも読みづらいので
流行りの生成系AIのチャット形式でお届けします。
ぜひ最後までお付き合いいただけますと幸いです!

そもそもETLって?

 ETL=Extract/Transform/Loadの略
 機械学習においてはデータ管理が重要になってきますが
 1.データの抽出(Extract)
 2.データの変換(Transform)
 3.データの取り込み(Load)
 の英語の頭文字をとってETLと略されているよ。

ETLってどんな機能?

文字通り、機械学習において重要となる
データの抽出、変換、取り込みを行うパイプラインのような機能だよ。

文字だとわかりずらいからイメージを図で教えて?

こんな感じのイメージだよ。
![画像1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2840619/1f2261d3-4d6a-d6f9-534d-ea66b0610828.jpeg)

なんとなくわ

元記事を表示

【AWS CDK】Pythonで動くLambdaレイヤーをCDKでデプロイする方法

# はじめに
仕事でLambdaレイヤーをCDKでデプロイする機会がありました。
その辺のナレッジが記載された記事があまりなかったので、
本記事ではLambdaレイヤーをCDKでデプロイする方法を記載します。
# 環境
OS:Windows 10

# 前提
以下がインストール済み
 CDK(ver 2.67.0)
 Docker Desktop
 yarn

CDKの言語:TypeScript
AWS CLI:デフォルトプロファイルが設定済み
Docker DesktopはCDKでのデプロイを実行するときに使います。

# 実装内容
Pythonで動くLambdaレイヤーと、レイヤーを使用するLambdaを実装します。
Lambdaのソースコードは以下です。
numpyライブラリのモジュールを使って、ランダムに乱数を生成するだけのシンプルな内容です。
Lambdaレイヤーには、numpyライブラリを含めて実装します。
“` index.py
import numpy

def handler(event, context):
# 乱数を生成
print(numpy

元記事を表示

日本におけるクラウドコンピューティングへの移行

クラウドコンピューティングは、世界中でITインフラストラクチャとサービスに革命をもたらし、この変革において日本が重要な役割を果たしています。 本稿では、日本におけるクラウド・コンピューティングの歩みについて、新型コロナウイルス感染症以前の時代から始まり、パンデミックによる加速、そして現在の状況までをお話しします。

# クラウドコンピューティングの理解:プライベート、ハイブリッド、パブリッククラウド

日本のクラウドコンピューティングの世界に入る前に、さまざまなタイプのクラウドサービスを迅速に理解することが重要です。
– **プライベートクラウド:** このクラウドサービス環境は、単一の企業専用です。 会社が所有するインフラ上でも、サードパーティのデータセンター施設でも実行できます。
– **パブリッククラウド:** これは、サードパーティのプロバイダによって構築、制御、およびメンテナンスされるクラウドサービス環境です。 複数の組織が異なる支払いモデル(従量制やメンバーシップなど)でサービスを使用しています。 例えば、Amazon Web Services、Microsoft Azur

元記事を表示

釈迦に説法めいたツイッターがヤバいというが技術面ではどうなんだという話

TwitterのAPI制限の騒動から暫く経ちましたが、技術面で見てツイッターの状況はどうなのかまとめてみました。

おそらく、大半のQiitaのユーザーは日曜プログラマの私よりも遥かに優秀で経験のある技術者だと思いますので、おそらく多くの方が社内外でツイッターの扱いについて相当揉めていると思いますが・・・。

# 1.Twitter社の社員が大量離反して社員が8000人から1500人に減った

まず、イーロン・マスクがTwitter社を買収し、社内改革を強行した時に社員が大量に離反、一説には社員が8000人から1500人も減ってしまいました。

https://article.auone.jp/detail/1/3/7/48_7_r_20230413_1681353603459053

おそらく、大半の会社勤めの方は相当やばいと気づくと思います。何しろ普通の会社なら一人でも辞めたら、会社の規模や雇用の仕方、辞めた人の立場にも寄りますが、それはそれで揉めるわけです。一人でもそれなのに6500人も辞めたら会社が回らなくなり、プロダクトの運営が機能不全に陥るのは多くの人が想像つくと思います。

元記事を表示

buildspec.ymlって何を書いているのか調べてみた

# buildspec.ymlとは
CI/CDで実行する際のコマンドを記述したYAML形式のファイルのこと。
CodePipelineで指定したソースコード内に配置し、Buildやデプロイをする際に読み込まれる。
ソースコードのルートディレクトリに配置しないとうまく動かない。
ファイル名と場所も変更できるらしい

https://docs.aws.amazon.com/ja_jp/codebuild/latest/userguide/build-spec-ref.html

# buildspec.ymlの全体像
これはhtmlファイルをdockerコマンドでビルドして、ECRにデプロイするやつ
“`ruby:buildspec.yml
version: 0.2

phases:
pre_build:
commands:
– echo Logging in to Amazon ECR…
– aws –version
– aws ecr get-login-password –region $AWS_DEFAULT_REGION

元記事を表示

【まとめ】ターゲット追跡スケーリングポリシー

* [Amazon EC2 Auto Scaling のターゲットトラッキングスケーリングポリシー](https://docs.aws.amazon.com/ja_jp/autoscaling/ec2/userguide/as-scaling-target-tracking.html)

動的スケーリングのひとつ。
**CloudWatchメトリクス**で値を設定し、EC2 Auto Scallingによってその**メトリクス値を保てるように**スケーリングされる。

元記事を表示

API Gateway + CognitoでWebサイトからバックエンドの処理を呼び出す

# やりたいこと
前回の記事( https://qiita.com/mkttks/items/c30e993adb520869dbb4 )ではAWS Lambda と Amazon DynamoDB を使用してバックエンドの処理を実装しました。
今回はAPI Gatewayを使ってWebサイトからこのバックエンドの処理を使えるようにします。

内容は引き続き下記の公式チュートリアルに沿ったものです。(※ただしチュートリアル通りに進めると権限まわりの設定で詰まります。)
https://aws.amazon.com/jp/getting-started/hands-on/build-serverless-web-app-lambda-apigateway-s3-dynamodb-cognito/

# システム構成図
![api gatewayのシステム構成図](https://d1.awsstatic.com/Test%20Images/Kate%20Test%20Images/Serverless_Web_App_LP_assets_05.d1ecdfaab160d7dc00ddbc

元記事を表示

【まとめ】AWS運用監視サービス

# CloudWatch
* [CloudWatch](https://aws.amazon.com/jp/cloudwatch/)は、AWS上で実行されるアプリケーションをリアルタイムで監視する。

## メトリクスを監視する
* [メトリクス](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html)(リソースに関して測定できる変数) を監視する。
* しきい値を超過したときに「通知の送信」、「リソースの動的変更」などの**アラームを作成できる。**

メトリクスアラームには、以下の3つの状態がある。
* `OK`
定義されたしきい値の範囲内
* `ALARM`
定義されたしきい値を超過している
* `INSUFFICIENT`
アラーム開始直後、メトリクスが利用できない・データ不足によって状態判定ができない
## ログを監視する
* [CloudWatch Logs](https://docs.aws.amazon.com/ja_jp/AmazonC

元記事を表示

OTHERカテゴリの最新記事