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

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

S3マルチパートアップロード ~Amazon S3パフォーマンス最適化してますか?~

# 突然ですが
皆さん。
S3へサイズの大きいオブジェクトをアップロードする時に、こんな**イラっ**としたことありませんか?

> 長時間のアップロード中にネットワークエラーで処理失敗。また最初からかよ・・・

そのようなときには「マルチパートアップロード」を利用することで、中断したアップロードをリトライすることができます。

今回は、S3のパフォーマンスを最適化する機能「マルチパートアップロード」についてまとめてみました。

# マルチパートアップロードとは
## 簡単にいうと
**サイズの大きいオブジェクトを分割して効率よくアップロード**するS3機能のことです。
S3の[ユーザーガイド](https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/mpuoverview.html)によるとオブジェクトサイズが100MB以上の場合に利用を推奨しています。

また、利用メリットは下記になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazona

元記事を表示

AWS CLIのShorthand SyntaxでFirehoseを作成するコマンドのメモ

シンプルなメモ。
(Firehoseに限らず)AWS CLIでShorthand Syntaxを使いたい時に細かい書き方でエラーが出ることがよくあり、結構いつも億劫になるので。
“`
aws firehose create-delivery-stream –delivery-stream-name cli-generated-stream \
–delivery-stream-type DirectPut \
–http-endpoint-destination-configuration ‘EndpointConfiguration={Url=https://….},S3Configuration={BucketARN=arn:aws:s3:::,RoleARN=}’
“`

注意点

– シングルクォートがないとUnknown optionsのエラー
– {}の中はJSONではなく、Url=…のようにイコールで結ぶ

環境
MacOS バージョン 10.15.7
AWS CLI バージョン 2.0.38

元記事を表示

S3 の Event notifications でエラー

S3 にオブジェクトが作成された時に、メールを受信したいのですが、エラーとなってしまいます。

“Unable to validate the following destination configurations”

と出力され、その上には、なんだか、権限が足りない、という記述があります。
これを解決するには、SNS トピックのアクセスポリシーを変更する必要があるようでした。

SNS トピックのアクセスポリシーを以下のように変更したところ、エラーがなくなりました。

“`
{
“Version”: “2008-10-17”,
“Id”: “__default_policy_ID”,
“Statement”: [
{
“Sid”: “__default_statement_ID”,
“Effect”: “Allow”,
“Principal”: {
“Service”: “s3.amazonaws.com”
},
“Action”: [
“SNS:GetTopicAtt

元記事を表示

CDKを使ってお名前.comで購入したドメインをALBでECSにホストベースルーティングする

# はじめに
CDKの学習を始めるにあたり、[CFnでつくった同じ内容](https://qiita.com/theFirstPenguin/items/f6165120465238814a8b)を今回はCDKで作り直しました。

# 全体図
![スクリーンショット 2022-05-07 8.35.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/572098/c9479a70-0382-a1df-c585-79b3216547cf.png)

# 前提
- お名前.comでドメインを購入済み
- Route53でexample.comのホストゾーンを作成し、そのNSレコードをお名前.comで設定

https://blog.i-tale.jp/2020/04/13_02/

# 実装
## ディレクトリ構成

“`
.
├── bin
│ └── app.ts
├── cdk.json
├── jest.config.js
├── lib
│ ├── app-stack.ts
│ ├─

元記事を表示

【AWS】Lambda Function URLsを使用したLineBot運用に切り替えた所感

## はじめに
今までLambdaにエンドポイントを追加する際はAPI Gateway等を使用することが必要でしたが、
2022年4月6日よりLambda内でエンドポイントを追加できる「Lambda Function URLs」が公開されたため切り替えて試してみました。

DBデータを参照するLineBotにLambdaを使用して運用しているため、実際の使用感についても後述しています!

## 対象者
この記事は下記のような人を対象にしています。

– AWSに興味がある方
– API Gateway + Lambdaの構成で開発している方
– Lambdaにてエンドポイントを追加したい方

## 所感
1. 設定に関して

設定した手ごたえが無いくらい簡単に設定ができました。
手順調査の方が時間が掛かり切り替えに手を動かしたのは5分程です!

2. 実際に運用しているLineBotでの使用感

一定時間Lambdaへのアクセスが無い場合、API Gateway + Lambdaで運用していた頃よりもほんの少しタイムラグがある印象ですが、それほど気にならないくらいのレ

元記事を表示

AWS ECSの概念図をMermaidで書いてみた

ECSを勉強してみたので、主要概念をMermaidで書いてみた。

