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

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

コードを書けないインフラエンジニアがLambda+Pythonで米国株価のグラフを作って通知するツールを作る

#1.はじめに
これまでのITインフラエンジニアはコードとはあまり縁がなかったのですが、近年Infrastructure as Codeというキーワードも登場し、コードを使いこなすことも必要な時代になっています。
ITインフラエンジニアとしてこれまで従事してきた私もその潮流に乗るため、コツコツとコードの個人学習を行っておりますがなかなかはかどらず、**「好きこそ物の上手なれ」**ではありませんが、今回は趣味である米国株に関する役に立つツールを作れないかということで考えたのが今回のツールです。
#2.完成したもの
##2-1.概要
指定した複数の米国株銘柄の直近2週間(この期間は変更可)の株価をグラフにしてS3に保存し、メール通知するツール。
EventBridgeで指定した時間(市場の終了後に設定)にLambdaが起動し、指定した米国株のティッカーシンボルの株価をUS Yahoo Financeより取得してグラフを作成。作成されたグラフをS3上に保存し、SNSにてそのURLを通知するツールです。
![完成したもの.png](https://qiita-image-store.s3.ap

元記事を表示

駆け出しエンジニアのAWS クラウドプラクティショナー学習記録1日目

## そもそもクラウドとは?

コンピューターやデータベース、ストレージなどを使いたいときに使いたいぶんだけ使えるサービス

###  オンプレミス

クラウドが導入される前のコンピュター環境の手法。
サーバーやネットワークなどの設備をハードで用意する(=固定費)

### オンプレミスの欠点

ハードを用意する必要があるので交換が効きにくい
→予想されるトラフィック量などに応じて事前にキャパシティを予測してから設備投資しないといけない。
→予想がはずれれば余剰リソースや過剰なトラフィックによるキャパシティアウトが起こる

### クラウドのメリット

使いたいときに使いたい分だけ使えるので

– キャパシティの予測が不要
– スタートアップ企業からすれば小さく始められ理
– サービスの状況に応じて柔軟にリソースを調整できる→コスパがいい
– モノを設置しなくてもいいので世界中に一瞬でデプロイ可能
– オンプレミスの際に発生していた電気代、ネットワーク代などを一括で管理できる

## サーバーアーキテクチャの設計原理

### Design for Failure…障害が起こる前提で設

元記事を表示

AWS ECS Fargate × Rails でアプリケーションを指定した日時に固定する方法

# 概要

期間指定のある処理をデバッグするためにサーバー側のアプリケーションの日時を任意の日時に固定したいときがあります。

現時点での実現方法を共有します。

他に良いやり方があれば教えてもらえれば幸いです。

# 結論

`Fargate` の制約でサーバーマシンの日時を固定することができなかったので `Rails` のアプリケーションコードで固定するしかありませんでした。

タスク定義でデバッグ用の環境変数を設定してサービスをそのタスクに切り替えるという方法です。

“`ruby:config/initializer/datetime_debug_mode.rb
# DATETIME_DEBUG_MODE には “2021-01-01 10:00:00” のような Time.zone.parse でパースできる日時の文字列が入る
if ENV[‘DATETIME_DEBUG_MODE’].present?
require ‘active_support/testing/time_helpers’
include ActiveSupport::Testing::Time

元記事を表示

AWS主要サービスまとめ

## EC2(Amazon Elastic Compute Cloud)

### 必要な時に必要なだけの量を使用することができる

オンプレミスでは、ピーク時に合わせてサーバーを常時稼働させていますが、この場合、実際には使われていない余剰が発生している。EC2では必要な時に必要なだけのインスタンスを稼働することができる。

### 使用した分だけコストが発生

1. EC2稼動に対しての料金・・・従量課金(時間〜秒単位)

2. データ転送料・・・リージョンの外にデータを転送した際に料金が発生する。料金はリージョンによって異なる。インには転送料金発生しない。

3. ストレージ料金・・・EBSの料金です。EBSに対しての課金は、1GBあたりの、プロビジョニングした料金です。プロビジョニングとは、ボリュームのサイズとして確保した量です。EC2を停止中にするだけではEBSの料金がかかります。AMIを作成しておきましょう。

また、インスタンスストアは物理

元記事を表示

【AWS】EBSスナップショットについて

#プログラミング勉強日記
2021年5月27日
 EBSはスナップショットを使ってバックアップを取得する。スナップショットを復元することで別のEBSとして新たに同じ内容のEBS構成を複製ができる。このスナップショットついてまとめる。

#スナップショットの特徴
 基本的にはRDSのスナップショットと同じ性能を持つ・

– スナップショットでバックアップを取得
– EBSを復元するときは別のAZでも可
– S3に保存される
– 2世代目以降は増えた分のデータを保存する増分バックアップになる(1世代を削除しても復元できる)
– 作成時にブロックレベルで圧縮して保管するので、圧縮後の容量に対して課金される
– 作成時でもEBSは利用可能

#スナップショットの管理
 スナップショットの作成時にはデータの整合性を保つために静止点を設けることが推奨されている。(しかし、いつでも実行可能でEBS操作に影響を与えない。)
 保存期間や世代数は無制限で、世代管理が必要な場合はAWS CLIやAPIで自動化する。DLMという機能を使ってスナップショットの取得をスケジューリングできる。

#スナップショッ

元記事を表示

アラサー未経験フリーターがITインフラ業界に放り込まれてawsの資格をプロフェッショナルまで取った話 ②アソシエイト3種

アラサーIT未経験の私がawsアソシエイト系取得した時の勉強法まとめです。私と同じくIT経験の浅い方の参考になればと思います。
取得した資格は以下

1. ソリューションアーキテクト
2. SysOpsアドミニストレーター
3. デベロッパー

クラウドプラクティショナー編はこちら

https://qiita.com/instant_baby/items/cf39b67c044417d611b4

# ソリューションアーキテクト アソシエイト

勤続約半年で受験しました。
この時の技術レベルはまだまだ初心者状態で、知識レベル的にはクラウドプラクティショナーから毛が生えた程度でした。
触っているawsサービスも以下のもの程度でした。

https://aws.amazon.com/jp/aws-transfer-family/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc

https://aws.amazon.com/jp/vpn/

受験しようとし

元記事を表示

AWS AmplifyのAPI入力バリデーション実現方法

## この記事は何
– Amplify CLIを使うと簡単にAppSync+DynamoDBを使ったGraphQL APIを作成可能です。([公式リンク](https://docs.amplify.aws/cli/graphql-transformer/overview))
– 開発者が下記のようなschemaを定義することで、Amplify CLIはDynamoDBのテーブルや、AppSyncのリゾルバ(query, mutation, subscribe用)を生成してくれます。

“`graphql:example.graphql
type Blog @model {
id: ID!
name: String!
posts: [Post] @connection(name: “BlogPosts”)
}
type Post @model {
id: ID!
title: String!
blog: Blog @connection(name: “BlogPosts”)
comments: [Comment] @connection(name: “Pos

元記事を表示

[AWS_課題1]SSHアクセスできない

##環境
[AWS CloudTech](https://aws-cloud-tech.com/)の実践課題1にて得られるスタック

##トラブルシュートのセオリー
インフラSES在職3年程度の人間としては、以下がセオリーという肌感覚でいる。
①物理的で基本的なとこから確認していく。
②ローカルPC → 接続先に向かって実施する。

あとはAWS素人なりに可能性の高そうなとこを優先して実施した。

##トラブルシュート
まずはSSHアクセスしてみるが、タイムアウトになり接続できないのでトラブルシュートしていく

####1. EC2インスタンスが起動しているか
`CloudTechTest 実行中`
→問題無し。

####2. インターネットゲートウェイはアタッチしているか
そもそもどのVPCなのかを確認。

`vpc-…xxx…1acb`
インタネットゲートウェイのうち、上記のVPCにアタッチしているものを確認。
`igw-….xxx…e626 Attached`
→問題無し。

####3. Security GroupでSSHが許可されているか
実務でも、FWを通るなら最

元記事を表示

AWS Aurora,Redshift,DynamoDB,ElastiCache

#Auroa
**MySQLと2.5~5倍の性能を商用データベースの10分の1の価格で提供する高性能・低コストDB**

不規則な負荷に自動でスケーリングすることが可能なRDBです。DBインスタンスクラスのサイズを指定せずにデータベースエンドポイントを作成し、データベースエンドポイントがプロキシフリートに接続されます。このプロキシフリートでは、ワークロードをルーティングする先のリソースのフリートがオートスケーリングされます。プロキシフリートを使用すると、最小と最大のキャパシティー仕様に基づいて Aurora Serverless がリソースを自動的にスケールすることができます。

###Auroraの特徴
 ー高い並列処理によるストレージアクセスによってクエリを高速処理することが可能
 ーAuroraは大量の書き込みや読み込みを同時に扱うことができる
 ーデータベースの集約やスループット工場が見込まれる
 ー全てが5倍高速わけではなく、適用する領域を見つけて利用する
 ーMySQLかPostgreSQLとの互換性がある

**耐障害性性と自己回復性**
 ー3つのAZに2つのコピーを

元記事を表示

【初心者向け】AWSの請求アラート設定

# はじめに
AWSのアカウントを作成後、セキュリティ設定等と同様に重要なのが請求アラートを設定することです。
AWSの利用料金が設定金額を超えた場合にアラートを出してくれる機能です。
 ※会社等の補助無しで、自費での学習を始める方は必ず設定しておきましょう!

# 注意
– 2021/5/26時点の情報となります。
– 設定金額は楽しく継続して学べるよう、皆さまのお財布事情とご相談の上、お決めください。

# 手順概要
以下、2つを設定していきます。
1. 請求設定で請求アラートを受け取るにチェックを入れる。
2. CloudWatchで請求用アラートを設定する。 ※今回は10USDを閾値として設定してみます。

# 手順(新規設定)
### 1.請求設定で請求アラートを受け取るにチェックを入れる。
①マネジメントコンソールの右上にあるユーザー名をクリックし、「マイ請求ダッシュボード」を選択します。
WordPressのFTP認証ができない

##どんなエラー?
社内でWordPressを使用しているのですが、WordPressのバージョンアップに際して、なぜかFTP認証のエラーが発生しました。
自分用のメモのつもりで記事を作成します。

##原因
おそらくですが、上記に記載したようにWordPressのバージョンアップに伴って現れたエラーではないかと思います。
素直にFTP認証できれば良いのですが、社内でAWS(EC2)にデプロイしているので、FTP認証に必要な`パスワード`が分かりませんでした。

普段EC2のは、ターミナルでSSH認証をして使用しています。
EC2で扱う認証情報は、`ホスト名`、`ユーザー名`、`秘密鍵(~.pem)`
ですが、FTP認証に必要な認証情報は、`ホスト名`、`ユーザー名`、`パスワード`なので、そもそもEC2を使っていたら、FTP認証はできない可能性が高いです。
(知識不足で、EC2でもFTP認証できる可能性があります。)
##解決
###WordPressのファイルを書き換え
WordPressにある下記の二つのファイルを書き換えます。

“`wp-config.php
define(

元記事を表示

EC2 Windows Serverでユーザーデータを毎回実行する方法

カスタムAMIから起動したWindows Serverでユーザーデータが実行されなかったので調査した結果です。
デフォルトでは初回起動時のみしか実行されないユーザーデータを、Windows Serverにおいて起動時に毎回実行する方法を紹介します。
当初は
[EC2インスタンス(WindowsServer)への起動時処理設定(ユーザーデータ) – Qiita](https://qiita.com/qNeumann/items/4294d870e5b05d5b45f8)
の手順を参考に調査していたのですが、別の方法も見つけたので紹介します。

# 結論
[EC2Launch v2](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ec2launch-v2-overview.html)を使用しましょう!

>EC2Launch v2 は、ブートごとに次のタスクを実行できます。
>~ 一部略 ~
>・ユーザーデータを実行します。
>・メタデータサービスと AWS KMS サーバーに到達するように永続的な静的ルートを設定

元記事を表示

Fargate はマルチテナントであることを意識して使うべきと改めて思った

# 背景

あるとき Fargate 1.4 で動くバッチタスクがエラーをはくようになった。
内容は `Error retrieving credentials from the instance profile metadata service.` で、タスクのメタデータエンドポイントから認証情報を取得できないというもの。

# エラーの原因

タスクは PHP SDK を利用しており、 CloudWatchClient を生成するときに発生したもののようだった。
Client 生成時に渡すクレデンシャルとして通常 Access Key/Secret Key を指定するが、必ずしもセキュアな方法とはいえないため、代わりにタスクの IAM ロールを利用する方法を採用していた。
このとき、SDK はタスクのメタデータエンドポイントに問い合わせを行い、レスポンスから一時的な認証情報を取得する。
https://docs.aws.amazon.com/ja_jp/sdk-for-php/v3/developer-guide/guide_credentials_assume_role.html

元記事を表示

GithubにPushしたファイルをCacheControl付きでS3に自動アップロードする

## この記事は何
– GithubにPush(または任意のトリガー)されたファイルを自動的にS3にアップロードするGithub actionは既存のものがある。[リンク](https://github.com/marketplace/actions/upload-s3)
– 大変素晴らしい…!
– ただ、[こちら](https://qiita.com/foxtail88/items/1a8626d3e76f82eceaee)のシステムのようにS3に上げたファイルを配信したい場合、適切なCacheControlを付与しておきたい。(付けないとPage Speed Insightさんとかにも怒られるし…)
– もとのactionからfolkして、CacheControlを付けられるものをちゃちゃっと作りました。

## 結論
こちらに置いてあります。
https://github.com/tenkoh/upload-s3-action

### メモ
もとのアクションに対する追加は下記です。

“`diff_javascript:index.js
const core = requir

元記事を表示

Raspberry piにrcloneを導入してAWS S3をmountする

# S3の事前準備
普通にS3を作って、そこにアクセス可能なIAM Userを用意する。
ポリシーはこんな感じにしておいた。

“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“s3:GetObject”,
“s3:PutObject”
],
“Resource”: “arn:aws:s3:::/*”
},
{
“Effect”: “Allow”,
“Action”: “s3:ListBucket”,
“Resource”: “arn:aws:s3:::
}
]
}
“`

# rcloneの導入

“`
$

元記事を表示

AWS SAAのオンライン試験を受けた感想

2021年5月27日にAWSのSAAのオンライン試験を受けたので、オンライン試験の感じと試験内容で感じたことを書いていこうと思います。

# オンライン試験について
最近は自宅からオンライン受験出来るようになっており、今はオンライン受験だと一度落ちてももう一度無料で受けられるキャンペーンやってたのでオンラインで受けました。

## 試験日
オンラインで24時間受けられるらしいですが、私が受験しようとした時は平日の午前中しか空いていませんでした。
受験のやり取りを日本語か英語のどちらか選べるのですが、こちらを英語にすればもしかしたら時間の選択肢が増えるのかも。。

## オンライン受験(準備)
予約した時間の30分前から試験の準備が開始できます。スマホで自撮りと試験を受ける机の前後左右の写真を送ります。この辺の指示が一部英語だったりちょっと手間取りました。10分くらいかかりました。

この操作が終わったら試験の人がログインするまで待機(15分前にくるみたい)
向こうは基本チャットで、こっちは音声とチャットの両方使ってやりとりしました。

受験ルールには机に飲み物も置くなと書いてましたが、

元記事を表示

AWS 認定 DevOps エンジニア – プロフェッショナル(DOP-C01)取得するまでにやったこと

![DOP_2021-05-27_12h25_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/534812/29fa451e-84ac-e5b2-0a1b-9f9b84274911.png)

## はじめに

DX 技術本部の yu-yama です。

AWS 認定 DevOps エンジニア – プロフェッショナルを取得したので取得までの流れを記します。

## 受験前の AWS 経験

AWS 経験は 4, 5 年で、コアサービスは開発側/運用側一通り触っており、以下の認定を取得しています。

1. SAA (2020 年 6 月)
– [AWS 認定ソリューションアーキテクトアソシエイト\(SAA\-C02\)取得するまでにやったこと](https://qiita.com/yu-yama-sra-airline-erp/items/7d30c3772c3075837939)

1. DVA (2021 年 1 月)
– [AWS 認定 デベロッパー – アソシエイト\(DVA

元記事を表示

PythonでAWS S3のバケット内のファイルをすべてダウンロードする方法

# 動作環境
* python 3.9

# Boto3のインストール
“`shell
pip install boto3
“`

# 前準備
[ドキュメント](https://pypi.org/project/boto3/)を参考にAWSのアクセスキーなどを設定する。
アクセスキーを設定しなくてもpythonのコード内に記載し、アクセスすることもできる。

# コード例

├── main.py
└── objects

“`python:main.py
from boto3.session import Session

def download_objects():
# 上記の前準備でアクセスキーなどの設定をしなかった場合に必要。
session = Session(aws_access_key_id=’アクセスキー’,
aws_secret_access_key=’シークレットキー’,
region_name=’リージョン名’)

s3 = session

元記事を表示

AWS ご利用開始時に最低限おさえておきたい10のこと

**AWS ご利用開始時に最低限おさえておきたい10のこと**

https://pages.awscloud.com/JAPAN-event-OE-At-least-10-basic-2020-confirmation-639.html

> 初心者には難しい
初回はざっくりで良いので目を通す程度でOK
何度も見返すべき資料
AWS Well-Architected Frameworkがどんなものなのか理解できていればOK

概要

– toB向けの利用における注意点の紹介ウェビナー
– AWS Well-Architected Frameworkは何か
– AWS Well-Architected Frameworkに基づくベストプラクティスに即して注意点を紹介

## はじめに

AWSを利用する上で最低限抑えておきたい設定などを理解する
↑ その為にAWSのベストプラクティス集を活用する
= それはつまり ” AWS Well-Architected Framework ” の集大成
→ ビジネスの成功率を上げる

### 目次

1. AWS Well-Architected

元記事を表示

AWS ALBでの流量制限を実装してみました

#はじめに
キャンペーン等でWebサーバに対して想定数以上のアクセスが発生した場合に、Webサーバが高負荷となりレスポンスが悪化することがあると思います。そのような場合には、負荷を低減するために、一定数以上のアクセスを抑止する方法が考えられます。(他には、”Webサーバの前段に高機能のロードバランサを導入しアクセスを抑止”したり、”Webサーバをスケールアウトする”方法もあります)
今回、AWS ALB(Application Load Balancer)及びAWSマネージメントサービスのみでこれを実装してみました。
なお、調査した限り、実際には”一定数以上のアクセスを抑止する”といったことはできませんでした(AWS SA様へも確認済)。代わりの方法として、特定パスに対するアクセスを一時的に抑止することで、Webサイト全体のレスポンス悪化を回避する方法を採用しています。

#環境
構成と抑止の挙動は以下の通りです。
####前提
– (キャンペーン等で)アクセスの増加が見込まれるコンテンツが事前に把握できている。今回の対象コンテンツを「campaign.html」とする。
– 抑止をト

元記事を表示

OTHERカテゴリの最新記事