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

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

Laravel+SESでメールを送信する

# 結論
以下の手順で実装しよう?

1. AWSコンソールでアクセスキーとシークレットを取得
2. 1で取得した値をプロジェクトの環境変数に設定
3. 2で設定した環境変数をサードパーティサービスの認証情報としてconfigで設定

## 具体的な手順
### 1. 認証情報取得
– 下記手順で作成したAccess key IDとSecret access keyを控えておく
`IAM > ユーザー > (SES権限のある任意のユーザー) > 認証情報 > アクセスキーの作成`

### 2. 認証情報を環境変数に設定
“`:.env
SES_KEY=XXXXXXXXXXXXXXXXXXXX # 1で取得したAccess key ID
SES_SECRET=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX # 1で取得したSecret access key
SES_REGION=us-east-1 # SESのリージョン
“`

### 3. 環境変数をサードパーティサービスの認証情報として設定
“`:config/serv

元記事を表示

“Beyond the Twelve-Factor App” & “The Twelve-Factor App”から学びAWSで実践する (3)依存関係管理 / 依存関係 – 依存関係を明示的に宣言し分離する

#解説
本ファクターはオリジナルにもBeyondにもある依存関係の管理に関するファクターです。今どきの開発言語であればnpm、pip、gradleといったライブラリの参照等を解決するためのパッケージ管理ツールはほぼ供えられています。アプリケーションの依存関係をそういったパッケージ管理を利用し解決することで、どんな環境でも適切に構成されたアプリケーションの一式が構築でき動作させることが保証されます。また、依存という意味では、アプリケーションのライブラリだけでなく、ビルドスクリプトやデプロイスクリプトなどにも注意が必要です。これらスクリプトが特定のシステムにインストールされているライブラリやコマンドなどに暗黙的に利用してしまわないようにする必要があります。

さらに言うと、私のようにWindows環境でアプリを作っていたりすると、スクリプトがシェルで書かれていたら、それはシステム依存だよなと感じてしまいます。どんなOS上でもランタイムのバージョンさえ揃えられれば。イコールコンディションでアプリケーションの開発・テスト・実行がすべて賄えるという状態になるようことを目標に努力をするべきだと思い

元記事を表示

AWS SAM CLIでHttpApiのローカルエミュレートがサポートされたのでWSL2のDocker上で使ってみた

# はじめに
みなさんAWS SAM CLIを使用されていますでしょうか?
[AWS SAM CLI](https://github.com/aws/aws-sam-cli)と言えば今年の7月に[正式リリース](https://aws.amazon.com/jp/about-aws/whats-new/2020/07/announcing-aws-serverless-application-model-cli-generally-available-production-use/)されて間もありませんが、AWS Lambdaのローカルエミュレートから環境構築まで出来るAWS Lambdaを使う上で強力なツールです。

そんなAWS SAM CLIですが、本日(2020年10月30日)にリリースされた[v1.7.0](https://github.com/aws/aws-sam-cli/releases/tag/v1.7.0)で下図の様なHttpApiとLambdaを組み合わせた環境のローカルエミュレートが出来るようになりました。

![httpapi.png](https://qii

元記事を表示

[aws] CloudFormationによるインスタンスの作成

## 概要

awsの`CloudFormatinon`を使用し、テスト用にインスタンスを一つ作成します。

## CloudFormationとは

AWSのシステム構成を`JSON`や`YAML`で書かれたテンプレートを使用し、管理・修正・編集などを自動で行うことができる機能です。
テンプレートによって作成された環境は`スタック`と呼ばれます。
ファイルを作成しておくことで環境を使いまわせる点が非常に便利です。

### テンプレートについて

今回作成する環境のテンプレートは以下の通りです。
テスト用のインスタンスを一つ立ち上げる構成となっています。
組み込み関数である`Ref`で構成を紐づけているイメージとなります。
なお以下例ではsshのSGを`0.0.0.0/0`としているので、各自の環境に合わせ修正してください。

“`yaml
# デフォルト記述
AWSTemplateFormatVersion: ‘2010-09-09’
# Key pair の指定。
# AWSコンソールでパラメータを指定
Parameters:
KeyPair:
Descriptio

