- 1. Amazon SESを使うことで通常のGmailで独自ドメインを利用する -転送編-
- 2. AWS上にプロキシーサーバを構築してみた
- 3. [AWS] サーバレスアプリに対するドメイン駆動設計(DDD)の適用
- 4. ROSAをcluster-wide proxyオプションを付けてインストールする
- 5. S3のログをAthenaから操作する(Terraform)
- 6. LightSailでWebサーバを立てる
- 7. DynamoDBトリガーLambdaの「障害時の送信先 (SQS/SNS) 」における出力内容
- 8. 【AWS】CodePipelineのチュートリアルをサクッとやる
- 9. 【AWS】デフォルトで用意されるIAMのロール
- 10. AWS(StepFunctions+SSM)でなるべくサーバーレスにUE4のWin64ビルドする環境を作ってみる
- 11. AWSCLIでS3バケットを作成・削除・ローカルからファイルのコピーをやってみた
- 12. AWS SAAに合格するために行った勉強法を振り返ってみて
- 13. ネットワーク入門 VPCとセキュリティ
- 14. PaloaltoVM on AWS(10.0.4) 脆弱性保護プロファイル/セキュリティポリシー
- 15. Amazon SESを使うことで通常のGmailで独自ドメインを利用する -送信編-
- 16. 【AWS】Application Load Balancerにhttpsアクセスできるようにする
- 17. DeepRacer 報酬関数について
- 18. DeepRacer 報酬関数無しで学習→評価をするとどうなるのか
- 19. 【discord bot】マイクラサーバーの起動・停止をdiscordからできるようにしてみた
- 20. Amazon SESを使うことで通常のGmailで独自ドメインを利用する -受信編-
Amazon SESを使うことで通常のGmailで独自ドメインを利用する -転送編-
# この記事について
準備編、受信編、送信編の続き
準備編https://qiita.com/Sand-River/items/4c0dbb16b70e11ec594a
受信編
https://qiita.com/Sand-River/items/4b22f3d0369ab68cfb3f
送信編
https://qiita.com/Sand-River/items/c3f7f231ad501b92fcfc
SESでのメール受信、GmailからSESを通じてのメール送信ができるようになった。あとはSESで受信したメールをGmailに転送してやれば完成のはずだだだ。
# Lambda
SESのEmail receivingのruleからLambdaが起動できるので、こいつを使ってSES経由でGmailに転送してやればOK。
起動したLambdaに渡されるeventにはメッセージ本体(body)は渡されないので、一旦S3に格納した受信メールをmessageIdを用いて参照する必要がある。![image.png](https://qiita-image-store.s
AWS上にプロキシーサーバを構築してみた
#はじめに
AWS上にsquidを利用したプロキシーサーバを構築して、
プライベートサブネットからパブリックサブネットにあるプロキシを経由して、
インターネットにアクセスする。ということをやってみました。#構成図
こんな感じのシンプルな構成図
![proxy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/575134/d7bd072c-1eda-8f56-7cab-d30a0d601cf3.png)#前提
・以下、プライベートサブネットのインスタンスをprivate、
パブリックサブネットのインスタンスをpublicと呼びます。
・privateとpublicの通信はセキュリティグループで許可しています。
・プライベートサブネットのルートテーブルは、「10.0.0.0/16 local」 のみ
パブリックサブネットのルートテーブルは「10.0.0.0/16 local」と
インターネットに出るため「0.0.0.0/0 igw-(インターネットゲートウェイ)」を記述
・publicにのみEIP(
[AWS] サーバレスアプリに対するドメイン駆動設計(DDD)の適用
# 1.はじめに
ここ最近AWS関連の情報収集に傾倒していることもあり、開発周りの知識のアップデートが少ない気がしたのでドメイン駆動設計(DDD)の本を2冊ほど読んでみました。
これによりなんとなく勘所は掴めた(気がする)ので、実際にDDDをAWSのサーバレスアプリに組み込んでみたいと思います。
例によって私の大好きなフレームワークであるChaliceを使用したアプリケーションを対象にしていますが、言語がPythonであれば大体は応用が利くのでは、と考えています。たぶん。# 2.DDD適用における前提
* 適用対象のソースコードは[こちらの記事](https://qiita.com/hiro-tech1192/items/d9941b1ff4e07506797b)に掲載したものを使用します。OpenSearch(Elasticsearch)を使用した商品検索APIのサンプルで、比較的シンプルなコードです。
* 前述の通り、サーバレス用のフレームワークにはChaliceを使用しています。言語はPythonです。Chaliceをご存じない方は末尾に解説ページのリンクを貼っているので
ROSAをcluster-wide proxyオプションを付けてインストールする
## やりたいこと
* ROSAはこれまでL3のルーティングでインターネットにアクセスできる環境上でないとインストールできなかった
* ROSA CLIのv1.1.7のリリースノートに`ROSA: Support editing cluster-wide proxy`が含まれており、HTTP PROXY経由でのインストールができるようになった。これを試したい。
* また、ROSAのインストールコマンドの発行もHTTP PROXY配下で実施したい。## 前提条件
* 1つのVPCにPublic SubnetとPrivate Subnetを作る
* NAT Gatewayは作らずに、Public SubnetにForward Proxy(Apache)を構築する
* Private SubnetにEC2を作り、ROSA CLIを実行し、ROSAのインストールを試みる“`apache:/etc/httpd/conf.d/proxy.conf
Listen 3128
ProxyRequests On
ProxyVia
S3のログをAthenaから操作する(Terraform)
# S3のログをAthenaから操作する(Terraform)
# ながれ
– ワークグループを作る
– データベースを作る
– テーブルを作る※その他テーブル作成用のクエリやクエリ実行結果の保存先バケットなどは別途つくる
# 用語解説
## ◾️ ワークグループ
リソースの分離や上限の設定を行える仮想的なグループ。グループごとにIAMを設定し、誰がどのような権限で縛られたワークグループを操作できるかといった管理などが行える。
## ◾️ データベース、テーブル
このあたりはRDBMSと同じ考え方でokだと思います。
# リソース構築
まずはワークグループとデータベースを作成します。
athena.tf
“`go
resource “aws_athena_workgroup” “logs” {
name = “logs”
configuration {
// クライアント側のクエリの結果、暗号化設定を上書きするか
enforce_workgroup_configuration = true
// クエリ関連のメトリクスをClo
LightSailでWebサーバを立てる
#はじめに
備忘として投稿しています。
#インスタンス作成
##画面遷移
Lightsailのホーム画面 > [インスタンス]タブ > [インスタンスの作成]##設定項目
1. ロケーション
東京、ゾーン A (ap-northeast-1a)
1. プラットフォーム
Linux/Unix
1. 設計図
WordPress
![スクリーンショット 2022-02-08 22.35.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758644/b2b3a1e4-9bf6-6be4-0852-0cf8ed3b3493.png)
1. (オプション)起動スクリプトの作成
しない
1. (オプション)SSHキーペアの変更
[SSHキーペアの変更]をクリックして、デフォルトキーのダウンロードをする。
1. (オプション)スナップショットの有効化
スナップショットはWebサーバの作り込み後に設定するので、無効。
![スクリーンショット 2022-02-08
DynamoDBトリガーLambdaの「障害時の送信先 (SQS/SNS) 」における出力内容
## 何の記事?
業務でDynamoDB Streamsをトリガー実行とするLambdaを開発することになりました。
DynamoDB Streamsをトリガーにする場合、トリガーには関数でエラーが起きた際の「再試行回数」と「レコードの有効期間」を設定することができます。
同一レコードがこの設定値を超過した場合、該当レコードはスキップされ次の取得可能なレコードに処理が移ります。
したがって、レコードが捨てられる際にリカバリのための「障害時の送信先」としてSQSまたはSNSを設定することができます。
この際、SQSやSNSにはどんな内容が出力されるのか説明した記事が見当たらなかったので、記事に書き起こしておきます。## 出力内容
SQSでもSNSでも内容は変わらず、次の形式でJsonが出力されます。
`DDBStreamBatchInfo`に今回処理対象のStream情報が記載されており、これらの値を使ってリカバリすることができます。“`
{
“requestContext”: {
“requestId”: “XXX-XXX-XXX-XXX-XXX”,
“fu
【AWS】CodePipelineのチュートリアルをサクッとやる
# CodePipeline のチュートリアル
使うことになったので早速チュートリアルをやる
[公式手順](https://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/tutorials-simple-codecommit.html)## チュートリアルの流れ
1. CodeCommitのリポジトリのmasterブランチへのプッシュを行うと
2. CodePipelineによってCodeDeployが実行されて
3. EC2にデプロイを実行する
4. デプロイ完了したら、Congratulationsのページが表示される## 手順
### 1. IAM作成
– name : CICDtest
– role :
– AWSCodePipeline_FullAccess
– AWSCodeCommit_PoweUser### 2. リポジトリ作成 & クローン
### リポジトリ作成
– name : myrepo
### IAM設定
– パブリックキー登録
CICDtestユーザの
【AWS】デフォルトで用意されるIAMのロール
– 新規アカウント登録時にデフォルトでIAMのロールが2つ用意される
![iamdfault1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596144/f085fad4-65c2-cce9-d5ad-ec12d9c205b9.jpeg)
– 2つのロール名は
– AWServiceRoleForSupport
– AWSServiceRoleForTrustedAdvisor![iamdefault.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596144/1d0863c7-09f7-5f22-f9b0-f07c0b84e579.jpeg)
AWS(StepFunctions+SSM)でなるべくサーバーレスにUE4のWin64ビルドする環境を作ってみる
AWSでUE4のWin64向けのパッケージビルドをするためにStepFunctionsとSSM(Systems Manager)を利用してなるべくサーバーレスで実行する環境を作ってみました。
StepFunctionsでEC2の起動、終了を管理しSSMのRun CommandでEC2に対してビルドコマンドを実行します。
ここでは作成したAWS環境について記述します。# 前提
## UE4のクロスコンパイル[WindowsのUE4でLinux向けのクロスコンパイルは可能](https://docs.unrealengine.com/4.27/ja/SharingAndReleasing/Linux/GettingStarted/)ですがLinuxのUE4でWindows向けのクロスコンパイルはサポートしてないようなのでWin64ビルドするためにはWindows環境が必要そうです。
## Windowsのコンテナ利用でのビルド
以下の理由のためにコンテナを用いたWindowsでのUE4ビルドは現時点では諦めEC2でビルドすることにしました。
(Fargateも利用したいがGPU
AWSCLIでS3バケットを作成・削除・ローカルからファイルのコピーをやってみた
# はじめに
aws cliの学習で、S3のバケット操作を今回学習したのでアウトプットします。# 環境
“`powershell
$ aws –version
aws-cli/2.4.1 Python/3.8.8 Windows/10 exe/AMD64 prompt/off
“`# S3バケットの作成
“`powershell
# バケット名はAWS内で一意にする必要がある
$ aws s3 mb s3://# バケットが作成されたか確認
$ aws s3 ls“`
# ローカルからS3バケットにオブジェクトをコピー
“`powershell
# ローカルのディレクトリ(ファイル含)を確認
$ tree /f
C:.
│
└─test2
test1.txt
test2.txt# ローカルのファイルをS3バケットへコピー
$ aws s3 cp test2 s3://–recursive # バケット内のオブジェクトを確認
$ aws s3 ls s3://
AWS SAAに合格するために行った勉強法を振り返ってみて
AWSを実務で全く触っていない私がAWS SAA に合格した話です:sunglasses:
スコアは773点でした。## はじめに
この記事では、私がSAA合格するまでに行った勉強法を振り返り、よかった点ともっとこうしたらよかったなと思う点についてまとめていきます。なぜ取ろうと思ったのかなどの背景部分は省いています。加えて、試験に臨む意識的な面で役に立ったと思うことを書きます。こちらは、試験前日や試験当日でも役に立つと思います。
勉強法は人それぞれですし、感じたことは主観的な意見になりますが、これからSAA取得に向けて勉強する人に少しでも助けになればと思い書いています。
### プロフィール
事前情報として私のプロフィールについて載せておきます。・新卒入社1年目。開発系の部署に所属しており、実務でAWSは全く触らない。
・大学は情報系ではない理系の学部に通っており、少しだけプログラミングやIT知識を学んでいた。
・会社の新人研修でインフラの基礎知識やAWSについてEC2, RDS くらいは学んでいた。IT知識が全くないわけではないが、AWSやインフラについては詳しく
ネットワーク入門 VPCとセキュリティ
# この記事について
私自身の専門業務が機械学習やデータ分析を用いたになるのですが、ネットワークの構築を行うことになり基本を復習したので備忘録として記しておきます。## 実行環境
AWS利用を想定して記述します。## VPC
VPCとはVertual Private Networkの略になります。
要はプライベートにルールなどを色々決められる自作のネットワークになります。
AWSなどのクラウドサービスを利用してサーバーを構築する際にはVPCという環境を作成して、そこにサーバーを置く形になります。### VPCのルール
VPCは主に2つ設定しなければいけないルールがあります。1. IPアドレスを使用する範囲をどうするか
2. インターネットに繋ぐかどうか
3. VPCを更に小さい単位(サブネット)を複数設けるか#### 1.IPアドレスを使用する範囲の決定
インターネットはIPアドレスという4桁(6桁もあります)の番号で宛先を指定して通信を行います。
このIPアドレスを指定しないと宛先していない郵便と一緒でどこに送れば良いか分からないため通信が出来ません。
IPアド
PaloaltoVM on AWS(10.0.4) 脆弱性保護プロファイル/セキュリティポリシー
今回は脆弱性保護機能のテストをしたいと思います。VMトライアルラインセスでは動作しなかったため、AWS環境で実施しています。構成は下記の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2335933/1e13a17c-08bf-d27a-6835-3030dd8d2c43.png)
## 1. 前提
Publicセグメント内にあるLinuxのみ外部からの接続を許可する形にして、セキュリティグループは10.0.0.0/16で許可。SSHポートフォワードを設定してPalo向けのHTTPSおよびWindows2016へのRDP接続をしています。Internal-ZoneのWindows2016とDMZ-ZoneのAmazonLinuxはそれぞれのセグメント向けにスタティックルートを設定しています。一時的にインターネットからパッケージを引っ張ってきたりChromeをインストールするために、NATGatewayも設定しました。また、Paloaltoに後から追加したDMZとInte
Amazon SESを使うことで通常のGmailで独自ドメインを利用する -送信編-
# この記事について
準備編、受信編の続き
準備編
https://qiita.com/Sand-River/items/4c0dbb16b70e11ec594a
受信編
https://qiita.com/Sand-River/items/4b22f3d0369ab68cfb3f# 送信定義
https://docs.aws.amazon.com/ja_jp/ses/latest/dg/send-email-smtp.htmlSES Dashboardの「Simple Mail Transfer Protocol (SMTP) settings」から「Create SMTP credentials」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554633/40926a59-8718-5852-4a36-7aaa118097a0.png)
IAM User Nameだけ入力して「作成」
(必要なIAM Policyは自動でアタッチされる。ses:SendRawEm
【AWS】Application Load Balancerにhttpsアクセスできるようにする
前提
– Application Load Balancerに独自ドメインを割り当てている
# SSL証明書を取得する
サービスからCertificate Manegerを選択
![cm1.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596144/c454c372-9fdb-029d-2294-e27b1c804031.jpeg)
証明書をリクエスト
![cm2.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596144/57aa1479-3516-17c7-478c-fbfc1bf2f91a.jpeg)
パブリック証明書をリクエスト
![cm3.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/596144/2993c606-d060-d45c-cc53-313087c98d9b.jpeg)
– 完全修飾ドメイン名にht
DeepRacer 報酬関数について
# はじめに
DeepRacerでタイム向上を狙う上で最も重要となるのが報酬関数になると思います。
初期状態だと下記のように「track_width(トラックの幅)」と「distance_from_center(車体の中心とトラックの中心の距離)」しか使用していなく、これだけではコースアウトばかりでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2239199/9767f8d0-2a76-7177-ca15-05d10f6f042f.png)しかし報酬関数について調べても関数1つ1つに対して詳細に記載があるページは少なかったです。。。
[AWS公式ドキュメント](https://docs.aws.amazon.com/ja_jp/deepracer/latest/developerguide/deepracer-reward-function-input.html#reward-function-input-all_wheels_on_track)に記載がありましたがすぐにコー
DeepRacer 報酬関数無しで学習→評価をするとどうなるのか
# はじめに
報酬関数の比較をするうえで元となるデータが必要でした。
色々調べても報酬関数無しの評価データはさすがに見つかりませんでした。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2239199/a886a437-43ae-b5e6-b209-ce2cd679c045.png)DeepRacerはどんなに報酬関数を作りこんでも、報酬関数無しでも1時間$3.5の料金がかかるのであまり無駄な学習・評価したくないものですよね。。。
# 報酬関数無しでモデル作成
という事で自分で検証してみます!
報酬関数はどんな走りをしても同じ値が返るようにしてモデルを作成し、1時間の学習→評価をしました。“`
def reward_function(params):
reward = 1e-3
return float(reward)
“`# 報酬関数無しの結果
![image.png](https://qiita-image-store.s3.ap-northe
【discord bot】マイクラサーバーの起動・停止をdiscordからできるようにしてみた
# はじめに
マイクラのサーバーをdiscordから誰でも起動できるようにしたくてdiscord botからEC2・マイクラサーバーの起動・停止を行えるようにしてみました。
EC2は従量課金制なので、起動していればその分だけお金がかかってしまいます。誰も使っていないのに起動しているのは無駄なので、だれでもdiscordから自由に起動と停止ができるようにしてみました。# この記事の対象者
– Pythonの基本的な構文が理解できている方
– EC2の制御をdiscord botから行ってみたい方# 構成図
![Minecraft Bot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1586001/431cf935-1403-810f-c3ea-64e581eb4220.png)– __t2.micro:discord bot用__
– __t2.medium:minecraft server用__discord bot用サーバーは常時動いており、minecraft用サーバーを必要なときに
Amazon SESを使うことで通常のGmailで独自ドメインを利用する -受信編-
# この記事について
準備編の続き
https://qiita.com/Sand-River/items/4c0dbb16b70e11ec594a# 受信のための設定
https://docs.aws.amazon.com/ja_jp/ses/latest/dg/receiving-email-setting-up.html
前提として準備編でドメインの検証が完了していること。
## DNS定義
利用するドメインのMXレコードとして以下の値を設定する。
10 inbound-smtp._regionInboundUrl_.amazonaws.com例)バージニア北部(us-east-1)だと
`10 inbound-smtp.us-east-1.amazonaws.com`## 受信用S3の作成と設定
受信したメールを直接SNSやLambdaに渡す事もできるが、SNSだとサイズの制限(150KB)があったりLambda一発だとロストの心配があったりするので、一旦S3に蓄積する。https://docs.aws.amazon.com/ja_jp/ses/late