AWS関連のことを調べてみた2022年11月21日

AWS関連のことを調べてみた2022年11月21日

開発環境で開発したWordPressテーマをGitHubからPullして本番環境にリリース 🙂

前回の記事では、開発したものをGitにどんどんコミット、GitHubのリモートリポジトリにプッシュしておりました。

今日は、ついにテーマが完成したので、リモートリポジトリから本番サーバにPullして、無事本番サーバへのリリースを終えました。初めて自分で自分の開発環境で開発したものをリリースして嬉しいホクホクの気持ちを残すために書きます:relaxed: あ、ちがう、、、。作業の記録のために!書きます。

# 1.本番サーバにてgit init
git initし、.gitファイルを作成しました。

ここで迷ったのが、git initする場所。
ちょっとよく仕組みが分かっていないままで申し訳ない(誰に?自分に)のですが、pullする側と、pushする側、は、同じ場所に.gitファイルがあったほうがいいかなと思ったので、開発環境で作った場所と同じ場所に.gitファイルをつくりました。

# 2. 本番サーバにてgitの設定
初期設定です(そのサーバでもともとしてあればしなくてOKなはず)
~~~
git config –global user.name “your_user_name”

元記事を表示

amplify push と戦う2

# 症状の確認方法
amplify pushで出てくるメッセージではあんまり役に立たないので以下の方法で確認する

amplify>アプリ>Backend environments>環境のアクション>詳細を表示>最新のデプロイアクティビティ>CloudFormation
イベントタグを選択する
(状況の理由に「User Initiated」があるのでそれが、push開始っぽい)

# 症状1

“` 
Resource handler returned message: “1 validation error detected: Value ‘[xxxxxxxArn]’ at ‘layers’ failed to satisfy constraint: Member must satisfy constraint: [Member must have length less than or equal to 140, Member must have length greater than or equal to 1, Member must satisfy regular exp

元記事を表示

AWS S3に保存してあるファイルをPYTHONで直接読みこむ方法

s3からファイルに書き込まない、ダウンロードしないで直接読み込んで何かする

# CSVの場合
– utf-8
– csv.readerを使う

“`py
import csv
import io

import boto3

s3_client = boto3.client(“s3″)
csv_s3_object = s3_client.get_object(Bucket=”bucket name”, Key=”key~csvのパス~”)
with io.TextIOWrapper(
io.BytesIO(csv_s3_object[“Body”].read()), encoding=”utf-8″
) as csv_file_io:
reader = csv.reader(csv_file_io, delimiter=”,”)
for record in reader:
print(record[0], record[1])
“`

# jpgの場合
– Image.openする

“`py
import os
from

元記事を表示

AWSの無料期間が終了するのでEC2からlambdaに移行した

## EC2の無料期間が終了してしまう(まずい)
AWSのEC2を使って、アニメの配信通知をつぶやく[Twitterボット]()を動かしているのですが、私のアカウントのAWS無料期間が2022年12月で終わってしまうため、その後は毎月約3000円の料金が発生してしまいます(もったいない!)。
費用圧縮のためにLambdaに移行しようと作業していた所、つまづいた箇所がいくつかありました。
同じようなことで困っている方の参考になればと思います。

### lambda(ラムダ)で出来ること
> Lambda は必要に応じて関数を実行し、1 日あたり数個から 1 秒あたり数千個のリクエストまで自動的にスケーリングします。課金は実際に消費したコンピューティング時間に対してのみ発生します。コードが実行されていない場合、料金は発生しません。

引用元:[Amazon](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html)

## 1) フォルダごと圧縮しても動かない
lambdaでは、プログラムを「lambda_funct

元記事を表示

Redshift Serverless の監査ログについて

Redshift Serverless は監査ログ取得をオンにすることで、CloudWatch Logs に監査ログを出力することが可能です。

## 監査ログの種類

監査ログとして取得可能なのは、以下の 3 種類です。

|監査ログの種類|説明|
|:–|:–|
|接続ログ|認証試行、接続、切断をログに記録します。|
|ユーザーログ|データベースのユーザー定義の変更に関する情報をログに記録します。|
|ユーザーアクティビティログ|各クエリをデータベースで実行される前にログに記録します。ユーザーアクティビティログについては、監査ログ設定の他、データベースパラメータ `enable_user_activity_logging` も有効にする必要がありますが、Redshift Serverless 名前空間作成時、もしくは既存の名前空間の変更でユーザーアクティビティログ有効化時に自動で有効化されます。|