元記事を表示

インフラエンジニアのAI(ML)入門、そしてMLOpsへ【AWS DeepRacerで学ぶ】

AWS Summit Online(2020)を見たのですが、AI関連のセミナーが多かったです。
AIが徐々に気になってきましたので、下記についてまとめました。
・インフラエンジニアがAIを学ぶ価値が分かる
・流行ワード「MLOps」のイメージが分かる
・AIの勉強の仕方がわかる

私はインフラエンジニア経験は10年以上ありますが、AIは初学者です。
本記事を読むことで下記の様な悩みが解決できると思います。
・AIについてどうやって学習していけばよいか分からない
・ITエンジニアの仕事はAIに奪われるのではないか心配(AIが仕事を奪うのは事実です)

## インフラエンジニアのスペシャリストとしてのキャリアを考える
### 第4次産業革命とは
[第4次産業革命のインパクト](https://www5.cao.go.jp/keizai3/2016/0117nk/n16_2_1.html)

内閣府のページに技術革新としてIoTやビッグデータ、AI、ロボット技術が利用されていくとあります。
2017年の時点で政府主体で上記の技術を推していたことが分かります。

![image.png](h

元記事を表示

Firewall Manager で使ってないセキュリティグループを監視

## やりたいこと

SGが増えてきたので整理したい。まずは使ってないSGをリストアップしたい。

## 環境

* AWSアカウントA : Firewall Managerの親、Organizationの親
* AWSアカウントB : Firewall Managerの子、Organizationの子

※ Organizationの親とFirewall Managerの親は別々のAWSアカウントでも構いませんが、Organizationに参加しているアカウントがFirewall Managerの対象になります。
※ AWSアカウントA,BでAWS Configを有効にしておく
※ 両AWSアカウントで既にSGがいくつか作成されている

## シナリオ

* 使ってないSG(リソースにアタッチされてない)のリストアップ
* 同じルールが書かれたSGのリストアップ

アカウントBで「アタッチされてないSG」 or 「同じルールが設定されているSG」を監視しリストアップします。
これらは不要なSGなので見つけたいですよね。自動的なアクションも行えますが今回はやりません。

## 手順

元記事を表示

AWS CLI v2のTips

2020年2月に[AWS CLI v2](https://aws.amazon.com/jp/blogs/news/aws-cli-v2-is-now-generally-available/)がリリースされましたね :tada:

個人的にはこれまでAWS CLIを使う機会が少なかったこともあり、v1からアップグレードした当初は変化に気付かなかったのですが、数ヶ月使ってみてv1から挙動が変わった点や進歩を感じた点があったのでまとめました。

## TL;DR

– すべてのプロファイルでページャを無効にするには環境変数 `AWS_PAGER` に空文字をセットする
– Lambda実行のペイロードに通常の文字列を渡してエラーになる場合は `cli_binary_format=raw-in-base64-out` を設定する
– AWS CLI v2からAWS側のリソース名の入力時にタブ補完が効くようになった

## すべてのプロファイルでページャを無効にする

AWS CLI v2では出力が長い場合に[クライアント側で指定したページャを出力に使用できるようになった](https:/

元記事を表示

S3へのEndpointが設定されているVPCでECS(Fargate)を使う場合の注意点

# はじめに
先日、S3に向けたVPC Endpointが設定されているVPCにてECS(Fargate)を実行しようとした際、少々ハマったので備忘録です。
# 起こった事象
S3に向けたVPC Endpointが設定されているVPCにてECS(Fargate)を実行しようとしたところ、下記のようなErrorが発生してFargateの起動が失敗した。

“`
CannotPullContainerError: error pulling image configuration: error parsing HTTP 403 response body: invalid character ‘<' looking for beginning of value: "\nAccessDeniedAccess Denied…..
“`
どうやら、何らかの理由でECRからのコンテナイメージの取得に失敗している模様。
## 確認し

元記事を表示

【Docker × ECS入門】docker compose upでECSデプロイ

DockerのECS Pluginがリリースされ、Docker for MacのStable版にも対応したみたいなので、試してみました。

公式ドキュメントや解説サイトもありますが、所々つまづいた点もありましたので、
(いつの間にかdocker ecs composeコマンドがdocker composeに統合されてたり…)
ECS初心者の自分用メモとしてまとめてみました。

# 検証環境
– macOS Catalina 10.15.7
– [Docker for Mac](https://hub.docker.com/editions/community/docker-ce-desktop-mac/) (Docker version 19.03.13)
– [AWS CLI](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2-mac.html) (aws-cli/2.0.59)

AWS CLIはバージョン2系が必須です。
Docker、AWS CLIともに最新版にアップデートしておくことを

元記事を表示

AWSのVPC Lambdaからエンドポイント経由でSQSにアクセスする際の注意

# 結論
AWSでLambdaをVPCに配置して、エンドポイント経由でboto3 SQSを使用する際にはendpoint_urlオプションが必要。

“`python
import boto3
sqs = boto3.client(“sqs”, endpoint_url=”https://sqs.ap-northeast-1.amazonaws.com”)
sqs.send_message(…)
“`

このオプションを付けないと、接続できなくてタイムアウトします。

# 詳細
AWSでLambaをVPCに配置してプライベート接続でSQSを使用する際にめちゃはまったので注意点をメモします。
詳細は以下のサイトが詳しいのでそちらを参照して下さい。私が試した時はLambda上でboto3を使用した際にのみ現象が発生しました。

私の発生条件ではLambdaのboto3はバージョン1.14.48でした。また、EC2を立てて試したバージョンは1.16.8でしたが、こちらでも同様の現象が発生しました。

1. AWS CLI等でSQS VPC Endpointを利用するときの注意点 —

元記事を表示

AWSの仮想サーバーをWebサーバーにする方法

# はじめに
AWSはAmazon Web Servisesの略で、Amazonが提供しているクラウドサーバーのサービスです。
AWSへの理解度を高めるために、学んだことをアウトプットします。
今回はネットワークとの関係を記載します。

# 今回の流れ
AWSのEC2に作成したインスタンス(仮想サーバー)をWebサーバーにします。

* Webサーバーソフトのインストール
* ファイアウォールの設定
* DNSサーバーの設定

# Webサーバーソフトのインストール

サーバーをWebサーバーとして機能させるには、サーバーにWebサーバーソフトをインストールします。
今回は世界で最も多く利用されている「Apache HTTP Server」をインストールします。

### インストールの作成手順

① インスタンスにログインします。

インスタンスにログインするためには、インスタンスにSSH接続する必要があります。(SSHとはターミナルから直接サーバー操作を行うことができるプロトコルのこと)

“`tarminal:ターミナル
% ssh -i キーペアファイル ec2-user

元記事を表示

AWS(Singapor) <=> Tencent(Beijing)でPingを1,000 Packetずつ打ち合った結果

# はじめに
しばらく前(2020/2頃?)ですが、中国向けのWebサイトを構築する必要があったため、GFW(Great Fire Wall)を回避するためにTencent Cloudを用いて北京リージョンにWebサーバを構築しました。
その際、GFWを超えるTrafficの挙動を調査するために、AWSのサーバとの間でPingを1000 Packets打ち合ってみた結果です。
# 結果
## Tencent(北京) => AWS(Singapore)

“`
# ping -c 1000 -q 52.***.***.***
PING 52.***.***.*** (52.***.***.***) 56(84) bytes of data.

— 52.***.***.*** ping statistics —
1000 packets transmitted, 760 received, 24% packet loss, time 999471ms
rtt min/avg/max/mdev = 90.962/91.194/92.538/0.121 ms
“`
## AWS(

元記事を表示

Lambda@Edge で wwwあり・なしをどちらか一方にリダイレクトで寄せる対処を行う

# モチベーション

サイトを公開する場合、 `www.example.com` と `example.com` の両方でアクセス可能とすることがある (いわゆる、wwwのあり・なし設定)。 ただし、両方のFQDNが有効な場合であっても、SEO効果などの理由から、サーバー側でリダイレクトを行い、1つのFQDNを正としてサイトを運営する方が良い。
これを nginx で「wwwありに寄せる」書く場合は以下のように書く。 なお、現時点でサイトを運営するならば https にすべきだとは思うが、単なる例なのでここでは触れないこととする。

“`nginx
# www ありに寄せる例
server {
listen 80;
server_name www.example.com;
# 以下サイトの設定を記述
}

server {
listen 80;
server_name example.com;

location / {
return 301 http://www.example.com$reques

元記事を表示

AWS ECRのイメージをデプロイ。

# ECRのイメージをデプロイします。

次の2つが参考になりました。
https://dev.classmethod.jp/articles/codepipeline-ecs-codedeploy/
https://aws.amazon.com/jp/blogs/news/build-a-continuous-delivery-pipeline-for-your-container-images-with-amazon-ecr-as-source/

## 前提
VPCが作成されていること
ECRにイメージがアップされていること

### リポジトリ

![ecr.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93066/53ca9f13-263b-b53e-0e14-5c521ad9a7b5.png)

### イメージ

![ecr_image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93066/a2b887

元記事を表示

【0からTerraformに挑戦】TerraformでAWSをコード化する(IAM・S3・VPC・ELB・ACM・ROUTE53編)

# 背景
未経験から自社開発系企業の就職を目指します。良質なポートフォリオ作成のためTerraformを勉強することにしました。

現状の知識レベルとしては、Ruby on railsを使って簡単なアプリケーション開発、gitを使ったバージョン管理、herokuを使ってデプロイできるレベルです。自分の忘備録かつ、同じくらいのレベルでこれからTerraformに挑戦してみようと思っている方に向けて少しでも役に立てればと思います。

# 最終目標
terraformでIAM・S3・VPC・ELB・ACM・ROUTE53をコード化、terraform applyで実際にAWSに反映する

【参考記事】
〜terraform編〜
[【0からTerraformに挑戦】Terraformの概要・事前準備](https://qiita.com/shu1124/items/0008f829279eb776273d)
[【0からTerraformに挑戦】TerraformでAWSをコード化する(IAM・S3・VPC・ELB・ACM・ROUTE53編)](https://qiita.com/shu1124

元記事を表示

AWSコンソールへのログインに、IP制限とMFA制限をかける

# マネジメントコンソールの運用

よくあるポリシーとして、多要素認証の設定強制&IP制限をかけることがあります。

今回はそのポリシーと私自身が注意していることを記載します。

# 概要

マネジメントコンソールはIAMユーザを使用する。

IAMは**AWSの各種リソースへのアクセス許可**を管理するサービスであり
結構細かい権限まで、**コードベース(JSON, IaCならYAML定義も可)**で管理できる。

各権限は**IAMポリシー**と呼ばれる単位で定義ができ、作成した後**IAMユーザ**に割り当てる。
通常は同様権限のユーザが複数存在するため、**IAMグループ**を使用して管理する。

例;
インフラチーム;Admin権限
開発チームA;全基本サービスの読み書き権限
開発チームB;EC2,Code系サービスのみ読み書き権限
テストチーム;Read権限のみ
監査チーム;セキュリティサービスのみRead権限
など

運用方法によるが、基本**IP制限、MFA強制のポリシーは全員に対して有効にさせる**必要があるので、
IAMグループにそれぞれ割り当てるか、共通に属する

元記事を表示

AWS EC2 AmazonLinux2インスタンスにPhpRedisをインストールする

# 目的

– AWS EC2 AmazonLinux2インスタンスにPhpRedisをインストールする方法をまとめる

# 実施環境

– 下記の方法を用いてインスタンスにLaravelの実行環境を構築した。
– [AWS EC2 AmazonLinux2だけでLaravelのアプリをデプロイする](https://qiita.com/miriwo/items/b39d1ac6289c54cc2cfd)

# 前提条件

– AmazonLinux2インスタンスが起動し、皆さんのお手持ちのPCからsshで当該インスタンスに入る事ができること。
– 実施環境と同一もしくは近い方法でPHPの環境構築がされいること。`$ php`コマンドがインスタンスのターミナルで実行できればおそらく大丈夫なはずである。

# 前提情報

– 本記事て実行しているコマンドは特筆しない限りインスタンスにssh接続して実行するものとする。

# 詳細

1. 下記コマンドを実行してインスタンスのyumでインストールしたパッケージを最新にアップデートする。

“`terminal
$

元記事を表示

Amazon S3 Object Ownershipは、Athenaのクロスアカウントアクセスを解決してくれるニクいやつだ

# Amazon S3 Object Ownership
2020年10月2日公開
[Amazon S3 Object Ownership が利用可能になり、バケットにアップロードされたオブジェクトの所有権をバケット所有者が自動的に引き受けることが可能に](https://aws.amazon.com/jp/about-aws/whats-new/2020/10/amazon-s3-object-ownership-enables-bucket-owners-to-automatically-assume-ownership-of-objects-uploaded-to-their-buckets/)

> S3 Object Ownership は、Amazon S3 で共有データセットを作成および維持する作業を簡素化します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62601/09d72d9d-fbad-794d-4eb0-a3cdf707759d.png)
共有データセッ

元記事を表示

AWS SAA合格までの軌跡

AWS SAA(アマゾンウェブサービス ソリューションアーキテクトアソシエイト)試験に**一発合格**しました〜?
決して平らな道ではありませんでした?(運が良かった)

試験の内容などは、**秘密保持契約違反**になってしまうので書けないですが、
書ける範囲で赤裸々に書いていきます。

## そもそもAWS SAAとは
AWS における分散システムの可用性、コスト効率、高耐障害性およびスケーラビリティの設計に関する 1 年以上の実務経験を持つソリューションアーキテクト担当者を対象とした試験です。

## 前提としての知識量
業務的にAWSを触ることはありましたが、設計をするというより、AWSを使って開発をする方がメインだったので、どの場面でどのリソースを使用すべきか、みたいなところはあまり経験値として多くありませんでした。
AWSを利用した開発においては、**実務6ヶ月くらい**のイメージです。

## ? 申込〜試験まで、残り15日までの間
#### AWS SAAの黒本を読む
大枠つかむのにはよかったです。
じっくり読むより、さらーっと何周か読んだ方が良いと思います。

徹底攻略

元記事を表示

Amazon Web Services Invoice の請求情報から不要なサービスを探して停止あるいは削除する

Amazon Web Services Invoice の請求情報から不要なサービスを探して停止あるいは削除する

# Amazon Web Services Invoice
毎月来るあれです。

![スクリーンショット 2020-10-29 7.47.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/ba931ea1-d284-9991-d5f1-a28591f1565b.png)

![スクリーンショット 2020-10-29 7.48.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214523/9a851c24-4425-8bfe-73bb-53ad4e4bd3cf.png)

# 内訳
内訳を見ると、EC2で課金されてる。

# EC2
ダッシュボードからEC2を確認。
![スクリーンショット 2020-10-25 10.35.53.png](https://qiita-image-stor

元記事を表示

OTHERカテゴリの最新記事