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

AWS関連のことを調べてみた2020年09月11日
目次

Exmentでメール送信の設定をする(Amazon SESがおすすめだよ)

[Exmentをインストール](https://exment.net/docs/#/ja/quickstart)したら、早めにやっておきたい設定があります。

それは、**メールの送信設定**。

Exmentには、レコードを追加したら通知をメールで飛ばす、というようなメール通知の仕組みがあります。ま、そのためにも必要ですが、そもそも**メールが送信できないと、パスワード忘れた時に、再発行メールを飛ばせない→詰む**ということになります。

ですので、できるだけ早めに設定しておいたほうが良いです。

## Exmentのメール送信設定箇所

デフォルトでは、左カラムのメニューから、「管理者設定→システム設定」で開いた画面の右上「システム設定」ボタンをクリックし、開いたモーダルの中にある「詳細設定」をクリックします。開いた画面の下のほうに、「システムメール設定」があります。

![2020-09-11_10h20_35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/116223/3c78a518-cce2

元記事を表示

AWS CloudFormationのテンプレートの雛形

# 主なセクションの構成
“`
AWSTemplateFormatVersion: “2010-09-09”
# Description: Akane’s template

# Parameters:

# Mappings:

Resources:

# Outputs:
“`
# AWSTemplateFormatVersion(必須)
形式バージョン: 2010-09-09
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/format-version-structure.html

# Description(オプション)
テンプレートの説明を記述する

# Parameters(オプション)
テンプレートで利用するパラメータを宣言する

# Mappings(オプション)
条件付きの値を宣言する

# Resources(必須)
AWSリソースを記述する

# Outputs(オプション)
AWS CLIや他のスタックから参照できるように値を宣言する

元記事を表示

Mysql2::Error::ConnectionError: Access denied for user ‘root’@’localhost’ (using password: YES)

# やろうとしていること
ローカル環境で作ったポートフォリオ(個人アプリ)をAWSにデプロイしようとしているところです。
本番環境でデータベースを作ろうとしたのですが、エラーが出てしまいました。

# エラー文
“`
[user@ip-00-0-0-000 pfc-master]$ rake db:create RAILS_ENV=production
Access denied for user ‘root’@’localhost’ (using password: NO)
Couldn’t create ‘pfc-master_production’ database. Please check your configuration.
rake aborted!
Mysql2::Error::ConnectionError: Access denied for user ‘root’@’localhost’ (using password: NO)

Tasks: TOP => db:create
(See full trace by running task with –tr

元記事を表示

Amazon EKS ExternalDNSでサービスを公開する

# はじめに
本記事はAmazon EKSでExternalDNSのデプロイを行ない、サービスを公開する方法について記載しています。

Amazon EKSでクラスターを作成し、ドメインを取得してアプリケーションを外部に公開するためには、ドメインとAmazon EKSを紐付ける作業が必要になります。

ExternalDNSを用いてデプロイすることで動的にServiceとドメインの紐付けができます。また、サブドメインの管理も柔軟に行うことができます。

## ExternalDNSの構築
ExternalDNSを使用するためにはドメインの取得が必要です。

ドメインはお名前.comなどのドメイン登録サービスか、Amazon Web Services(AWS)のRoute53で取得します。なお、お名前.com等外部のドメイン登録サービスを利用する場合は、Route53で管理するためネームサーバの設定が必要になります。

本記事ではお名前.comで取得したドメインを、Route53で管理する場合を例に解説します。

### Route53
はじめにAWSコンソール画面からRoute53を選

元記事を表示

CloudFormationをゼロから勉強する。(その4:コマンドからの操作)

# はじめに
以前の記事で何度か紹介してきた`Black Belt Online Seminar`の記事ですが、2020年度版が公開されたようです。

– [AWS Black Belt Online Seminar AWS CloudFormation アップデート](https://www.slideshare.net/AmazonWebServicesJapan/20200826-aws-black-belt-online-seminar-aws-cloudformation)

前回からのアップデートの内容や、新たなツールの紹介もされているので、色々と参考になります。

さて、前回はGUI画面上から値を入出力させましたが、今回は今までGUIで行ってきたスタックの作成&削除をコマンドで操作してみようと思います。

– 【前】[CloudFormationをゼロから勉強する。(その3:パラメータの入出力)](https://qiita.com/sakai00kou/items/fc34771fa3e150979ac8)

# CloudFormationコマンド
普段使いそうなコマ

元記事を表示

【Tips】TerraformでDynamoDBにそこそこの量のアイテムを初期構築でputしておく方法

# はじめに
DynamoDBとLambdaで色々試してると、ふと検証のために大量データを予め入れておきたくなったりするよね。
それ、Terraformで簡単に実現できるんです。

※そんなのPythonでboto3使ってbatch_writer()で書けば5分で済むだろ、とかそういうツッコミは一旦抜きにして。

# どうやってIaCで書くのか
countを使う。以上。

だと終わってしまうので、もう少し解説。

“`HCL
resource “aws_dynamodb_table_item” “batch_items” {
count = 100

table_name = aws_dynamodb_table.test.name
hash_key = aws_dynamodb_table.test.hash_key
range_key = aws_dynamodb_table.test.range_key

item = <

元記事を表示

AWS上にサーバーを作る(その02:Amazon VPC)

前回の投稿
[AWS上にサーバーを作る(その01)](https://qiita.com/aa_ha1uhik0/items/e4f11128bf065b573eb7 “AWS上にサーバーを作る(その01)”)

# AWSのネットワーク
AWS上にサーバーを作るあたり、AWSにはどんなネットワーク設定が必要なのだろう?
「VPC」っていう名称だけはよく聞くよね。
公式のドキュメント「[Amazon VPC とは?](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html)」を見ると、

* Amazon VPC(Amazon Virtual Private Cloud)
* サブネット
* ルートテーブル
* ゲートウェイ

このあたりが必要っぽい。

## Amazon VPC(Amazon Virtual Private Cloud)
そもそもVPCって何だろう?
物理サーバーしかいじった事のない僕にとっては、今回が「初めまして」だね。
>[Amazon VPC とは?](htt

元記事を表示

AWSを使ってアプリケーションを公開する手順(5)アプリケーションを公開する

#はじめに
AWSを使ってアプリケーションを公開する手順を記載していく。
この記事ではアプリケーションを公開する。

#EC2のサーバにアプリケーションのコードをクローンする準備

##「.ssh」ディレクトリに移動する
以下のコマンドを実行し、「.ssh」ディレクトリに移動する。

“`
cd ~/.ssh/
“`

##ssh接続
以下のコマンドを実行し、EC2インスタンスにsshでアクセスする。
(ダウンロードしたpemファイル名が「xxx.pem」、ElasticIPが123.456.789の場合)

“`
ssh -i xxx.pem ec2-user@123.456.789
“`

##GithubにSSH鍵を登録する
EC2インスタンスからGithubにアクセスするために、EC2インスタンスのSSH公開鍵をGithubに登録する必要がある。
SSH鍵を登録しないとpermission errorとなりクローンできない。SSH鍵をGithubに登録することで認証されるようになりコードのクローンが可能になる。

以下のコマンドを実行し、EC2サーバのSSH鍵ペアを作成

元記事を表示

Railsアプリを独自ドメインでssl公開した手順

##概要
今回そこそこ苦戦しながらポートフォリオのSSL対応したので忘れないうちに手順を書き留めておく。
殴り書き程度なのでこれを読んでSSL対応は難しいと思われます。

参考
https://qiita.com/iwaseasahi/items/1687426add4124899fe3#ec2%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%BE%E3%81%99

https://qiita.com/Yuki_Nagaoka/items/55ed1610cfc1f59398b1#2%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%E3%81%AE%E8%A8%AD%E5%AE%9A

##前提

+ EC2にRailsアプリをデプロイ済
+ Nginx等のWebサーバーでhttpで外部公開している
+ 独自ドメインを取得している。
+ VPCなどで適切なネットワークを構築済
+ httpですでにアプリケーションにアク

元記事を表示

【LINUXカーネル再構築】バージョンアップ(4.18.0→5.8.8)

##目標
AWS EC2(Red Hat Enterprise Linux 8 (HVM), SSD Volume Type)に搭載されているカーネルのバージョンアップ(4.18.0→5.8.8)を完了すること。

##前提
AWS EC2サーバ1台(Red Hat Enterprise Linux 8 (HVM), SSD Volume Type)が構築済みであること。
なお、カーネル再構築はコンパイルやインストール時にある程度高いシステムリソース(CPU、メモリ等)を用意した方が時間短縮されスムーズになります。
また、ある程度のディスク容量がないとコンパイル時にエラーとなる可能性があります。
本記事ではインスタンスタイプ`m5a.xlarge`(0.344USD/時間)、ディスク容量は`50GB`としました。
![tempsnip.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/647616/5d01a05e-6b7f-d3e4-6653-6aa60676ecb8.png)
また、コンパイルやインスト

元記事を表示

AWS FireLensってなんだ?

# What’s?

AWS FireLensについて、知っておきたかったので軽く調べてみました、と。

# AWS FireLensとは?

AWS FireLensとは、2019年9月に発表された、Amazon ECSで使用できるログルーターのことです。

[Firelens の発表 – コンテナログの新たな管理方法](https://aws.amazon.com/jp/blogs/news/announcing-firelens-a-new-way-to-manage-container-logs/)

タスク定義の中に含めてサイドカーとして配置しつつ、他のコンテナからはログドライバーとして使用します。

[カスタムログルーティング](https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/using_firelens.html)

AWS FireLensからは、Amazon CloudWatch LogsまたはAmazon Kinesis Data Streams、Amazon Kinesis Da

元記事を表示

Cloudendure使用してオンプレミスからクラウドへ移行

Cloudendure使用してオンプレミスからクラウドへ移行

元記事を表示

AWS移行環境構築

#AWSテスト環境構築

1.仕組み図
![テスト移行.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/693974/f2d3a3a3-0d13-da63-5ab6-fa140ade6cc3.png)

2.パラメータ設定

2.1 VPCパラメータ設計

|VPC|10.0.0.0/16|リネーム|
|:–|–:|:–:|
|EC2 Subnet1|10.0.0.0/24|sb-1a-om-ec2|
|EC2 Subnet2|10.0.1.0/24|sb-1c-om-ec2|
|RDS Subnet3|10.0.2.0/24|sb-1a-om-db|
|RDS Subnet4|10.0.3.0/24|sb-1c-om-db|

2.2 セキュリティグループ設計

2.2.1 EC2側

|Security Group|Port|Port|
|:–|–:|:–:|
|http|80|My Ip address |
|ssh|22|My Ip address |

2.2.2 DB側

|Sec

元記事を表示

【備忘】S3からのダウンロード、S3へのアップロード

1.S3からのファイルダウンロード
今回は、バケットの対象パス下のファイルを全てダウンロードする場合を記述しました。

“`
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(“リージョン名”).build();

// S3上バケット下のファイル一覧を取得
ObjectListing objListing = s3Client.listObjects(“バケット名”);
List objList = objListing.getObjectSummaries();

try {
// S3上のファイル分処理する
for (S3ObjectSummary obj : objList) {
// objListにはバケット下全てのフォルダ、ファイル情報があるため対象パスで絞り込む必要がある
// 対象パスを含んでいないか、または、サイズが0であればダウンロードしない
if (!StringUtils.

元記事を表示

EC2再起動時もスクリプト(ユーザデータ)を実行させる

## ユーザデータ
ユーザデータとは、EC2初回起動時に動作するスクリプトを登録できる設定です。
sshポート変更など、サーバ構築後によくやる作業を設定しておくと
初回起動時点に環境に反映してくれます。
設定方法は以下。
1. EC2の停止
2. 対象インスタンスを右クリック>インスタンスの設定>ユーザーデータの表示/変更
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/174816/20386397-44c9-d537-f759-2851293e50d4.png)
上記のように実行したいスクリプトを記載できます。

ただ、ユーザデータは**インスタンス構築後の初回起動時のみしか実行されません。**

## 再起動時もユーザデータを動作させる方法
MIMEマルチパートファイルを使用して、ユーザデータの実行頻度を**起動の都度に**変更できます。
参考:https://aws.amazon.com/jp/premiumsupport/knowledge-center/execute-user

元記事を表示

Amazon Linux 2 で PHP を簡単にアップデートする方法

Amazon Linux 2 の、ここ1年位の Amazon Linux Extra を使って、PHP をインストールしている人は、Amazon Linux Extra でパッケージの Disable & Enable をするだけで、結構簡単に PHP のアップデートができるという話です。

参考: [Amazon linux 2でのphpの更新方法](https://qiita.com/P__act2_tech/items/69a5b94ead8ee3edbc7e) (感謝!)

# 自分の環境

– AWS
– 開発用のサーバー
– Amazon Linux 2
– PHP 7.1 の Extra を導入
– 導入済みの PHP 一覧 `libmcrypt php php-bcmath php-cli php-common php-dba php-embedded php-enchant php-fpm php-gd php-gmp php-intl php-json php-ldap php-mbstring php-mysqlnd php-odbc php-opcache

元記事を表示

AWS認定ソリューションアーキテクトプロフェッショナルに合格するまで〜プロフェッショナル編〜

## はじめに

[AWS認定ソリューションアーキテクトプロフェッショナルに合格するまで〜アソシエイト編〜](https://qiita.com/odayushin/private/6245e89244eeca7fb2ef)の続きです。今回はプロフェッショナル編です。
SAA取得後4ヶ月でSAPも無事一発で合格することができました。

## SAP試験について

詳細は[公式ページ](https://aws.amazon.com/jp/certification/certified-solutions-architect-professional/)を参照。

### 難易度
SAA試験の上位試験で、AWS認定試験最難関との噂。
>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/360735/4e0e10e2-37c3-8b03-85c9-db96e46b346c.png)
[AWS認定](https://aws.amazon.com/jp/certification/)より抜粋

受験対

元記事を表示

【中編】Rails+Nuxt+MySQL+Dockerで作ったWEBサービスをECS・ECR・CircleCIで自動テスト・デプロイしてterraform化する

#この記事を書くにあたって
AWSについての知識が全くなかった状態からポートフォリオを作成し、個人的にAWSへのデプロイと、CircleCIの自動デプロイが一番難しかったので、備忘録・これからポートフォリオを作るよ・これからAWS使うよって方向けの記事があれば良いなと思い書きました。

私が作ったポートフォリオの概要は
[【AWS?Docker?】ポートフォリオで必要な知識を自分なりに分かりやすくまとめる【terraform?CircleCI?】](https://qiita.com/Shogo1222/items/8b8fc4c65632844a453f)

この記事の前身となる記事は
[【前編】Rails+Nuxt+MySQL+Dockerで作ったWEBサービスをECS・ECR・CircleCIで自動テスト・デプロイしてterraform化する](https://qiita.com/Shogo1222/items/d90b3fa01a2dca14aeeb)

是非ご覧いただけると有り難いです。

第一弾:[【前編】Rails+Nuxt+MySQL+Dockerで作ったWEBサービス

元記事を表示

[AWS] 踏み台サーバ不要!ローカルPCから、Private Subnet上のEC2インスタンスにssh/scpする

# はじめに
この記事では「[[AWS] Private Subnet内のEC2インスタンスにローカルPCのターミナルからSession Managerでアクセスする](https://qiita.com/herohit-tool/items/85ccfd7799474c81fb6a)」の内容を改善し、もっと簡単に環境を構築できる手順を解説します。

そして、何がセキュアかというと、Private Subnetに配置したEC2インスタンスに直接接続できる、という点に注目したいと思います。そう、踏み台サーバが不要なのです。

# 事前準備
まず、最初にクライアント環境に以下のツールが必要ですので、必要に応じてご用意ください。

– [AWS Cli](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html)
– [Session Manager Plugin for the AWS CLI](https://docs.aws.amazon.com/ja_jp/systems-manager/la

元記事を表示

AWS IoT Greengrass CoreをRaspberry Piにサイレントインストールする手順

こちらにある `gg-device-setup-latest.sh` スクリプトを利用します。サイレントインストールの元情報もここを参考にしています。

https://docs.aws.amazon.com/greengrass/latest/developerguide/quick-start.html

以下の項目を組み合わせてサイレントインストールします。

# 事前準備
SSHを有効化して、作業フォルダを作成します。

“`sh
mkdir ~/work
cd ~/work
“`
作業PC側で、[以下のワンライナーでAWS認証情報を取得](https://qiita.com/yomon8/items/937855d2aa2f14ff47db)します。

“`sh
aws sts get-session-token –query ‘Credentials | {A:AccessKeyId,B:SecretAccessKey,C:SessionToken}’ –output yaml | awk ‘NR==1{print “export AWS_ACCESS_KE

元記事を表示

OTHERカテゴリの最新記事