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

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

S3とCloudFrontで静的ウェブサイトホスティングをしてみた

コロナの影響で絶賛在宅勤務中のrisakoです:woman_tone1:
ずっと家にいると気持ちが落ち込んだり、運動不足気味になったりしてしまいます…
最近は、朝起きてすぐに犬の散歩に行ったり、部屋の陽のあたる場所で仕事をしてみたり試行錯誤しています笑

今日のテーマは「S3とCloudFrontで静的ウェブサイトホスティングをしてみた」です。
つまづいたところも多々あるので、自分の忘備録としても書いておこうと思います:writing_hand:

#ゴール
**Cloudfront経由でS3に保存した静的ウェブサイトを独自DNSで閲覧する。**

##事前に用意するもの
– 使用したい独自のドメイン名を取得しておく。(今回は仮にhoge.gaとします)
– S3バケットに静的ウェブサイトなど、閲覧したいものを入れておきます。(今回はtest.html閲覧することにします)

#まず初めにS3バケットの設定から
1. 作成したS3バケットのプロパティ→Static website hostingを開く
2. **「このバケットを使用してウェブサイトをホストする」**を選択し、イン

元記事を表示

ECRにpushしたコンテナをECSFargateで使うVPCエンドポイントTerraform例

## 必要なエンドポイント
起動タイプに「Fargate」を利用している場合、ECRにあるコンテナを使うためには以下の3つのエンドポイントを作成する必要がある

1. ecr.dkr
dockerコマンドを実行するためのエンドポイント

2. s3
コンテナイメージをpullするためのエンドポイント

3. logs
CloudWatchLogsへログを送信するために必要なエンドポイント
awslogs(CloudwatchLogs)を利用する場合にのみ必要

エンドポイントのタイプが`”Interface”`の場合、エンドポイントのセキュリティーグループを作成し、ECSセキュリティーグループから`443`ポートの通信を許可する必要がある

