- 1. Amazon API GatewayのLambda Authorizerのレスポンスに注意
- 2. Go言語のStruct(構造体)に簡単にタグ付けをするWebアプリを公開しました(ハマったポイント覚書)
- 3. なぜAWSみたいなクラウドコンピューティングが必要か
- 4. Amazon ESでISMポリシーを設定する
- 5. AWS 認定セキュリティの取得に向けての学習
- 6. Amazon SageMaker Processing -Manifestファイルで必要なファイルだけコピーする-
- 7. 【2021年版】AmazonLinux で WireGuard による VPN 環境構築
- 8. AWS IAM(AWS Identity and Access Managemment)とは
- 9. EC CubeをAWS(EC2)で構築するのに参考にした記事一覧
- 10. AWS EC2の負荷試験[CPU/メモリ/Disk]
- 11. AWS IoT CoreでMQTTのデータをDynamoDBへ受け流す
- 12. AWS EC2 インスタンスタイプを変更する
- 13. Raspberry Pi(Debian)でRoute53を更新する
- 14. 【LINE BOT】NBA選手のスタッツを返信する公式アカウントを作った。
- 15. NuxtとGraphQLとAWS(Amplify, appsync, dynamodb, cognito, s3….)を用いてWebアプリチュートリアルPart2
- 16. AWS DMS とは?
- 17. ELBのアクセスログをログアカウントのS3に集約する
- 18. Amazon SNSでiOSプッシュ証明書の更新
- 19. 40代おっさんVPCを勉強してみた③
- 20. 【Laravel初心者】投稿保存の実装
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【デモ】
機能は以下の通りです。
– 左のインプット欄に`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
AWS DMS とは?
## 勉強前イメージ
データベースを移行するサービスくらいにしか知らない
## 調査
### AWS DMS とは?
AWS DMS とは Database Migration Service の略で
DBのデータ移行を行ってくれるサービスです。
オンプレ→AWS はもちろん、オンプレ→オンプレ も出来ます。### DMSのメリット
– 使用が簡単
ドライバやアプリケーションなどインストールする必要はありません
コンソール上のGUIで移行を実施出来ます– 最小限のダウンタイム
DB移行中も移行元DBは使用可能な状態で移行が進められるため
DBの停止を最小限に抑えることが出来ます– 広く普及しているデータベースをサポート
一般的に普及しているDBはほぼサポートしています。
異なるDBへの移行も可能になっています。– 低コスト
移行にかかった分だけの費用がかかります
– 信頼性
高い障害耐性および自己修復性があります。
## 勉強後イメージ
DBの移行ってたしかに大変なイメージ
同じ種類のDBでもダンプ→リストア→レプリって感じでやるのに・・
別
ELBのアクセスログをログアカウントのS3に集約する
documentのメモ
[Application Load Balancer のアクセスログ](https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-access-logs.html#access-logging-bucket-permissions)
Redshiftとかと同様ELBを保持しているAWSの特定のアカウントからのアクセスをバケットポリシで許可するひつようがあるので注意。
Amazon SNSでiOSプッシュ証明書の更新
## SNSでは一年ごとに証明書の更新が必要
iOSでは認証keyが導入されたため、本来であれば毎年証明書を更新するという作業は発生しないのですが、AWSのSNSは認証keyに対応していないため、従来どおり証明書を更新してアップロードするという作業が必要となってきます(ここの認識間違っていたら教えてほしいです…)。
一年に一回なので忘れがちになるので以下手順をメモしておきます。## キーチェーンから証明書ファイルの作成
keycahin Access.appを起動する。
上部メニューの
キーチェーンアクセス→証明書アシスタント→認証局に証明書を要求
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/290902/6d006af0-7d4f-bcd8-818c-ab46361c9c93.png)
メールアドレスの入力
通称はそのまま
要求の処理を「ディスクに保存」「鍵ペア情報を指定」
あとは続けて、`.certSigningRequest`ファイルをダウンロード## Apple Dev
40代おっさんVPCを勉強してみた③
#40代おっさんVPCを勉強してみた③
##本記事について
本記事はAWS初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。##AWS作成図
![vpc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641940/b9dc8ad4-bba8-2910-9975-96abff578ad3.png)##構築手順
❶ VPCを作成する
❷ VPCの中にサブネットを作成する
❸ インターネットゲートウェイをVPCに割り当てる
❹ ルートテーブルにインターネットゲートウェイへのルートへのルートを追加❶~❷はこちらを参照してください。
https://qiita.com/kou551121/items/2535fe3de57a5c813687###3.インターネットゲートウェイをVPCに割り当てる
![インターネットゲートウェイ.PNG](https://qiita-image-
【Laravel初心者】投稿保存の実装
Laravel初学者です。
オリジナルアプリを作成しているのでその過程を記事にしています。理解が曖昧なところも多いため、ご指摘等ありましたらご連絡いただければ幸いです。
今回は投稿保存の実装について備忘録のため記録として残します。
前回の記事:[【Laravel初心者】一覧表示の実装](https://qiita.com/mumucochimu/items/b0221657a3981f4a4f49)## 環境
| | Version |
|:—————|————:|
| PHP | 7.4.14 |
| Laravel | 8.24.0 |
| mysql | 8.0.23 |
| docker | 20.10.2 |
| docker-compose | 1.27.4 |## ルーティング
“`PHP:routes/web.php
Route::resource(‘/ga