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

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

コグニティブ関連サービスまとめ(AWS、Azure、GCP)

コグニティブ関連サービスをまとめ中

||AWS|Azure|GCP|
|:–|:–|:–|:–|
|画像からテキスト抽出|△
[AWS Textractでテキスト抽出やーる(Python3.6)](https://qiita.com/SatoshiGachiFujimoto/items/470925399dd7e0511609)|○
[Azure Computer Vision APIでテキスト抽出(Read API)やーる(Python3.6)](https://qiita.com/SatoshiGachiFujimoto/items/fd56e3a9a12f617467c3)
[HoloLensでテキスト認識(Azure RecognizeText API)をやーる](https://qiita.com/SatoshiGachiFujimoto/items/7b194fca62334b393314)
[HoloLens2 × Azure Cognitive Services(Read APIで文字認識し読み上げ)](https://qiita.co

元記事を表示

ssh: connect to host github.com port 22エラーが発生した

# はじめに
Qiita初投稿です。
至らない点があればご教授いただけると幸いです。
## やりたかったこと
本番環境にgit pullしたかったがそもそも接続できていなかったようなので
SSH接続のテストのコマンドを打ったところタイトルのエラーが発生した。
“`
$ ssh -T git@github.com
ssh: connect to host gitlub.com port 22: Connection timed out
“`
## 試したこと
・EC2のアウトバウンド編集
・port22ではなく、port443への接続
・SSHキーの再設定

を試してみたがどれも解決には至らなかった。
port443への接続に関しては別途proxyの設定が要りそう(理解していない)。
## 解決策
非常に頭を悩ませたSSH接続だったが思わぬところで解決した。
“`
$ vi ~/.ssh/config
“`
configを開く。
“`
Host github
HostName github.com
IdentityFile ~/.ssh/id_rsa
User gi

元記事を表示

【10分AWSハンズオン】ExpressをAWS Lambda+API Gatewayにデプロイする

# やること

Lambda 上の Express にアクセスできるようにする。

# 学べること

* サーバレス Express アプリケーションの作り方
* Lambda へのデプロイ
* API Gateway と Lambda の連携

# 扱わないこと

* Infrastructure as Code
* TypeScript
* CI/CD

# STEP 1 : Serverless Express

1-1. 適当なディレクトリに Node.js プロジェクトを作成し、必要なパッケージをインストールします。

“`sh
$ npm init -y
$ npm i express @vendia/serverless-express
“`

:::note warn
`Node.js` がインストールされている必要があります。
`n` という Node.js のバージョン管理ライブラリを使用するのがおすすめです。
Mac を使用している方で、Homebrew がインストール済みの方は、以下のコマンドで Node.js をインストールできます。

“`sh

元記事を表示

AWS – Capistranoを使ってデプロイした際のエラー奮闘記

こんにちは。
早く駆け出しエンジニアになりたい@iloveomeletteです。

標題にある通り、Capistranoを使ってデプロイした際に少々苦戦したので、
共有していこうと思います。
ポケモンのジム戦のようにエラーを解決するたび、またエラーに遭遇するということを繰り返してました。しょうもないエラーも紹介しつつ解決までの過程を書いていきます。
誰かの参考になれば幸いです。

尚、ご指摘箇所がございましたら
ご教授いただけますと幸いです。

それでは以下の目次でお送り致します。

| ラウンド | エラー項目 |
|:-:|:-:|
| 1 | VS 『supports platforms』 問題 |
| 2 | VS 『An error occurred while installing mysql2 (0.5.3)』 問題 |
| 3 | VS 『Mysql2::Error: Unknown database ‘アプリ名_production’』 問題 |

## 前提

それでは、まず環境などの前提部分からですね。

– macOS Monterey 12.3.1

元記事を表示

【Spring】AWSデプロイで初心者がぶち当たる疑問に答える

# 概要
ローカル環境(Eclipse)でSpring Boot(Java)アプリケーションを開発し、その後AWSでデプロイに挑戦しようとする初心者がぶち当たるであろう疑問と、その解決策を順を追って説明します。

私自身、AWSやその周辺知識ゼロの状態から独学でデプロイに成功できましたが、知っている人からすれば当たり前でも初心者ゆえにわからないことが多く、解決に時間を要しました。本記事では、初心者なら私と同じような疑問をもつのでは?と感じた部分に触れていきます。

# 本記事のゴール
– DBを利用するローカルのSpringアプリケーションをjar化し、デプロイできるようになる(具体的には下記)
– Eclipseからjarファイルを作成しEC2に配置できるようになる
– EC2で環境変数を適切に設定し、RDSのDBに接続できるようになる
– AWSデプロイという、初心者が尻込みしがちな未知の作業に対するハードルを下げる

# 本題
こちらの記事を参考にデプロイに挑戦、またデプロイに必要な周辺知識について調べていたところ疑問点が複数出てきました。

– [【初心者必見】

元記事を表示

ECSのログインでInvalidParameterExceptionのエラーになった際の解決方法

# 概要
ECSにログインしようとしたらエラーで弾かれるため、その解決方法のメモ。

# 前提条件
– AWSのECSを組んでいること
– ECSログインを試みるとエラーになること

# エラーの事象
## ECSログインコマンドでのエラー

“`bash
$ aws ecs execute-command \
–region ap-northeast-1 \
–cluster {cluster名} \
–task {task名} \
–command “sh” \
–interactive

The Session Manager plugin was installed successfully. Use the AWS CLI to start a session.

An error occurred (InvalidParameterException) when calling the ExecuteCommand operation: The execute command failed because exe

元記事を表示

【初心者】AWS Lambda Function URLs (関数URL) を使ってみる

# 1. 目的
– たまには新機能のキャッチアップもしないといけないと思い、ちょっと便利そうなAWS Lambda Function URLs(関数URL) を使ってみることにした。

# 2. やったこと
– 「[PokeAPI](https://pokeapi.co/)」(ポケモンデータの検索ができる公開API)にアクセスしてデータを取得するLambda関数を作成し、関数URLの機能を有効にして、インターネットからアクセス可能なURL(関数URL)を設定する。
– 上記のURLに対してブラウザからアクセスする。Lambda関数が実行されて、ポケモンデータの取得が行われ、結果が表示できることを確認する。

# 3. AWS Lambda Functions URLs とは(自分の理解)
– インターネット上にエンドポイント(関数URL)を作成し、そこをたたくことでインターネット経由(https経由)でLambda関数の実行が可能な仕組み。
– 従来は同様のことをやりたい場合、API Gatewayが必要だったが、場合によっては省略することができる。

# 4. 構成図

![func

元記事を表示

AWS Certified Solutions Architect – Associateの合格記と振り返り

# はじめに
エンジニア歴3年目にしてようやく取得することができましたので、同じ資格を目指す人の参考になればと、直近で行った勉強法などをまとめておきます。これから記載する勉強方法などを試せばこれぐらいは狙えるという目安のため、まずは結果報告から
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1700794/88df0d5e-9625-042a-2e53-3a4ecea42592.png)

720点が合格ラインなので、ギリギリ気味ですがまあ及第点っていう感じかなと個人的には思っています。

# 勉強期間と勉強法
## 勉強期間
2021/11月~2022/4月の受験日まで大体半年弱
※これより前の勉強として~2021年の夏前ぐらいまで半年程度は勉強してましたが、少し期間が開いているので省略します
 詳しく知りたい方は先に同期入社の方が記事にしているのでこちらを確認ください、やってることは大体同じですが、当時は業務で全く違う未経験分野を扱っていたこともあり、ここまで追い込めなかった。。。

元記事を表示

Amazon Managed Blockchain(Hyperledger Fabric)ハンズオン体験記のフレームワークを2.2に更新してみる

以前、[こちら](https://qiita.com/mine820/items/0639698e7f9b1fe8842f)の記事で、Amazon Managed Blockchain(Hyperledger Fabric)のハンズオン体験記を書いたが、フレームワークのバージョンが1.4でしか動かなかったため、今回2.2で確認しなおしてみました。

基本的には、[こちら](https://docs.aws.amazon.com/ja_jp/managed-blockchain/latest/hyperledger-fabric-dev/managed-blockchain-get-started-tutorial.html)にある手順通りにやれば動くのですが、テキストベースでわかりづらいため、前回からの変更点をわかりやすく書いてみたいと思います。

またせっかくなので、今回はリージョンをバージニア北部(us-east-1)にしてみたいと思います。
(特に見えていませんが ^^;)

# フレームワークのバージョン
今回は、フレームワークのバージョンを2.2にします。
![image.p

元記事を表示

Lambda と Aurora Serverless で超実用的な Twitter Bot をつくってみた

builders.flash の連載記事「AWSドリル」を応用し、AWS Lambda と Amazon Aurora Serverless を組み合わせて、1日3回献立をつぶやくスーパー便利な Twitter Bot を作成しました。
(AWSドリルでは DynamoDB を使用していますが、Aurora Serverless を使ってみました)
![構成図.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1952854/8023ee53-69b7-98b3-1d08-fc7ee08faf3b.jpeg)
個人的に気になっていた機能、「Data API」も使用しています。
下記ブログ記事で詳しく説明しているので、ご興味ある方は読んでいただけると嬉しいです。

https://blog.usize-tech.com/useful-twitterbot-by-lambda-and-aurora-serverless/

(参考)AWSドリル第一回記事はこちらから↓↓

https://aws.amazon.

元記事を表示

Genvidクラスタのクラウドデプロイに必要なインスタンスの種類(AWS / Azure)

# Genvidのクラウドオーケストレーションで使用されるVM
Genvidは「インタラクティブな動画配信」を実現するSDKです。Genvidの体験を実現するシステム全体を「Genvidサービス」と呼びますが、ゲームの内部データと動画視聴を行うブラウザ、動画配信を行う配信サービスの3つをつなぐ通信処理を行う部分を「Genvidクラスタ」と呼びます。

その大部分はサーバーミドルウェアで構成されており、複数のクラウドサーバーインスタンスを使用します。
クラウドサーバーのオーケストレーションにはHashicorp社 Nomadが採用されており、Terraform、Consul、Vaultといった同社のクラウドリソース管理ツールが活用されています。

![GenvidClusterServices.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/19010/686f237c-a23c-4501-e1de-e75ac002278b.png)

https://www.genvidtech.com/doc/ja/S

元記事を表示

AWS公式資料で挑むSCS認定(50)-こんな時どうする(全分野その27)

##### [前回] [AWS公式資料で挑むSCS認定(49)-こんな時どうする(全分野その26)](https://qiita.com/mingchun_zhao/items/d8edf10fe216f0cd2480)

## はじめに

今回も引き続き、「こんな時どうする」集の作成です。

## 分野1: インシデント対応

– CloudFrontが配信するコンテンツへの不正アクセスが報告された、コンテンツへのアクセスを制御するためリクエストにヘッダーを挿入してからオリジンに転送したい
– AWS Lambdaの拡張機能`Lambda@Edge`を使用し、エッジでリクエストにヘッダー挿入可能
– Lambda@Edgeは、CloudFrontの配信コンテンツに対しカスタマイズ関数を実行するコンピューティングサービス
– 米国東部(バージニア北部)リージョンでNode.jsまたはPython関数を作成し、ビューワーに近いAWSロケーションで実行できる
– サーバーをプロビジョニング/管理する必要ない
– 自動ス

元記事を表示

GuardDutyの脅威検出結果をSlack/Teamsに通知する

# 初めに
生産技術部で製品の検査工程を担当しているエンジニアです。AWSのセキュリティ対応のため、GuardDutyを利用しています。GuardDutyを利用することで、悪意のあるアクティビティや異常な動作を継続的にモニタリングすることができます。しかし、検知した結果に気が付かなければ意味がありません。チャットツールに結果を転送することで、早急な対応ができる体制を目指します。

# Slack/Teamsへの通知方法
脅威を検知した結果は、自動的にEventBridge(旧Amazon CloudWatch Events)に送信されるため、EventBridgeでイベントをトリガします。

* Slackを利用されている場合は、EventBridgeからSNSに転送します。SlackはChatbotとの連携が可能なため、ChatbotをSNSのターゲットにします。
* Teamsを利用されている場合は、LambdaをEventBridgeのターゲットとし、Lambdaで結果を加工してIncoming WebhookでTeamsに転送します。

![guardduty-notifica

元記事を表示

7-8億レコードを加工処理してS3へ連携した話

## はじめに

今まで一般的なWeb開発はしてきたけど高速化についてあまり考慮せずに実装してきたエンジニアの方に向けて、筆者のデータ ( **7億-8億レコード** ) 加工処理高速化の経験を基に、本番実行で何を目指すかということと、それまでに実際にどのようなアプローチがあるのかを提案できればと思います。
あくまで提案なので、「こうしたらもっと高速になるよ」的な箇所は多々あるかと思います。
コメントなどでご指摘いただければ幸いです。

## 本記事における前提条件

本記事における前提条件を筆者の経験した環境を参考に記載します。

### 本プロジェクトの背景及び要件

– 既存サービスで蓄積されたデータを外部のシステムに連携して有用活用するにあたってのPoVを実施する。
– 既存サービスで蓄積されたデータの一部を匿名化 (ハッシュ化) したものをCSVに書き出し、外部のシステムにPOSTする。
– 本番実行までの実装及び検証は短期間 (2-4週間程度) である。
– **加工処理はできるだけ早く完了させる**

### 採用したテクノロジー

– Ruby on Rails API

元記事を表示

AWS CLIでバージョニングを有効にしたS3のオブジェクトを一括削除する

## はじめに

バージョニングが有効なS3のオブジェクトはVersionsとDeleteMarkersの両方を削除しないと、
S3上からデータを完全に削除することができません。

また、AWSコンソール上で作成したフォルダはコンソール上からは削除できなかったり、少々ハマりどころがあります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/597765/d47426e5-581e-36fa-7dba-3fba8b2facb9.png)

そのため、一括削除用のシェルスクリプトを作成しました。
(追記:AWS CLIの出力結果がJSON形式で、Nodeで対応した方が楽そうだったので勉強がてらNodeでも対応してみました。)

## 作成したシェル

“`sh:delete-s3-object.sh
echo 開始!

# バケット名
S3_BUCKET_NAME=”バケット名”
# 削除対象をキーで絞り込み ※S3のフォルダパス
S3_OBJECT_KEY=”test_dir/”
# Ve

元記事を表示

AWS SNS HTTP/HTTPSのサブスクリプションを確認する方法 on Laravel

# AWS SNS HTTP/HTTPSのサブスクリプションを確認する方法 on Laravel

追加した、サブスクリプションが「保留中の確認」になったあと
「確認済み」にする方法の情報が非常に少なかったのでメモ
Laravelで記載しますが、他の言語でも同じだと思います。

## エンドポイントは以下を設定したとする

`https://sns.test.com/sns/notification`

## Laravel側

CSRF対策が設定されていると、HTTP 419などになるので
サブスクリプションを確認する場合は、認証なしで受け付ける必要があります。

### apiでもwebでもどちらでも良いですが、認証なしで!
下記の例では、webの方は、VerifyCsrfTokenが効いているので、apiの方を使う必要がある

“`App\Http\Kernel.php
protected $middlewareGroups = [
‘web’ => [
\App\Http\Middleware\EncryptCookies::

元記事を表示

nginxでnuxtjsを利用した静的サイトを立ててAWSのELBでhttps化したらリロードができない

# はじめに

ローカルでnginxでnuxtjsで作ったサイトをテストして、いざ公開しようとしたら、リロードボタンを押すと読み込みできなかった話。

## 現象

nuxtjsでSPAで遷移する場合、URL欄に/loginなどが表示されます。
これは内部的には、フォルダになっており、/login/index.htmlにアクセスします。

一般的なwebサーバの仕組みは以下になります。

1. documentRootに同じパスのファイルがあるかチェックし、あったらそれを返す。
2. 同じ名前のフォルダがあるかチェックし、あれば、301 redirect で/付きのpathを返す
3. pathが/で終わっている場合は、設定により、index.htmlなどを返す。

今回は、2で、301 redirectするのですが、nginx的にはロードバランサーは知らないので、リダイレクト先に http://ホスト/フォルダ/ を返してしまうためです。

結局以下の設定ファイルでうまくいきました。
“`
server{
listen 80;

auth_b

元記事を表示

Cost Explorer API でアカウント毎に日別の請求額を取得する

## モチベーション
Cost Explorer API を使用してアカウント毎に DAILY の請求額を取得し、以下のようなデータを CSV で出力したい。

|Account Id|Account Name|2022/4/1|2022/4/2|2022/4/3| …|2022/4/30|
|—|—|—|—|—|—|—|
|000000000000|account-0000|42.792716528|40.124716527|43.123416527|…|50.922465287|
|111111111111|account-1111|32.263379809|30.235379809|31.263353594|…|22.133798094|
|222222222222|account-2222|751.71034839|720.51234839|772.62033294|…|651.71042035|
|333333333333|account-3333|4.6428|5.1234|7.8765|…|6.2234|
|44444444

元記事を表示

【Serverless Framework】AWS Lambda構築手順

# まえがき
業務でServerless FrameworkでLambdaを構築する必要ができたので、構築手順をメモ。
# Serverless Frameworkとは
・Node.jsで記述したデザイン/設計書をもとに、各プロバイダ(AWS/GCP/Azure)上でサーバレスなリソースを構築できるフレームワーク。
# 環境構築
参考にさせていただいた記事。

https://serverless.co.jp/blog/25/

## Node.jsインストール
・Serverless Frameworkでは、Node.jsはv12以上が必要。

https://nodejs.org/ja/download/

## Serverlessインストール
“`
npm install -g serverless
“`
インストールされていることを確認
“`
% npx serverless –version
Framework Core: 3.15.2
Plugin: 6.2.2
SDK: 4.3.2
“`
「serverless」は長いので「sls」と省略してもOK。
“`

元記事を表示

フリーのドメインを取得してAWSのRoute53に登録する

# はじめに
たまにしかやらないと忘れるのでメモ
## 「freenom」でドメインを取得
1. [freenom](http://www.freenom.com/)にアクセスして、ドメインを探す
![dns1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2528939/0c829a36-fbd0-db9b-57b0-6f3cf2750ee1.png)
1. 検索したドメインが利用可能なことを確認して「チェックアウト」をクリック
![dns2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2528939/54e97b8f-068d-32af-9219-ad930a3e11bb.png)
1. 「Period」(期間)を選択して「Continue」をクリック(期間は1年まで無料)
![dns4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0

元記事を表示

OTHERカテゴリの最新記事