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

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

銀河麻雀の待ちを判定するWebアプリを作った

麻雀YouTuberの麻雀カッコイイシリーズが投稿した「銀河麻雀」。

(ルール説明は13:40くらいから)
簡単に言えば、各種類の牌に1枚ずつ「ギャラクシー牌(銀河牌)」と呼ばれる牌種が自由になる牌が入った状態での麻雀だ。
例えば、銀河1mは1p,1sとしても扱える。
銀河東は東南西北、銀河白は發中としても扱える。

銀河牌がたくさん入ると、受け入れや待ちの数が通常よりも多くなる。
銀河牌が沢山入った順子が並べば、とても人間の頭では処理しきれない、まさに銀河が広がるような麻

元記事を表示

S3における暗号化の種類

# 調べる前のイメージ
色々なオプションの暗号化があるなーっていうイメージ。
それぞれの詳しい内容は分からない。

# S3におけるデータ暗号化
S3に保管されたデータはさまざまな方式で暗号化が可能。
キー(鍵)の管理については、クライアント(ユーザー)が独自に作成したキーを持ち込む、またはAWS KMSによる管理やS3がデフォルトで提供するキーを使うなど、いくつかのオプションがある。

SSE=サーバーサイド暗号化
CSE=クライアントサイド暗号化
# SSE-S3
S3にて提供・管理される暗号化キー(AES-256)で暗号化する。

# SSE-KMS
AWS Key Management Service (AWS KMS) にて提供・管理される。

# SSE-C
クライアント(ユーザー)が作成・管理する独自の暗号化キーで暗号化する。

# CSE
S3にデータを送る前にクライアント(ユーザー)側で暗号化する方法。

元記事を表示

小ネタ/Aurora MySQL v1/v2 から v3 に移行する際のユーザ権限トラブルについて

AWS の Aurora MySQL v1(MySQL 5.6 互換)の EoL 発表によって、v2(同 5.7 互換)または v3(同 8.0 互換)への移行を計画している方もいらっしゃるのでは?と思います。

というわけで、わたしも Zenn のほうに記事をいくつか書きながら調査を進めております。

https://zenn.dev/hmatsu47/articles/aurora-mysql3-001-top

https://zenn.dev/hmatsu47/articles/aurora-mysql3-002-ref-material

https://zenn.dev/hmatsu47/articles/aurora-mysql3-003-ref-aws-01

https://zenn.dev/hmatsu47/articles/aurora-mysql3-004-ref-aws-02

https://zenn.dev/hmatsu47/articles/aurora-mysql3-005-ref-ora-01

https://zenn.dev/hmatsu47/a

元記事を表示

AWS Data Analytics – Specialty対策 in Redshift

## 概要
数百ギガバイトから1ペタバイト以上まで拡張が可能で、高速、シンプル、スケーラブルで費用対効果が高い完全マネージド型のデータウェアハウスサービスです
## 関連する用語

### データウェアハウス(DWH)
意志決定(Decision)のため、目的別(Purpose-oriented)に編成され、統合(Integrate)された時系列で、削除(Delete)や更新(Update)しないデータの集合体

## Redshiftの仕組み
![スクリーンショット 2022-03-18 18.30.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/501320/eb1dc14f-2feb-2a2d-268f-2f8f5365b027.png)

### リーダーノード
– クライアントと直接通信を行う
– 課金対象外

### コンピューティングノード
– クエリを並列して実行する
– コードを実行して中間結果をリーダーノードに返却する

### ノードスライス
– ノード内のメモリ、ディスクを

元記事を表示

AWS Data Analytics – Specialty対策 in EMR

## 概要
Apache HadoopやApache SparkなどのOSSを利用した、ビッグデータ分析が可能なAWSのサービスです。
簡単に言うとマネージド型 Hadoop フレームワーク

## 関連する用語

### Hadoop
大規模データの蓄積・分析を分散処理技術によって実現するオープンソースのミドルウェアです

### Spark
分散共有メモリの仕組みをもち、複数マシンでメモリを共有することで、機械学習のような同じ処理の繰り返し、同じデータを何度も使うような処理において、Hadoopと比較して大幅に高速だとされる。オープンソースのソフトウェアフレームワーク

### Hive
Hadoop上に構築されたデータウェアハウス構築環境で、SQLライクな「HiveQL」を使ってデータの集約・問い合わせ・分析を行える。

### Presto
Presto は複数のデータソースのクエリに役立ち、MySQL、Redshift、Hive と直接やりとりするためのコネクタも提供できる

### Pig
Hiveと同じくHadoop上で動作するプログラムを作成できる。
スクリプト言語を使

元記事を表示

【AWS】CodeBuildとは

