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

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

【ruby on rails + Mysql】herokuからAWSに切り替える際のデータ移行手順メモ

##内容
ruby on railsで作成したアプリケーションの本番環境をherokuからAWSに移行する際のデータ移行について備忘録として書き残す。

実際には本番稼働後にサーバー環境を移すというのはリスクと手間ばかりかかって悪手だとは思うのですが、個人開発なのでお許しを・・。

##環境
・ruby 2.7.1
・Rails 6.0.3.2
・mysql 5.7

以下のような形でAWSインフラを構築していることを想定

![スクリーンショット 2021-01-11 10.27.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668547/b7f3a4dc-1af6-f1a5-5526-7b39b6460985.png)

##heroku側:clearDB(Mysql)からデータのエクスポート
※本番環境の場合は、タイムラグによるデータ欠落等を防ぐため、一時的にサーバーを停止する等の措置が必要かと。詳しくはチームの方針に従ってください。ここではタイトル通りデータ移行の手順についてのみ記載し

元記事を表示

[2021Jan] AWS の Windows Server 2016 は専用コンフィグかもしれない

# はじめに

AWS で Windows Server 2016 (Datacenter Edition) を使ってみたら .NET Framework アプリでハマりました。起動しません。
結論としては .NET Framework を追いインストールしたら普通に動きました。あ、結論。

# 諸元

AMI
ami-0532b5a8a610e78e0

# Azure の場合

比較のため Azure でも同じことをしてみましたが、特に何も問題なく同じアプリが動きました。
ポリシーの違いでしょうかね。

# おわりに

AWS は何らかフットプリント削減してるんじゃないかと思います。そういうの、どっかに書いてありますかね? 制限事項は誰の目にも触れるところに書かないとダメですよねぇ。

というか、クラウドイメージ類も、開発用と実行用とで分けたらいいんじゃないでしょうかね。

元記事を表示

EBSについて

SAAに向けて学習中に間違えた内容について調べまとめる記事①。
個人的備忘録。

## EBS
ブロックストレージサービス。EC2にアタッチして利用する。

#### ストレージの違い
* ブロックストレージ
EC2にアタッチして使用。ブロック形式でデータを保存。
高速、広帯域幅。
例:EBS、インスタンスストア

* オブジェクトストレージ
安価かつ、高い耐久性をもつオンラインストレージ。
オブジェクト形式でデータを保存。
デフォルトで複数AZに冗長化されている。
例:S3、Glacier

* ファイルストレージ
複数のEC2インスタンスから同時にアタッチ可能な共有ストレージサービス。
ファイル形式でデータを保存。
例:EFS

#### インスタンスストアとEBSの違い
* インスタンスストア
ホストコンピュータに内蔵されたディスクでEC2と不可分のブロックレベルの物理ストレージ。
EC2の一時的なデータが保持され、EC2の停止・終了とともにデータがクリアされる。
無料。

* EBS
ネットワークで接続されたブロックレベルのストレージでEC2とは独立管理。
EC2を終了してもE

元記事を表示

EC2にLaravelプロジェクトをデプロイしていく中で、artisanが実行できなくなった時にやること

## 背景
Mac環境でLaravelプロジェクトをAWSのEC2にデプロイしようとしたところ、`php artisan key:generate`が`PHP Fatal errar`で返ってきてしまいました。
しかし何日かの奮闘の末、解決することが出来たので、同じ悩みを持つ方の手助けに少しでもなればと思いその解決方法を共有させていただきます。
## 結論:バージョンとcomposer.json
このエラーは
1. composer.jsonの中身がおかしかったこと
2. ローカルのものとEC2上のものでバージョンが違っていたこと
の2点が原因でした。したがってまずcomposer.jsonの中身を書き換えるところから説明していきます。

## composer.jsonの中身を書き換える
重要なcomposerのファイルは2種類あります。ここまで来た方なら2つとも既に存在しているファイルです。
**composer.json**
– composer installを実行する際にはこのjsonファイルの定義を元にパッケージのダウンロードを行う
– composer updateで

元記事を表示

WordPress環境をDocker(Local)とAWS(Production)で構築

表題の通り、WordPress環境をDockerとAWSで構築したのでその手順についてまとめます。

まとめる内容は以下になります。

– WordPressのLocal環境をDockerで構築
– Webpackでscssとjsをcompileしてthemesディレクトリにoutput
– scssとjsはassetsディレクトリで作業する
– 開発ファイルはGitで管理する
– WordPressのProduction環境をAWSで構築
– Public Subnet、Private SubnetでそれぞれEC2 InstanceにWordPressとMySQLをinstall
– EC2 InstanceにGitを配置して開発ファイルをPullするとLocal作業が反映される

## Local環境

– WordPress の Local 環境を Docker で構築
– Webpack で js と scss ファイルを compile して themes に output

### Docker image の version