参考:
[Systems Manager を使用したインターネットアクセスなしでのプライベート EC2 インスタンスの管理](https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-systems-manager-vpc-endpoints/)
[エンドポイントを使用してプライベ

元記事を表示

QuickSightのデータソース作成(CLI)

## QuickSight セットアップイメージ

![qsflow1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27932/c9aa550a-2c3b-c3d0-25cd-d5c3c3af23aa.png)

### データソースとは

QuickSightがアクセスする外部データストアの設定です。QuickSightはS3やRedshiftやオンプレミスのRDBなど様々なデータストアに接続し可視化することができます。S3をデータソースにした場合は、マニフェストファイルでデータの場所を指定します。RDBなどのデータベースをデータソースにした場合は、テーブルや認証情報などの接続情報を指定します。また、それぞれのデータソースにアクセス許可の設定も行えます。今回はS3をデータソースにします。

### データソース定義JSON

新しいファイルをターミナルで作成します。Cloud9に以下のコードをコピーし、create-development-data-source.jsonというファイル名で保存しま

元記事を表示

QuickSight 利用イメージ

# 利用イメージ

* 管理者/Authorはデータソースを定義し、分析用のデータセットを準備する

* Authorはデータセットを基に分析を作成、Readerにダッシュボードとして共有

* Readerはダッシュボードをブラウザや、スマホから閲覧

qsusageimage.png

# QuickSight用語

### データソース

RDS, Redshift, ファイル, Athenaなどデータの供給元です。

### データセット

データソースから閲覧するための一部を切り出し、特定のテーブルの指定や見やすいフィールド名や権限などの設定定義です。

### ビジュアル

いわゆるグラフ

### 分析

データセットを様々なビジュアルで可視化する。そのビジュアル群。

### ダッシュボード

分析を

元記事を表示

AWS lambda(Node.js)でオレオレ証明書(self-signed)を一時的に信頼してSSL通信を行う方法

# はじめに
AWS lambdaのNode.js(https標準モジュール)で実装した、WEBサイトへhttpsのリクエストを投げる処理で、以下の2つのエラーが発生した際の対応についての記事です。
※急いでいる方、ソースコードだけ見たい方は[ここから見ればOK](#3サーバ証明書を署名している自局ca証明書を-一時的に信頼する)です

スクリーンショット 2020-04-16 22.24.09.png
スクリーンショット 2020-04-16 18.31.17.pngCloudFormationでECSへSSMから機密情報の受け渡しをする

# Infomation Source
ちょっと前のリリースですが1年経ってないので一応どういうアップデートか書いておきます

[CloudFormationリリース一覧 2019/6/13 リリースの機能](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/ReleaseHistory.html)

> AWS::ECS::TaskDefinition
ContainerDefinition プロパティタイプでは、次のプロパティを使用できます。
– Secrets プロパティを使用して、コンテナに渡すシークレットを指定します。
Tags プロパティを使用して、メタデータを分類して整理しやすくするために、タスク定義に適用します。

# What’s new?

ECSのタスク定義で、機密情報をSecrets Manager secretやSSM Parameter Storeから取得する方法のアップデート

## Before

JSONやWebコンソールからのみ設定可能だった

## After

元記事を表示

AWS資格取得者がAZ-900:Azure Fundamentalsを受験する際の効率的な勉強方法

最近、業務で顧客に対してAzureの提案をする必要が発生しました。しかし、AWSの学習はしていたもののAzureは全く勉強したことがありません。ベースはパブリッククラウドなので「Azureの機能がAWSのどの機能と対応しているか解れば、なんとか提案ができるのでは」と考えた私は、とりあえずAzureの用語をマスターするべく、最も初級の「AZ-900:Azure Fundamentals」を受験することにしました。

この記事は[AWS資格取得者](https://qiita.com/gomasa/items/6ce860a2e11a620c92ae)が[Azure資格](https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE2PjDI)を受験したい場合の参考記事となります。今回受験した「AZ-900:Azure Fundamentals」は、AWS資格では「クラウドプラクティショナー」の位置づけになると説明すると解りやすいでしょうか。私が見た感じだと、AWSとの対比は以下の通りとなります。

|レベル |Azure資格 |

元記事を表示

CodeBuildでappspec.ymlをrootディレクトリに移動するbuildspec.yml

# やりたいこと
– CodeDeployで利用するappspec.ymlをCodeBuildを使って、ソースコードのrootディレクトリに配置する

# なぜやるか
– CodeDeployで利用するappspec.ymlはソースコードのrootディレクトリに配置しないとエラーになる
– [CodeDeploy AppSpec File リファレンス](https://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/reference-appspec-file.html)
– 環境毎に分ける可能性のあるappspec.ymlを、ソースコードのrootディレクトリに配置したくない!(ファイル名も変更できない)

# フォルダ構成
“`
repository_root
– deploy
– dev
– appspec.yml
– src
– test
– other…
“`

# buildspec.yml
“`yaml
version: 0.2
phases:

元記事を表示

試験に出るAWS:SAAでしょう 第2夜

AWSの画面を実際そんなに触ってないのに
本だけで勉強していて身につくんでしょうか?
などという疑問もある中ではありますが、進めてきたいと思います。

ちなみにHBCに見学に行ったときに買った
水曜どうでしょう透明シールを浮かれて家のふすまに貼ってしまったのですが
剥がしたら、ふすまの紙ごとやぶけるのでは? とビクビクしています!

それから語呂合わせは効率悪い勉強法とのことなので前回でやめました!
*考えるのに時間かかるし*

また効率の良い勉強法は細かく思い出すそうなので
ここでは自分用にテスト形式(さしあたって穴埋め)で書いていこうと思います

# 受験生諸君(自分)!!

[これ↓](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-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%8

元記事を表示

Azure Arc for Servers から AWS EC2 に接続してみる

※本記事は2020年4月時点での内容です。

#はじめに
Azure ArcはMicrosoft Ignite2019で発表され、現在Azure Arc for ServersがPublic Previewでリリースされています。ドキュメントを読んでいるとAmazon Linuxという表記があり、興味を持ったため早速試してみました。

※2020/4/15時点でAmazon Linux 7という表記になっていますが、これはTypoのようです。ドキュメントの管理者に変更依頼を投げたので、しばらくすると改善されると思います。正しい表記は、Amazon Linux 2です。

参照: https://docs.microsoft.com/ja-jp/azure/azure-arc/servers/overview#prerequisites

#設定手順概要
1.AWSマネジメントコンソールにログインし、EC2インスタンスを一つ立てます。今回は、Amazon Linux 2 AMI(HVM)を選択しました。
![image.png](https://qiita-image-store.s3.

元記事を表示

Amazon Chimeでオンラインカンファレンスを開催するときの手順

Amazon Chimeでオンラインカンファレンスを開催するときの手順メモです。

– Amazon Chime: https://aws.amazon.com/jp/chime/
– Amazon Chimeの料金: https://aws.amazon.com/jp/chime/pricing/

まだ、実開催していないので、仮バージョンになります。

# 主催者

カンファレンスを主催するには、amzon.comのアカウントが必要です。(ChimeのPro機能を利用)

無料期間(最大30日)を過ぎた後に継続利用する場合は、AWSマネジメントコンソールやCLI/SDKを利用してChimeアカウント(チーム)を作成して、主催者となるChimeユーザ(課金単位)をChimeアカウントに登録する必要があるようです。
(ChimeユーザがChimeチームからの招待を承認した時点で、無料枠は終了します。)

– Amazon Chime管理者ガイド 開始方法: https://docs.aws.amazon.com/ja_jp/chime/latest/ag/getting-start

元記事を表示

[Serverless] サーバーレスのテストの難しさと、契約ベースのテストについて

先日、サーバーレスに深くコミットする堀家さん、Kimさんのお二人によるPodcast “[Serverless NOW](https://serverless.fm/first-talk/)” のファーストトークが配信されました。

自粛中の飯談義で開幕したこの配信ですが、感想としてはとても面白かったです。まあ、私のこんな記事よりも是非 Podcast を直接聞いて欲しくはあるのですが、終盤で特に興味を惹かれるトークがあったので自分の理解のためにもサマりつつ関連キーワードを調査してみようと思いました。

興味を持ったのは、サーバーレスにまつわるテストの難しさに関する話です。難しさの解消を目指すアプローチとして「コントラクト(契約)ベース」によるテストを検証されている、とのお話しがありました。「PACT」と呼ばれるツールを使っているそうです。

「サーバーレスのテスト」「契約ベースのテスト」これらの話題に興味を惹かれ、調べてみることにしました。PACTの使い方に関してはこの記事で言及してません。長くなりそうなので、続編記事として別途アウトプットしようと思ってます。

※ 私自身はサーバー

元記事を表示

【AWSリソース操作自動化】不要なIAMユーザーをすべて削除する

# はじめに

皆さん、業務でAWSは使われているでしょうか。
よくセキュリティ的な安全性を保つために、不要なユーザーは削除しましょうとかいいますよね。
これは実際業務でも注意しなければならないところです。
たとえば僕も新しいAWSアカウントをセットアップして、それを起点となるアカウントからアシュームロールして使用するとなると、個人ユーザーは不要だったりするのですべて削除しています。

# 問題提起

さて、ユーザーをすべて削除するとは言ったものの、実はユーザー削除は手順を踏む必要があり結構面倒です。
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_users_manage.html#id_users_deleting_cli
`ユーザーのパスワード(使用していた場合)を削除します.
ユーザーのアクセスキーを削除します (使用していた場合)。
ユーザーの署名証明書を削除します。
ユーザーの SSH パブリックキーを削除します (使用していた場合)。
ユーザーの Git 認証情報を削除します。
ユーザーの 多要素認証 (

元記事を表示

CodeBuild/CodeDeployをCodePipelineで繋げてデプロイを自動化する

# はじめに
複数のアプリケーションを作っているとアプリケーションごとにビルド・デプロイ環境があると思います。
弊チームでは各アプリケーションごとにビルド・デプロイ環境がEC2だったりローカル環境だったりと異なり、個人によってはインストールされているバージョンが違うことによりビルド・デプロイに失敗することがあり、デプロイ作業が属人化しかけ問題に感じていました。
また、新しいメンバーが増えた際に環境を整えてもらう必要があります。
1度環境を整えてしまえば問題はありませんが、CodeBuildとCodeDeployをCodePipelineで繋げてデプロイを自動化しました。

# [CodeBuild](https://aws.amazon.com/jp/codebuild/)
CodeBuildに**buildspec.yml**が必要になります。
###buildspec.yml
CodeBuildがビルド時にどのように動作するかを記述したファイルになり、プログラムのルートディレクトリに配置します。
buildspec.ymlの書き方は、[CodeBuild のビルド仕様に関するリファ

元記事を表示

AWS 初期編 学びmemo

#他社との違い
・サービスの幅広さと奥深さ
・イノベーションのペース
・グローバルな展開
・最大のパートナーコミュニティ
・セキュリティ

###サービスの幅広さと奥深さ
提供しているサービスが165種類

###最大のパートナーコミュニティ
コンサルティングパートナーとテクノロジーパートナーは数万社

###セキュリティ
58種類のコンプライアンス認定を取得

##クラウドコンピューティング
・パブリック
・プライベート
・ハイブリッド

##セキュリティ責任の共有(AWS責任共有モデル)
・オペレーティングシステム
・セキュリティグループの共有
・ネットワークとファイヤウォールの設定

#説明で出てきた初めての単語まとめ
##AZ(アベイラビリティゾーン)
特定のエリア内のデータセンターの集まりのこと

##エッジロケーション
広域で、サービスが提供されるエリア
サービスを提供するためのデータセンター
各国の都市に存在する

##Amazon CloudFront
コンテンツ配信ネットワークを提供するサービス

##レプリケーション
あるコンピュータやソフトウェアの管理するデ

元記事を表示

Session Managerを使って踏み台サーバーなしにPrivate SubnetのEC2インスタンスにSSHする

# はじめに
今までPublic Subnetに立てた踏み台サーバーに特定のIPアドレスからのSSHを許可し、踏み台サーバー経由でPrivate SubnetのEC2インスタンスにSSHしていました。
世の中的に在宅勤務が増えため、EC2インスタンスを利用するメンバー分のIPアドレスを踏み台サーバーで許可するのはセキュリティ的に心配です。
そこで、Session Managerを使って踏み台サーバーを使わずにPrivate SubnetのEC2インスタンスにSSHするように設定を行ないました。

# 目的
– Private Subnetに起動したEC2インスタンスに踏み台サーバーなしにSSHする

# 前提条件
– AWS CLIのバージョンが**1.16.12**以上
– SSM Agentのバージョンが**2.3.672.0**以上

# 設定
### SSM Agentのバージョン確認
SSHしたいEC2インスタンスにSSM Agentがインストールされている必要があり、SSM Agentのバージョンが**2.3.672.0**以上である必要があります。
AWS CLIを使って

元記事を表示

「セキュアで堅牢なAWSアカウント」を実現する CloudFormationテンプレート – ⑥SSHとRDPのアクセスを制限する

# はじめに

AWSには、アカウントやリソースへの脅威検知に対応した、**AWS IAM Access Analyzer**, **AWS Security Hub**, **Amazon Inspector**, **Amazon GuardDuty**, **AWS CloudTrail**, **AWS Config** などのサービスが用意されています。

また、[**CIS AWS Foundations Benchmark**](https://d1.awsstatic.com/whitepapers/compliance/AWS_CIS_Foundations_Benchmark.pdf) という**セキュリティガイドライン**が公開されており、このガイドラインは、**AWSアカウントをセキュアに保つために必要なAWSのセキュリティ設定**を集めた**ベストプラクティス集**として活用できます。自身のAWSアカウントがこのガイドラインにどの程度準拠しているのかを確認/監査する手段として、**AWS Security Hub**で、**CIS AWS Foundation

元記事を表示

AWS EC2の初期環境構築:Emacs, zsh, Python3(Miniconda)

# TL; DR

まっさらなEC2インスタンスにログインして作業環境を構築した際のメモ

– `emacs-nox`をリポジトリから導入
– `zsh`をリポジトリから導入
– `/etc/passwd`を編集しシェルを変更
– `/etc/locale.conf`を編集し文字化けを解消
– `.zshrc`を編集し変更を適用
– `Miniconda3`をインストーラから導入
– `/path/to/conda init zsh`を実行

# はじめに

本記事ではAmazon Linux 2を使っているが,Ubuntu Serverを使う場合もあるため,以下に注意する.

– Amazon Linux 2のデフォルトユーザ名は`ec2-user`になる.Ubuntu Serverでは`ubuntu`になる.

– Amazon Linux 2はRedHat系なので,パッケージマネージャには`apt`ではなく`yum`を使う.

# リポジトリの初期化
“`
$ sudo yum update
“`

Debian系の`sudo apt updat

元記事を表示

S3 で静的ホスティングされている WEB サイトに対しては POST リクエストは送ることができない

# 概要
web で sign in with apple を実装しようとしたときに、S3 で静的ホスティングされている WEB サイトに対して POST リクエストのコールバックをすると 405(Method Not Allowed) エラーが起こりました。

そのことがきっかけで S3 で静的ホスティングされている WEB サイトに対して POST リクエストを許可する方法を調べました。

# 結果
S3 で静的ホスティングされている WEB サイトに対して POST リクエストを行うことはできないことがわかりました。

スクリーンショット 2020-04-16 2.16.02.png
2020/04/16 時点のスクリーンショット

> オブジェクトに対しては GET リクエストと HEAD リクエストのみを

元記事を表示

東京リージョンに Lightsail を使って手軽に Cloud9 を構築する

Amazon Lightsail を使って Cloud9 を構築したいと思います。
東京リージョンに作成します。

# 環境
AWS アカウント: アクセス権限 Lightsail, Cloud9

# Lightsail インスタンス作成
Lightsail の `Linux/Unix` `アプリ + OS` `Node.js` を選択し、インスタンスを作成します。
Node.js は Cloud9 が使用します。
インスタンス名、プランは任意に設定してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123649/145a8527-4cee-2874-b1d0-2d4529a4b0b3.png)

次に `ネットワーキング` タブから `静的 IP の作成` をクリックし、作成したインスタンスにアタッチします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123649/7fb

元記事を表示

OTHERカテゴリの最新記事