# CodeBuildとは
**CodeBuild**とは、ソースコードをコンパイル・テストを行い、デプロイ可能なソフトウェアパッケージを作成してくれるAWSのビルドサービスのこと。
**CodeBuild**は、コンピューティングリソースの使用に対して、分単位で料金が発生する。

# CodeBuildの流れ
**CodeBuild**とは、ソースコードを“buildspec.yml“に従ってビルド環境の構築とテストを行う。大まかな流れが以下となる。
① ソースコードと“buildspec.yml“を作成する。
② ソースコードと“buildspec.yml“をアップロード(**CodeCommit**)する。
③ **CodeBuild**でプロジェクトを作成
④ ビルドを実行

# buildspec.ymlとは
“buildspec.yml“とは、ビルド実行時に実行するコマンドを記述した**YAML**形式のファイルのこと。
このファイルをソースコードのルートディレクトリに配置することで**CodeBuild**が“buildspec.yml“を読み込んで実

元記事を表示

AWSでWebサイトを作ってみた(2) サーバー構築編

[前回の記事はこちら](https://qiita.com/alksoho/items/13d37bcc497a33a53cd2)
次回の記事はこちら

今回は[AWS](https://aws.amazon.com/jp/)を利用し、自身でサーバーを立て、記事のキーワードを自動抽出するWebアプリケーションを作成してみました。

# 目次
* [概要](#概要)
* [利用しているサービス](#利用しているサービス)
* [ドメイン取得](#ドメイン取得)
* [ローカルネット、サブネット構築関連](#ローカルネット、サブネット構築関連)
* [Webサーバー構築](#Webサーバー構築)
* [DBサーバー構築](#DBサーバー構築)
* [DNS](#dns(domain-name-system))
* [サーバー構築](#サーバー構築)
* [VPC作成](#vpc作成)
* [Webサーバー構築](#Webサーバー構築)
* [DBサーバー構築](#DBサーバー構

元記事を表示

EC2にcronで定期タスクを実行させる

# 概要
日常の仕事で、タスクやスクリプトを定期実行すると言うシーンがございますでしょうか。
Amazon EventBridgeとLambdaの組み合わせで一般問題を解決する事ができると存じますが。
Lambdaに対して、最大実行時間が15分という制御がございます。
実行時間が長いタスクに対して、相応しくないと存じます。
EC2は計算時間を制御してないです。
今回EC2にcronの設定方法をご紹介させて戴きます。

# 手順

## EC2に接続

“`
sudo su –login ec2-user

“`

# 定期pythonタスクを定義
“`
import slackweb
import time
slack = slackweb.Slack(url=”xxxxxxxxxxxxx”)

flg = True
while flg:
time.sleep(60)
now = time.strftime(“%a %b %d %H:%M:%S %Y”, time.localtime())
print(now)
slack.notify(te

元記事を表示

EC2 を PHP8 ,Laravel9 にバージョンをアップデート

# はじめに
AWS EC2サーバーのPHPとLaravelを最新バージョンに、アップデートする方法についてまとめました。

# 環境
現環境
– Amazon Linux 2
– PHP 7.2.8
– Laravel 5.7.9
– nginx 1.12.2
– composer 1.10.15 (なくても可)

ゴール
– Amazon Linux 2
– PHP 8.0.16
– Laravel 9.5.1
– nginx 1.20.0
– composer 2.2.7

# PHPバージョンアップ
PHPバージョンは7.2なので、PHP8にバージョンアップします。

“`terminal
$ php -v
PHP 7.2.8
“`
PHPのバージョンを変える場合、PHPのパッケージをすべてアンインストールしてから PHP8を有効化する流れになります。

“`terminal
// パッケージアップデート
$ sudo yum update -y

// PHPのパッケージをすべてアンインストール
$ sudo yum -y remove php-*

// amazon

元記事を表示

Redshiftの日時型を試してみた

# 背景・目的
Redshiftのドキュメントの手順に倣い、RedshiftのデータをS3にUNLOADする。

# 内容
## 概要
– 日時データ型には DATE、TIME、TIMETZ、TIMESTAMP、TIMESTAMPTZ がある。
– 以下に特徴を整理する。

|名称(エイリアス) |名称|用途| ストレージ| 解像度| デフォルトタイムゾーン|
|:– |:–|:– |:– |:– |:– |
| DATE |-| タイムスタンプなしで単純にカレンダー日付だけを保存する場合 |4バイト| 日|-|
| TIME | TIME WITHOUT TIME ZONE | 時刻を保存する場合 |8バイト| マイクロ秒|UTC|
| TIMETZ | TIME WITH TIME ZONE | 時刻とタイムゾーンを保存する場合 |8バイト| マイクロ秒|UTC|
| TIMESTAMP| TIMESTAMP WITHOUT TIME ZONE |日付と時刻を含む完全なタイムスタンプ値を保存する場合| 8バイト| マイクロ秒|UTC|
| TIMESTAMPTZ| TI

元記事を表示

初心者による初心者の為のIaC(CloudFormation)Pt.1 概要編 〜コードで書いてみな、飛ぶぞ〜

# はじめに
皆さんインフラ、コードで書いていますか?私は全く書いたことありません!!
『コードで書いてみな、飛ぶぞ』が口癖のIaC推進派インフラエンジニアの方に師事しております。
IaC???聞いたことあるケド…ってくらいの読者を想定しております。なんせ私も最近までワードしか知らなかったもので。
ただの勉強したことのアウトプットですが、興味ある方に少しでも参考になればと思います。
# 目次
Pt.1では
– IaCのメリットデメリット
– Terraform or CloudFormation ?
の2項を扱っていきます!
# IaCのメリットデメリット
### メリット
– インフラ構築の設定ミス、漏れが減る
コンソールでポチポチする場合、設定をすっ飛ばしてしまったり、誤設定をしてしまう可能性がある。コード化するとミスが減りますね。

– Gitで管理することができる
Gitで管理できる、つまり構築や変更の差分をバージョン管理が可能になる。また、複数人でレビューができるようになるので、知見が共有できるようになります。

– テンプレを用意しておけば似た構成ならコピペですぐ作れる

元記事を表示

Cloud9へVSCodeのRemote-SSHを使ってアクセスする with SessionManager+aws-vault

# はじめに
Cloud9は優秀なIDEではあるもののVSCodeの自由度には勝てない。
やっぱVSCodeで開発してなんぼだろう。
ただ、パブリックIP経由でSSHアクセスなんて恐くてできないし、アクセスキーもなるべく暗号化して取り扱いたい
となると
![vsc-c9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/262854/af16668f-5cdd-1272-3f68-603eec2d8cfc.png)
のようにアクセスしつつアクセスキーは暗号化して管理したい

そんなニッチな目的を持つ人向けの記事

# TL;DL
~/.ssh/configの設定でProxyCommandを使用する
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html

# 前提
* クライアントPCはWindows(試したのは

元記事を表示

本番環境でのassets:precompile未実施エラー/ 初めてのAWS忘備録④

前回の続き→ [EC2内の環境構築【デプロイ】/ 初めてのAWS忘備録③](https://qiita.com/mmaumtjgj/items/7e169e1d715ba1876b99)

“`
[ec2-user@ip… アプリ名]$ bundle exec puma -C config/puma/production.rb -e production
“`
上記コマンドでアプリを起動させたは良いものの、実際の画面を見てみるとこのようなエラーが出た。
[![Image from Gyazo](https://i.gyazo.com/fb584365f396fe879a701e0db59ffbf7.png)](https://gyazo.com/fb584365f396fe879a701e0db59ffbf7)

エラーログを見にいくと、
“ActionView::Template::Error (The asset “application.css” is not present in the asset pipeline.):“
とあった。アセットされた**applic

元記事を表示

GitLab CIでAWS Systems Managerを使用したEC2インスタンスへのセキュアなSSH,SCP

# はじめに
**AWS Systems Managerを使用する経緯**
[GitLab.com](https://gitlab.com) が提供する GitLab Runner はIPアドレスが固定されていない為、GitLab CIからEC2インスタンスにアクセスする際はSSHのインバウンドポートをフルオープンで運用していました。
> IP range
> For outgoing connections from CI/CD runners, we are not providing static IP addresses. All GitLab.com shared runners are deployed into Google Cloud Platform (GCP). Any IP-based firewall can be configured by looking up all IP address ranges or CIDR blocks for GCP.
> https://docs.gitlab.com/ee/user/gitlab_com/#ip-range

元記事を表示

プライベートサブネットからインターネットを経由せずにAWS CLIを使用する方法

# はじめに
一般的にEC2からAWS CLIを使用して各種リソースにアクセスする場合、インターネットを経由してAWSのAPIをコールする必要があります。
では、インターネットにアクセスすることが出来ない環境ではどうすればよいのでしょうか?
今回、この疑問について調べて実際に実装してみたので、記録として残しておきたいと思います。

# 結論
**AWS PrivateLink**という技術を使用することで、インターネット経由無しでAWS CLIを実行することが出来ます。
AWS PrivateLinkは、VPCのサブネットにENIを作成し、ENIに割り当てられたプライベートIPアドレスを経由して他のAWSサービスにアクセスすることができます。

# 作成&検証
文章で見るよりも実際に検証した方が理解しやすいので、実際に検証していきます。
今回作成する構成の概要図は以下の通りです。
![Private Link.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/689573/0b249af6-d12a-519

元記事を表示

Amazon EKSで使えるPersistentVolumeについて比べてみた

# はじめに
– Amazon EKSでステートフルアプリケーションを構築する際にPersistentVolumeをどのストレージサービスで提供するのが良いのかを考えてみた。
– 可能な限り公式の情報を参照しているが、万が一誤った情報があればひたすら陳謝するのみである。
– 2022年3月時点での情報なので将来どうなるかは神のみぞ知る。

# まずはググる
– 「eks persistentvolume」というキーワードでググってみると、検索結果の最上位に以下の記事が出てきた。こちらの記事によると、Amazon EBSかAmazon EFSを使えるらしい。
– https://aws.amazon.com/jp/premiumsupport/knowledge-center/eks-persistent-storage/
![amazon_eks_pv.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2523630/88ebc401-fde3-3762-7bae-468aa0768369.

元記事を表示

EC2内の環境構築【デプロイ】/ 初めてのAWS忘備録③

前回の続き→[AWSインフラ構築【デプロイ】/ 初めてのAWS忘備録②](https://qiita.com/mmaumtjgj/items/922e85c3f88d8db40cdc)

EC2インスタンス内にRailsアプリを動かす環境を作っていく。
最初にPCを購入した際にRailsが動かせるように環境構築をしたことと同様にインスタンス内も同じくRailsが動くように環境構築をしていく。
EC2にログインして、その中のターミナルでコマンドを実行する。

## 利用パッケージの追加
まずはパッケージをアップデートする。
“`
[ec2-user@ip… ~]$ sudo yum -y update
“`
EC2の初期状態では最低限のパッケージしかインストールされていないので、利用するパッケージをインストールする。
下記のコマンドを“\“を含めて全て実行。

“`
[ec2-user@ip… ~]$ sudo yum -y install \
git make gcc-c++ patch curl \
openssl-devel \
libcurl-devel lib

元記事を表示

AWS CDK – Lambda への Layer(ARN)のアタッチ

# デプロイ済の Layer 構成

“`
└─ nodejs/
├─ @layer/
│ └─ util/
│ ├─ index.js
│ ├─ package.json
│ └─ package-lock.json

├─ node_modules/
├─ package.json
└─ package-lock.json
“`

# デプロイ済の Layer 実装

“`javascript:index.js
module.exports = {
sample: value => {
return value;
},
};
“`

# Layer(ARN)をアタッチした Lambda 定義

※ Layer(ARN)を SSM に格納しておいた場合

“`typescript:stack.ts
import * as cdk from ‘@aws-cdk/core’;
impor

元記事を表示

【AWS】EC2インスタンスの自動起動・自動停止設定方法 (22/03)

業務上でインスタンスの自動起動と停止(以下自動処理)を設定することがあったので備忘録として記録します。

## はじめに
EC2インスタンスの自動処理はそれぞれで設定します。
他にも再起動かけたり色々できそう(?)

参考にした記事は下記です。
[EC2 の自動起動と自動停止](https://blog.mori-soft.com/entry/2021/04/19/105832)

## I AMロールの作成
自動処理を行うロールの作成をします。
※ロールは起動・停止で共有できます。

– AWS⇒IAM⇒ロール⇒ロールの作成を選択
![role.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2291250/58b7aa3a-0ce6-b3ac-ba61-826ad96ebe9a.png)

– ユースケースは「他のAWSのサービスのユースケース」を選択
※後々ポリシー変更するので不要かも(?)

![image.png](https://qiita-image-store.s3.ap-northeas

元記事を表示

AWSインフラ構築【デプロイ】/ 初めてのAWS忘備録②

前回の続き→[AWSアカウント作成/ 初めてのAWS忘備録①](https://qiita.com/mmaumtjgj/items/1db37045baa2059a7152)

クラウドにアプリをデプロイする環境を作成していく。
まずはクラウド上に自分の作業スペースを作り、外部とのネットワークの設定を作る。
これからの作業はrootアカウントではなく、IAMユーザアカウントで進める。

## リージョンの選択
クラウドサーバーを構築する、地域(リージョン)を指定する。
AWSは全世界で利用されており、各地域でホスティングされている。
画面右上のアカウント名の隣のプルダウンから「東京」を選択。

>**ホスティング**
サーバーを借りること、ここではサーバーを利用されている(借りられている)という意味

## タグの命名
**タグとは**
AWS リソースを識別および整理するためのメタデータとして使用される単語やフレーズ。
タグはキーと 1 つのオプションの値で構成されてる。

例えば EC2 が10台起動しているとし、どのEC2が自分のプロジェクトのものなのか一覧できると便利。そうした

元記事を表示

OTHERカテゴリの最新記事