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

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

Amazon API GatewayのLambda Authorizerのレスポンスに注意

API GatewayのLambda Authorizerでハマったので、原因調査の覚書。

## 症状
Lambda Authorizerで認証すると、アクセス許可しているはずなのに、認証失敗する。
サーバーからは500番のステータスコードが返される。
サーバー側のログを見る限り、リクエストはLambda AuthorizerのLambdaまでしか到達できていない。

AuthorizerのLambda関数から返しているポリシーは下記のとおりであった。

“`json:Authorizerのレスポンス
{
“principalId”: “52e60f29-a7c8-4665-99ea-1ec8f7fecb81”,
“policyDocument”: {
“Version”: “2012-10-17”,
“Statement”: [
{
“Action”: “execute-api:Invoke”,
“Effect”: “Allow”,

元記事を表示

Go言語のStruct(構造体)に簡単にタグ付けをするWebアプリを公開しました(ハマったポイント覚書)

## はじめに:成果物の紹介
ようこそ!
かわいいGopher君(Go言語のマスコットキャラ)を用意したので、そちらだけでもご覧ください :innocent:

【URL】
https://go-struct-tags.com

【デモ】
go-struct-tags-demo

機能は以下の通りです。

– 左のインプット欄に`struct`のコードを貼り付け、タグボタンを押すと、タグのフィールド名やオプションをぽちぽちっと編集できます。
– 今のところ`json`と`xml`に対応
– タグのフィールド名は、もともとの変数名をもとに`camelCase`, `snake_case`, `PascalCase`を選んで一括変換します(手入力も可能)
– 追加・仕様変更要望などあればぜひコメン

元記事を表示

なぜAWSみたいなクラウドコンピューティングが必要か

AWSについてはあまり知識がまだないが、なぜこのようなクラウドコンピューティングと呼ばれるものが必要かを簡単にまとめておく。

## まず、クラウドコンピューティングとは
クラウドコンピューティングとは、“`クラウド“`と呼ばれるもの。
例えば、icloudなんかが代表的なもの。

icloudは、写真などのデータを保存しておくことができる。
これは特に物理的ななにかが存在するわけではなく、インターネットを経由してAppleのストレージを使用することができるというもの。

## クラウドを利用するメリット
例えば、スマホに写真や動画を保存しておくとして、このスマホの容量がいっぱいになってしまえば、さらに写真や動画を保存しておくことは不可能。もしくは、データを削除する必要がある。
しかし、クラウドは料金を払えば容量を買うことができる。さらには、物理的なものを所有する必要がないため、もしその容量が不要になれば料金の支払いをやめればいい。

## クラウドが存在しなかったとき
クラウドが存在しなかった時は、例えばフロッピーやUSBのようなものをいちいち購入してその物にデータを移動させる必

元記事を表示

Amazon ESでISMポリシーを設定する

## やりたいこと
Amazon Elasticsearch Service(以下Amazon ES)でISMを設定してUltraWarmを動かしたい。
Amazon ES側の公式ドキュメントの説明が少ないので、OpenDistroのドキュメントや先達の記録を参考にしつつ、手探りで進めてみる。

### 参考:
[Index State Management](https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/ism.html)
[Amazon ES用のUltraWarm](https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/ultrawarm.html)
[Index State Management(OpenDistro)](https://opendistro.github.io/for-elasticsearch-docs/docs/ism/)
[ISM API(Open

元記事を表示

AWS 認定セキュリティの取得に向けての学習

#はじめに
AWSの認定資格について、昨年ソリューションアーキテクト プロフェッショナル(SAP-C01)を取得した。
そこからAWSの知識インプットの機会が減ってしまったので、上位資格の取得を目指すことにした。
そこで、選んだ結果**セキュリティ**を取得することにした。

#準備
こちらから認定について、抜粋する。
[AWS 認定 セキュリティ – 専門知識](https://aws.amazon.com/jp/certification/certified-security-specialty/)

##知っておくべきこと
+ AWSセキュリティのベストプラクティスを使用して AWS プラットフォームを保護する。
+ AWSアカウントで大規模な認証と許可を管理する。
+ 適切なデータ暗号化方法と AWS メカニズムを使用して、保管時のデータのセキュリティを運用する。
+ 適切、安全なインターネットプロトコルと AWSメカニズムを使用して、転送中のデータのセキュリティを運用する。
+ AWSでセキュリティモニタリングとログ記録を運用し、検出されたセキュリティインシデントへの対応を自

元記事を表示

Amazon SageMaker Processing -Manifestファイルで必要なファイルだけコピーする-

# Amazon SageMaker Processing

Amazon SageMaker Processingは機械学習の前処理などを、お手軽に実行することができるマネージドサービスです。S3バケットのオブジェクトを入力としたり、結果をS3バケットに出力することが簡単にでき、またローカルで作成したPythonスクリプトがそのまま動かせる感覚で使用できるなど、AWS上でデータを処理する環境としてとても便利です。
基本的な使い方は[こちら](https://aws.amazon.com/jp/blogs/news/amazon-sagemaker-processin-fully-managed-data-processing-and-model-evaluation/)や[こちら](https://aws.amazon.com/jp/blogs/news/rapids-on-amazon-sagemaker-processing/)を参照ください。

## 入力ファイルでハマったところ

多くの例ではAWSブログにもある通り、ProcessingInputでS3フォルダとコンテナをデ

元記事を表示

【2021年版】AmazonLinux で WireGuard による VPN 環境構築

# はじめに
AWS上でAmazonLinux2を利用してWireGuardによるVPN環境を構築します。

– サーバはAmazonLinux2
– クライアントはMac/Windows/iOS/Android等WireGuardのクライアントソフトがある環境
– クライアントがWireGuardのVPNを経由してVPC内の別のインスタンス(AmazonLinux2)へ接続できる

# インスタンスの起動
AWS上で利用するサーバのインスタンスを起動します。起動後、PingやSSH等で双方向に接続できることを確認しておきます。

– VPNサーバとなるインスタンスの起動
AmazonLinux2を選択します。SecurityGroupでICMPv4とSSH、WireGuardの接続で利用するUDPのPortを開けておきます。このインスタンスはEIPかPublicIPをもたせて外からSSH接続できるようにします。

– VPC内部のアクセス先となるインスタンスの起動(LinuxでもWindowsでもなんでも)
VPNサーバとなるインスタンスと同一サブネットに配置します。この

元記事を表示

AWS IAM(AWS Identity and Access Managemment)とは

IAM とは AWS サービス間の認可をするための AWS ユーザーを管理するためのサービスである。
このサービス自体はとっても地味だが、 AWS で何をするにも必ず関わってくるサービスなので、おさえておくと良い。

# IAM 利用イメージ

![iam.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59081/50fa6cf3-248e-5c11-90d5-c65492abb580.png)

# IAM ベストプラクティス

### 1)利用者ごとに IAM ユーザーを払い出し、IAM ユーザーを使いまわさない

CloudTrail 等で監査的なログを出力していても誰が何を使っているのか分からなくなってしまうため。

### 2)役割ごとの IAM グループを作成し、 IAM グループに権限を振る

IAM グループを活用することで、例えば、インフラ専用グループ、アプリ専用グループ等、用途によって分けることが望ましい。
これは、規模が大きくなればなるほど運用が楽になるメリットがある。
また、小規

元記事を表示

EC CubeをAWS(EC2)で構築するのに参考にした記事一覧

#はじめに
AWS EC2(Ubuntu)を用いてEC Cube4を構築するまでの道のりをメモとして残しておきます。
Route53を使った独自ドメインの適用やSSL化、SESのメール配信についても触れています。

#リージョン選び
まずはリージョン選びから始まります。
リージョンによっては値段が変わったり、使える機能が変わります。
例えばメール配信サービスのSESでメールが受信できるリージョンは執筆時点では限られており、日本だから東京リージョンというのは気が早いかもしれないです。
下記リンクの記事によると、米国東部(バージニア北部)リージョンが早くから新たなサービスが使えることが多く、特に理由がなければこのリージョンを選ぶとよいみたいです。
https://business.ntt-east.co.jp/content/cloudsolution/column-54.html

#メインとなる記事
EC2のインスタンスをどれを選ぶかでLinuxの中でも必要なコマンドが変わります。
ちなみにAmazon Linux2はCentOS系のコマンドみたいです。
基本的には以下の記事を参照すれ

元記事を表示

AWS EC2の負荷試験[CPU/メモリ/Disk]

# はじめに
CloudWatchアラームをアラート状態にして、発報を確認する際に、CPU/メモリ/Diskに対する負荷をかけるコマンドまとめます。

# 実行コマンド
1. 下記を実行してCPUに負荷をかけます。

“`sh:CPU負荷コマンド
# 実行コマンド(複数実行させる)
/dev/null < $(yes) & # 確認用コマンド top ``` 2. 下記を実行してメモリに負荷をかけます。 ```sh:メモリ負荷コマンド # インストール sudo yum install stress -y # 実行コマンド stress --vm 3 --vm-bytes 6G --vm-keep # 確認用コマンド watch 'free -mh' ``` ※ オプションのvmはプロセス数、vm-bytesはメモリサイズ、vm-keepは処理を持続させます。 3. 下記を実行してDiskに負荷をかけます。 ```sh:Disk負荷コマンド #

