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

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

Wikipediaの記事をランダムに取得して1日1回ツイートするbotを作ってみた

ネット中心で生活していると、どうしても自分の興味があることに情報閲覧が偏ってしまって、興味のない事柄に触れる機会が減ってしまいます。なので、1日1回、強制的に知らない言葉を自分にインプットするためにWikipediaの記事をランダムに1件取得してツイートするTwitterのbotを作りました。

#開発したTwitter bot
個人的には、朝一で脳みそのちょっとした刺激になることがあります。

[うぃきのひとひら](https://twitter.com/Wiki_Hitohira)

#環境
– AWS Lambda
– python3.7

#ポイント
– Wikipediaの記事をランダムに1件取得するのに、MediaWiki APIを利用しました。
– 1日1回の起動は、AWS Lambdaの関数をAmazon CloudWatch Eventsのcron式で定期的に実行することで実現しました。(AWS Lambdaでの関数の作り方はたくさんの解説があるのでここでの説明は割愛します。)
– Twitterのbotを開発するためには、アカウント取得に加えて[Twitter A

元記事を表示

Amazon Aurora クラスター/インスタンス作成方法 メモ

* AWS CLIを用いたAmazon Auroraのクラスター/インスタンス作成方法についてメモする。

## 作成手順

* 以下のようなMulti-AZ構成のDBクラスター・インスタンスを作成する。

![aurora.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586535/c41adf9f-f36e-f7c0-c191-93e9ea271049.png)

### 前提条件

* VPC、サブネット、セキュリティグループは作成済みであるものとする。

### 1. クラスターパラメータグループ作成

* クラスターパラメータグループ`test-db-cluster-param-group`を作成する。

“`shell
aws rds create-db-cluster-parameter-group \
–db-cluster-parameter-group-name test-db-cluster-param-group \
–db-parameter-g

元記事を表示

Lambda layer(python)で5分くらい遊ぶ

## まとめ

– ディレクトリ構成: `python/layer/function.py`
– インポート: `from layer import layer1`

## Layer化したいファイルの用意

“`function.py
def sum(x:int, y:int) -> int:
return x + y
“`

## Layerを利用する関数の用意

“`python:lambda_function.py
import json
from layer import function

def lambda_handler(event, context):
# TODO implement
return {
‘statusCode’: 200,
‘body’: function.sum(1,2)
}
“`

## さいごに

– `python/` ディレクトリ以下に配置して、その先をimportする
– Zip化する際に共通系がそこに入るようにコーディネートしなければならないのめんどくさい

元記事を表示

RDSでMySQLデータベースを作るための覚書

# はじめに
AWSのRDSにMySQLのデータベースを作ります。[こちら](https://qiita.com/talomina/items/79277eda3dec13fa8be2#vpc%E3%81%AE%E4%BD%9C%E6%88%90)で作成したEC2から接続できるようにします。

# 全体概要
下記のツリーのようにオブジェクトを作っていきます。「AAA」は任意の名前に読み替えしてください。

* VPC AAAvpc01 10.0.0.0/16 [**こちら**](https://qiita.com/talomina/items/79277eda3dec13fa8be2#vpc%E3%81%AE%E4%BD%9C%E6%88%90)で作ったものを使います。
* EC2 RDSに適用するためのセキュリティグループを作ります。
* セキュリティグループ AAASGRDS01
* MYSQL/Aurora 3306/TCP from 0.0.0.0/0
* RDS
* DBサブネットグループ AAADBSUB01
* MySQLデータベー

元記事を表示

AWS WEBサーバー構築

#はじめに
自作Laravelアプリを公開するべくAWSで環境構築した作業メモです。
AWSアカウント作成、AWSネットワーク構築 を事前にやってます。
(投稿順序が逆転してますが、今後投稿予定)

#手順
1. EC2インスタンスを設置する
2. SSHでEC2に接続
3. Apacheのインストール
4. ファイアウォールの設定
5. IPアドレスの固定 ElasticIP

#WEBサーバー構築
##EC2インスタンスを設置する

AWSマネジメントコンソールに入って、サービスの検索窓にEC2と入力し、EC2のダッシュボードに移動する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1007978/eba96d65-ed2c-249a-0b9e-ac0f3176b8ec.png)
左メニューのインスタンスを押し、右上のインスタンス起動を押す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

AWS ホワイトペーパー翻訳

# はじめに
仕事でAWSを使っています。
そろそろ
* **「業務で得た知識を整理したい」**
* **「資格がないと箔が付かない」**
などの理由で何かしら資格が欲しいのですが、イキりたいので最高峰のSAPを目指して勉強していこうと思います。
[AWS Certified Solutions Architect – Professional](https://aws.amazon.com/jp/certification/certified-solutions-architect-professional/)

下記、私のスペックです。
* 未経験 ⇒ IT業界9ヶ月目
* AWSに関わって4ヶ月程度

# どのように達成するか
先駆者の記事を読むと、次の方法が有効そうでした。
➀ [Udemyの模擬試験(有料)](https://www.udemy.com/course/aws-53225/)
➁ [SAP唯一の対策本(2020/6発行)](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E3%82%BD%E3%83%AA%E3%83

元記事を表示

VPCピアリング とは

## 勉強前イメージ

VPCで外部ネットワークと接続するときのなんとか・・・?

## 調査

### VPCピアリング とは

異なるVPCを接続することが出来ます。
複数のAWSのコンテンツをまとめたり、複数のAWS間で通信が行うことが出来ます。
異なるAWSアカウント(クロスアカウント)間でもVPCピアリングを行うことが出来ます
また、複数のVPCとピアリングすることがデフォルトで50まで出来ます

![複数のピアリングUntitled Diagram.drawio – diagrams.net – Google Ch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/b8e3476b-3a3a-00a3-1962-3abfcc2fa39d.png)

### 注意しないといけないこと

– CIDRブロックが重複しているVPC間のペアリングは出来ない

![ciderUntitled Diagram.drawio – diagrams.net – Google Ch.png](ht

元記事を表示

戦略的設計を実現するためデータ駆動設計-ネットワーク設計-コマンドアンドコントロール設計の統合アプローチ

今回の記事では、以下の記事に記載されている**Information(情報)、Cyber(サイバー)、Synergy(相乗)アプローチに基づいた戦略的設計**を実現するための**データ駆動設計、ネットワーク設計、コマンドアンドコントロール設計の統合アプローチ**について紹介したいと思います。

前回の記事:**ICSアプローチに基づくドメイン駆動設計の戦略的設計**
URL:https://qiita.com/aLtrh3IpQEnXKN7/items/64596260d786b22112db

#前回の記事のおさらい
##ICSアプローチとは
**ICSアプローチ**とは**Information(情報)、Cyber(サイバー)、Synergy(相乗)**の3つの概念を統括したロシア式ドメイン駆動設計による**戦略的設計**です。
**ICSアプローチ**では以下の3つの機能に焦点を当てています。
**・目標に基づくシステムの監視によるエラー検知**
**・検知したエラーの報告**
**・メディアへ情報を投射する反射環境の構築**

##ICSアプローチの機能
**・通信に使用する情

元記事を表示

Rails AWS 本番環境でテータベースリセットしてseedデータ投入方法

#Railsで本番環境でテータベースリセットしてseedデータ投入方法

“`
[ec2-user@******* current]$ RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rake db:drop
[ec2-user@******* current]$ bundle exec rails db:create RAILS_ENV=production
[ec2-user@******* current]$ bundle exec rails db:migrate RAILS_ENV=production
[ec2-user@******* current]$ bundle exec rails db:seed RAILS_ENV=production
“`
上から順番に実行で終わりです。

#最後に
bundle execをつけないとエラーになりました。

元記事を表示

AWS Cloud9における「Oops VFS connection does not exist」というエラーと解決策について

#はじめに
**Railsチュートリアル第4版の第1章**の開発中に発生した「Oops VFS connection does not exist」というエラー発生状況とその解決策についてです。

#開発環境
* MacOS Catalina 10.15.7
* Safari 13.1.3
* AWS Cloud9
* Rails 5.1.6
* ruby 2.6.3

#エラー内容
Cloud9上にてRailsサーバを起動し、プレビューよりデフォルトページを
表示しようとしたところ、以下の画像が表示される。
エラーメッセージ:「Oops VFS connection does not exist」
![スクリーンショット 2020-12-27 19.05.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/948417/7d1b18c5-915e-2d3c-b957-2a2278987bc1.png)

#原因
Could9IDE起動自体にはCookieは不要だが、**アプリやファイルのプレビュー機能

元記事を表示

AWSのSGフルオープンルールを自動削除する【EventBridge, Lambda】

# はじめに
 AWSのSGルール自動削除は、AWSマネージドだとsshやRDPのフルオープン以外はないと思います。
 ちょうどEventBridgeやLambdaを触ってみたかったので、いろいろ調べつつ実装してみました。

# 構成

 SG作成 → EventBridgeで検出 → Lambdaで自動削除

# 要件定義

1. 削除対象はSGのインバウンドルールで、許可されている送信元IPアドレスが`0.0.0.0/0`,`::/0`となっているもの
2. 新規作成されたルールが対象
3. 送信元IPアドレスがフルオープンになっているルールと、そうでないルールが一緒に作成された場合、フルオープンのルールのみを削除する

# EventBridgeルールの作成

 EventBridgeは、ルールにより一致した受信イベントを検出し、ターゲットとして登録したAWSリソースを呼び出してイベントを渡します。
 呼び出されたAWSリソースは渡されたイベントを使用したりして、決められた処理を実行します。
 今回、EventBridgeルールは二つ作成します。
 どうにかして一つのルールで実装

元記事を表示

AWSからメールがauのezweb.ne.jpに送れない

### 現象
– AWSのCognitoを使って、ログインメールをau携帯のezweb.ne.jpあてに送信したところ、
いつまでたっても確認メールが来ないという事象が起きました。
– また、以前も、Billingの請求アラートや、SESでau携帯メールアドレスを指定しても届かない、受信できないということが発生していました。

### 原因
– auの[迷惑メールフィルター トップ](https://mfilter.ezweb.ne.jp/jsp/md/index.jsp)のおススメ設定が、なりすまし規制 レベル「高」になっており、レベル「高」だと受信できないようです。
![setting1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331144/4caaec86-bbeb-2a5a-d615-fa039cff78a0.png)

### 対策
– なりすまし規制は、レベル「低」にする。
![setting2.PNG](https://qiita-image-store.s3.ap-northeas

元記事を表示

「AWS Well-Architected フレームワーク」の「レビュープロセス」資料がとても良かったので紹介したい

# はじめに
仕事の品質を高める上で、知見のある方にレビューをしてもらうというプロセスは欠かせません。
ただこのレビュー、やり方や意見の伝え方によっては、期待した効果が得られなかったり、ネガティブな効果を生み出しかねません。そうした結果、レビューという行為自体が開催されにくくなることは、チームにとって非常にマイナスです。
全員のレビューへの期待を整えておくために、レビューの心構えや望ましい運営方法などを、レビューに関わる全ての人が共通認識化しておくことは、非常に重要だと考えています。

今回、このレビューを効果的に進めるポイントをまとめた、とても良い資料を見つけたのでご紹介します。

[レビュープロセス – AWS Well-Architected フレームワーク](https://wa.aws.amazon.com/wat.thereviewprocess.wa-review.ja.html)

# この資料をおすすめしたい方

エンジニアに限らず、仕事で他者の成果物をレビューをする人、および他者からレビューを受ける人(そう考えると、仕事をする人はすべて、なのかもしれません。)

元記事を表示

【AWS】EBS

EBS-backedインスタンスに障害が発生した場合
 →EBSbackedインスタンスを停止して再起動

関連する全てのボリュームのスナップショットを自動的に作成し、新しいAMIを作成
以下の手順に従って、ボリュームを新しいインスタンスにアタッチする
1)ルートボリュームのスナップショットを作成
2)作成したスナップショットを使用して新しいAMIを登録
3)新しいAMIから新しいインスタンスを起動
4)残りのAmazon EBSボリュームを古いインスタンスからデタッチ
5)Amazon EBSボリュームを新しいインスタンスに再アップ

元記事を表示

Amazon CloudFront ディストリビューション作成方法メモ

* AWS CLIを用いたAmazon CloudFront ディストリビューション作成方法をメモする。

## 概念・用語

* **ディストリビューション**
* ドメインごとのCloudFront設定。

* **オリジンアクセスアイデンティティ(Origin Access Identity,OAI)**
* オリジンへのアクセス制限に利用する特別なCloudFrontユーザー。
* オリジンコンテンツにCloudFront以外からアクセスさせたくない場合に利用する。
* ディストリビューションに関連付ける。
* S3のバケットポリシーとして設定を加える。
![cf_oai.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586535/62a081ef-696d-ccc2-3ce9-1bf446daf37d.png)

## ディストリビューション作成方法

* シェルスクリプトからAWS CLIを実行して作成する。
* 以下のようなケースのCloudFro

元記事を表示

【AWS】Route53

#Route53とは
・権威DNSサービス
 – AWSの提供する権威DNSサービス
 – DNSはドメイン名をIPアドレスに変換するインターネット上の「電話帳」
・AWS上で高可用性、低レイテンシなアーキテクチャを実現するツール
 – ポリシーベースの柔軟なトラフィックルーティング、フェイルオーバー、
  トラフィックフローなどの機能により、様々な条件に基づくルーティングが可能
・高い可用性を提供
 – DNSはインターネットの根幹のサービス
 – Route 53 は 100%のAvailabilityのSLAを提供
・マネージドサービスとして提供
 – DNSサーバーの設計・構築・維持管理が不要
 – 冗長性・性能・セキュリティ等は全てAWSにて管理される

#ホストゾーン
・ホストゾーンとは
 – ドメイン、サブドメイン内のDNSリソースレコードを管理するコンテナ
  • ホストゾーンの中に、DNSリソースレコードを登録
 – ホストゾーンには、ゾーンを管理する複数のDNSサーバーが割り当てられる (Delegation Set)
  • 1つのホストゾーンに対して、4台のDN

元記事を表示

【AWS】ロードバランサー

#複数AZに分散

・二段階での負荷分散
1)DNSラウンドロビンで各AZ内のELBに振り分け
2)負荷が均等になるようにバックエンドのEC2にそれぞれのルーティングアルゴリズムで振り分け
 ALB:ラウンドロビンルーティング
 NLB:フローハッシュアルゴリズムルーティング

・クロスゾーン負荷分散
 ALB:デフォルトで有効
 NLB:デフォルトで無効
 CLB:デフォルトで有効

・同一のインスタンスで複数ポートに負荷分散可能
 異なるポートに対して負荷分散

・IPアドレスをターゲットに設定
 ALB \NLB

・ELB自体のスケーリング
 ALB,CLBにおいては接続が習慣的に急増した場合、HTTP503を返す
  →Pre-Warming(暖機運転)の申請をサポートケースにて行う
  →自前で付加を段階的にかけてスケーリングさせておく
・NLBは暖機不要で突発的な数百万リクエスト1/秒のトラフィックも捌ける

#モニタリング
・ヘルスチェック
1)HTTP及びHTTPSリスナーを使用する場合には、EC2インスタンスでキーアライブのオプシ

Jリーグの勝ち点推移がグラフで見れるよ!

# 概要
## 記事概要
今回作ったサービスの紹介をしつつ開発の流れやつまずきポイントを紹介します。

## アプリ概要
– Jリーグのチームの勝ち点推移がグラフで見れる
– [こちら](https://yuta97.github.io/j-result-front-nuxt/)からサービスに飛べます。
– Jリーグのデータサイトからスクレイピングしてデータをためて、APIとして配信してフロントから表示させています。
![スクリーンショット 2021-01-08 19.01.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/432257/988e1750-77c3-6847-493a-762da7963115.png)

# アプリ作成理由
– 川崎フロンターレの圧倒的な結果を視覚的にみたくなったから。

# 全体の構成
[フロント](https://github.com/yuta97/j-result-front-nuxt)のソースコードはGitHubにあげています。
## 構成図
![J勝ち点推

IPSec VPN(ネイティブサービスのみ) で Oracle Cloud と AWS つないじゃった

#はじめに
この記事は「Oracle Cloud Infrastructure(その2) Advent Calendar 2020」の12月25日の記事の追加情報としての投稿になります。

あけましておめでとうございます!:bamboo:
今年もよろしくお願いいたします。:bow_tone1:

年も明けたので、昨年の Advent Calendar で「静的ルーティングならできたよ:v:」という話で締めてしまいましたけど、実のところ、どちらでも構築できました:droplet:
新しい気持ちで取り組んだら構築できる。これぞ 謹賀新年パワー!です。
と、冗談はこの辺にしておいて、なぜできなかったのか。という点は最後の方に記載しますけど、ここでは実際どうやって設定したらいいの?というのを、改めて、まとめておきます。
こちらで Qiita 始めにします:hugging:

※使っている画像や内容は一部、過去の記事(オレのブログ

AWS ストレージ関連サービスについて

AWS Summitの公演を聞いて、再度まとめてみたものです。

# 分類

– ブロックストレージ(EBS)

ある一定の容量で区切られた記憶領域

– ファイルストレージ(EFS)

ファイルストレージをファイル装置に搭載しているもの
ブロックストレージの上にファイルストレージが乗っている

– オブジェクトストレージ(s3)

ファイルに対してkeyを発行して1対1で管理を行う

# サービス

## Amazon Elastic Bloc Store(EBS)

EC2と合わせて使用するブロックストレージ
EBSには以下の2つのストレージがある

### インスタンスストア

ホストの内蔵デバイスを使用する
EC2インスタンスは起動ごとにホストが変わるので、終了・起動を行うとデータは消えてしまう
内蔵デバイスなので、レイテンシーが優れている
一時的にデータを確保することに優れています

![インスタンスストアUntitled Diagram.drawio – diagrams.net – Google Ch.png](https://qiita-image-store.s3.a