“`mermaid
classDiagram
Cluster “1” *–> “*” Service
Service –> “1” TaskDef
TaskDef –> “*” ContainerImage
TaskDef ..> “*” Task : インスタンス化
Task –> “*” Container
ContainerImage ..> “*” Container : インスタンス化
Service –> “0…1” LoadBalancer
Service –> “*” Task

class Service
Service: +タスク数
class TaskDef
TaskDef: +ポートマッピング
“`

### kubernetesとの関係

– Taskとkubernetes Podは、コンテナを複数含むという点では概ね似た概念
– TaskDefと、kubernetesのDep

元記事を表示

【AWS】オートメーションでEC2を自動停止・起動する手順(画像付き)

## はじめに
EC2インスタンスを検証環境と本番環境で分けている場合、検証環境を丸一日起動させたくないときに自動で停止起動を組み込みたい。

## 使用環境
– VPC
EC2インスタンスを配置するのに必要
– EC2
自動停止・起動する対象
– Systems Manager(SSM)
今回の主役
– Amazon EventBridge
SSMターゲットを紐付けるために必要

## やってみた
### ドキュメントを作成する
「AWS Systems Manager」を開き、左から「共有リソース」>「ドキュメント」を開きます。
「Create document」から「Automation」をクリックします。
![スクリーンショット 2022-05-04 23.54.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/478546/55f4663e-a2f1-3efb-63fe-7a67250a8fe4.png)

名前を入力して、エディタを開きます。
今回はご自身がわかるように設定してください。

元記事を表示

AWS CloudFormationでEC2キーペアを作成する

AWS CloudFormationでEC2のキーペアを作成する方法についてまとめます。

従来はEC2のキーペアはCloudFormationでの作成ができなくて、例えばEC2インスタンス作成時には既存(別途作成済み)のキーペアを指定する必要がありました。しかし2022年4月29日のアップデートに、キーペアをCloudFormationテンプレートで作成できるとの一文がありました。