各種ログの詳細は以下ドキュメントを参照ください。

https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/serverles

元記事を表示

CloudFormationテンプレートをJSONからYAML変換して保存する方法

# CloudFormationとは
CloudFormationはプログラミング言語やYAML,JSONを使用してAWSリソースを構築出来るサービスです。
AWS環境をテンプレート化しておくことで、同じ環境を作成する時間を削減することができます。

## テンプレートをYAMLからJSONに変換する方法
「`CloudFormation`」→「`スタックの作成`」→「`デザイナーで表示`」を選択。
![スクリーンショット 2022-11-20 19.43.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983197/2ddec1df-e6e2-6643-0d3e-edde50f50847.png)

`テンプレート言語の選択`があるので、JSONを選択。
![スクリーンショット 2022-11-20 19.50.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2983197/aaf26215-b111-339

元記事を表示

Cloudformationでインフラ環境とnginx載せたEC2を立ち上げる

# 本記事の内容

– AWS Cloudformationを利用して、下記を行う
– パブリックサブネットにnginxが動作するEC2(Amazon Linux2)を作成する
– 最低限のネットワークACL、セキュリティグループを設定する
– nginxはインストールのみで設定変更は特に行わない
– Cloudformationへのデプロイはシェルスクリプトにて行う

# 実施環境
– WSL2 Ubuntu-20.04
– AWS-CLI
– aws-cli/2.9.0 Python/3.9.11 Linux/5.10.16.3-microsoft-standard-WSL2 exe/x86_64.ubuntu.20 prompt/off

# 手順概要

1. デプロイ用のシェルスクリプトの準備
2. Cloudformationテンプレートの準備
3. シェルスクリプト起動
4. 動作確認

## 1. デプロイ用のシェルスクリプトの準備

Cloudformationへのデプロイは、順番にテンプレートをデプロイするシェルスクリプトを使用しま

元記事を表示

Amazon ECS のメトリクスデータを、ADOT Collector を使って Prometheus と Garafana で可視化してみた

# はじめに

[前回の記事](https://qiita.com/sugimount-a/items/7c62582972a80deccd7d) では、Amazon ECS のモニタリングを、Container Insights で行う方法を紹介しました。AWS CLI のコマンド 1 個だけで、Container Insights が利用できるので、非常に素早く利用開始できるのが特徴です。

Container Insights でも十分運用が出来ると思いますが、個人的に気になる点があります。Container Insights では、タスク単位の過去のメトリクスが取得出来ない挙動となっています。最新のメトリクスはタスク単位で取得できますが、過去に遡って確認することはできません。とはいえ、サービス単位の過去メトリクスが取得できるので、これで十分と考えることも出来ます。が、個人的にはタスク単位で過去のメトリクスが見たいときがあるので、別の方法を検証してみます。

# Prometheus, Grafana で可視化

ECS には、ADOT Collector (AWS Dist

元記事を表示

AWS FIS を利用して Fargate を対象に障害注入実験

# 前提

– ECS Fargate タイプで、タスクを 2 つ起動していること。
– サービスの設定で、最小および最大実行タスクを最小 100% および最大 200%にしていること。

# FIS の設定

FIS の設定で押さえておさえておきたいのは、基本「アクションタイプ」と「ターゲット」の 2 つです。
また、FIS が実験を行うためのアクセス許可をIAMロールで作成する必要もあります。

S3 または、CloudWatch Logs へログを送ることもできますが、今回は省いています。

## アクションタイプ

FIS では次のようなアクションがサポートされています。

https://docs.aws.amazon.com/ja_jp/fis/latest/userguide/fis-actions-reference.html

ここでは、**aws:ecs:stop-task** を指定しています。
![スクリーンショット 2022-11-20 16.30.57.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

CloudFront 標準アクセスログをオンに

# CloudFront 標準アクセスログ

ちょっとどんな感じなのかな?と思って試してみただけです。

# CloudFront の設定

標準ログ記録を「オン」にし、ログ保存用のバケットを選択すると以下のエラーが出ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/119864/7de29387-4e68-de02-b207-7c01943ffaf8.png)

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

外部アカウント `c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0` からの許可必要のようです。

「Enable ACLs」 にてACLを有効にする事でログをオンにできました。
S3バケットのACL設定について確認してみると、以下の通り `外部アカウント` が追加

元記事を表示

Redshift Serverless で設定できる制限について

AWS の Serverless サービスは、利用者がキャパシティやサーバーの詳細な設定・管理をしなくても、AWS 側で自動管理・スケーリングしてくれます。
Redshift Serverless も例外でなく、従来の Redshift クラスターと違って設定項目が少なくチューニングに手間がかからなくなっています。
しかし、利用量に合わせて無限にスケールアウト・スケールアップしてしまったら、それに応じた課金が発生してしまいます。
無尽蔵な課金が発生する前にスペックを管理・利用量を通知する機能として、Redshift Serverless には「使用制限」があります。今回は、この使用制限の設定について詳細をまとめていきます。

## 1. Redshift Serverless における「制限」の種類
Redshift Serverless コンソール画面でワークグループの詳細を見ていただきますと、そのスペックや利用量を調整するために設定できる「制限」というタブがあります。
制限タブで設定できる項目は、大きく 3 つに分かれています。

– Redshift 処理

元記事を表示

[AWS IAM] EC2インスタンスからS3にアクセスする

## 前提

– group has many users
– user, groupe, role has many identity-based policies
– role is assumed by user, group, service(e.g. ec2
– ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534442/19d3c468-c418-5d97-b919-c27ac71e163b.png)
).

policyには2種類ある。

– identity-based policy
– SVO
– 多分 S=principalに設定できるのはrole, user, group。EC2インスタンスのARNは設定できなさそう?
– resource-based policy
– SVOでOに貼り付けられる。
– e.g. S3 bucket policy

## Roleについて

(1) roleの作成
(2) roleの貼り付

元記事を表示

AWS FinTech Bootcampで学んだ9つのFinTechベストプラクティス

## はじめに

初めまして、まずは私の自己紹介ですが現在会社Susten Capital ManagementというFintechベンチャーでbackend兼インフラエンジニアとして働いております。

インフラは主にAWSを使っていて日頃AWSさんにはサポートも含めお世話になっており、そんな中こちらのイベントの招待メールが届いたので参加してくることにしました!

https://aws-startup-lofts.com/apj/event/9ecc214a-a42a-416a-a766-1a8eae8c04ad

私自身このようなイベントに参加したことはないのでドキドキでしたが他の金融ベンチャーの方と繋がることができるいい機会だし、Fintechのベストプラクティスにどれだけ現在のサービスが追い付いているか確認する機会としても最適だと思ったので参加してみました。

この記事ではAWS Fintech Bootcampで学んだ金融サービスのAWS設計ベストプラクティスを項目ベースでまとめていこうと思います!

disclaimerとしてですがこの記事で紹介しているのはあくまで個人の見

元記事を表示

「AWS Amplify Studioではじめるフロントエンド+バックエンド統合開発」 輪読会②

# 「AWS Amplify Studioではじめるフロントエンド+バックエンド統合開発」 輪読会②

## 開催日時

2022.11.19 (土) 21:00-22:00

## はじめに

– [前回](https://qiita.com/okapee0608/items/fd255157113a2c2137bd)
– ~~はじめての方がいらっしゃれば改めて自己紹介~~ → 特にいらっしゃらなかったので無し

## Studioを触ってみての所感
今回、はじめてまともにStudioを触ったのでかんたんに所感を。
かんたんなモックやそこまでスケールしない(残念ながらしなかった、もしくは最初からする予定のない)サービスを作るのであれば問題ない感じ。むしろGUI上でデザインやデータを一元的に管理できるのはとても便利。
スケールさせるのであればもろもろ問題になってくる箇所はでてきそう(そこは追々記載していく)。

## Chapter2

### 進め方の方針

– メンバーが素のAmplifyを触ったことがあったため、Studio特有のところ以外はスピーディーに終わらせる。

元記事を表示

QuickSightへテキストボックスを追加する

# はじめに
先日のQuickSightのアップデートで、テキストボックスが追加できるようになりました。

https://aws.amazon.com/jp/about-aws/whats-new/2022/11/amazon-quicksight-textbox/

ダッシュボード等では数値やビジュアルでは表せられない、前提や洞察などの説明文を記載する欄が必要と思われますが、以前はそれをインサイトを使うことで実現する記事を書きました。

https://qiita.com/a_b_/items/eda666471b0b3f523318

今回のテキストボックスは、インサイトより手軽に説明文を追加できるパーツのようです。

# やってみた

ビジュアルタイプから選べるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/553680/8481fe82-923c-131b-1a9c-11dda040315e.png)

もしくは、右上の追加でも可能です。
![image.p

元記事を表示

【悪用厳禁!!】【AWS】【CloudFormation】EC2で海外にVPNサーバを構築して自分のPCから接続する方法

# 前提
– [AWS VPN](https://aws.amazon.com/jp/vpn/)とは関係ないのでご注意ください
– AWSアカウントが事前に作成済み、または自ら調べてアカウント作成の上、支払い設定までできること
– 完全に無料ではないこと(EC2やEIPが時間やデータ通信量で課金が発生します)
– AWSのムンバイリージョンにVPNサーバを立てていること(別リージョンにしたい場合は以下を変更すること)
– 手順中のムンバイリージョンを選択の部分を任意のリージョンにする
– CloudFormationテンプレート
– PublicSubnetAAZ
– EC2InstanceConnectRegionCIDRIp([AWSが提供するIPレンジ](https://ip-ranges.amazonaws.com/ip-ranges.json))
– 最後に、VPN接続を利用して発生した個人の問題に関しては自己責任でよろしくお願いします

# はじめに
世の中のあらゆるサービスはしばしば日本と海外で内容や価格が異なる場合がありま

元記事を表示

【超初心者】AWS CLIセットアップまで

微妙にわかりづらかったので書きました。
[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html)が間違いないのは間違いありません。

# CLIをインストールする
↑の公式ドキュメントでまずCLIをインストールしてください。
`$ aws –version`でインストールができているか確認できます。
ここではつまらなかったので説明省きます。

## 準備
設定したい[IAMユーザーは事前に作成](https://qiita.com/iwajin/items/2cb0886aba80fddafee8)してください。
①IAMコンソール、左ペインの`ユーザー`を押下
②設定したいユーザーを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779468/23acb16e-80a9-1c17-4744-eb9c65af59cb.png)
***
`認証情報`

元記事を表示

Selenium コードを GUI で自動生成して実行するアプリを作りました

## 動機
現場ではまだまだ手動でのテストが多いと聞き、手動でのテストをしている人向けに自動テストに慣れてもらいたいと思い、自動テストコードを GUI で生成して、それを AWS上で実行できるアプリを作りました。
巷で売られている自動化ツールの簡易版みたいなもんです(Webページの画像から Xpath などを指定できない、とか)。

## 成果物

公開している URL は、

https://master.d28diowzfkuhqr.amplifyapp.com

公開しているコードは、

https://github.com/YmBIgo/auto-run-test-code

にあります。

#### GUI について

GUI で操作とは言っても、Xpath や If文・While文 くらいの基本的な IT知識は必要になります。
基本的な GUI は下のようになっています。

![スクリーンショット 2022-11-19 18.54.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/9264

元記事を表示

【超初心者】IAMユーザーの追加

自分のAWSアカウントを持っている前提で書きます。
[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_users_create.html)

IAMのコンソールを開く
①左ペインの`ユーザー`を押下
②`ユーザーを追加`を押下
![Screenshot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779468/7fb5c2e3-283c-6f7f-cabd-98b63c3cedec.png)
***
追加するユーザー名を入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2779468/feb98fed-6704-cd6e-7565-41b877783c67.png)
***
①各チェックを入れる
②`次のステップ:アクセス権限`を押下 ※コンソールで操作するためには2つ目のチェックが必要
![ima

元記事を表示

初心者がAWS lambdaを使ってみたお話

初心者がAWS lambdaを使ってみた感想。
# AWS lambdaとは
Lambda はサーバーをプロビジョニングしたり管理しなくてもコードを関数として実行できるサービスです。
関数とは・・・中学校の数学の関数、y=f(x)を想像してください。(懐かしい)
![Screenshot_20221119_161402.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/933408/8c016890-457d-7dcd-11e4-b3d3e2c6e15b.png)
左からxが来てます。真ん中の四角が関数のf(x)。で、右側にyが出力されています。
つまり、xが何らかのブラックボックスf(x)を通るとyに変換されて出てくるわけですね。この四角のf(x)の部分がlambdaです。
左のxはトリガー、右のyは送信先になります。
# サーバレスって言ったって・・・
lambdaはサーバーレスであるのが特徴で、EC2とかにデプロイする必要がありません。ですが、実際にはそれを意識させないだけで、どこかの仮想環境に関数が

元記事を表示

OTHERカテゴリの最新記事