AWS関連のことを調べてみた2023年02月11日

AWS関連のことを調べてみた2023年02月11日

S3 バケットのバージョニング は有効化すべきなのか

こんにちは。パエリアです。

今回は AWS 利用者ならほぼ100%利用しているであろう S3 の機能であるバージョニングについての考察をしていきます。

>Amazon S3 のバージョニングとは、同じバケット内でオブジェクトの複数のバリアントを保持する手段のことです。S3 のバージョニング機能を使用すると、バケットに保存されたすべてのオブジェクトのすべてのバージョンを、保存、取得、復元することができます。バージョニングを使用すれば、意図しないユーザーアクションからもアプリケーション障害からも、より簡単に復旧できます。

[AWSドキュメント:S3 バケットでのバージョニングの使用](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/Versioning.html)

### 結論としてはバージョニングは有効化すると良いと思います。

以下の点について、それぞれ考えていきます。

[1.耐障害性(フォールトトレランス)](#1-耐障害性フォールトトレランス)
[2.AWS ベストプラクティス](#2-aws-ベス

元記事を表示

S3バケットのバケットポリシーで設定すべき項目

# はじめに
S3のバケットポリシーについて、一般的に設定しておくべきことを記載していきます。

# 概要
基本的に以下を必要に応じて設定しておくべきです。

| # | バケットポリシー概要 | 利用ケース |
| — | — | — |
| 1 | HTTPS通信以外の拒否 | 基本的に入れておいてよい。HTTP通信を利用するケースは少ないが、明示的に指定しておくことで非暗号化通信の場合リクエストを拒否できる。 |
| 2 | 暗号化を指定しない場合のオブジェクトのアップロードの拒否 | 基本的に入れておいてよいが、KMSかSSE-S3かなどアップロード元の対応状況に依存するため注意。|
| 3 | 暗号化を指定しない場合のオブジェクトのアップロードの拒否 | 基本的に入れておいてよいが、KMSかSSE-S3かなどアップロード元の対応状況に依存するため注意。 |
| 4 | 特定のVPCエンドポイント以外からの通信拒否 | VPCからの通信のみであれば入れておくことを推奨 |
| 5 | 各種AWSサービスが要求するポリシー | 忘れがちだが、各種AWSサービスからのロ

元記事を表示

Configルールに準拠していないと、自動で修正する関数を2つ作成してみた

## はじめに
Lambdaの勉強もかねて、表題のような自動化を試してみました。
作成した処理は以下となります。

①特定のタグがアタッチされていないと、自動でそのタグをアタッチする処理
➁特定のIAMロールがアタッチされていないと、自動でそのIAMロールをアタッチする処理

## 手順
本処理のフローとしては
①Configでルール検知
➁SSM AutomationでLambdaに処理を渡す
③Lambdaで処理を実施

となります。
順番に設定していきます。
※ConfigとSSM Automationについては概要レベルの説明になります。

## configの設定
まずConfigの設定をしていきます。
今回はセットアップが終わっている前提で話を進めます。

##### ルールの設定
Configには、AWSマネージドルールが存在し、今回はそちらを使用することになります。
※下はタグ付けのルールを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2666121/7c5a1a3

元記事を表示

AWS SAMのLambdaでS3へのPut権限をつける

AWS SAMでLambdaの構築が便利になったものの、`Hello World Example`で作成されるテンプレにはS3の権限がついていません。

https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-getting-started-hello-world.html

なので、S3にオブジェクトを読み書きさせたいときには、下のように`template.yaml`を編集して権限をつける必要があります。

“`diff_yaml
Globals:
Function:
Timeout: 3
MemorySize: 1000

+Parameters:
+ S3BucketName:
+ Type: String
+ Default: “アクセスしたいバケット名”

Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Pro

元記事を表示

【Railsアプリケーション】Heroku、AWS S3、Active Storageの設定

# はじめに

Railsなどを中心に勉強中のエンジニア初心者が他の記事を参考にしたり、実際に実装してみたりして、アウトプットの一環としてまとめたものです。
間違っていることもあると思われるので、その際は指摘いただけると幸いです。

# Heroku上でアプリケーションを稼働させる

Railsアプリケーションでアップロードした画像がAWS S3に保存されるように設定し、そのアプリケーションをHeroku上で本番稼働させる想定で記載する。

`Active Storage`の実行環境、AWSのアカウント情報、およびS3のバケット作成などは済んでいる前提で記載する。

# `storage.yml`の編集

設定ファイルにAWSのアカウント情報および、S3のバケット情報を記載する。

### ※AWSのアカウント情報やS3のバケット情報などについては、セキュリティ的な観点から環境変数に持たせて読み込むようにする。

### `config/storage.yml`

“`yaml
# Use rails credentials:edit to set the AWS secrets (

元記事を表示

VPC作って、インターネットゲートウェイとNATゲートウェイを配置する

# はじめに
AWS SOAのラボ試験対策で行った内容を備忘録として投稿します。
だいぶ初歩的な内容です。

# 構成
今回は以下の構成を作っていきます。
![タイトルなし.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844260/71df05aa-251b-f5cb-b7f2-8e3674411e28.png)

# VPCを作成する

1. VPCのコンソールに入り、「VPCを作成」をクリックする
![WS000000.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844260/c989c731-69f3-7a9f-a111-fd70ddb45f26.jpeg)

1. VPCの設定をしたら、「VPCを作成」をクリックする
作成するリソースを「VPCなど」にすると一気にいろいろ作れるが、今回は練習なので「VPCのみ」で作成
* 名前 → my-vpc
* IPv4CIDR → 10.0.0.0/

元記事を表示

NLBのNW要件を検証してみる

# やりたいこと

ふとしたきっかけで、AWSのドキュメントで気になる部分があり、CDKの練習を含んで検証してみようと思いました。
その部分とは、NLB(Network LoadBalancer)の[ホワイトペーパー](https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/network/network-load-balancers.html)のこの部分です。

> 要件
> * インターネット向けロードバランサーの場合、指定するサブネットには最低 8 個の利用可能な IP アドレスが必要です。内部ロードバランサーの場合は、 AWS がサブネットからプライベート IPv4 アドレスを選択する場合にのみ必要です。
>
> * 制約のあるアベイラビリティーゾーンにあるサブネットを指定することはできません。エラーメッセージは、「’network’ タイプを使用したロードバランサーは az_name でサポートされていません」です。制約されていない別のアベイラビリティーゾーンにあるサブネットを指定し、クロスゾーン負荷分散を

元記事を表示

AWS 全リージョンのリソースを検索してみた

# はじめに

AWS を利用しているときに、どのリージョンに何のリソースを作成したか確認したくなるときがあります。普段使わないリージョンで動作検証などを行った時に、削除忘れなどがあります。そういったときに簡単に全リージョンの全リソースを対象に検索できます。

今回の記事ではその方法を簡単に紹介します。クラスメソッドさんの記事を参考にさせていただきました。

https://dev.classmethod.jp/articles/tag-editor-seach-allregion/

# Tag Editor で全リソースを検索

Tag Editor の画面を開きます。

![image-20230210201040079.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1002774/ef8483ab-c3ec-ca41-76a7-c69c035b8ff9.png)

Tag Editor の機能を選択します。

![image-20230210201202394.png](https://

元記事を表示

dynamodb-localのdockerイメージにマニフェストがなくてGitLabのCIが失敗した

## 結論から先に
Dockerイメージを1.20.0以下に固定する
*amazon/dynamodb-local:1.20.0*

“`docker-composer.yml
version: “3”
services:
dynamodb:
image: amazon/dynamodb-local:1.20.0

“`

## 現象
gitlab-runnerのログ(抜粋)

“`bash
$ docker-compose -f docker-compose-ci.yml up -d
Creating network “orpheanalyticsserverapi_default” with the default driver
Pulling db (mysql:5.7)…
5.7: Pulling from library/mysql
Digest: sha256:8cf035b14977b26f4a47d98e85949a7dd35e641f88fc24aa4b466b36beecf9d6
Status: Downloaded n

元記事を表示

QuickSight 簡易版説明書

# QuickSight 説明

# 役割

– 管理者
ユーザーの追加やAWSリソースとの接続設定・支払い設定を行える
作成者のように分析を行うこともできる

– 作成者
データソースの作成ができる
データソースから分析ができる
分析結果をもとにダッシュボードを作成できる

– 閲覧者
作成者が作成したダッシュボードを閲覧できる

# 画面説明

## トップ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2193969/856c2ee6-960c-943c-cef0-8476c358aa32.png)

### ①フォルダ

– マイフォルダ
作成者がリソースを整理するための場所の画面に移動
新しくフォルダを作成することができる

– 共有フォルダ
作成者がデータソースや分析、ダッシュボードをまとめて保存でる場所の画面に移動
新しくフォルダを作成することができる
保存したフォルダごとに共有設定(閲覧・変更)を行うことができる

### ②ダッシュボード
閲覧できるダッシュボードの一

元記事を表示

AWS App Runner が AWS Secrets Manager と AWS Systems Manager をサポート

# 概要
App Runner 環境変数のソースとして AWS Secrets Manager と AWS SSM Parameter Store を指定することが出来るようになったよ。

https://aws.amazon.com/jp/about-aws/whats-new/2023/01/aws-app-runner-secrets-configuration-aws-secrets-systems-manager/

# やってみた

下記のブログを参考に動作を確認してみました。

https://aws.amazon.com/jp/blogs/containers/aws-app-runner-now-integrates-with-aws-secrets-manager-and-aws-systems-manager-parameter-store/

# サンプルコードのクローン

“`
git clone https://github.com/aws-samples/apprunner-hotel-app
“`

# 必要なリソースのデプロイ

先程クローンし

元記事を表示

[Rails]コントローラ、ルーティング、ビュー、モデルの記述ルール

## はじめに
コントローラ、ルーティング、ビュー、モデルを作る際のルールをざっくりまとめてみようと思う

## コントローラでの命名規則
– コントローラ名は全て複数形かつ全て小文字
– Railsはコントローラ作成と同時に、必要なviewファイルの作成や記述の追加ができる
“`rb
$ rails g controller コントローラ名 アクション名
“`

## ルーティングのルール(基本編)
“`rb
HTTPメソッド ‘URL’ => ‘コントローラ#アクション’
“`
URLと’コントローラ名#アクション名’の形が同じ場合は省略可能↓
“`rb
get ‘homes/top’
“`

#### 代表的なHTTPメソッド
– GET(リソースの取得、画面表示)
– POST(リソースの更新、リソースへのデータ追加 など)
– DELETE(リソースの削除)

## ビューでの命名規則
– ビューファイルの名前は、アクション名と同じ名前にする

## モデルでの命名規則
– モデル名 → 先頭は英大文字/単数形
– モデルのファイル名 → 先頭は英小文字/単数形

元記事を表示

IAMユーザーの作り方

# そもそもIAMとは
IAMとは、「認証」と「認可」の設定を行うことができるサービス。
「認証」と「認可」を正しく設定することで、AWSの利用者や、AWSのサービスがアクセスできる範囲を制御することができる。

# じゃあIAMユーザーとは
AWSリソースの操作をするユーザー。
IAMユーザーを使用して、AWSマネジメントコンソールにログインしたり、AWSの様々なサービスにアクセスできる。

# いよいよ作り方
#### ①「IAM」と検索して、クリック
![スクリーンショット 2023-02-10 12.32.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2871906/a60efecb-a33a-517d-3fb7-8c5625925249.png)

#### ②画面左側の「ユーザー」をクリック
![スクリーンショット 2023-02-10 12.35.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2

元記事を表示

EC2にS3をマウントする

#EC2にS3をマウントする
## 1. S3にバケットを作成
## 2. IAMでユーザー作成
1. AWSコンソールからIAMサービスへ移動
2. サイドバーにある「ユーザー」を選択後、「ユーザーを作成」で作成画面へ移動
3. 以下入力し次へ
許可のオプション:ポリシーを直接アタッチする
許可ポリシー:AmazonS3FullAccess
4. 許可ポリシーでAmazonS3FullAccessを選択
5. ユーザーを作成をクリック
6. 作成したユーザーをクリックし、セイキュリティ認証情報をクリック
7. アクセスキーを作成をクリック
8. 「AWS コンピューティングサービスで実行されるアプリケーション」を選択し次へ
9. 作成を完了をクリック
10. 表示された、アクセスキー、シークレットキーをメモしておく
## 3. s3fsのインストール
1. EC2へSSH接続し、各種インストール
“`
$ sudo su –
$ yum -y install git automake gcc-c++ fuse fuse-devel libcurl-devel lib

元記事を表示

ServerlessでのCloudFrontデプロイ、RegionalDomainNameにすると早くなった

## 概要
serverless.ymlにCloudFrontデプロイの記述をしてデプロイした際に、デプロイが中々終わらずにブラウザからアクセスが出来なかった。
翌日になって確認してみるとアクセス出来るようになっていて、社内の有識者に相談したところ解決策を教えてもらったので記録を残す。

## 結果
調べると、serverless.yml ⇒ CloudFrontのDistributionConfig ⇒ DomainNameのところを`RegionalDomainName`とすると、デプロイ実行から数分でアクセスできるようになった。
`DomainName`と書いてデプロイすると時間がかかるようだ。

“`diff_yaml
-DomainName: !GetAtt AssetsBucket.DomainName

+DomainName: !GetAtt AssetsBucket.RegionalDomainName
“`

## 説明
`Regional`を付けると、立てようとしているリージョンの中からドメインネームを探すから早い、`Regional`を付けていない書き方だ

元記事を表示

[Rails]アプリケーション作成、サーバー立ち上げる

## はじめに
Ruby on Railsで新規アプリケーションを作成して表示してみる

## Railsの雛形を作成する
– 新規で作成する際は↓
(アプリケーションの基本形が作成される)

“`rb
username:~/environment $ rails new アプリケーション名
“`
– アプリケーションを削除する際は↓
(ファイルやフォルダを削除するコマンド)

“`rb
username:~/environment $ rm -rf アプリケーション名
“`

## サーバーを立ち上げる流れ

– 最初に自分のアプリケーションに移動する
cdコマンドで移動↓

“`rb
username:~/environment $ cd アプリケーション名
“`
移動してパス表記が変わるのを確認↓
“`rb
username:~/environment/アプリケーション名 $
“`

– サーバーを立ち上げる
  $ rails s の  ”s” は”server”の略↓

“`rb
username:~/environment $ rails s
“`

元記事を表示

Microsoft PurviewでAmazon S3上のCSVファイルをクロールしてみる

# はじめに
最近Microsoft Purviewを触る機会がきたので、試しにS3上のファイルをスキャンしてメタデータを取り込んでみました。
以下のドキュメントを参考に実施しました。
https://learn.microsoft.com/ja-jp/azure/purview/register-scan-amazon-s3

# Microsoft Purviewとは
ドキュメントには以下のように記載があります。
>Microsoft Purview は、組織がデータ資産全体を管理、保護、管理するのに役立つデータ ガバナンス、リスク、コンプライアンス ソリューションのファミリです
https://learn.microsoft.com/ja-jp/purview/purview

わかりづらいので簡単に説明すると、組織内の複数の場所に分散しているデータの情報(メタデータ)を収集して一元的に管理し、データを統制しながら横断的にデータ活用するための機能を提供しているサービスになります。
今回はその一部の機能であるData Mapを使用して取り込み、Data Catalogで取り込んだメ

元記事を表示

Amazon Managed Kafka (MSK) Data StreamsとAWS Glue Streaming ETLを用いたVantageへのデータのストリーミング配信

以下のアーキテクチャはMSKからのデータの流れを示しており、AWS GlueによってTeradata Vantageにストリーミングされそこで分析され最後にAmazon QuickSightに表示されるようになっています。このチュートリアルではシンプルなLambda関数を使用して別名MSK Producerを実行することにします。

![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/2640fbbd-8f8c-6391-eb10-83f60b1cff34.png)

# 前提条件

前提条件Teradata VantageでAWS Glue Streaming ETLを使用するにはまず以下の前提条件を満たしていることを確認してください:

・仮想マシンにログインするために、[Amazon Elastic Compute Cloud](https://aws.amazon.com/ec2/) (Amazon EC2)のキーペアが必要です。まだ持っていない場合は、[新規に作成します]

元記事を表示

【初心者必見】AWS Fargate の使用方法徹底解説

# はじめに

「AWSにコンテナをデプロイして稼働させたい!」 と思っている方は多いかと思います。
ただ、「理解ができん」「むずくね?」と挫折する人がいます。
ポイントを抑えれば、簡単と言うことをこの記事ではお伝えしたいと思います。
今回の記事は、AWS Fargateの 「 Hello World !」 と思っていただけたらと思います。

#### 対象者
– Fargateを勉強したい方
– Fargateに興味ある方

※初心者向けです

# 本題

## 1. 事前知識

マネージコンソールで操作をする前に以下を理解してから始めましょう。

#### コントロールプレーン & データプレーン

まずは、ここの理解が必要です。Fargateを調べていると “ECS”やら “EKS”が出てきて混乱してしまします。その部分の整理をまずはしましょう。コンテナを運用していくにあたり、「コントロールプレーン」と「データプレーン」の2つに大きくは分けることができます。コントロールプレーンとは、コンテナな管理をするところで、サッカーで言うと監督的なポジションです。このコントロー

元記事を表示

[Rails] WEBアプリケーションを作るにあたっての基礎の基礎を整理してみる

## はじめに
某有名プログラミングスクールを卒業後、スピードメインで授業を進めてしまった私はもう少し基礎の基礎を見直したいと感じた為、投稿を残していこうと思います。

## ルーティング、コントローラ、モデルの役割とは
大前提としてページを表示させる流れがいまいちだと
アプリケーションを作る際に、何がなんだかわからなくと思います。

### ルーティングの役割:point_up_tone1:
ユーザーがURLにアクセスした時に、要望を最初に受け取るのがルーティング!
受け取った内容によって、どのコントローラのどの処理を実行するかを判断して実行してくれる

### コントローラの役割:point_up_tone1:
ルーティングで判断された内容を元に、処理を実行して対応する画面を表示させる

#### ページを表示させるまでの流れ
ユーザーがURLにアクセス

ルーティングがユーザーの要望を受け取る→受け取った要望をの内容をコントローラへ

コントローラがビューに受け渡すインスタンス変数を定義→表示するビューファイル指定

### モデルの役割:point_up_tone

元記事を表示

OTHERカテゴリの最新記事