> In addition to this, customers can now also create and delete key pairs using CloudFormation templates. To learn more about key pairs visit our documentation.
> ([AWS adds new management features for EC2 key pairs](https://aws.amazon.com/jp/about-aws/whats-new/2022/04/aws-management-features-ec2-key-

元記事を表示

AWS?って状態から3ヶ月でアソシエイトレベルの資格を3つ取得した勉強法

# はじめに
この記事はいわゆる合格体験記です。
AWS認定資格でアソシエイトレベルと言われる3つの資格を取得しましたので、勉強方法を記事にします。

# 他の記事との違い
調べればたくさんの合格体験記を見ることができてありがたいですが、「AWS好きだぜ!」とか「AWS興味あるぜ!」という雰囲気を感じることが多かったです。
自分は好きでもなければ、興味があったわけでもないので、そんな奴がどんな方法で合格したのかという点で違いがあるのではないでしょうか!

# 各試験の概要

受験時の各試験の簡単な情報を記載しますので、詳細や現時点での情報はリンクからご確認ください。

SAA([AWS Certified Solutions Architect – Associate](https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/))

試験時間:130分
問題数 :65問
問題形式:択一選択問題、複数選択問題(正解を1つ選べと複数選べがありますよの意)
値段  :16,500円(税込)

元記事を表示

【EC2入門-2022年】無料枠で始めるインスタンスの作成手順

## この記事の目的
アプリをネット上に公開するのに使われたりする**Amazon EC2**。
その基本となる**インスタンスの作成方法**についてまとめてみました。

この記事では
**無料枠**を利用して、**インスタンス作成の基本的な流れ**を解説します。

:::note info
※作成手順だけ知りたいという方は、以下は読み飛ばして下さい。

#### そもそもインタンスって何?
EC2における**インスタンス**とは、インターネット上で動くサーバーのことです。

インスタンスは、**Amazonマシンイメージ(AMI)** という、**ソフトウェアの組み合わせをまとめた一つの雛形(OS、ストレージ、DB…などの種類を決める)** から作られます。

どうして最初からインスタンスを作らないのかというと、AMIを最初に作っとくことで、同じ設定のインスタンスを何個も作れるようになるからです。(同じような設定のインスタンスを作ろうとした時、また1から設定をするのは面倒なので)
:::

## 前提

・AWSアカウントを持っている方を対象に説明していきます。
持っていな方は、

元記事を表示

EC2のバックアップ3手法の比較

EC2のバックアップ(スナップショット)を自動で取得する場合、以下の3手法があります。

– Amazon Event Bridge
– Amazon Data Lifecycle Manager
– AWS Backup

調べる限りは **AWS Backup** を推す声が多かったですが、自分で試すのが一番だと思い、一通り試してみました。

# Amazon Event Bridge
まずはAmazon Event Bridgeを使用します。昔はCloudWatch Eventsというサービスを使用していましたが、今のAmazonの推奨はEvent Bridgeのようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/776880/d629af34-9a88-6938-c31b-958e6de3dc53.png)
定期実行するには、ルールタイプにスケジュールを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast

元記事を表示

EC2(Windows Server2019)のホスト名をNameタグの値で起動させる

EC2コンソールでNameタグを設定しても、OS起動してホスト名を変更にしないとサーバのホスト名はEC2のデフォルト値になってしまいます。都度サーバを立てるたびに変更するのは面倒なので、Nameタグ=サーバーホスト名になる起動テンプレートを作成してみます。ちょっとしたAD設定の検証などでWindowsの方が使うことは多いかもしれませんね。

# 今回のゴール
起動テンプレートを利用して、以下環境が設定済み状態でEC2起動を起動できるようにする

### AWS環境

・指定VPC内の所定のサブネットにデプロイ
・グローバル(パブリック)IPを付与
・指定AMI(Windows Server2019 JPN)を利用
・インスタンスタイプをスポットインスタンスに指定

### OS環境

・ホスト名をNameタグに設定した内容に変更する
・タイムゾーン、言語を日本仕様に設定
・”administrator”ユーザのパスワードを指定したものに設定

# 作業の流れ

①VPCとサブネットおよびセキュリティグループを作成
②起動テンプレートを作成
③EC2の起動・デプロイ

元記事を表示

【受験記録】AWS certified Data Analytics – Speciality(DAS-C01)

## 前提
– 4年目エンジニア
– アプリケーション開発メイン
– インフラはあんまり触らない
– AWS CLF, Associate3つ, AWS SAPは保持
– 受験日 2022/5/4

##試験結果
点数:806点/750点/1000点(取得スコア/合格ボーダー/満点スコア)
スコアパフォーマンス: “分野4:分析および可視化”を除くセクションは”コンピテンシーを満たしている”

## 試験感想
DASに関してはインターネット上に情報が少なく、対応している書籍も日本語ではないので、勉強の仕方に苦労しました。
受験予約は結構昔にしていましたが、実際の勉強期間は試験ガイドを確認初めてから2週間くらいでGWに入ってから詰め込んだ感じでした…
勉強は以下の流れで進めていきました。
(Bigdata on AWS)→ DAS試験ガイド→ データレイク書籍→ whizlab動画 サマリ視聴→ whizlab 模擬問題 →AWS公式サンプル問題、公式練習問題集

– [DAS公式ガイド](https://aws.amazon.com/jp/certification/certifie

元記事を表示

AWS SAA 1ヶ月で取得した方法(実務未経験)

# はじめに
私は実務未経験の駆け出しエンジニアです。
EC2などのメインどころは自己学習で触れたくらいのレベルです。
この度、AWS認定ソリューションアーキテクトアソシエイト試験(AWS SAA)に無事合格しました!
実務未経験で、どの教材を使用し、どのように学習したかの合格体験記になります。
私自身も学習方法に悩み、色々な方の合格体験記を参考にしました。
今後、AWS SAAの合格を目指している方の参考になれば幸いです!!

# 結果
ギリギリの合格でしたww
受験日:2022/4/25
点数 :741点
![スクリーンショット 2022-05-03 22.18.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1156198/4941c829-3efa-0358-1f0f-8b5809fa27a5.png)

# 使用教材
使用教材は下記4つのみ!!

1. 黒本(徹底攻略 AWS認定 ソリューションアーキテクト – アソシエイト教科書 徹底攻略シリーズ)
2. [【2022年版】これだけでO

元記事を表示

[AWS] WAFマネージドルールのカスタマイズ

# 概要
AWS REST API で展開しているWebアプリケーションにおいて、[403 ERROR The request could not be satisfied.]エラーが発生してしまった際の解決メモ

# AWS構成
## 使用サービス
– AWS
– Lambda
– API Gateway
– CloudFront
– WAF

## 構成
– Lambda(PHP)をAPI Gateway(REST API)にて展開している
– API GatewayはCloudFront経由で呼び出し
– WAFをCloudFront、API Gatewayの前に設置
– マネージドルール[AWSManagedRulesCommonRuleSet]をデフォルトのまま設定

# Webアプリケーション/エラー発生個所
– PHP8.0.17
– エラー発生個所は画像ファイル(約1MB)を数枚アップロードしている処理内

# エラー情報の詳細
– PHPで記載したWebアプリケーションで画像ファイルなどをアップロードする箇所で以下のエラー発生

> 403 ERROR
Th

元記事を表示

AWS EC2環境でのrails db:seedする方法

## 初めに
AWSのEC2にてデプロイしています。
rails db:seedをしたかったのですが、rake db:seedだったり、cd currentする、
など自分の環境にあった情報が見つかりませんでした。
なのでとても簡単なことですが投稿しています。

## 環境
Rails: 6.1.5
Ruby: 2.6.3
ローカル環境: cloud9
デプロイ環境: EC2

## 結論
EC2に入り、cd アプリケーション名してから
(rails sしてるなら念の為停止しておく)
“`terminal:terminal
[ec2-user@パブリックIPアドレス アプリケーション名]$ bundle exec rails db:seed RAILS_ENV=production
“`
だけです。

## 最後に
とてもシンプルで読み応えはありませんが、色々調べる手間を省くため書きました。
ありがとうございました!

元記事を表示

AWS公式資料で挑むMLS認定(2)-AI/機械学習(ML)の基本

##### [前回] [AWS公式資料で挑むMLS認定(1)-試験ガイドを読む](https://qiita.com/mingchun_zhao/items/149aedc35b69e25a4c07)

## はじめに

Amazon AI/機械学習の関連サービスを理解する前に、
まずは、AI/機械学習の基本知識から。

## 人工知能(AI: Artificial Intelligence)とは

– AIとは
– 人間の知能に関連する認知的問題の解決に取り組む、コンピュータサイエンスの分野
– 学習
– 問題解決
– パターン認識
– 機械学習の由来
– 研究者Pedro Domingos教授の機械学習の”5部族”
– 論理学と哲学に由来するシンボリスト
– 神経科学から派生したコネクショニスト
– 進化生物学に関連する進化論主義者
– 統計学と確率に取り組むベイジアン
– 心理学に由来するアナロジー主義者
– ※ 機械学習のさまざ

元記事を表示

AWS EC2で時刻同期する際の備忘録(ubuntu20.04LTS版)

AWS EC2で時刻同期する際の備忘録です

OSは`ubuntu20.04LTS`
“`
$ cat /etc/os-release
NAME=”Ubuntu”
VERSION=”20.04.4 LTS (Focal Fossa)”
“`

初期では、時刻は9時間前(UTC)となっていた

“`
$ date
Thu May 5 16:28:53 UTC 2022
“`

`sudo timedatectl set-timezone Asia/Tokyo`を実行すればOK(JSTにする場合)

> [Ubuntu 20.04 LTS タイムゾーンの変更(時刻合わせ:timedatectl)](https://compass-note.hatenablog.com/entry/ubuntu2004LTS-timezonctl)

“`
sudo timedatectl set-timezone Asia/Tokyo
“`

`date`実行して期待する時刻となっていることを確認

“`
$ date
Fri May 6 01:35:27 JST 2022
“`

元記事を表示

Terraformに入門してみた

## 環境構築

①AWS CLI(Homebrewを使います)
②Terraform をインストールしていきます。

### ①次のコマンドでAWS-CLIをインストールします。

“`
$ brew install awscli
“`

![スクリーンショット 2022-04-30 18.35.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280830/ef0f4bff-1d9c-52b8-1f89-fa44e701e5fc.png)
インストールはうまくいっています。

下記のコマンドでAWS-CLIの設定を入れていきます。

“`
mbp:terraform kentaroyoshizumi$ aws configure
AWS Access Key ID [****************7234]: ********
AWS Secret Access Key [****************7234]: ********
Default region name [us-eas

元記事を表示

IAMポリシーについて

# 私のスペック
大学卒からアパレル関係の営業を6年経験後現在のSESに転職して1年ほど。
気づいたらAWSの勉強をしており、資格11冠目指したいとも思ってます。
その前にAWSエンジニアとして仕事をしたい為、更なる知識の深める際にIAMに詰まった。
SAAは合格済み

# なぜ書こうと思ったか
色々振り返ってみたらよくわかったいなかったことが多かったので
改めて復習のつもりで書く事にした。

# IAMポリシーについて
IAMアイデンティティやAWSリソースに関連付ける事によってアクセス許可を定義することができる
以下のようにJSONで定義されたポリシーをアタッチされた IAM ユーザーにのみ、このアクセス許可が付与される
“`
{
“Version”: “2012-10-17”,
“Statement”: {
“Effect”: “Allow”,
“Action”: “dynamodb:*”,
“Resource”: “arn:aws:dynamodb:us-east-2:123456789012:table/Books”
}
}
// us-

元記事を表示

OTHERカテゴリの最新記事