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

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

AWS初心者による、SAA取得に向けた学習の記録⑥

※記事について著作権等で問題がありましたら、お手数ですがコメントいただけると幸いです。
早急に修正か、必要に応じて記事を削除いたします。

[AWS初心者による、SAA取得に向けた学習の記録⑤](https://qiita.com/t17_hr/items/ce20a44f1c586c145da3) の続きです。

関連記事はこちらからどうぞ。

* [AWS初心者による、SAA取得に向けた学習の記録①](https://qiita.com/t17_hr/items/106838afc10a54eea3f0)
* [AWS初心者による、SAA取得に向けた学習の記録②](https://qiita.com/t17_hr/items/e8d6d6e97b8b7487a5a4)
* [AWS初心者による、SAA取得に向けた学習の記録③](https://qiita.com/t17_hr/items/5b85d13db5fb4044c01d)
* [AWS初心者による、SAA取得に向けた学習の記録④](https://qiita.com/t17_hr/items/f35cb0e313fd

元記事を表示

AWS API Gateway プロキシ統合・カスタム統合のチュートリアルをやってみた

# 初めに

以下のチュートリアルをやってみました。これまで API Gateway の基本的な部分が分からなかったのですが、カスタム統合のチュートリアルに着手することで理解できました。マッピングテンプレートやクエリ文字列パラメータ、リソース・メソッド、API のデプロイについて理解が深まりました。

https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/api-gateway-create-api-as-simple-proxy-for-lambda.html

https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/getting-started-lambda-non-proxy-integration.html

# Lambda プロキシ統合とは

API Gateway の API 統合の種類の一つです。バックエンドが Lambda であり、 統合リクエスト・統合レスポンスの設定が不要な統合タイプです。

| 統合エンド

元記事を表示

AWSでプロセス監視を実装したい

# はじめに
AWSでサービス監視を実装して、サービスの正常性を監視してみました。

# 前提条件
– EC2インスタンスが構築されていること(今回はAmazon Linux2を使用します)
– パブリックサブネットへ接続するインターネットゲートウェイはアタッチ済みであること
– サービスの正常性を確認する対象はApache(httpd)とします
– CloudWatchエージェントが導入済みであること。
(入れていない場合は、導入方法も別で記載していますのでご確認ください)

[【導入手順】 AWSでCloudWatchエージェントを入れてみた](https://qiita.com/santasan1224/items/1dc5214d119ea3b9815e)

# 構成図
![CWSAgent.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478546/c3dbf1f7-793e-d980-d72c-89ee1d28132e.png)

今回は「httpdを監視して、プロセス数が0になったらEC2

元記事を表示

AWS SAMテンプレートでデプロイ環境毎に異なる設定値を与える

## はじめに
Lamdaの稼働環境ごとに異なる設定値を与えてデプロイしたくなりました。
AWS-SAMのテンプレートを使用して、環境ごとに設定を出し分けてみたので皆様にも共有いたします。

記述例だけを早く見せろ!という方はこちらから↓
[SAMテンプレート記述例](#samテンプレート記述例)

この記事ではAWS-SAMにフォーカスを当てております。
ただ、AWS-SAM自体がAWS CloudFormationのサービスをベースとしているので、そちらも併せてお調べいただくとより一層AWS-SAMに対して理解が深まると思います。

https://aws.amazon.com/jp/cloudformation/resources/templates/

Lambda歴がまだ浅いので非効率なやり方をしているかもしれません。何かお気づきの点・気になる点ございましたらご指摘いただけると幸いです!

さらに良い方法をご存じの方がおられましたら、教えていただけますと嬉しいです?!!

## どんな記事?
Lambda関数のデプロイ環境別(ステージングや本番など)に、異なる設定値を与えたい

元記事を表示

Rails, AWS, Dockerでポートフォリオ作成

リンク

【ポートフォリオ】
https://tasty-life.site/

【Github】
https://github.com/YukiIshizaki0525/TastyLife

はじめに

独学でサーバーサイド、フロントエンド、インフラを1から勉強し、Webアプリを作成しました。

本記事で、作成で苦労した点、各種機能、機能実装で参考になったサイトなどを記載いたしますので、現在ポートフォリオ作成中の未経験エンジニアやこれからポートフォリオを作ろうと考えている方のヒントとなれば幸いです。

機能実装方法やテストの書き方などより詳細な内容については別途Qiitaを投稿する予定ですので、更新をお待ちいただければと思います。

本記事についてのご質問や気になった点などがあればできる限り回答いたしますのでTwitterのDMやコメントでお知らせください。

【Twitterアカウント】

概要

一人暮らしの自炊継続のモチベーションアップ及び脱マンネリ化したいという思いから制作

制作背景

元記事を表示

【500エラー】【AWS】RDSに日本語が保存できない問題 Rails on Docker

docker環境でrails6アプリを構築し、苦労してようやくEC2上にアプリをデプロイできたと思ったら、
何故かdeviseのユーザー登録時メール認証機能(comfirmable)、お問い合わせメール機能、ゲストログイン機能が500エラー。。。
メールに関する部分だけがエラーになっているからてっきりSMTPサーバーが機能していないのかな?などと推測し、
SESの設定を見直すも・・・・
解決できず。。

# 原因:RDSで作成したMySQLのDBに日本語が保存できないこと

RDSではDefaultでcharacter-setにlatin1が割り当てられるため、日本語を利用する際はutf8などに変更してあげる必要があったのでした。
そのためRDSで設定したMySQLに関するエラーが発生していました。
それに気づかずてっきりSMTPサーバー関係のエラーだと決めつけて数日もがいてました。。
そもそも私はログイン済みユーザーじゃないと新規投稿機能だったりフォローだったり、全ての機能を利用できないように制限をかけていたので
他のページの確認ができていなかったのですが、
本当はメールに関する部分

元記事を表示

Fargate+Secrets Managerで環境変数管理

## 前提

AWS CLIが入っていること

## create secret

create secretをコマンドラインから行います。
createすると以下のように返されるはずです。

“`
aws secretsmanager create-secret –region ap-northeast-1 –name DATABASE_URL –description “AWS Database URL” –secret-string xxxx.yyyyyy.ap-northeast-1.rds.amazonaws.com
{
“ARN”: “arn:aws:secretsmanager:ap-northeast-1:xxxxxx:secret:DATABASE_URL-xxxxxx”,
“Name”: “DATABASE_URL”,
“VersionId”: “7c6cd5b1-e4ae-415f-zzzzzzz-xxxxxxxx”
}

“`

AWS Secrets Managerに行くと、登録されているのが確認できます。

元記事を表示

Amazon ComprehendをAWS SDK for Go v2を使って呼び出す

# はじめに

[AWS SDK for Go](https://aws.amazon.com/jp/sdk-for-go/)がありますが、現在(2021年7月24日)のところ、AWS SDK for Go **v2**のAmazon Comporehendのコードサンプルがなかったので、とりあえず自分で作ってみることにしました。
個人的にはPythonを使用することが多いのですが、Go言語も業務で使用することがあるので、Go言語でもチャレンジしてみました。
※他の言語や他のサービスのコードサンプルは以下から参照できます。

* [Developer Guide/Code Examples](https://aws.github.io/aws-sdk-go-v2/docs/code-examples/)
* [awsdocs/aws-doc-sdk-examples](https://github.com/awsdocs/aws-doc-sdk-examples/tree/master/gov2)

# Amazon Comprehendを使用するための事前準備

Go言語のプログラム

元記事を表示

Alexaをパーソナル英会話講師にしてみる

# はじめに

海外ドラマやYouTubeの英会話チャネルを見ているときに「あっ、この表現かっこいい。覚えよう。」と思ったけれど、数日後には「あれ、何を覚えようとしていたっけ。」となったりしませんか?そんなあなた(自分)のために、覚えたい単語、フレーズをしつこく教えてくれる、あなただけの英会話講師(Parrot Tutor)をAlexaに召喚します。

# Parrot Tutorはどのようなスキル?

“`
Student: “Alexa, talk to parrot tutor.”
Alexa: “Welcome, I can help you remember words or phrases. Please ask me to add what you want to remember.”
Student: “Add a word, righteous.”
Alexa: “Righteous. Is it ok?”
Student: “Yes.”
Alexa: “I remember the word, righteous, which means 正義の.”

元記事を表示

【aws-cli】EC2インスタンスを起動停止時刻でフィルタする

`aws-cli`では`ec2 describe-instances`を利用してEC2インスタンスの一覧を取得できます。
ここではインスタンス一覧取得時にインスタンスの起動時刻・停止時刻でフィルタするサンプルとなります。

先に結果を書いてしましますが、インスタンスの開始時刻についてはフィルタするのに問題はないのですが。

停止時刻の方についてはマネージメントコンソールやCLIでAPIを利用してシャットダウンした場合は停止時刻を後から確認できますが、OSからシャットダウンをすると現状、`ec2 describe-instances`で停止時刻を取得する方法はなさそう?

## 利用するaws-cliのバージョン

今回利用しているaws-cliのバージョンについては下記となります

– aws-cli/2.2.22 Python/3.8.8 Windows/10 exe/AMD64 prompt/off

## ec2 describe-instancesのドキュメント

[describe-instances](https://awscli.amazonaws.com/v2/docu

元記事を表示

AWS CLI 「You can also configure your 〇〇 by running “aws configure”.」エラー対処方法

#エラー発生
AWS CLI上で下記のエラーが発生。

“`
aws kms create-key
You must specify a region. You can also configure your region by running “aws configure”.
(リージョンを指定しなければいけません。”aws configure”を実行することで、リージョンを設定することができます。)
“`

上記エラー内容をググると、下記の記事発見。
[AWSクライアントでリージョン(region)を指定する](https://salumarine.com/specifying-region-using-aws-client/)
リージョンを指定してみるが、下記のエラーが発生。。

“`
aws kms create-key –region us-east-1
Unable to locate credentials. You can configure credentials by running “aws configure”.
(認証情報が見つかりません。”aws c

元記事を表示

AWS上にサーバーを作る(その03:Amazon VPCの設定)

前回の投稿
[AWS上にサーバーを作る(その02)](https://qiita.com/aa_ha1uhik0/items/c92d4f7d3b31a361a3b2 “AWS上にサーバーを作る(その02)”)

# Amazon VPCの設定

さて、だいぶ期間が開いてしまいましたが、前回はネットワーク周りの名称と内容の確認までは終わっていたと思います。
ここからは、ようやく初めてAWSのネットワークの設定に入ります。

まずは「ルートユーザー」または「IAMユーザー」でログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/520646/be40585e-5f1b-9823-fdb5-ef306cfd03d9.png)

## Amazon VPCの作成

前回調べた通り、「VPCの作成」自体は無料のようですので、早速作成を開始しちゃいます。

1.VPCウィザードを起動
ステップ 1: VPC 設定の選択
![image.png](https://qiita-image-

元記事を表示

VS codeからssh接続して、Amazon Linux2 にログインする

VS codeの拡張機能を使って、
Amazon Linux2にログインするやり方があったので、ご紹介致します。
これにより、
ディレクトリなど、かなり見やすいので、おすすめです。

※なお、今回は既にEC2があることを前提としています。

### インストール
VS codeで
`remote ssh`
などで検索し、
#### Remote – SSH
をインストールします。
![スクリーンショット 2021-07-24 16.47.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/355517/c8577c65-9b0d-e85e-ac92-545d6545bc90.png)

### configの設定
コンソールを開いて
.sshのconfigに設定を入れます
(.sshの中にconfigがない場合は新規で作成してください)

“`ruby:/Users/{ユーザー名}/.ssh/config
Host { 任意の名称 例: test }
HostName { 作成したEC2のパ

元記事を表示

開発環境のカラム情報が本番環境 AWS EC2のDBに反映されなかったときの対処法

はじめに

個人開発したアプリケーションをAWS EC2で本番環境にデプロイをしました。

その後、追加機能としてチャットルーム機能を実装。roomsテーブルを追加しました。

なので再びEC2にデプロイ。
EC2本番環境で新しい機能、rooms/newページでチャットルーム作成をして、rooms/createのページアクセスすると以下のエラーが発生。
room/createのページにアクセスできませんでした。(チャットルームが作成できない状況)

ポイントとして

・開発環境(localhost:3000)とherokuでは問題なくrooms/newからrooms/createにアクセスできる。でもEC2ではできない。

 ということ。

今回の原因として、roomsテーブル作成後、新しくnameカラムを追加し

AWS モダンウェブアプリケーションを構築するチュートリアルをやってみた

# 初めに

以下のチュートリアルをやってみました。このチュートリアルでは S3 を利用した静的ウェブサイトを Fargate や Network Load Balancer、API Gateway 利用して動的ウェブサイトにする過程を学ぶことができました。さらに CI/CD 環境の構築、クリックイベントに対するストリーミング処理の方法も学ぶことができます。このチュートリアルではほとんど CLI、時折 CloudFormation を使用してアプリケーションを構築していきます。

https://aws.amazon.com/jp/getting-started/hands-on/build-modern-app-fargate-lambda-dynamodb-python/

# 1. 静的 Web サイトの作成

開発環境として Cloud9 を用います。リージョンは us-east-1 を選択しました。以下の手順で開発環境を作成します。

開発環境の名前を入力します。

![1.png](https://qiita-image-store.s3.ap-northeast-1.am

【3日目】AWS認定ソリューションアーキテクト合格までの道

# アクセス制御サービス

## IAMサービスの概要

### IAM
ユーザーに対してアクセスを安全に制御する仕組み
[![Image from Gyazo](https://i.gyazo.com/da27001de597eb2a1e470636ca25e7cd.png)](https://gyazo.com/da27001de597eb2a1e470636ca25e7cd)

:::note info
通常ルートユーザーは使用せず、IAMユーザーでログインする
※ルートユーザーはAWSの全ての操作を行うことができるため、情報漏洩/誤作動の危険があるため
:::
***

## IAMサービスを通じたAWSの操作方法

### WebブラウザでAWSマネジメントコンソールにログインする

登録したIAMユーザー/パスワードでアクセスする

### AWS CLIでWindows/Linuxからコマンド操作する

リージョン及び、IAMユーザーごとに**アクセスキーID**と**シークレットアクセスキー**を事前に設定する必要がある

### AWS SDKでプログラムからAPI

③NiceHashマイニング収益をLambda×LINE Notifyでグラフ化してLINE通知する

#目次
– [1.背景](#1背景)
– [2.構成](#2構成)
– [2-1.Lambdaの構築](#2-1lambdaの構築)
– [2-1-1.Lambda関数の作成](#2-1-1lambda関数の作成)
– [2-1-2.IAMロールの権限付与](#2-1-2iamロールの権限付与)
– [2-1-3.ソースコード](#2-1-3ソースコード)
– [2-1-3-1.Lambda①:nicehash-balance-notification-LINE のソース](#2-1-3-1lambdanicehash-balance-notification-line-のソース)
– [2-1-3-2.Lambda②:nicehash-draw-figure のソース](#2-1-3-2lambdanicehash-draw-figure-のソース)
– [2-1-3-3.コンフィグ](#2-1-3-3コンフィグ)
– [2-1-4.Module組み込み](#2-1-4module組み込み)

AWS初心者による、SAA取得に向けた学習の記録⑤

※記事について著作権等で問題がありましたら、お手数ですがコメントいただけると幸いです。
早急に修正か、必要に応じて記事を削除いたします。

[AWS初心者による、SAA取得に向けた学習の記録④](https://qiita.com/t17_hr/items/f35cb0e313fd7863afb6) の続きです。

関連記事はこちらからどうぞ。

* [AWS初心者による、SAA取得に向けた学習の記録①](https://qiita.com/t17_hr/items/106838afc10a54eea3f0)
* [AWS初心者による、SAA取得に向けた学習の記録②](https://qiita.com/t17_hr/items/e8d6d6e97b8b7487a5a4)
* [AWS初心者による、SAA取得に向けた学習の記録③](https://qiita.com/t17_hr/items/5b85d13db5fb4044c01d)
* [AWS初心者による、SAA取得に向けた学習の記録④](https://qiita.com/t17_hr/items/f35cb0e313fd

Amazon Elasticsearch Serviceでスナップショットを復元する方法

## はじめに
Amazon Elasticsearch Service 5.3以降では、基本的に1時間ごとに自動でスナップショットを作成し、最大で2週間分(336個)のスナップショットが作成されます。

今回は、インデックスをスナップショットから復元する手順を記述します。

## 手順
### 復元するスナップショットを特定する
最初に、復元するスナップショットを特定します。
以下のコマンドを実行することで、スナップショットの情報を取得出来ます。

`curl -XGET ‘https://{ESエンドポイント}/_snapshot/cs-automated/_all?pretty’`

“`shell:terminal
$ curl -XGET ‘https://{ESエンドポイント}/_snapshot/cs-automated/_all?pretty’
{
“snapshot” : “2021-06-15t02-19-46.**********-*******-********”,
“uuid” : “***************”,

SnowflakeでAWS PrivateLinkを利用する

# Snowflake における AWS PrivateLinkの役割

AWS上のSnowflakeサービス(VPC)に、AWSの閉域からアクセスするための機能です。

自分専用のシングルテナントのSnowflake環境が作成されるものではなく、マルチテナントの環境に閉域でアクセスするための専用の入り口が用意されます。

PrivateLinkを使う場合であっても、インターネットからSnowflakeにアクセスすることができます。
つまりセキュリティ的な観点でいえばPrivateLinkを使ったからといって完全に閉域でSnowflakeを利用できるわけではありません。インターネットからのアクセスを制限したい場合はIPアドレス制限ができるSnowflakeの[ネットワークポリシー]機能を使う必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/538058/72184251-3c4d-3c0d-b2e4-363cb6486e3b.png)

– AWS PrivateL