- 1. AWSのStreaming Serviceを使って、Unityで動画をStreamingする
- 2. AWS CLI SSM接続時のエラー【 [SSL: CERTIFICATE_VERIFY_FAILED]】対処法メモ
- 3. IoT CoreからAMP(Amazon Managed Service for Prometheus)へデータ登録するLambdaを作った話
- 4. 【反面教師】AWSの無料利用枠を勘違いし、ちょっと泣きたくなった話
- 5. Dynamooseのクエリまとめ
- 6. [AWSのECSのエラーを解決したお話] ValidationError: Member must satisfy regular expression pattern: [a-zA-Z][-a-zA-Z0-9]*
- 7. LambdaでS3のファイルを読み書きする
- 8. [EC2]windowsではsshを使えないと思い込んでいたけどそんなことなかった。
- 9. LinuxサーバにSSHしたくてもできない人へ
- 10. 不要になった AWS Organizations のメンバーアカウントを削除(閉鎖)する方法
- 11. AWS EC2 Laravel アップロードしたファイルのS3設置メモ
- 12. AWS S3 Laravel画像アップロード オブジェクトポリシーについてのメモ
- 13. デプロイ時にエラー「ModuleNotFoundError: Module not found: Error: Can’t resolve ‘turbolinks’ …」が出る
- 14. AWS S3 「オブジェクト所有者」について
- 15. EC2にログインする
- 16. terraform import: ECS / Application Auto Scaling
- 17. AWS S3 Laravel Storage::putFileするときにfalseが帰ってくる
- 18. ハマりポイントから学ぶ ALB と NLB の違い
- 19. AWSにARMプロセッサー環境のOpenShiftをデプロイ
- 20. Lambdaで画像分類AIをサーバレスAPI化して得た5つの知見
AWSのStreaming Serviceを使って、Unityで動画をStreamingする
# AWSのStreaming Serviceを使って、Unityで動画をStreamingする
## ツール情報:
この記事で利用するのツール:
– [AVProVideo](https://assetstore.unity.com/packages/tools/video/avpro-video-core-edition-181844)
– Unity: 2018.4.2f1
– AWS S3 Service
– AWS Elemental MediaConvert Service## Streaming Mechanism:
ストリーミングのメカニズムでは、1つファイルを数パーツファイルに分けて、プレイバック時間で判定、適切なパーツをDLして、再生する。—
## システム構築図:
![architecture.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2156015/7102647f-f9e6-5875-1e95-8aa89d75dacb.png)
| Service |
AWS CLI SSM接続時のエラー【 [SSL: CERTIFICATE_VERIFY_FAILED]】対処法メモ
# 0.問題
気ままに更新ボルベルトでーす。今日はEC2にSSMを使って接続をしようとしていたらエラーが出たのでメモしていきます。
やろうとしていたことは以下です。
* IGを作成したVPCにEC2を立ち上げる。なお、VPCはDNSホスト名とDNS解決を有効とする。
* EC2にSSM接続を許可したポリシーをアタッチする(AmazonSSMManagedInstanceCoreというポリシー)
* aws cliから下記コマンドでssm接続を試みる
“`
aws ssm start-session –target “インスタンスID”
“`
上記手順でSSM接続しようとしたところ下記のエラーが発生
“`
SSL validation failed for https://ssm.ap-northeast-1.amazonaws.com/
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
“`# 1.解決策(一時しのぎ)
結論、“`–no-verify“
IoT CoreからAMP(Amazon Managed Service for Prometheus)へデータ登録するLambdaを作った話
IoTデータをPrometheusに入れてGrafanaで見れたらおしゃれな気がする。理由はないけど。
しかーし
**IoT CoreのルールアクションにPrumetheusがない(泣)**
2022/4/3現在の指定できるアクションはこちら。
![ap-northeast-1.console.aws.amazon.com_iot_home_region=ap-northeast-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/2cd343f6-a326-b811-93fe-932ab775761d.png)
ないならLambdaで作ろうと思い立ち、作ったのがこちら。
https://github.com/moritalous/iot2aps-lambda
構成はこのようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/85d2428e-16b0-2ab
【反面教師】AWSの無料利用枠を勘違いし、ちょっと泣きたくなった話
# ある日
2022/3月、AWSの無料枠の範囲でこんなことをしていた。
環境構築後は、インスタンスなどは停止した状態で放っておいた。
https://qiita.com/yokoo-an209/items/547d9a495a0a83855031
そして、ふとメールを見るとAWSからこんな通知メールが
![スクリーンショット 2022-04-04 21.55.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/669969/81b8c47f-8450-5e8a-30fa-d684fe7b68b7.png)
**`Total in JPY: 8,954*`**
「ほぇ?」
一瞬なんのことを言ってるかよくわからなかったが、冷静になりよくみてみると・・・
「あれ、もしかしてこれ先月の請求のこと言ってる?
まだ登録して12ヶ月以内だから無料枠のはずなのにどういうこと??」悪い予感を抱えながら、`Billng`を見にいくと・・・・
![スクリーンショット 2022-04-04 22
Dynamooseのクエリまとめ
## 書こうと思ったきっかけ
今参画してるプロジェクトのデータベースに**DynamoDB**を使っていて、そのORMとして**Dynamoose**を使っています。
ただ、調べながら実装していて思ったのが、**記事が少ないんじゃあ**ということ?
なので、今回は実務でよく使っているクエリ文を紹介できたらと思います。## そもそもORMとは
> オブジェクト指向プログラミングにおけるオブジェクトとリレーショナルデータベース(RDB)の間でデータの相互変換を行うこと。そのための機能やソフトウェアのこと。
プログラムからRDBへデータを保存するには、オブジェクトを実体化したインスタンスの持つ値を、データベースの表中の項目に当てはめて書き込む操作(読み込みの場合はこれとは逆の操作)を行なうが、通常はデータベース管理システム(DBMS)へ操作を依頼するSQL文などを生成・発行するコードをプログラム中にその都度記述しなければならない。
ORMはこの処理を専門的に受け持つもので、あらかじめ設定された対応関係の情報に基づき、インスタンスのデータをデータベースの対応するテーブルへ書き出したり、デー
[AWSのECSのエラーを解決したお話] ValidationError: Member must satisfy regular expression pattern: [a-zA-Z][-a-zA-Z0-9]*
## はじめに
このエラーで調べるとヒットしなかったので書きました同じエラーで困ってる方の助けになれば…
## 状況
AWSのECSでデプロイしようとした際のお話docker-compose.ymlを設定し
“`docker context create“`でcontextを作成して
“`docker context use“`で設定し
“`docker compose up“`を実行した際のエラー## エラー内容
“`
ValidationError: 1 validation error detected: Value ‘wordpress-
recruit_website’ at ‘stackName’ failed to satisfy constraint:
Member must satisfy regular expression pattern: [a-zA-Z][-a-zA-Z0-9]*
“`## 解決
**ValidationError** ということで
自分のディレクトリ名にしてた“`’wordpress-recruit_
LambdaでS3のファイルを読み書きする
Lambda(Python)からS3へファイルをアップロードしたり、読み書きしたりすることがあったので書き記しておきます。
権限周りの話は以前こちらに書いてあるので参考にして下さい ↓↓↓
https://qiita.com/ymktmk/items/174ab4fecb14a0a3c7e0
## Client APIとResource APIの違い
https://aws.amazon.com/jp/sdk-for-python/
・Client APIはレスポンスが辞書型なので必要な情報を取り出しにくい
・Client APIはHTTP API 操作との 1 対 1 のマッピングが提供される
・Resource APIの方がオブジェクト指向っぽく書ける
・Resource APIが用意されていないことがあるサービスもある* Resource APIはresponse.bodyというようにオブジェクトを取得してから属性を参照できると書いてあったが自分はなぜかレスポンスが辞書型であった。よく分からない。
## S3にファイルをアップロードする
* 上書きするときもs3
[EC2]windowsではsshを使えないと思い込んでいたけどそんなことなかった。
# はじめに
???「その点macってすげぇよな、sshまでターミナルでできるんだもん」
>参考記事
https://www.onebizlife.com/windows10-ssh-client-1980
!?
随分前からデフォルトでsshできるようになってたっぽいです。反省。
# 試しにEC2へSSH接続してみる。
powershellを使ってログインしようと思います。
windows10側の事前準備は特に必要ありません。
適当なec2へログインします。“`
# ssh接続のコマンド
$ ssh -i .\キーペア名.pem ec2-user@ec2のパブリックip
“`成功
![amazon linux2 ami.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2338398/f5a2f98f-d72e-dc17-d4f7-6807158fbf33.png)青い。
ログアウトするときは`exit`を入力します。
# おわりに
思い込みって恐ろしい。
LinuxサーバにSSHしたくてもできない人へ
## クラウド上のLinuxサーバへSSHしたいけどできない。けどやりたい。
会社のネットワークだとガチガチに縛られてることがある。
だけど「クラウド上のLinuxサーバへSSHしたい!」という人へ。::: note alert
普通にSSHさせてくれないのには理由があるはずです。
やるなら自己責任で。
:::このコマンドを叩いたら幸せになれます。
“`
iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 22
“`### 「このコマンドを叩くためにログインしないとダメだろ」
はい。AWSならSystemsManager使ってください。
それで事足りるなら、無理にiptablesを叩かなくていいと思います。
それでも「Teratermを使って接続したいんだ」という熱い思いがある方はiptableを叩いてください。OCIなら、、、自宅で細工してからですかね。
コンソール接続で忍び込めそうなら、それで細工してからでもいいかも。
Azureは知らん。GCPも知らん。
不要になった AWS Organizations のメンバーアカウントを削除(閉鎖)する方法
今回は、不要になった AWS Organizations 管理下のメンバーアカウントの削除を行う方法についてお伝えします。
特にこんなケースに有用かと思います。* 社内外向けのハンズオンイベントでメンバーアカウントを作成したが不要になった
* 部署の統廃合で一部の AWS アカウントが不要になった
* メンバーアカウント作成時に ルートアカウント用のメールアドレスの指定を誤って登録した2020年12月頃は、AWS Organizations 管理下のメンバーアカウントを削除するには、対象のメンバーアカウントに支払情報を設定し、組織から脱退させたうえで、ルートアカウントで解約処理をしないとなりませんでした。また、メンバーアカウント作成時にメールアドレスの設定を誤っていると、ルートアカウントでログインができないので対応ができない状況でした。
様々な理由から対応ができない場合は、削除をあきらめて Service Control Policy(SCP) ですべてのサービス実行を拒否(Deny)にして、対象のメンバーアカウントを使用不可にするといった対処方法を AWS Support
AWS EC2 Laravel アップロードしたファイルのS3設置メモ
# 概要
– EC2に設置したApacheでLaravelアプリケーションを提供し、アップロードファイルなどをS3に設置する際に.envに設定する値を記載する。
# 前提
– バケット、EC2インスタンスは作成済みのものとする。
– flysystem-aws-s3-v3のライブラリはすでにLaravelに入っているものとする。# やること
1. EC2 → S3接続用IAMユーザーの作成(S3FullAccess)
1. IAMユーザーの情報をEC2インスタンスへ登録(ターミナルでEC2インスタンスに入り`$ aws configure`コマンドで登録)
1. EC2 → S3接続用IAMロールの作成(S3FullAccess)
1. IAMロールをEC2インスタンスに紐付け(ブラウザでEC2にロールを紐付け)
1. .envに下記の内容を記載“`.env
FILESYSTEM_DISK=s3
AWS_DEFAULT_REGION=ap-northeast-1
AWS_BUCKET=バケット名
AWS_URL=https:/
AWS S3 Laravel画像アップロード オブジェクトポリシーについてのメモ
# 概要
– S3に画像アップロードを行う歳のオブジェクト(ファイル)ポリシーについて若干詰まったので簡単にまとめておく。
# 詰まった時の内容
– [AWS S3 Laravel Storage::putFileするときにfalseが帰ってくる](https://qiita.com/miriwo/items/2caf9361273c624b5cd9)
# まとめメモ
– Laravelのドキュメントでは`Storage::putFile`や`Storage::put`の部分の記載で配信したい画像に対して下記のような記載がされている。
“`
putFileメソッドとputFileAsメソッドは、保存するファイルの「可視性」を指定する引数も取ります。これは、AmazonS3などのクラウドディスクにファイルを保存していて、生成されたURLを介してファイルへパブリックアクセスできるようにする場合、特に便利です。
“`– つまり、配信を行いたいファイルは`Storage::putFile`もしくは`Storage::put`の第3引数に`public
デプロイ時にエラー「ModuleNotFoundError: Module not found: Error: Can’t resolve ‘turbolinks’ …」が出る
# 前提
Rails 6.1.3
Ruby 2.6.5
# エラー内容
bundle exec cap production deploy実行時にこのようなエラーが出ました。
“`
ModuleNotFoundError: Module not found: Error: Can’t resolve ‘turbolinks’
/var/www/アプリ名/shared/node_modules/turbolinks doesn’t exist
“`
# 結論(解決方法)
この順に打てばいいです。
“`
$ npm i ・・node_modulesがインストールされます。
“`
“`
$ bundle exec cap production deploy
“`
# 補足
turbolinksとはJSのライブラリのことです。
node_modules とは各種パッケージがインストールされるディレクトリ先のことです。
今回のエラーはディレクトリ先が見つからないというエラーです。
# 参考記事
[node_modulesの再インストール方法](https://zenn.dev/
AWS S3 「オブジェクト所有者」について
# 概要
– S3にアップロードするオブジェクト(ファイル)所有者についてまとめる
# 「オブジェクト所有者」って?
– バケットにアップロードされるオブジェクト(ファイル)が誰がアップロードしたものかを判断するもの。
– バケットの作成時・作成後に設定する事ができる。![line-crm-dev-bucket_-_S3_bucket.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306417/2f75bc31-1c0f-b2aa-4292-53180f9f188c.png)
# オブジェクト所有者の設定
### ACLを無効にする(推奨)
– AWSの公式で下記の様に説明されている。
“`
バケットオーナー強制
バケットとオブジェクトのACLは無効になり、バケットオーナーであるあなたは自動的にバケット内のすべてのオブジェクトを所有し、完全に制御することができます。
バケットとその中のオブジェクトのアクセス制御は、IAMポリシーやS3バケット
EC2にログインする
# はじめに
環境構築ため、EC2へSSH接続しようとするも、忘れていたため記事にしておきます。# 前提
・ EC2インスタンスを作成済
・ セキュリティグループのインバウンドルールでSSH接続を許可
・ .sshフォルダにpemキーが存在すること
・ EC2インスタンスにパブリックIPv4アドレスまたはElasticIPアドレスがあること# 手順
① EC2のパブリックIPアドレスをコピー
![スクリーンショット (52)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222596/e9bb0511-8b80-96bf-3e1d-c5d5b997e310.jpeg)![スクリーンショット (53)_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2222596/6fa02546-903c-ee63-21a9-dbd5c71463f4.jpeg)
② キーをIPアドレスを指定してコマンドを入力
`
terraform import: ECS / Application Auto Scaling
TerraformでECSのApplication Auto Scaling(ターゲット追跡スケーリングポリシー)のimportに苦戦したのでメモ
以前試みたときに格闘の末あきらめたのだが、さっき再挑戦してみたら5分でできた..
できてみるとこんなもんかという感じTerraformは既存のリソースからimportコマンドで簡単に定義を抽出できるが、リソースによってimportで指定する文字列がやたらと長いものがあって難儀
別にimportでやらなくてもいいのだが、できそうなのにできないのが気持ち悪いので解決したかった。ちなみにAppAutoScalingは定義が簡単なので自分で定義してもいいんだけど、リソースによっては自分で定義するのはつらそうなものがある(WAFとかCodePipeline)# import対象のApplication Auto Scaling
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/620712/537d3ca4-7569-9732-39b6-30f3
AWS S3 Laravel Storage::putFileするときにfalseが帰ってくる
# 概要
– EC2に設置したLaravelアプリケーションの内部処理でファイルをS3に設置する処理でfalseが帰ってくる問題の解決方法をメモ的にまとめる。
# 原因
– S3にアップロードするオブジェクト(ファイル) のポリシーをLaravel側で明示的にpublicに指定していたため。
– 当該のS3バケットは「オブジェクト所有者」を「ACL無効(推奨)」に設定していたため、アップロードされるオブジェクト(ファイル)個々に権限を指定する事はできず、エラーが発生したっぽい。# 問題までの経緯
1. EC2のApache上で動作しているLaravelアプリケーションにおいて、formからファイルをPost → 受け取ってS3格納する処理を作成した。
1. 受け取ったファイルをS3にアップロードする処理は下記の様に記載した。(`$file`は任意のバリデーションを通過したFormRequestクラスを継承したリクエストオブジェクトそのまま)“`php
Storage::putFile(ファイル設置するディレクトリのパス, $file, ‘public’
ハマりポイントから学ぶ ALB と NLB の違い
# はじめに
NLB を利用した構成でハマったポイントがあったため、ALB との違いを交えて紹介します。構成図はこちらです。
![nlb-drawio.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/619762/08a3a8bc-fbb7-71d6-83f0-f36d089553ac.png)NLB を選んだ理由は L4 でトラフィックルーティングしたかったからです。
ALB を挟んで SSL オフロードしたりせず、HTTPS のまま EC2 まで到達させます。# ポイント
ポイントとなる ALB との相違点は下記になります。* NLB は Security Group をアタッチできない
* NLB はクロスゾーン負荷分散はデフォルトで無効# ハマリポイント1 | NLB からのヘルスチェックに失敗する
### 事象
ターゲットグループで設定しているヘルスチェックが成功せず、`Unhealthy` 状態になっていました。
ヘルスチェックのプロトコルは `TCP` 、ポートは `T
AWSにARMプロセッサー環境のOpenShiftをデプロイ
# はじめに
今回は、OpenShift4.10でGAとなった、ARMプロセッサー環境へのOpenShiftインストールを試してみます。# ARMプロセッサーとは
ARMプロセッサーとは、ARM社が開発しライセンス販売を主体に提供しているCPUで、様々な企業がARMアーキテクチャを活用した独自CPUを作成しています。近年ではAppleがM1プロセッサーを作成したことで一般的な認知度も上がってきていますが、かねてよりiPhoneやAndroidスマホ、カーナビやゲーム機など様々なシーンで使われてきました。2017年で210億以上の出荷実績があり、後述するようにサーバ環境でも積極的に活用されてきているので、今後ますます出荷台数が増えていくことが予想されます。
このARMプロセッサーですが、高い消費電力性能が大きなメリットとして挙げられます。そのため、このCPUを活用することで、よりコストパフォーマンスの高い環境を構築しサービスを提供できるのではないか、ということで注目されています。
しかしこのような進化を遂げたのはスマートフォンが登場してからになるため、PC/サーバーのCPU
Lambdaで画像分類AIをサーバレスAPI化して得た5つの知見
AWS上でAIを実現する場合は通常SageMakerを使いますが、軽量なモデルを使う場合であればサーバーレスで実現することもできると思い環境を構築しました。実際に構築することで得た知見を5つ紹介します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1180441/f7e37019-ecf3-e41e-8f7f-81fd3c49541c.png)
以下のチュートリアルで作成した犬と猫を見分けるモデルを使用しました。
https://www.tensorflow.org/tutorials/images/classification?hl=ja
// 余談ですが、言語表示を英語にすると、犬と猫の識別ではなく、花の分類に題材が変わります。
# TenslorFlowのライブラリーはCPU版を指定する
Lambdaでの推論はCPUで行いますので、TensorFlowのライブラリーもCPU版を指定します。
また、内部で使用するKerasのバージョンも合わせておかないとエラーとなりま