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

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

【AWS】開発者ツール

# CI/CD
「Continuous Integration(継続的インテグレーション)」
「Continuous Delivery(継続的デリバリー)」の略。

アプリを作ったとしてもそれで終了ではない。バグの修正や機能追加等で、リリース後も様々な対応が必要となる。その度に、ソースコードのビルドやデプロイといった開発プロセスが発生する。個人で作っているような小さなアプリであれば小回りが効くが、企業で多くの関係者がいるプロジェクトの場合だと(人為的なミスを避けるためにも)自動化を検討する必要がある。

あまりにも分かりやすいので参考サイトの解説を引用。
テスト→ビルド→デプロイを自動化してくれるツールだが、最後のデプロイに関しては人の責任で行うということ。

>まず、開発されたソースコードがバージョン管理ツール(Git)へコミットされると、CIによって自動的に「コードにエラーがないか」「既存の機能を破壊していないか」といった各種のテストが行われます。これにより「仕様どおりの機能が実装されているか」「既存のコードに影響はないか」といった確認が自動的に行われます。つまり、CIを実施するこ

元記事を表示

Microsoft SQL ServerにODBCで接続するためのLambda Layerを作成する方法

AWS Lambda から pyodbc を使って SQL Server に接続する案件があり、若干つまづいたので備忘録的なメモを残すことにしました。

# 環境

## Lambda
– ランタイムは Python 3.9
– アーキテクチャは x86_64

## pyodbc
– unixODBC-2.3.11 (投稿時の最新)

# TL;TR

– ほぼこれ(ありがたや。。。)
https://gist.github.com/diriver63/b72a954fa0da4851d89e5086aa13c6e8?permalink_comment_id=4199559#gistcomment-4199559

– lambdaの環境変数にiniファイルまでのパスを設定する

– soファイルのバージョンに注意

# 手順(ざっくりと)

適当なディレクトリを作成

“`
$ mkdir pyodbc-layer
$ cd pyodbc-layer
“`

Dockerfileを作成

“`
$ vi Dockerfile
“`

https://gist.github.

元記事を表示

AWSでEC2起動しようとすると「You have requested more vCPU capacity than your current vCPU limit of ~」と出る

EC2でGPUインスタンスを起動しようとしたりすると、下記のようなメッセージが表示されて起動に失敗します。

“`aws
You have requested more vCPU capacity than your current vCPU limit of 0
allows for the instance bucket that the specified instance type belongs to.
Please visit http://aws.amazon.com/contact-us/ec2-request to request an
adjustment to this limit.
“`

vCPUの制限に引っかかっているので、 http://aws.amazon.com/contact-us/ec2-request を訪れて制限を解除するように言われます。

素直に従ってそのページに行くと、「インスタンス上限」というパラメータの変更依頼ができます。

