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

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

HerokuにAWSのS3を導入する方法

# HerokuにS3を導入して、画像の永続化をできるようにするための手順を紹介します!(Rails)(学習記録):city_dusk:

#### HerokuにS3を導入するメリット
投稿機能がついているアプリケーションは画像を保存する機能が必要になる場合があり、herokuでは画像の永続化はできず、ある一定の時間で表示されなくなってしまします。それを回避するためにAWSのS3を利用します!

#### S3を利用する際のセキュリティー対策
AWSを利用する際、セキュリティー対策は必需です。もし、AWSのアカウントID・パスワード・アクセスキーなどの情報が漏れてしまうと、サービスを不正利用され、高額な利用料を請求されてしまう危険性があるためです。
主に行雨セキュリティー対策の例として、ログインを二段階に設定(二段階認証)、利用制限付きのユーザーを使用(IAMユーザー)、保存機能にアクセス制限を設定(バケットポリシー )さらにGitHubでのソース管理においてもセキュリティー対策などです。このGitHubでのソース管理には、秘密情報を変数に代入して使用(環境変数)、git-secre

元記事を表示

AWS Outposts

#背景
– 「OpenShift, Tanzu Kubernetes Clusterはオンプレでも使えますよ!」と言われた場合、ECS, EKSがオンプレでどうなのか知りたかった。

#AWS Outposts概要
– HWはレンタル
– HWの構築・運用はAWS(ユーザーがやるのはLEDランプ確認と作業員の入館処理)
– 単一のリージョンにひも付く
– 独立したAZとして見える(Outpostsを複数おいて、両方TokyoのMulti-AZとすることもできる)
– ネットワーク接続は2つで、DXでもVPNでもOK

#使える機能
###コンピュート
– EC2
(Fargateがない)

###オーケストレーター
– ECS
– EKS
– EMR

###ストレージ・DB
– EBS
– RDS
– S3

###ネットワーク
– VPC

#類似サービス
###Local Zones
– 普通のAZよりローカルなAZを選択して利用する。
– オンプレにOutpostsのように配置しなくて良い。
– “有線接続”でのクライアントに対する低レイテンシを実現。

###Wavel

元記事を表示

[Nginx+Rails+Unicorn]ドメイン名でアクセスするとWelcome to nginx on Amazon Linux!が表示される

#課題

AWS上でRailsで制作したアプリをNginxとUnicornを使ってデプロイしようと試みていたとき話です。

お名前.comで購入したドメインをroute53でElasticIPに紐付けて、
いざドメイン名でアプリにアクセスしようとすると

Welcome to nginx on Amazon Linux!

このような文章が含まれた画面が表示され、待てど暮らせど一向にアプリは表示されませんでした。

#解決方法

結論
としては、Nginxの設定がうまく行っていませんでした

Nginxの設定ファイルをviで開きます。
作成していない場合はこちらの記事が参考になるかと思います。

