- 1. AWSの勉強メモ
- 2. 備忘録:お名前メールとroute53を連携させる時の注意点(送信できるが受信ができない)
- 3. AWS移行時にいくつか気になった事
- 4. AWS EC2で、index.phpが表示されない?
- 5. AWS EC2で「pip install annoy」でgccのエラー解決策
- 6. QuickSight で対応していない日付フォーマット(yyyymmddhhmiss, UTC)を扱う。
- 7. 未経験3年目のwebエンジニアが今年使った技術まとめ2020
- 8. サブネットをインターネットと接続する方法
- 9. AWSでのドメイン取得からhttps化まで
- 10. ALBにCognitoの認証をかける
- 11. 【非公式】re:Invent 2020 IoT関連発表リスト
- 12. 【AWS】WordPressのサイトをSSL化した際のエラー対処
- 13. AWS Protonのメモ
- 14. DocumentDBの初期値が不親切な件
- 15. Aurora Serverlessの接続数について調べた
- 16. SSMオートメーションでDocDB自動停止をやってみた
- 17. AWS KMS (Key Management Service) に関する私的メモ
- 18. 【AWS】WordPress削除の備忘録
- 19. AWS SAMでAPIGatewayからLambdaをエイリアス指定で呼び出す
- 20. Go言語でAWS Lambdaの開発をサポートするパッケージを作った
AWSの勉強メモ
## ELB(Elastic Load Balancing)
トラフィックを複数のインスタンスに分散する(オンプレでいうロードバランサー)
ヘルスチェック機能を持っており、配下のインスタンスがヘルスチェックに失敗した場合、振り分けを停止する
ヘルスチェックが回復した場合、振り分けを再開する
暗号化・復号化(SSL)機能を利用できる3 種類のロードバランサー
* Application Load Balancer
* Network Load Balancer
* クラシックロードバランサー## ELBのスティッキーセッション
ELBがサーバにリクエスト振り分ける際、特定のCookieを確認することで、
特定のクライアントからのリクエストを特定のサーバに紐付けることが出来る機能###ELBのスティッキーセッションの設定は以下3つのパターン
・維持無し(スティッキーセッション無しの場合)
・ELBによって生成されたCookieの維持
・アプリケー
備忘録:お名前メールとroute53を連携させる時の注意点(送信できるが受信ができない)
## 構成
・お名前.comでドメイン取得
・お名前メールライト使用
・DNSはroute53を使用## 詰まったところ
・メールを送信できるが、受信が全くできない
送信に関してはrailsでaction mailerで送ることができている。
ただ、ドメインに向けてメールを送信しても、以下の画像のようになり受信ができない。
![スクリーンショット 2020-12-28 8.46.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/528450/1294b3ad-27df-1a88-4cdb-1b05cb90bb7d.png)## 解決策
・route53でmxレコードの登録方法を変更して、mx〇〇.gmoserver.jpに転送する。“`
10 mail.example.com
↓
10 mx〇〇.gmoserver.jp
“`
〇〇の中身はお名前メールにログインしてコントローラパネルを開き、「サービス設定」→「サーバー情報」を押してページ下部にサーバー情報があるのでそこを参
AWS移行時にいくつか気になった事
こんにちは。
ウェブクルー AdventCalendar 23日目の記事です。
昨日は @kalzit さんの「 非同期スタックトレースについて 」でした。本投稿ではAWSを弊社で本格的に使い始めるにあたり、気づいた点等を記載していきます
## はじめに
ウェブクルーでは以前からGCPの積極活用はしていましたが、AWSについてはGCPで動かないサービスやないサービスを少し動かすだけ程度しか利用していませんでいた。
ただ昨今クラウドの利用料金が低価格になってきた中で、オンプレでの運用がコスト高になってきたこともあり
オンプレでオラクルと連携している既存サイトについても、クラウドに移行することになりました。
GCPではオラクルのマネージドのサービスはなく、Accentureさんと連携して提供しているサービスはあるもののあくまで北米リージョンでの稼働のみであるため日本からのアクセスではアクセス速度が遅くなることからGCPは選択肢から外れ、自然とAWSはマネージドサービスを持っていることよりそちらに移行することにしました。本格的にAWSを使うのは弊社としては初めてでし
AWS EC2で、index.phpが表示されない?
[AWS EC2上にPHPサイトを立ち上げて、独自ドメインでアクセスできるようにするまでの全手順](https://qiita.com/harufuji/items/4fcd8f991fab5ad3354a#ssh%E3%81%A7%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B)
[AWSに登録してwebサーバーを立ち上げてみる](https://qiita.com/Hikery/items/b919ae9e35f0f66e6a95)これらの方々の情報共有で最後のところまでいけたんですが(ありがたい..?)
なぜか、この最後の部分で引っかかってたんですが、sudo追加でいけました。“`terminal
systemctl restart httpd.service
“`
↓“`terminal
sudo systemctl restart httpd.service
“`
AWS EC2で「pip install annoy」でgccのエラー解決策
Annoyをインストールしようとしたら…
“`
pip install annoy
“`“`terminal
地獄の長いエラー…
…
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/home/ec2-user/.pyenv/versions/3.7.0/include/python3.7m -c src/annoymodule.cc -o build/temp.linux-x86_64-3.7/src/annoymodule.o -D_CRT_SECURE_NO_WARNINGS -march=native -O3 -ffast-math -fno-associative-math -DANNOYLIB_MULTITHREADED_BUILD -std=c++14
gcc: error trying to exec ‘cc1plus’: execvp: No such file or directory
error: com
QuickSight で対応していない日付フォーマット(yyyymmddhhmiss, UTC)を扱う。
# QuickSight で対応していない日付フォーマットを扱う。
## 課題
日付のフォーマットが”yyyymmddhhmiss”,UTCを扱う必要があったが、フィールドでDate型を指定すると検証でエラーとなる。
## 結論
関数(parseDate, concat, substring)を駆使して日付フォーマットに変換する。
## 対応
データセット画面にて、計算フィールドを追加
![image-20201228013411491.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/141148/003e032f-f41a-70e2-3588-5d33ea24acd3.png)下記式にて変換。文字を分解して、Tを付けつつ parseDate にて日付に変換を実施。
“`
addDateTime(9,”HH”,
parseDate(concat( substring({accept_order_date},1,8), “T”, substring({accept_order_
未経験3年目のwebエンジニアが今年使った技術まとめ2020
# はじめに
今年も終わりそうです。
2020年ってどんな技術使ったけな〜〜〜ってメモです。
## フロントエンド
### FW
相変わらず [Nuxt.js + TypeScript](https://ja.nuxtjs.org/) です。
今のお仕事では [Composition API](https://composition-api.nuxtjs.org/) も導入され、次バージョンへの追従もされています。
### CSSライブラリ
今のお仕事では [TailwindCSS](https://tailwindcss.com/) を使っています。
要素にtailwindが提供するclassをいっぱい当てていく感じで、まじでCSSを書く量が減ります。
tailwindが提供しているclassを使って、独自のclassを作ることもできるのですぎょいなぁって思います。
### UIライブラリ
[Vuetify](https://vuetifyjs.com/ja/) か [ElementUI](https://element.eleme.io/#/en-US) を
サブネットをインターネットと接続する方法
### ■ インターネットに接続するための回線を引き込む
Amazon VPCにおいて、あるサブネットをインターネットに接続するには、**「インターネットゲートウェイ(Internet Gateway)」**を用いる。これは、「自分のネットワークにインターネット回線を引き込む」というイメージの作業となる。
### ■ 作業手順
#### ① メニューから[インターネットゲートウェイ]をクリックして開き、[インターネットゲートウェイの作成]をクリックする。
[![Image from Gyazo](https://i.gyazo.com/64b681c648927a4a1a47dc90cfd1e999.png)](https://gyazo.com/64b681c648927a4a1a47dc90cfd1e999)#### ② [作成]をクリックする。
[![Image from Gyazo](https://i.gyazo.com/06a2f03f7fd2772cffce9fc6378d34bd.png)](https://gyazo.com/06a2f03f7fd2
AWSでのドメイン取得からhttps化まで
# はじめに
AWSで独自ドメインを取り、証明書を発行しALBをhttps化するまでのメモ
# やり方
## ドメイン取得
1. AWSコンソールからRoute53を開き、右側の「ドメイン」をクリックします。
2. 上部にある「ドメインの登録」ボタンをクリックします。
3. 好きなドメインを検索し、「カートにいれる」→「続行」→「注文を完了」と進めます。ドメインの購入には最大で1日ほど時間がかかるようですが、自分の場合は30分ほどで手続きが完了しました。手続きが完了すると、登録してあるメールアドレスにメールが届きます。
## 証明書の作成
1. AWSコンソールからCertificate Managerを開きます。
2. 「証明書をリクエスト」をクリックし、パブリック証明書にチェックを入れ次のページへ進みます。
3. ドメイン名に先ほど購入したドメインを入力します。この時「*.<ドメイン名>」という形式で入力してください。このようにしないと、サブドメインを切った時に、この証明書を使い回すことができなくなります。
4. 「検証方法」ではEメールにチェックを入れます。(DN
ALBにCognitoの認証をかける
# はじめに
ベーシック認証のようなものを、ALBとCognitoを使って実現する話です。
こんなやつ。![スクリーンショット 2020-12-27 21.28.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614264/91e7b6c3-4e2f-61e3-6816-df25861adb76.png)
# やり方
### userpoolの作成
AWSコンソールからcognitoを開き、右上の「ユーザープールを作成する」ボタンをクリックします。
![スクリーンショット 2020-12-27 21.05.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614264/6a08106f-2c28-3737-ddee-681978297228.png)プール名を入力し、「デフォルトを確認する」をクリックし、「プールの作成を」クリックします。
設定を変更したい方は、お好みで変更してから作成してください
【非公式】re:Invent 2020 IoT関連発表リスト
# はじめに
re:Invent 2020では大量の発表がありましたが、その中からIoT関連のものを収集しました。
## 元データ
元データとなったリストは[こちら](https://github.com/greennote/reInvent2020-iot-related)にあります。元データが更新されたらこちらも随時更新します。
## ご注意
このリストは公式のものではありません。記載されている情報の正確さについては保証しません。サービスや機能の利用に当たっては、必ずAWS公式の資料を参照してください。
## 関連情報
re:Invent 2020で行われたIoT関連の講演はAWSから公式に[リストが公開されています](https://d1.awsstatic.com/IoT/AWS-IoT-reInvent-Sessions.pdf)。ぜひこちらもご覧ください。
## 協力のお願い
見逃し、勘違いなどあるかと思います。何か気付いたことがあれば[こちら](https://github.com/greennote/reInvent2020-iot-related)か
【AWS】WordPressのサイトをSSL化した際のエラー対処
## はじめに
ドメインをお名前.comで取得して、AWSで作成したWordpressのサーバーでSSLを試みた際に
いくつかエラーに遭遇したので備忘録として残します。## 環境
– Route53
– ACM( AWS Certificate Manager)
– ALB( Application Load Balancer)
– EC2( Elastic Compute Cloud)
– Apache
– WordPress## エラー内容
####①リダイレクトループのエラー
![osozaki-engineer_work.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438093/04ee79bd-795e-0f41-d838-585fe90e1da3.png)
####②wordPress管理画面の権限エラー
![WordPress_›_アクセス権限エラー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/
AWS Protonのメモ
## メモ
AWSが用意してくれた、ECSのサンプルをベースに自分なりに整理
(注:どんなサービスも環境側とサービス側で定義可能)![proton1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587858/4fc57d22-f3cf-b84e-097b-b083233acd30.png)
解釈が微妙な奴もあるかも(特にサービスとサービスインスタンスがまだ微妙)
###### Proton概要
[AWS Proton:コンテナおよびサーバーレスデプロイメント向けの管理の自動化](https://aws.amazon.com/jp/proton/)###### Protonのサンプル(READMEがチュートリアルみたくなってる)
[aws-samples/aws-proton-sample-templates](https://github.com/aws-samples/aws-proton-sample-templates)###### ProtonのECSのサービスサンプル
[a
DocumentDBの初期値が不親切な件
#DocumentDBとは
MongoDB互換のAWSマネージドサービスです。ドキュメント指向型のNoSQLでJSONやXMLをそのまま保管できます。#DocumentDBのインスタンス料金
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/191613/85a51b14-7350-c5d5-f86b-2d71945c7047.png)(参考:https://aws.amazon.com/jp/documentdb/pricing/)
>料金は、インスタンスの作成から終了あるいは削除までのインスタンス時間単位で計算されます。
一番小さいもので1日あたり0.119USD×24=2.856USDです。
#インスタンスクラスの初期値が不親切な件
以下は、AWSでDocumentDBを作成する時の最初の画面です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/191613/b3d079e
Aurora Serverlessの接続数について調べた
#はじめに
Aurora Serverlessへ接続するアプリで「Too many connections」というエラーが頻発したので接続数について調べたことのメモ。#接続数はいくつに設定されているか
これはパラメータグループで確認できる。以下のようにキャパシティー(ACU)に応じて変化する設定になっている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/191613/b1a47020-99e7-4a26-1601-b6d13301b52b.png)各ACUごとの接続数は以下の通り
1ACU:90
2ACU:180
4ACU:270
8ACU:1000
(参考:https://qiita.com/kaba-chan/items/bfd1d8d333d277d6e11a)現状ACUの最大値を1に設定しているので、最大90接続までということになる。
#ACUに対する接続数を増やすことができるか
例えば以下のように設定すれば1ACUでも180の接続を許可できるのではないか“
SSMオートメーションでDocDB自動停止をやってみた
#はじめに
AWSのRDSは停止しても7日間経過すると自動で起動されてしまいます。知らないうちに起動されて課金されることを防ぐためにRDS(今回はDocDB)を自動停止する仕組みをSSMオートメーションで試してみました。#準備
##まずSSMドキュメントを実行するロールを作ります。
IAM > ロールの作成から
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/191613/c35d4d89-170d-0416-a659-23b99767ef08.png)AmazonEC2FullAccessは無くても良いですがEC2も停止するケースも考慮して含めています。
##作成したロールの信頼関係を編集をします。
作成したロールを選択して信頼関係の編集から“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: {
“Servi
AWS KMS (Key Management Service) に関する私的メモ
「[AWS認定 セキュリティ – 専門知識](https://aws.amazon.com/jp/certification/certified-security-specialty/)」を受験するにあたって、KMSについて個人的にまとめたメモです。
#各CMKの比較表
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/51871/bfaf3d51-6bb7-0afa-b9ae-6b291e042fb2.png)#Envelope enryption
「[S3データ格納時のサーバ側暗号化(SSE-S3、SSE-KMS、SSE-C)と、クライアント側暗号化(CSE-KMS、CSE-C)](https://qiita.com/yz2cm/items/ca33ced6e1f5fbcff459#cdk)」を参照。#BYOK (Bring Your Own Key)のインポート
**BYOKのポイント*** 外部キーのインポートは**対称暗号のみ**可能。
* 外部キーは**自動ローテー
【AWS】WordPress削除の備忘録
#はじめに
WordPressをAWS上で立ち上げたものの、その後あまりブログを更新することもなく。。。
EC2使っていたので料金も月数千円ほどかかってしまい、維持が大変だったのでWordPressを削除したいと思います。
特にこれといったAWS上のWordPress削除方法に関する記事もなかったので、普通にAWS上のサーバー等を消したいと思います。もしやり方など間違っていたらご了承ください。今回削除するWordPressの構成は、以下のURL通り。
https://qiita.com/blackpeach7/items/be28e2249f308bac7592
ドメインはお名前.comで購入。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449478/44dc20cf-7d9a-84bd-2b9f-e52fc20117ae.png)#ドメインの廃止
お名前.comでドメインの登録をしたが「ドメインの廃止の手続きは必要なのか?」と疑問に思い調べてみると、以下の通りだった。[
AWS SAMでAPIGatewayからLambdaをエイリアス指定で呼び出す
# はじめに
AWS CloudFormationの拡張機能であるAWS SAMを使って、APIGatewayとLambdaを管理するユースケースは多いと思います。SAMのメリットのひとつとしては、少ない記述量で済むことが挙げられると思います。さて、このSAM。APIGatewayとLambdaを素直に管理するのには良いのですが、プロジェクトが成熟したときに出てくるかもしれない、このような要望には少々難しいところがあります。
私「できた。SAM最高。」
SRE「そういえば、LambdaをバージョニングしてAPIGatewayからはエイリアス指定のLambdaを呼び出すようにできたりしますかー?」
私「Lambdaをデプロイするタイミングで最新バージョンに向いてしまうのはアレですもんね。エイリアスLambdaをトリガーするようにしつつ、エイリアスは手動で張替えしたいということですよね。バージョニングは何かあったときにROLLBACKもできますし。」
私「調査します!」
… 数時間後 …
私「SAMだけでは、できなくないかい…これ…?」
# Versio
Go言語でAWS Lambdaの開発をサポートするパッケージを作った
仕事でGo言語 + AWS Lambdaを用いる機会が多く、特にセキュリティ監視関連基盤のバックエンド処理を開発しています([これ](https://techlife.cookpad.com/entry/2020/03/18/073000)とか[これ](https://techlife.cookpad.com/entry/catbox)とか[これ](https://techlife.cookpad.com/entry/2019/11/21/073000))。
開発をすすめる中で「こうすると便利だな」というちょっとしたtipsはいろいろあったのですが、あまりに細切れな処理すぎるのでプロジェクト間でコピーするなどして開発に利用していました。とはいえ管理しているプロジェクトが多くなってきたことで挙動がまちまちになってしまったり、ある程度tipsの数が溜まってきたのもあって、パッケージとして切り出してみました。
https://github.com/m-mizutani/golambda
AWSが公式で提供しているPowertools([Python版](https://github.c