![image.png](https://qiita-image-store.s3.ap-north

元記事を表示

[AWS] S3の署名付きURL(有効期限7日間)を発行する手順

S3の署名付きURL(S3 Presinged URL)は、S3バケットへのアクセス権限を持たないユーザーに対して一時的なアクセスを許可するために発行するURLです。

コンソールからも作成可能ですが、発行する条件によって有効期限が色々決まっているのが複雑で、意図した有効期限より短くなってしまう場合があります。

– IAMインスタンスプロファイル: 最長 6時間
– AWSコンソールで設定可能な時間: 最長 12時間
– IAMロールの連鎖セッションで発行した場合:最長 12時間(デフォルトは1時間)
– AWS Security Token Service (STS): IAM ユーザーが署名した場合は最長 36時間、ルートユーザーが署名した場合は最長 1時間
– IAM ユーザー: 最長 7 日間有効 (AWS 署名バージョン 4 を使用した場合)

今回は、最長の 7日間有効なURLを発行する手順を確認しました。CloudShellに少し設定を加えるのが簡単なようでしたので、そのやり方をまとめました。

# 1.CloudShellでアクセスキーを設定

CloudShellに

元記事を表示

Amazon Athenaでパラメータ化されたクエリが使えるようになったので試してみた

## はじめに
Amazon Athenaで、パラメータ化されたクエリが使えるようになったとの事。
という事で、早速試してみました。

https://aws.amazon.com/jp/about-aws/whats-new/2022/07/amazon-athena-enhances-console-api-parameterized-queries/?nc1=h_ls

## 早速試してみる
今回は、既に作成済みのVPCフローログのデータベースに対するクエリをパラメータ指定して実行してみます。
VPCフローログのデータをAthenaで解析できるようにする方法は、以下などを参照ください。

https://docs.aws.amazon.com/ja_jp/athena/latest/ug/vpc-flow-logs.html

https://dev.classmethod.jp/articles/vpc-flow-logs-athena/

まずは、パラメータ化せず、starttimeの期間だけを指定した簡単なクエリを実行します。
実行したクエリは以下です。
“`
sele

元記事を表示

AWS Amplify Studioを使ってFigmaからReactアプリを作ってみる

FigmaからReactアプリが作れる、そう、AWSならね。

ということで下記のAWSブログを参考にAWS Amplify Studioを試してみました。
https://aws.amazon.com/jp/blogs/news/aws-amplify-studio-figma-to-fullstack-react-app-with-minimal-programming/

※本記事の作業を行うにはFigmaのアカウントが必要です。

# 完成図

Card一覧を表示するだけのなにか。

![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1027861/28d91e45-de26-5312-8347-6322df189880.png)

# Figmaファイルの準備

最初にFigmaファイルを準備しておきます。
といっても、[AWS Amplify UI Kit](https://www.figma.com/community/file/1047600760128127424) なるものが用

元記事を表示

AWSのCloudWatchで請求アラームを作成してみる

# 概要
無料枠を個人で利用しているため、想定外の請求防止のためにCloudWatchで請求アラームを作成します。

# 手順
– CloudWatchの画面を開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367069/18db821e-c7a0-83f2-773d-84f7b36ce5af.png)

– リージョンをバージニア北部にする![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367069/23942073-2084-52e0-aeb8-33d05e0c8263.png)
– すべてのアラーム → アラームの作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367069/571e2e98-301d-de2b-9430-169aed07c545.png)
– メトリクスの選択

元記事を表示

AWS Builders Online 感想(7/14)

時間が3枠あるのは参加しやすくて助かります。
19時枠に参加しました。

ちなみに4年ほど前にSAA所持していますが、実務経験はなし。
趣味で触ったりイベント参加する程度のAWS力です。

自分以外の感想はTwitterで`#AWSBuilders`で検索するといっぱいあります。

# 感想

## いちばんはじめに押さえておきたい!初学者向け AWS キーワード Top 10 〜一気に解説編〜
`欲しかったのは AWS App Runner でした 〜とあるウェブアプリを AWS 上でいい感じに公開する話〜`
と迷いましたが、久々なのでこっちに。

最後のコツが一番ためになると思いました。

– AZ
– AZ設置のポリシーの詳細までは知りませんでした。
– Blackbelt
– 初学者ながら新入社員に「何勉強すればいいですか?」と聞かれるたびにBlackbeltをみてほしいと言っていたので、こういう場で案内してもらえると助かる。
– 併せて案内している[AWS 初学者向けの勉強方法 6 ステップ!2022 年版!](https://aws.amazon.c

元記事を表示

【AWS入門】初学者が知りたい10個のAWS用語

2022年7月14日のAWS Builders Online Seriesで初学者向けに開催された講座「いちばんはじめに押さえておきたい初学者向けAWS キーワードTop10」の内容をまとめました。

# 1. region
AWSが提供する世界中で使えるクラウドプラットフォーム、グローバルインフラストラクチャを理解するためのキーワードとなります。

> AWSクラウドは、全世界 26 の地域にある 84 のアベイラビリティーゾーンにまたがっており、オーストラリア、カナダ、インド、イスラエル、ニュージーランド、スペイン、スイス、およびアラブ首長国連邦 (UAE) に 24 アベイラビリティーゾーンと 8 AWS リージョンを追加する計画が発表されています。
![AWS_keyword_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2699626/32918330-630f-7468-391e-c744209c0a89.png)
https://aws.amazon.com/jp/about-aws/

元記事を表示

AWSマネジメントコンソールからS3バケットを作成してみる

# 前提・注意事項
バケット作成に必要な設定内容は、要件に応じて適宜検討・設定する必要があります。本記事はあくまでの参考情報としてとらえてください。
# 手順
– S3を選択して「バケットを作成」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367069/82b7ea50-f8ac-a96d-2744-d324f1aaea0a.png)
– バケット名、リージョンを選択
オブジェクト単位でアクセスを指定することができるアクセスコントロールリスト(ACL)は無効のまま
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367069/a18ea4f3-a08c-36e2-6a7d-9e852d94541f.png)
– パブリックアクセス設定はデフォルト(非公開)のまま
![image.png](https://qiita-image-store.s3.ap-northeast-1.ama

元記事を表示

EC2にCloudWatch エージェントを設定してCloudWatch Logsにログを送信する

# AutoScalingグループのEC2でログを取りたい
EC2でWEBアプリケーションなんかを運用していて発生するログを取得したいが、AutoScalingなどで運用しているとログが消えてしまうことがあると思います。
そういう場合はCloudWatch Logsを使いますう。すると随時ログをAWSにエクスポートするような形でAWSコンソールからほぼリアルタイムでログを確認できます。

# CloudWatch Logs エージェントではない
過去にCloudWatch Logsを利用した際はCloudWatch Logs エージェントを利用していたのですが、2022年現在ではCloudWatch Logs エージェントは非推奨となっています。文字表記が似ていて勘違いしやすいのですが、現在はCloudWatch エージェントを利用することが推奨されています。

非推奨

https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/logs/AgentReference.html

推奨

https://docs.aws.ama

元記事を表示

VMware Cloud on AWSとAWS Managed Microsoft ADを連携させてユーザー権限管理してみた

# 1. はじめに
オンプレミス環境において、ユーザー権限の管理をActiveDirectryで実施するというの非常によくあるケースかと思います。

ファイルやフォルダの閲覧権限の管理に利用したり、VMware仮想環境においてもvCenterへのアクセス権限やより細かいvSphereのアクセス許可(例えば管理者ユーザーAには仮想マシンの作成許可、一般ユーザーBは仮想マシン一覧の閲覧のみ許可、etc..)などを実現されているかと思います。

本ブログでは、[VMware Cloud on AWS](https://aws.amazon.com/jp/vmware/)環境においても同様にActiveDirectoryと連携させてユーザー権限管理ができるという例をご紹介しようと思います。

# 2. 全体アーキテクチャ概要

今回はVMware Cloud on AWSのvCenterと連携するActive Directoryとして、AWS Directory Serviceの1つである、[AWS Managed Microsoft AD](https://aws.amazon.com/jp

元記事を表示

【AWS】シード期スタートアップのインフラ構成を公開

# はじめに
今回、AWSを利用し、スクラッチからプロダクトを立ち上げました。
記憶が新鮮なうちに、どのように考え、どのような構成にしたのかを残しておこうと思います。

シード期のスタートアップの方や、個人開発で規模の大きいものをゼロから作ろうとしている方の参考になれば嬉しいと思ってます。

# 前提の整理
### どんなプロダクトか?
作成したプロダクトの概要としては
**「顧客のwebアプリ上でサーベイを配信する」** ことが出来るプロダクトです。

もちろんただ配信するのではなく以下の機能などもあります。
– 高精度なユーザーの属性ターゲティング
– 適切なタイミングで配信するための行動ログターゲティング
– 広告配信システムのようなフリークエンシーなどの多数の機能

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/234760/415b3071-47b0-67d4-e03b-8022c3489f42.png)
※ ざっくりイメージを捉えてもらえたらと思います

### どんな要求

元記事を表示

Terraformでdynamicを活用して複数×複数のブロックを書く

* 配列になっている変数を複数行並べる
* dynamicブロックの中でfor_eachを活用し、行数分ブロックが作成される
* 複数ブロックの中の値はeach.valueの要素番号で取得する

# 例
“`terraform
locals {
Setting = {
custom_error_response = {
res-403-403 = [10, 403, 403, “/error-403.html”],
res-502-502 = [10, 502, 502, “/error-502.html”]
}
}
}

resource “aws_cloudfront_distribution” “cdn” {
dynamic “custom_error_response” {
for_each = Setting.custom_error_response
content {
error_caching_min_ttl = custom_error_response.value[0]

元記事を表示

【備忘録】AWS CloudShellを利用してEC2に接続する際のセキュリティグループについて

## はじめに

普段EC2に接続する際にセッションマネージャーやローカルでTera Termを使用していましたが、以前AWS CloudShellを利用してEC2に接続する際に、セキュリティグループのソース設定で困った時があったので備忘として残します。

## CloudShellって何?

AWS CloudShellは、ブラウザーベースの事前認証済みシェルで、AWSマネージメントコンソール上から簡単にシェルを実行出来るサービスです。
シェル(Bash, PowerShell, Z Shell)やAWS CLIがインストールされているため、各コマンドラインツールが利用可能です。

詳細については、下記の**ユーザーガイド**を参照してください。
[・Web版](
https://docs.aws.amazon.com/ja_jp/cloudshell/latest/userguide/welcome.html)
[・PDF版](https://docs.aws.amazon.com/ja_jp/cloudshell/latest/userguide/awscloudshe

元記事を表示

t4g(Armベース)のEC2にunisonを入れて2台間で同期をとる

t4gは安くて早いのでどんどん使っていこう!と思っていたのですが、Armベースなので、バイナリパッケージがない場合があり、ちょっと一般的ではないものを入れようと思うとちょっと大変な場合があります。
というわけで、unison を入れるのに手こずったので、記録を残そうと思います。
ちなみに unison は、サーバー間のファイル同期とかができるツールです。
https://www.cis.upenn.edu/~bcpierce/unison/

# opam のインストール

unison は OCaml という言語で書かれていて、opam は OCaml のパッケージマネージャーだそうです。
というわけで、まず opam をインストールします。

[opamのインストール手順](https://opam.ocaml.org/doc/Install.html)に書いてあるように、スクリプトを実行します。

“`shell
$ sudo bash -c “sh <(curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master

元記事を表示

AWS SDKのListObjectsV2でxmlParseCharRefエラー

タイトルだけ見てもさっぱり何のことかわからないかもですが、S3のオブジェクト一覧をとるAPIであるListObjectV2での出すこのエラーでえらいハマったので誰かのお役に立てばと思い投稿しました。

以下、コードはrubyです。

# 基本的な使い方
まず、sampleバケットに下記のようなオブジェクトがあるとします。
“`
sample/
├ aaa/
├ aaa1/
└ aaa2.txt
└ aaa3.txt
├ bbb
├ bbb1
└ bbb2
└ ccc.txt
“`
この時、バケットだけを指定するとsampleバケットのすべてのオブジェクト一覧が取得できます。
“`
# s3はAws::S3::Clientのオブジェクト
res = s3.list_objects_v2({bucket: ‘sample’})
res.contents.each do |k|
p k.key
end

出力
aaa/
aaa/aaa1
aaa/aaa2.txt

元記事を表示

ロググループ > ログストリームのDatadog MonitorをTerraformで作成

## What’s This
ログストリーム単位でDatadog MonitorをTerraformコードで作成した時があったので、その時のメモです。
あくまでメモなので、参考にされる場合は、公式ドキュメント等の副読的な感じで読まれると幸いです。

## バージョン情報

“`
$ terraform version
Terraform v0.12.0
+ provider.datadog v2.25.0
“`

## コード

自分が構築時に気になっていたのは、以下でした。

“`
・クエリをどう書くか
・記載が必須なものは何か
“`

ダウンタイムの設定や、タグの設定、閾値など、ご希望の値に置き換えていただけたらいいのかなと思います。

“`
resource “datadog_monitor” “ec2-error-test” {
name = “ec2-error-test”
new_host_delay = 0
no_data_timeframe = 0
notify_audit = fals

元記事を表示

AWS DynamoDB

# Amazon DynamoDB とは
**Amazon DynamoDB デベロッパーガイド**

Amazon DynamoDB は、フルマネージドの NoSQL データベースサービスであり、高速で予測可能なパフォーマンスとシームレスな拡張性が特長です。DynamoDB を使用すると、ディストリビューションデータベースの運用とスケーリングに伴う管理作業をまかせることができるため、ハードウェアのプロビジョニング、設定と構成、レプリケーション、ソフトウェアパッチ適用、クラスタースケーリングなどを自分で行う必要はなくなります。また、DynamoDB も保管時の暗号化を提供し、機密データの保護における負担と複雑な作業を解消します。詳細については、「[保管時の DynamoDB 暗号化](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/EncryptionAtRest.html)」を参照してください。

DynamoDB を使用して、任意の量のデータを保存および取得できるデータベーステーブルを作成

元記事を表示

AuroraServerless v2 のDBユーザ作成&権限付与のエラー対処(ERROR 1045 (28000): Access denied for user ‘admin’@’%’ (using password: YES))(ERROR 1064 (42000): You have an error in your SQL syntax;)

※試してませんが以前のようにGRANTでいきなりユーザ作るってことができなくなっているみたいなのでまずはCREATE USERを使ってユーザ作成してください

バージョン
“`
mysql> select version();
+———–+
| version() |
+———–+
| 8.0.23 |
+———–+
“`
## 発生エラー
パターン1

“`
grant all on *.* to ‘audit’@’%’;

ERROR 1045 (28000): Access denied for user ‘admin’@’%’ (using password: YES)
“`
パターン2
“`
grant all on `%`.* to ‘audit’@’%’ identified by ‘password’;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL

元記事を表示

OTHERカテゴリの最新記事