元記事を表示

AWS IoT CoreでMQTTのデータをDynamoDBへ受け流す

# やりたいこと
社内研修の一環でIoTサービスを立ち上げています。
**体重計からAWS IoT Coreに重さの情報を送り、それをDynamoDBのテーブルに格納する**ということをしたいです。

先輩[@yuuu](https://qiita.com/Y_uuu)に教えていただいた内容を整理します。

# 実装!

## Dynamo DBを作成する
まず、箱を準備します。
![スクリーンショット 2021-02-16 13.13.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/645077/4d9959c9-7721-d609-b948-75fab4c8f46d.png)
テーブルが作成できたら、IoT Coreのコンソール画面に移動します。

## IoT Coreの証明書を作成する
`安全性 > 証明書`と進みます。

![スクリーンショット 2021-02-16 13.19.44.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

AWS EC2 インスタンスタイプを変更する

##メモリが足りない
railsアプリをAWSにデプロイしようとするとassets:precompileでエラーが出て途中で落ちるようになってしまいました。
色々調べるとメモリ不足のよう。以前からスワップ領域を作って対応していたくらいなので、ここらでAWS無料枠のt2.microインスタンスからアップグレードします。

##どのインスタンスにするか
今回は1GBだったメモリを2GBにという必要最低限のアップグレードなので、安価なtシリーズからの選択。
t2/t3/t4とある中で、数字が大きいほど新しくまた安価なのでt4を選び、その中でメモリが2GBのt4g.smallを選択します。(後からt2.microからt4に変更できないことがわかりt3.smallにしました。後述。)

##イメージを作成
万一の保険にAMIを作成しておきます。
AMIとはAmazon Machine Imageの略で、マシンの構成を記録しこれをもとにインスタンスを起動できます。[詳しくは公式を。](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuid

元記事を表示

Raspberry Pi(Debian)でRoute53を更新する

# 概要
諸般の事情により、自宅に置いたRaspberry Pi(Debian)で直接PPPoE接続することになった。
そのため、外からアクセスするためのDNSレコード更新を、自分でやらねばならない。
DNSは別件でRoute53を使っており、aws CLIで簡単に更新できるので、Route53をDDNS的に使うことにした。

# ポイント/狙い
技術的に難しい/新しいことは何もなく、有りものの組み合わせで実現しているが、有りもの全体をまとめた記事がなかったので残しておく。
昔はDDNS関係の記事がいっぱいあった気がするが、今は自宅にサーバを置くような時代じゃないようで、近年の記事がない。なので近況更新のような位置づけで記事を残す。

# 作戦
前述の通り、Route53はaws CLIで更新できる。なのでPPPoE接続時にaws CLIを実行する。
具体的には、PPPoE接続時に実行される/etc/ppp/ip-up.local(シェルスクリプト)でaws CLIを実行する。

# 手順
### aws CLIを入れる
(記事の主旨と直接関係ない話だが….)
pipでawscli

元記事を表示

【LINE BOT】NBA選手のスタッツを返信する公式アカウントを作った。

#NBA stats というLINE公式アカウントを作りました(beta版)。

このボタンをクリックして追加できます。
(2/18追記:現在メンテナンス中)

友だち追加

##機能

選手名を送信すると直近のスタッツがflex message形式で返信されるというもの。
こんな感じ↓

![10CDDB62-FBC7-4158-8436-749CFC851AB4_1_105_c.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/996173/4a368144-8894-69dc-4339-052515844821.jpeg)

よきっち, トリプルダブルの活躍。

##何を打てば返信してくれるのか。

| You send… |

元記事を表示

NuxtとGraphQLとAWS(Amplify, appsync, dynamodb, cognito, s3….)を用いてWebアプリチュートリアルPart2

## 概要
– [NuxtとGraphQLとAWS(Amplify, appsync, dynamodb, cognito, s3….)を用いてWebアプリチュートリアルPart1](https://qiita.com/kaito_111/items/8633fd0088e07a1c8247)
– NuxtとGraphQLとAWS Amplify用いてWebアプリを作ってみたPart2
– [NuxtとGraphQLとAWS(Amplify, appsync, dynamodb, cognito, s3….)を用いてWebアプリチュートリアルPart3]()現在作成中
– [NuxtとGraphQLとAWS(Amplify, appsync, dynamodb, cognito, s3….)を用いてWebアプリチュートリアルPart4]()現在作成中

## やること
– ブログ一覧表示
– 新規登録

## フロント実装編
### ブログ一覧表示
まずはデータの取得なしでデザインのみでコードを書いていきます。

“`:page/index.vue