[(デプロイ編②)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで](https://qiita.com/naoki_mochizuki/items/5a1757d222806cbe0cd1)

“`
$ cd /etc/nginx/conf.d
$ vi [アプリ名].conf
“`

“`
# log directory
error_log /var

元記事を表示

DynamoDb:ローカル環境構築(その2:GUI管理ツール)

aws公式サイトで「NoSQL Workbench」というデータベース管理GUIツールがあるが、テーブル作成・変更、データ登録・更新しづらいので、dynamodb-adminの構築方法を詳細します。

dynamodb-adminの詳しい情報は、以下を参照してください。
https://www.npmjs.com/package/dynamodb-admin

### dynamodb-adminをインストール(グローバルで)
“`
npm install dynamodb-admin -g
※1 もしstrict-ssl問題が発生した場合、下記コマンドで無効にして、再度インストールしてください。
npm config set strict-ssl false
※2 root権限が持ってなかったら、先頭にsudoを追加してください。
“`

### DynamoDBのエンドポイントを環境変数に設定
“`
export DYNAMO_ENDPOINT=http://localhost:8000
“`

### 起動コマンド
“`
dynamodb-admin

元記事を表示

Amazon ElasticSearchのロギングを有効にする – Cloudformation

![open_disto-elasticsearch-logo-800×400.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1127526/5f1bc62e-0215-b964-65d3-05cf9d1b5880.jpeg)
cloudformationを使用していて、ElasticSearchのログ設定に問題がある場合は、このブログが役に立ちます。

#ElasticSearch cloudformation
以下は、ElasticSearchを作成するためのcloudformationテンプレートのサンプルです。ネストしたスタックの一部であるため、パラメータの入力検証などが欠落していますが、このブログの範囲ではこれで十分です。

“`
{
“AWSTemplateFormatVersion”: “2010-09-09”,
“Description”: “Elastic Search”,
“Parameters”: {
“Environment”: {
“Type”

元記事を表示

AWS X-Ray とは

## 勉強前イメージ

全然わからん・・・

## 調査

### AWS X-Ray とは

アプリケーションが処理するリクエストに関するデータを収集するサービスで、
レスポンスタイムやレスポンスステータス、アプリケーションに対するリクエストに関するデータを収集し、コンソール上で表示したり分析することで問題を特定することが出来ます。

### X-Ray のメリット

– リクエストの動作確認・流れを把握・問題の検出

エンドツーエンドで流れを表示し、詳細情報を確認することが出来ます。
それによってボトルネックを確認し改善ができます。

– アプリケーションのパフォーマンスの向上

X-Rayのサービスマップににより、サービスやリソースの関係性をリアルタイムで表示できるので
高いレイテンシーが発生している場所を簡単に検出出来ます。

– AWSの他のサービスとの連携

EC2、ECS、Lambda,Elastic Beanstalkと連携することが出来ます。

### X-Rayの概念

– サービスマップ

アプリケーションから生成されたトレースしたデータを可視化したもの。
クライ

元記事を表示

【Elasticsearch】Amazon Elasticsearch Serviceに分散表現のベクトルを格納するフィールドタイプ「dense_vector」が存在せず困った話

# はじめに
少し長くなりそうなので結論から言いますと、分散表現のベクトルを格納するフィールドタイプ**「dense_vector」**の代わりにAmazon Elasticsearch Serviceに用意されているフィールドタイプ**「knn_vector」**を使用することにして困りごとを解消いたしました。

# 困ったこと
Elasticsearch 7.3のリリースで追加された高次元ベクトルのドキュメントスコアリング機能を用いてとある文章の機械学習を行い、**「テキスト類似性検索」**を実装しました。
始めにElastic社のElasticsearch(以下、Elasticsearch)を使用してローカル環境で機械学習を行っており、その後しばらくして学習済データをAmazon Elasticsearch Service(以下、Amazon ES)に移行する必要が出てきました。その際にエラーが発生し、後続作業が中断する事態となってしまいました。

※テキスト類似性検索(または類似文書検索)とは「文章を数値化し、その数値の類似度をもって検索対象の文章群の中から検索条件に近い文章を

元記事を表示

Lambda で返ってくる文字列でハマった

# 問題
Lambda、API Gateway を使って Web ブラウザからの入力結果を処理していた。Lambda 関数の戻り値に不要なダブルクォーテーションがついていた。

以下のような Lambda 関数を作成した。

“`lambda_function.py
if bool:
return ‘Exist’
else:
return ‘NotExist’
“`

lambda_function.pyの戻り値がresponse.text()に格納されるのだが、bool が True であるにも関わらず、result === ‘Exist’ の結果が false になっていた。

“`main.js
fetch(url, requestOptions)
.then(response => response.text())
.then(result => {
if (result === ‘Exist’) {
alert(‘存在します。’);
} else {
alert(‘存在しません。’);
}
})
“`

ログを見ると、res

元記事を表示

DynamoDBストリームについて調べてみた!

# DynamoDBストリームについて調べてみた!
AWS SAAの練習問題でもよく出てきた**DynamoDBストリーム**という機能があります。DynamoDBのテーブルの更新とか削除とかのイベント発生時に別のサービスのトリガーに使うぐらいしか知らないので、今回はもう一歩踏み込んでみようと思います!

## DynamoDBストリームって何?
まずはDynamoDBストリームとは?からいきましょう!
>DynamoDB ストリーム は、DynamoDB テーブル内の項目レベルの変更の時系列シーケンスをキャプチャし、この情報を最大 24 時間ログに保存します。
保管時の暗号化では、DynamoDB ストリームのデータが暗号化されます。
DynamoDBテーブルでストリームを有効にすると、DynamoDB はテーブル内のデータ項目に加えられた各変更に関する情報をキャプチャします。
[ストリームの変更データキャプチャDynamoDB – Amazon DynamoDB](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/dev

元記事を表示

DynamoDBの古いデータを自動削除する機能の紹介

# 90日以上経った古いデータを削除したい

DynamoDBはデータを保存する容量によっても課金されますので、古いデータ量が大きい場合は削除するだけでコストダウンになります。そんな時、Lambdaを定期実行して削除していっても構わないのですが、DynamoDBにはぴったしな機能があります。

# Time to live(生存時間)
この機能はNumber typeのカラムを指定し、生存時間を決めます。例えば90日とか。そうすると、AWSが自動で指定したカラムの値をチェックして古ければ削除してくれます。
コード書かなくてよいので便利です。

しかし、重要な条件があります。
指定したカラムの値が`秒単位のUnix Timestamp`である必要があります。

元記事を表示

【未経験者】PHPとLaravelそれぞれで類似ポートフォリオ作ってみた

# はじめに
こんにちは、おーもとと申します。エンジニアに転職をするため学習している初学者です。
私は車が好きで、「近年の若者の車離れ」という問題にフォーカスしたアプリを制作しようと思いました。
色々あって、生のPHPとLaravelの二通りの類似ポートフォリオを制作したので、記事にしてみました。
# 制作背景
若者が車を持たない理由には様々な理由があると思いますが、
「欲しいと思えるほど魅力を感じる車に出会っていないからなのでは?」
と思い、
・かわいいやかっこいいというスタイル
・大きさ
・国産か外車か
・アウトドアや街乗りという用途
これらの項目に当てはまる車を、結果として表示するアプリを制作することにしました。
(これらの特徴は全て私が定めているため、投票などにより特徴を決める機能をつけたいです)

# 11月 PHPでアプリ開発
10月からPHPの学習を始めていたので、そのアプリはPHPで制作しました。
カーセンサーAPIを使用して、車の情報を取得します。
解説動画:https://www.youtube.com/watch?v=ZXbgUtjxKM8
![スクリーンショット

元記事を表示

【AWS】Direct Connect フェイルオーバーテスト機能使ってみた

#はじめに
だいぶ時間経ってしまっているのですが、、
1年位前[アップデート(2020/6/3)](https://aws.amazon.com/jp/about-aws/whats-new/2020/06/aws-direct-connect-enables-failover-testing/))があった、AWS DirectConnectでフェイルオーバーテスト機能についてのメモです。

アップデート直後に、たまたま[AWS 専用線アクセス体験ラボトレーニング](https://aws.amazon.com/jp/dx_labo/)に参加し、AWS DirectConnect環境構築しており、その際にフェイルオーバーテスト機能も試していました。
せっかくなので実際にやってみた記録(とやり方)をまとめておこうと思い、アップデートからだいぶ時間経ってますが一応残しておきます。

なお、実際にやってみたのは2020年06月頃になるので、マネジメントコンソールの画面キャプチャなどはその当時(2020年06月頃)のものになりますので、その点ご承知おきください。

#嬉しいこと
>これまで、物

元記事を表示

AWS Batch とは

## 勉強前イメージ

バッチスケジューラー的なもの?

## 調査

### AWS Batch とは

フルマネージド型のバッチ処理実行サービスです。
フルマネージド型なのでインフラを構成する必要がなく、設定後すぐ使えるようになります。

### AWS Batch の特徴

– フルマネージド型

上記でも記載しましたが、
フルマネージド型なので、インフラ面での設定等はほぼなく
webから設定するだけで稼働させることが出来ます。
また、実行するインフラを [Fargate](https://qiita.com/miyuki_samitani/items/b1f29abfbf89b27d7ff4) やEC2インスタンスなど選ぶことが出来ます。

– 依存関係があるジョブを実行することが出来る

よくジョブには前後の依存関係がある場合が多く、
依存関係がある場合でも配列ジョブというジョブ定義を行うことにより処理制御を行うことが出来ます。

– ジョブに優先度を持たせることによって、リソースの最適化を行う

ジョブに優先度を持たえることができ、それによってリソースを最適な形で割り当てて

元記事を表示

AWS Backup のモニタリングを設定する

## はじめに
2021/2/3 に AWS Backup のイベントとメトリクスが Amazon EventBridge と Amazon CloudWatch で利用可能になりました。

https://aws.amazon.com/jp/about-aws/whats-new/2021/02/aws-backup-events-metrics-available-amazon-cloudwatch/

これまでも [AWS Backup Notification API](https://docs.aws.amazon.com/aws-backup/latest/devguide/sns-notifications.html#sns-cli-commands) により Amazon SNS を使用したイベント通知を行うことも可能でしたが、このアップデートによって、より多くのバックアッププロセスをモニタリングできるようになりました。

上記を使用して AWS Backup のモニタリングを設定する流れについて記載します。
以下には触れません。

* AWS Backup 自体の詳細

元記事を表示

Greengrass(V1)のOTAアップデートを実施する

#はじめに
今回はGreengrassのOTAアップデートを実施しました。
手順は以下を参考にしています。
参考:[AWS IoT Greengrass Core ソフトウェアの OTA 更新](https://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/core-ota-update.html)

なお、デバイスは以前GreengrassをインストールしたJetson nanoを利用しています。
参考:[Greengrass(V1)をクイックスタートでインストールしてみる](https://qiita.com/kt-yt/items/e2db8520c207861f2f5f)

#1 IAMの設定
OTAアップデートを実施するロールを作成します。
このロールには、アップデート用のソフトウェアをS3から取得するためのポリシーもアタッチします。
##1-1 IAMロールの作成
1.IAMのマネジメントコンソールで左のメニューから ロール をクリック
2.「ロールの作成」をクリック
3.「AWSサービス」内のIoT > Io

元記事を表示

AWS CLIでECRの棚卸しをしつつ、Lifecycle Policyの設定の有無やストレージ使用量を出力します。

# 背景

特定のAWSアカウントだけECRの値段が跳ね上がっていたので調査しました。
ECRの料金はストレージ量とデータ転送量の2点ですが、ストレージ使用量を調べてみました。

ECRの料金については[こちら!](https://aws.amazon.com/jp/ecr/pricing/)

※以下は20210315時点の東京リージョンの値段です

ストレージ数 | 料金
— | —
すべてのGB/月あたり| 0.10USD

データ受信 | 料金
— | —
すべてのデータ受信 | 0.00USD/GB

データ送信 | 料金
— | —
1 GB/月まで | 0.00USD/GB
次の 9.999 TB/月 | 0.114USD/GB
次の 40 TB/月 | 0.089USD/GB
次の 100 TB/月 | 0.086USD/GB
150 TB/月以上 | 0.084USD/GB

# 各種バージョン

“`
$ aws –version
aws-cli/2.1.30 Python/3.8.8 Darwin/20.3.0 exe/x86_64 prompt/

元記事を表示

Amazon Redshift ML で機械学習モデル構築 #2 MLモデル構築

## はじめに
サンプルデータを AWS Redshift にインポートし、Amazon Redshift ML で機械学習モデルを構築するまでの流れです。作成したばかりの AWS アカウントを想定しているので、周辺環境の設定内容で引っかかった方はご参照ください。

第1回では AWS環境の構築手順、第2回の本記事は機械学習モデルを作成するまでの手順をまとめました。

https://qiita.com/Catetin0310/items/f3fbdcd7d2072875ac3b

## ローデータテーブル作成
以下 SQL クライアントでクエリをたたいています。
モデル作成の権限をユーザーに付与します。

“`SQL:1
GRANT CREATE MODEL TO awsuser;
“`

作成するデータベースやモデルを保持するスキーマを作成します。

“`SQL:2
CREATE SCHEMA redshiftml_test;
“`

ローデータ用のテーブルを作成します。

“`SQL:3
create table redshiftml_test.minethatdat

元記事を表示

Greengrass(V1)でストリームマネージャーを利用してみる

#はじめに
今回、以下の公式ドキュメントの手順通り、Greengrass(V1)でストリームマネージャーを利用してみました。
参考:[クラウドへのデータストリームのエクスポート (コンソール)AWS](https://docs.aws.amazon.com/ja_jp/greengrass/v1/developerguide/stream-manager-console.html)

なお、デバイスは以前GreengrassをインストールしたJetson nanoを利用しています。
参考:[Greengrass(V1)をクイックスタートでインストールしてみる](https://qiita.com/kt-yt/items/e2db8520c207861f2f5f)

#1 事前準備
ストリームマネージャーの使用に必要な環境の設定と、今回のデータ送信先とするKinesis Data Streamsを準備します。
##1-1 Javaのインストール
以下のコマンドでJetson nanoにJavaをインストールする

“`
sudo apt install openjdk-8-jdk

元記事を表示

【AWS】 Amazon CloudFront簡単まとめ(CDNの説明付き)

Amazon CloudFront

AWSのサービスの一つで、静的、動的なウェブコンテンツ(データ、動画、アプリケーションなど)の配信を高速化する、安全性の高さが魅力のサービスです。
有名なサービスですと、Amazon primeやHuluにも使用されています。

メリット

#####● 安全性が高い
HTTPS接続などフィールドレベルの暗号化ができ、機密データのセキュリティ強化ができます。

    
#####● コストの削減
無料枠が設けられているほか、利用した分の料金のみが課せられるため余分な費用はかからない。
つまり、最低料金や一定額の料金のお支払いがありません。

  
#####● 可用性の向上
DDoS対策やトラフィックの分散という点からサービスの可用性を向上させています。

※ “DDoS(Distributed Denial of Service)“
 特定のネットワークやWebサービスを、意図的に利用できないようにする攻撃行為です。

※ “トラフィック“
 通信回線やネットワーク上で送受信される信号、データ、その量や密度のこと

元記事を表示

【AWS】GPUインスタンスを利用するためには

## 背景

AWS EC2インスタンスを起動するのは、チュートリアルや当サイトの記事、ブログ等々で簡単に行なえます。
しかし、GPUインスタンスクラスはデフォルトでは起動できないようになっており、そのために躓きました。
その際の対処について、ここに記しておきます。

先人たちの知恵をお借りするなどして解決できたことを、この場をお借りして感謝するとともに、大変恐縮ですが**自分のメモ**として、こちらへまとめておきます。

## 環境

(本番)
– AWS EC2 (Amazon Linux 2)
– Putty 0.74- AWS EC2 (Amazon Linux 2)

# 1.現象
GPUインスタンス(g4dn.xlarge など)が起動できない。

> G4dn インスタンスは、機械学習推論やグラフィックを大量に使用するワークロードを高速化するために設計されています。

# 2.原因
マネジメントコンソールの EC2 において、画面左のサイドメニュー[制限]で確認できる「All G instances のオンデマンドを実行中」の “現在の制限” 欄が **0 vCPU

元記事を表示

OTHERカテゴリの最新記事