`

元記事を表示

AWS ANS に向けての勉強 2. VPC

### 参考
– https://www2.slideshare.net/AmazonWebServicesJapan/20201021-aws-black-belt-online-seminar-amazon-vpc
– https://aws.amazon.com/jp/vpc/

### 注意
基本的なところは割愛

# 概要
– AWS上にプライベートネットワーク空間を構築
– 論理的なネットワーク分離が可能
– ネットワーク環境のコントロールが可能
– 複数のコネクティビティオプションが選択可能

![](https://image.slidesharecdn.com/20201021aws-blackbelt-vpc-201023054022/95/20201021-aws-black-belt-online-seminar-amazon-vpc-22-638.jpg?cb=1603431658)

# コンポーネント
![](https://image.slidesharecdn.com/20201021aws-blackbelt-vpc-201023054022/95/

元記事を表示

AWS ANS に向けての勉強 1. AWS Direct Connect

### 参考
– https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-aws-direct-connect-123494683
– https://aws.amazon.com/jp/directconnect/?nc=sn&loc=0
– https://d1.awsstatic.com/webinars/jp/pdf/services/20200219_BlackBelt_Onpremises_Redundancy.pdf

# 概要
– オンプレミス環境からAWSに対して、専用線を使用してプライベートに接続するサービス
– 一般的なインターネット接続に対して
– 安価なアウトバウンドトラフィック(AWS リージョンから AWS Direct Connect を使って送信したデータに対してのみ料金が発生)
– 安定・良好なネットワーク品質 (一般のネットワークと帯域が異なるので混雑に影響されない)

# ユースケース
## 大規模なデータセットの使用
– Di

元記事を表示

Developers.IOの`【2021年】AWS全サービスまとめ`をBS4で一覧にする

# Developers.IOの`【2021年】AWS全サービスまとめ`をBS4で一覧にする

[Developers.IO](https://dev.classmethod.jp/)の[【2021年】AWS全サービスまとめ](https://dev.classmethod.jp/articles/aws-summary-2021/)の記事について、[Beautiful Soup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/#)を利用して一覧にする方法です。

“`python
import requests
from bs4 import BeautifulSoup
import re
import pandas as pd

res = requests.get(‘https://dev.classmethod.jp/articles/aws-summary-2021/’)

soup = BeautifulSoup(res.text, ‘html.parser’)

all_services = []

cate

元記事を表示

AWS SAA-C02 受験対策(1) Route53

# 0. はじめに
AWS SAAのお勉強をする中で学んだことをメモしています。
(試験に出そうで自分の理解の足りなさそうな部分のみピックアップしています)
※ 間違い等ありましたらコメントなどで指摘してください

■前提
SIer 7年目
AWSの有名どころのサービス(EC2,S3,RDS..)を若干齧ったことある程度

■教材
黒本
[徹底攻略 AWS認定 ソリューションアーキテクト – アソシエイト教科書](https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5-AWS%E8%AA%8D%E5%AE%9A-%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%88-%E2%80%93-%E3%82%A2%E3%82%BD%E3%82%B7%E3%82%A8%E3%82%A4%E3%83%88%E6%95%99%E7%A7%91%E6%9B%

元記事を表示

EC2の自動デプロイが反映されない

##前書き
タイトルにあるようにAWSを使って自動デプロイにしたところ変更が反映されておらず死ぬほど焦りました笑
調べていると他の人もなっている人たちがいたのでよくあることなんだなーと学んだと共に今後同じことがあったときに焦ることがないよう、備忘録として残しておきます。

##環境
AWS EC2
Ruby 2.6.5
Rails 6.0.3.3
capistrano

##解決法
EC2インスタンスを再起動することで解決します。
自動デプロイを複数回行うと変更が反映されないことがあるためその際はインスタンスの再起動を行います。
再起動手順はこちらの記事にわかりやすく解説されています↓
https://qiita.com/qolayumusou/items/a34cccbb07802c94eeef

##まだやることがあった
インスタンスの再起動を行った際はデータベースとNginxの再起動も忘れずに行う必要があります。
EC2内のターミナルで実行します!

“`
[ec2-user@ip-000-00-00-000 ~]$ sudo systemctl restart maria

元記事を表示

RDS

#概要
・フルマネージドなリレーショナルデータベース
・シンプルかつ迅速にスケール
・高速。安定したパフォーマンス
・低コスト、従量課金

#特徴
・シンプルな構築
 オプション
  ・マルチAZデプロイメント
  ・リードレプリカ
  ・バックアップ(スナップショット)
  ・監視(Cloudwatch)
  ・拡張モニタリング
・高い可用性
 マルチAZデプロイメント
  ・同期レプリケーション + 自動フェイルオーバー
   →アプリ側での対処は必要なし
   →スタンバイ状態のDBはアクセス負荷
・パフォーマンスの向上
 リードレプリカ
  →レプリカDBで読み取り処理をスケールアウト
  →MySQL、MariaDB、PostgreSQL、Aurora、Oracle、SQLserverに対応
・スケールアップ
・運用負荷の軽減
 バックアップ
  →スナップショットとリストア
 
・セキュリティ

#マルチAZの障害時の動作
AZ機能はデータベースの更新を異なるAZに配置されたプライマリーとホットスタンバイを同時に行うことで、耐久性と可用性を高める

元記事を表示

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をつけないとエラーになりました。

元記事を表示

OTHERカテゴリの最新記事