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

AWS関連のことを調べてみた2022年05月18日
目次

Amazon EventBridge の 使い方

Cloudwatch alertを使って、[EC2のオートリカバリ](https://qiita.com/kazwata/items/feea966dbb4b76eedc37)や、SNS -> lambdaを介してSlack通知など、便利に使っていたのですが、連携できるサービスが限られているため、EventBridgeを使ってみます。

# EventBridgeとは
EventBridgeは、AWS外のSaaSやAWSサービスで発生した様々なEventを受け取って、LambdaやStep Functions などの指定したターゲットにEventを連携することができるサーバレスのマネージドサービスです。EventBridgeという名称そのままな感じですが、Eventソースとターゲットの自由度がかなり高いので、アイデア次第で色々できそうな感があります。

# EventBridgeの設定方法
「Cloudwatch alertのイベントを受け取って、lambdaに連携する」というEventBridgeを作成してみます。まずは、Amazon EventBridge > ルール > ルールを

元記事を表示

CognitoユーザープールはMFAを無効にしていても、MFA出来ます。(特にEメールによるOTP)

# スマートにサインインサインアップ機能を実装したく、Cognitoのユーザープールを作成していた時のこと。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1699525/b57de284-6f4c-702d-8c1c-d5f8aa835170.png)
「ん?多要素認証ってことはメールで認証コードを送るあれ(OTP)ができるってことかな?」
「でも選択肢にはTOTPとかいうのとSMSメッセージの認証しかねえぞ・・・?」
「でもOTPもMFAの一種だし、ここでMFAなしに設定したらOTPできなくなるのか・・・???」

とここではまってしまいドキュメントをひっかきまわす。

# 結論:メール認証(OTP)やりたいならMFAなしで大丈夫

色々調べた結果、OTPとMFAの設定は無関係で、何にもしなくてもサインアップの際にEmailに認証コードを送ってくれる。
まずCognitoのAPIにある`SignUp`をLambdaで実装。TEST機能で自分のメアドでサインアップすると、、、
![im

元記事を表示

Golangでform dataから受け取った画像をS3にアップロード

# はじめに
GolangでAPIサーバーを構築しており、APIで受け取った画像データをS3にアップロードする処理を実装したので、方法を共有しようと思います。初心者Golangerなので受け取った画像をリサイズなどせずにそのままアップロードする方法しかわからなかったので、その点は悪しからず。むしろ方法をご教示いただきたい所存。。。S3以外の処理は省略します。

# 完成コード
“`golang:s3Handler.go
func (app *Application) imageUpload(w http.ResponseWriter, r *http.Request) {
err := godotenv.Load(fmt.Sprintf(“./%s.env”, os.Getenv(“GO_ENV”)))
if err != nil {
log.Fatalln(err)
}
ak := os.Getenv(“AWS_ACCESS_KEY”) // .envのAWS_ACCESS_KEY
ask := os.Getenv(“AWS_SECRET_ACCESS

元記事を表示

ConoHaでEC-CUBEインストールしたらSSLしなかった件

# 動作環境
レンタルサーバーConoHa
EC-CUBE 4.1.0

# 不具合
![スクリーンショット 2022-05-17 23.43.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1653133/4e99fbdb-8bb1-df8f-6661-b4a21dcbc57c.png)
色々操作ができない

# 原因
SSL通信できていないことらしい

# SSLを強制に✔︎できない
![スクリーンショット 2022-05-17 23.48.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1653133/5897f390-b331-7006-4242-c8fa5c1eda5c.png)

# ロードバランサーが関係しているらしい
`AWS`
`ConoHa`
などで発生している模様

# 解決
`.htaccess`に以下を追記

RewriteRule ^(.*) – [E=HTTPS:on]

元記事を表示

【初心者】Amazon Route 53 Resolver インバウンド/アウトバウンドエンドポイント を使ってみる

# 1. はじめに
– AWSのネットワーク関連の復習をしている。AWSと外部(オンプレミスなど)を接続した際のお互いの名前解決の方法について確認したかったため、実機での設定を行い基本的な仕組みを理解する。

# 2. やったこと
– AWS VPCとGCP VPCネットワークがVPNで接続されている環境を用いる。(環境の構築記事: [【初心者】AWS Site-to-Site VPN を使ってみる (GCPとのVPN接続)](https://qiita.com/mksamba/items/f6f2896a9456dd68bed8))
– GCP内のインスタンスから、Route 53 Resolver(インバウンドエンドポイント)を用いて、AWS側VPC内の名前解決を行う。
– AWS内のインスタンスから、Route 53 Resolver(アウトバウンドエンドポイント)を用いて、GCP側VPCネットワーク内の名前解決を行う。

# 3. Route 53 Resolver インバウンド/アウトバウンドエンドポイントとは(自分の理解)
– そもそも Route 53 Resolver

元記事を表示

AWSのクロスアカウントアクセスをCLIからやってみた

## はじめに

– AWSで他アカウントのリソースにアクセスする必要があったため、方法を以下に整理しました。

## 前提
– アカウントAからアカウントBのリソースにアクセスする

## 準備

### アカウントBでの作業
– アカウントBでIAMロールを作成する
– 信頼関係でアカウントAのIDを指定する
– 必要なリソースの権限が記述されたIAMポリシーをロールに付与する
– 今回は特定のS3バケットへのアクセス権限を記述する

### アカウントAでの作業
– IAMポリシーの作成

“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Action”: [
“sts:AssumeRole”
],
“Effect”: “Allow”,
“Resource”: [ “arn:aws:iam::アカウントB:role/アカウントBで作

元記事を表示

Aamazon EC2にDockerコンテナを立ち上げてJavaプログラムをテストしたい

# はじめに
本内容は、成り立てエンジニアな私の個人メモとしての記録であり、超基礎的な内容となっております。初学者向けとして本記事を閲覧していただければと思います。また、自身の成長につながるため、何かアドバイス・ご指摘があればコメントしていただけると幸いです。

# やろうと思ったきっかけ
新卒エンジニアとしてこの春より働くことになり、研修を行いつつ配属先での業務に少しずつ触れさせてもらっています。
そんな日々の中、ある日の会議でこんな話がありました。

>「それじゃあ、まずはEC2立てて、Kubernetes使って簡単な検証から始めていこうか。」
>(初心者過ぎて正確な内容は理解が追いつかず、上記の内容はめちゃめちゃニュアンスです)

議事録を取りながら聞いていたのですが、専門用語の応酬でとてもビビり散らかしていたことは覚えています。
その時の自分の心境としては、

> (EC2?たしかAWSの仮想サーバーサービスだったかな?ローカルとかではやらないんだ。)
> (クーバネティス?聞いたことあるけど全然イメージつかねぇ。Dockerとかコンテナに関連したやつってことだけは、なんとなく

元記事を表示

【初心者】機械学習のクラスタリング(エルボー法)を調べてみた

# 背景・目的
私は、現在データエンジニアリングを生業としています。普段は、データ基盤の構築や、パフォーマンスチューニングなどビックデータに関する業務に従事しています。
ビックデータの収集や、蓄積、分析などの環境構築の経験はそこそこありますが、機械学習による予測や分類などのスキルは持ち合わせていませんでした。
今まで機械学習を避け続けてきましたが、一念発起し学ぼうと思います。

学び方としては、AWS Certified Machine Learning – Specialty(以降、ML試験という。)の勉強を通して、理解を深めていきます。ML試験のガイドの第2分野に、探索的データ解析が登場しましたのでそこから学びたいと思います。

今回は、**クラスタリングのエルボー法**について学びたいと思います。

> 2.3 機械学習のデータを分析および視覚化する
> ・クラスタリング (階層型、診断、エルボープロット、クラスターサイズ

なお、過去の機械学習の調べてみたシリースは下記にまとめています。
– 2.探索的データ分析
– 2.1.モデリング用のデータをサニタイズおよび準備する

元記事を表示

Truncate時にCannot truncate a table referenced in a foreign key constraintとエラーが出た時の対処法

## 解決策

以下のように外部キー制約を一時的に外してtruncateする

“`
SET FOREIGN_KEY_CHECKS = 0;
TRUNCATE table $table_name;
SET FOREIGN_KEY_CHECKS = 1;
“`

ちなみに、外部キー制約の状態は以下コマンドで確認可能

“`
SELECT @@foreign_key_checks;
+———————-+
| @@foreign_key_checks |
+———————-+
| 1 |
+———————-+
“`

## 参考
– https://stackoverflow.com/questions/5452760/how-to-truncate-a-foreign-key-constrained-table
– https://hacknote.jp/archives/19470/
– https://fibonacci.hatenablog.jp/e

元記事を表示

CloudFormationで最低限のセキュリティ設計を考慮したクラウド環境をさくっと建てる

# 本記事の内容

– AWSが提供するCloudFormationサービスを利用し、AWSのクラウド環境に最低限のセキュリティ設計を考慮したサーバをさくっと建てる方法を記載した記事です。
– AWSアカウントをすでに持って入れば、本ページに記載のCloudFormationテンプレートを使うことで、10分程でクラウド環境を作成できます。

先日投稿した「[【AWS入門】知識ゼロでもこれを読めばAWSを理解しつつ1~2時間後にサーバを建てられる](https://qiita.com/kanamekun/items/92f92777a0351f2e8099)」の記事で手動で構築した環境をCloudFormationを使って作成します。

本記事の手順で以下のような構成のクラウド環境を作成できます。
![aws1.drawio_r2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2017667/c9513759-cdf0-48cb-2fd0-e846638619bb.png)

またAWSの操作画面はサ

元記事を表示

難しいことを考えずにSSMでBastionサーバを作成

# 概要
セッションマネージャでAWS接続サーバを作る。
細かいことは気にしてないので、適宜環境に合わせてください。

# 手順

1. ポリシーの追加とロールの作成
2. セキュリティグループの作成
3. キーペアを作成する
4. EC2の作成
5. SessionManagerを確認
6. 接続

※ VPCとかsubnetは割愛

# ポリシーの追加とロールの作成

## 概要

****AmazonEC2RoleforSSM****のポリシーがアタッチされているロールを作成する。
また、EC2に接続する際にキーペアが不要になるようなポリシーを追加する。

## 方法

個別ポリシーの作成から以下のjsonを貼り付ける。

“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: “ssm:StartSession”,
“Resource”: [

元記事を表示

CloudFront Behavior の後方一致パスパターンにおける挙動確認

# はじめに

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesPathPattern

CloudFront の Behavior でパスパターン文字のワイルドカードとして以下が使える。

– `*` は、0 個以上の文字に一致します。
– `?` は、正確に 1 個の文字に一致します。

一般的な利用では、先頭固定でパスを取る (例: `/static/` 以下に静的リソースを配置する。 `/docs/` 以下に記事コンテンツを配置する) と思うが、アプリケーションの作り上、途中に特定パスが入るようなケース (例: 途中にディレクトリ `css` を含む全てのパスを対象にしたい時など) を CloudFront のパスパターンとして利用可能かを調査した。

# 実験内容と結果

## Behavior の登録は可能か?

1. パスパターンとして `/*/css/*` を C

元記事を表示

Athenaで異なるS3ストレージクラスのオブジェクトをクエリする

# AthenaのS3ストレージクラスに関する仕様

Athenaでは異なるストレージクラスのオブジェクトで構成されるテーブルについても問題なくクエリすることができます。
例えば、以下のようにテーブルに対応するフォルダ配下に複数のストレージクラスのオブジェクトがあったとしても問題ありません。

![スクリーンショット 2022-05-17 16.17.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276167/346c8659-e2db-4bfe-14f9-00ef57403e5c.png)

# AthenaのGlacierに関する考慮事項

Athenaでは `Amazon S3 Glacier Flexible Retrieval`と`Amazon S3 Glacier Deep Archive`ストレージクラスのオブジェクトに関してはクエリされません。
例えば以下のように`Amazon S3 Glacier Flexible Retrieval`と`Amazon S3 Glacier De

元記事を表示

AWS SSOでno accessエラーが出る。

AWS SSOでno accessエラーが出る。

Provide your administrator with the following info: No access
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102438/db429157-8d0f-9505-9c07-380482c00f0c.png)

この記事をもとに作っていて、動いていたはずなのに動かなくなった。
https://qiita.com/daisukeArk/items/abedd59194c9401a7423

サーバー環境では動くのに、ローカルでエラーが出る。

原因は、ローカルPCの時計が2分ほど遅れていたこと。

元記事を表示

PostgreSQLよりOLTPが4倍/OLAPが100倍高速のPostgreSQL互換のAI/機械学習搭載DB新サービス!AlloyDB

![1433418.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2633992/012ba770-e459-5a6d-f451-8272cba68d4f.jpeg)

Google Cloud の新サービスとして、AlloyDB for PostgreSQLのリリースが発表され、Previewとして利用できるようになりました。

AlloyDB for PostgreSQLは、オープンソースDBであるPostgreSQLとの互換性を維持しつつ、DBに最適化されたストレージアーキテクチャを採用されています。
さらにAI・機械学習による最適化などによって高速化し、SLA 99.99%(予定)の高可用性、リニアなスケーラビリティ、AI・機械学習による運用管理の自動化なども実現できるとのことです。

このようなAlloyDB for PostgreSQLの特徴を紹介していきます。

## PostgreSQL完全互換
現時点ではPostgreSQL14と互換性があります。
PostgreSQL 14との互換

元記事を表示

EC2 に tomcat を構築する方法

# はじめに
私は実務未経験の駆け出しインフラエンジニアです。
EC2 に Tomcat を構築することがあったので備忘録としてまとめます。

# 目次
[1.はじめに](#-はじめに)
[2.セキュリティグループの設定](#-セキュリティグループの設定)
[3.EC2インスタンスにtomcatインストール](#-EC2インスタンスに-tomcat-インストール)
[4.参考](#-参考)

# セキュリティグループの設定
下記のようにセキュリティグループ設定のインバウンドルールにカスタム TCP で 8080 のポートを追加します。
※追加し忘れると Tomcat のトップ画面(猫さん画面)が表示されません。

![スクリーンショット 2022-05-12 17.35.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1156198/7984bc65-901a-caca-4b39-47816bdde04f.png)

# EC2 インスタンスに tomcat インストール
EC2インスタンスに y

元記事を表示

【初心者】AWS Site-to-Site VPN を使ってみる (GCPとのVPN接続)

# 1. 目的

– AWSのネットワーク関連の復習をしている。サイト間VPN(AWS Site-to-Site VPN)について、実機での設定を行い基本的な仕組みを理解する。

# 2. やったこと

– AWS / GCP間でVPN接続を行い、AWSのインスタンスとGCPのインスタンス間の通信ができることを確認する。
– 対向のGCP側でもマネージドのVPNサービス(Cloud VPN)を使用する。

# 3. Site-to-Site VPN とは(自分の理解)
– AWSと、オンプレミスや他のクラウドとの間をインターネット経由で、VPNを設定して、セキュアに接続するサービス。

# 4. 予習
– やり方が分かりやすくまとまっているサイトがいくつかあったので、まずそれらを見て概念を理解する。
– [AWS VPC と GCP VPC を VPN 接続するための設定例](https://www.qoosky.io/techs/c11188b146)
– AWS/GCP両側での設定の手順が分かりやすく整理されており、このサイトの手順を参考に実施する。

元記事を表示

【初心者】機械学習のクラスタリングを調べてみた

# 背景・目的
私は、現在データエンジニアリングを生業としています。普段は、データ基盤の構築や、パフォーマンスチューニングなどビックデータに関する業務に従事しています。
ビックデータの収集や、蓄積、分析などの環境構築の経験はそこそこありますが、機械学習による予測や分類などのスキルは持ち合わせていませんでした。
今まで機械学習を避け続けてきましたが、一念発起し学ぼうと思います。

学び方としては、AWS Certified Machine Learning – Specialty(以降、ML試験という。)の勉強を通して、理解を深めていきます。ML試験のガイドの第2分野に、探索的データ解析が登場しましたのでそこから学びたいと思います。

今回は、**クラスタリング**について学びたいと思います。

> 2.3 機械学習のデータを分析および視覚化する
> ・クラスタリング (階層型、診断、エルボープロット、クラスターサイズ

なお、過去の機械学習の調べてみたシリースは下記にまとめています。
– 2.探索的データ分析
– 2.1.モデリング用のデータをサニタイズおよび準備する
– [【

元記事を表示

【初心者】機械学習のデータを分析および視覚化を調べてみた

# 背景・目的
私は、現在データエンジニアリングを生業としています。普段は、データ基盤の構築や、パフォーマンスチューニングなどビックデータに関する業務に従事しています。
ビックデータの収集や、蓄積、分析などの環境構築の経験はそこそこありますが、機械学習による予測や分類などのスキルは持ち合わせていませんでした。
今まで機械学習を避け続けてきましたが、一念発起し学ぼうと思います。

学び方としては、AWS Certified Machine Learning – Specialty(以降、ML試験という。)の勉強を通して、理解を深めていきます。ML試験のガイドの第2分野に、探索的データ解析が登場しましたのでそこから学びたいと思います。

今回は、**グラフ化**について学びたいと思います。

> 2.3 機械学習のデータを分析および視覚化する
> ・ グラフ化 (散布図、時系列、ヒストグラム、ボックスプロット)

なお、過去の機械学習の調べてみたシリースは下記にまとめています。
– 2.探索的データ分析
– 2.1.モデリング用のデータをサニタイズおよび準備する
– [【初心者】探

元記事を表示

AWS Lambda(EC2のシェル)を毎月営業日◯日に実行したい

### AWSのカレンダー機能を使って、毎月の営業日◯日目にEC2のシェルを実行する(Lambda関数を実行する)

AWS EC2上に構築したHulftの集信コマンド(utlrecv)を「月初〇〇営業日」に実行したい
…といった問題に当たりました。

以下の機能を使って実装しました。
・AWS Systems Manager(Change Calendar)機能
 → (シェル や Lambda)を実行した日時を管理
・Amazon EventBridge機能
 → Calenderの状態を確認し、条件を満たしたら、ssm経由でLambda関数を実行する
・AWS Systems Manager(ssm)機能
 → Lambdaから(EC2のシェル)をキックする

(※きれいに作る場合、Calenderに祝日や土日を設定して、その日が営業何日目かを判断したりする必要があると思いますが…今回は、実行する日時のみをCalenderに登録し、定期的にメンテナンスする前提で作成しました)

### ①カレンダーの作成
まずはカレンダーを作成します。
![image.png](https:/

元記事を表示

OTHERカテゴリの最新記事