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

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

Alexaスキルで湯婆婆を実装してみる

# はじめに
何番煎じかわかりませんが、[流行り](https://qiita.com/Nemesis/items/c7192a7c510788d2cba2)に乗らせていただき、Alexaスキルで湯婆婆を実装してみました。

この湯婆婆シナリオは
・名前を聞く(ユーザの入力を受けつける)
  ↓
・名前を与える(情報を出力する)
という流れなので、ユーザとの対話で処理を進めていくAlexaスキルにぴったりなようにも思います。

# 作ったもの
以下で公開しています。
[名前泥棒](https://www.amazon.co.jp/dp/B08N495CQL)

Alexaスキルは自身が著作権を持たないものを題材にはできないため、湯婆婆を名乗ることは当然できません。
そのため、一般的な単語のみで構成されたスキル名にしています。

シミュレータでのスキルの流れは以下です。
![シミュレーション.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/114715/fb762425-fb10-49da-f52c-b7b

元記事を表示

AWSのVPCのよく使われるコンポーネントについて

## 勉強前イメージ

一応VPCは作って中にインスタンス作れるけど、あんまりちゃんとネットワーク上こう、っては分かってない
特によく使われるやつでもインターネットゲートウェイはあんまり分かってない
今回はちょっだけにしとく。

## 調査

### Subnet

VPCの中に小さなネットワークの集まりを作れるもの。
Subnetでネットワーク空間を区切ります。

下記の例であれば `10.0.0.0/8` という大きなVPCの中に
ネットワークに接続しない、 `10.1.0.0/16` というPrivate Subnetと
ネットワークに接続する、 `10.2.0.0/16` というPublic Subnetが作成されています。
※subnetはかぶってはだめです。

![subnetUntitled Diagram.drawio – diagrams.net – Google Ch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/129517/28774a70-b47d-3be3-f484-eb88

元記事を表示

GitHub ActionでDockerのビルドキャッシュを有効にしてAmazonECSへデプロイする

# やること
GitHub Actionを用いてDockerイメージをビルドし、Amazon ECRに保存し、Amazon ECSへデプロイします。

– ポイント
– 本番運用を想定し、ブランチに[リリース](https://docs.github.com/ja/free-pro-team@latest/github/administering-a-repository/managing-releases-in-a-repository)を作成した場合にGitHub Actionが動作するようにする。
– Dockerのビルドを高速化するために、ビルドキャッシュを有効にする

# 準備
– 保存先のECRを作成
– デプロイ先のECRを作成
– GitHub Actionで使用するためのAWS IAMユーザーを作成(ECRとECSの権限が必要です)

これらは作成済みとして進めます。

# 作成するワークフロー
下記のようなワークフローを作成し、レポジトリの`.github/workflows/`へ`deploy-to-ecs.yml`のような適当な名前で保存します。
mainブ

元記事を表示

アプリの開発をする(AWSのアカウント作成から環境構築まで)

# まえがき
エンジニアは、常に勉強し、技術を磨き続けなければならない。
例えば、外国語を学習するには、その言語を使うことが一番良い方法だという話を聞いたことがある。
実際、自分もそのように考えている。
では、技術を学ぶために一番いい方法は何だろうか?
おそらく、実際にその技術を使うことではないだろうか。
とうことで、今回簡単なWebアプリ的なものを作ることにした。

# AWSアカウントの作成
これを見ればok
https://aws.amazon.com/jp/register-flow/

# AWSで構築したいアーキテクチャ
とりあえず、APサーバとDBサーバのみのシンプルな構成から始め、今後必要に応じて変えていくことにする。
(というか、最初から難しいことを色々考えると挫折しそう)
ペイントで作った手抜き図ですまん
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/628781/8cadd717-3f59-f2b5-32f6-5c4e05038fee.png)

# 環境構築
V

元記事を表示

Lightsail の FreeBSD インスタンスにストレージを接続する方法

# 概要
AWS lightsail の FreeBSD インスタンスでは、lightsail のストレージ画面に表示されるディスクのパス `/dev/xvdf` が当てにならないのと、ドキュメントに出てくるコマンド `lsblk` も存在しないので、FreeBSD流の方法でやりなおしてみました。 `camcontrol` ではなく `geom` を使うのがポイントです。

https://lightsail.aws.amazon.com/ls/docs/ja_jp/articles/create-and-attach-additional-block-storage-disks-linux-unix
この記事のステップ1までは同じ操作で、ステップ2をどうするか、という話です。
ステップ1で32GBのディスクを作成し、backupstorage という名前でアタッチしています。ディスクのパスは `/dev/xvdf` となっています。

# FreeBSD版のステップ2
## 1. ディスクを見つける
`geom disk list` コマンドを実行します。

“`text:geom

元記事を表示

EIP+セキュリティグループでセキュアにしたAWS Transfer for SFTPをTerraformで構築する

# はじめに
AWS Transfer for SFTPはマネージドなSFTPサーバをサクッと立てることができる素晴らしいサービス。
素のままではVPCのリソースではないが、2020年の1月にVPC経由でEIPをアタッチしてセキュリティグループによりセキュアにアクセスできるようになった。

構成図については[クラスメソッド先生のこの記事](https://dev.classmethod.jp/articles/aws-transfer-for-sftp-supports-vpc-security-groups-and-eip/)が分かりやすい。

この構成は、マネージメントコンソールでは簡単に作れるが、Terraformで実現しようとするとちょっとクセがある部分があるため、そこも含めてどうやって実装するかを検討する(2020年11月時点の話。将来的にはもっと簡単に作れるようになると思う)。

# 全体構成
全体構成としては以下のようになる。
ただし、VPC とパブリックなサブネット2つ、SSH のインバウンド通信を許容するセキュリティグループは既に作ってあって、data source

元記事を表示

WebIdentityFederationとCognito

# Web Identity Federationとは?

例えば、`DynamoDB SDK`を使って`DynamoDB`にアクセスする際にアクセスキーが必要となりますが、アプリに埋め込むのは当然ながら非推奨デス。

これをいい感じに解決しAWSリソースに対するアクセスを許可させる方法が`SecurityTokenService(STS)`を用いた`Web Identity Federation`です。

>①ユーザーに一般的なサードパーティー ID プロバイダー (Login with Amazon、Facebook、Google、OpenID Connect (OIDC) 2.0 互換の任意のプロバイダーなど) を使用したサインインを求めることができます。②,③そのプロバイダーの認証情報を AWS アカウントのリソースを使用するための一時的なアクセス許可に変換することができます。 [IAM の一時的なセキュリティ認証情報](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_temp.html

元記事を表示

AWS12ヵ月無料利用期間終了後に利用予想額:48,258円の恐怖体験(2020年11月)

私がAWSアカウントを作成してから1年が経過しました。
AWSには[無料利用枠](https://aws.amazon.com/jp/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc)があります。その中でも「[12ヵ月無料利用枠](https://aws.amazon.com/jp/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=tier%2312monthsfree)」というものがあり、これを経過したあとに課金された悲劇の記事は幾度となく目にしてきました。

例えば以下のようなEC2サービスやS3サービスがそれにあたります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/561572/3

元記事を表示

Presigned URLでAWS S3に動画をアップロードするときのファイルの渡し方

Presigned URLを使ってAWS S3に動画をアップロードするとき,ファイルの渡し方を間違えてかなり時間を無駄にしてしまったので,その知見を共有します.

結論から言うと,HTML5のFileオブジェクトをそのまま渡すとうまくいきました.
FileReaderを使ってDataURIを送ると,データが壊れてしまって再生できないようです.

**※注意※**
– この例ではVue.js+Vuetifyを使用しています.
– ただし,やることは単純なので参考文献等を見ながら適宜読み替えてもらえば,問題ないと思います.

## 1. 成功例

ファイルが選択されたとき,`onVideoPicked`にそのFileオブジェクトを渡しています.
そのオブジェクトをそのまま,Presigned URLでPUTすればOKでした.
この例では,他にも送信するものがあるので変数に格納しています.

Presigned URLでAWS S3にアップロードする過程は,色々な事例がインターネットにありますので,そちらを参考にしてください.本記事の参考文献にもリンクがあります.

“`html

元記事を表示

AWS Direct Connect ってどういうサービス?

## 勉強前イメージ

オンプレとクラウドを仮想専用線のような機構で繋げる?

## 調査

### AWS Direct Connect とは

オンプレからAWSへの専用ネットワーク接続の構築をするAWSのサービス。
AWS とデータセンター、オフィス、またはコロケーション環境との間にプライベート接続を確立することができます。
ユーザのネットワークといずれかのロケーションとの間に専用のネットワーク接続を確立することができます。
→ AWSと専用線を引くの!?

### そもそもAWSと接続する方法

#### SSH接続

オンプレと接続する方法として一番簡潔に行えるのがこのSSH接続。
SSHを使うことによって通信を暗号化しセキュリティを担保します。
こちらは一般のインターネット接続をするので、通信要件がない場合、メンテナンス用途などに適しています。

#### VPN接続

オンプレのシステムの中にVPNルータを設置し、AWSに構築したVPCとVPN接続することで使用できます。
VPN接続でもインターネット回線を使用するため速度はベストエフォート。
ギチギチの要件がある場合は厳

元記事を表示

【AWS】AWS認定クラウドプラクティショナー試験前のメモ

勉強する中で、特に覚えにくかったことを断片的にメモ(圧倒的自分用)

#####フェデレーション
アイデンティティ(本人確認の情報)の連携のこと。
Gmail, Facebook, Twitterなどのログイン時の本人確認情報を、
スマホアプリの本人確認時に利用する仕組み。
SMAL, OpenIDといった技術が利用される。

#####Storage Gateway
ハイブリッドクラウドストレージサービス。
オンプレスから、様々なAWSのストレージを利用できるサービス。
接続には、NFS, SMB, iSCSIなどの標準ストレージプロトコルを使用。
S3, EBS, Backupといったストレージサービスの接続に利用できる。

#####Snowファミリー
ストレージサービス。
物理的デバイスであり、期間限定で利用者に貸し出される。

-Snowball
アタッシュケースのようなもの。
~80TBまでの大規模データ転送に適している。

-Snowmobile
トラック。
最大100PB(ペタバイト)のデータをコンテナトラックで輸送する。
エクサバイト規模のデジタルメディアの移行に適し

元記事を表示

未経験者がLaravelでポートフォリオを作成した話【学習開始〜AWSデプロイまで】

## 簡単に自己紹介
・東京で土木の構造設計をやっている30代前半
・働きつつ、これから転職活動するところ
・健康好きで趣味はアンチエイジング

## どんなアプリ? 何ができる?
ひとことで言うと
「パレオダイエッター(という健康法をやってる人)向けのコミュニティ+計算機能ツール」
です。
画面キャプチャ

基本的なユースケースとしては、
 `・「ユーザー登録/ログイン/プロフィール編集」`
 `・「文字や画像を投稿・編集/いいね/コメントで交流」`
 `・「筋肉をつける・腹筋を割るための目標カロリー算出→マイページ登録」`
という感じになります。

もう少し機能を細分化すると、
 ・ユーザー登録・ログイン機能・ゲストログイン機能
 ・プロフィール編集機能(自己紹介文とアバター画像)
 ・投稿作成機能(

元記事を表示

【UnauthorizedOperation】EC2インスタンス作成時にエラーが起きたので備忘録

## 概要

DockerホストからEC2インスタンス上でコンテナ起動時にエラーがおきました。
AWSもDockerもDockerマシンも学習中を始めたばかりでエラーが起きたときに手探りで進めているという感覚ですが、解決できたので備忘録としてまとめさせていただきます。また、同じエラーに悩まれている方がいれば、その方の一助となれば幸いです。遠回りをしているかもしれませんが、そのときはご意見を頂きたく存じます。

## 仮説検証

まずこちらが今回のエラー文です。エラー文から考えられることを仮説検証してエラーを解決していきます。

“`terminal:ターミナル
% docker-machine create –driver amazonec2 –amazonec2-open-port 8000 –amazonec2-vpc-region ap-northeast-1 
(EC2インスタンス名) Couldn’t determine your account Default VPC ID : “UnauthorizedOperation: You are

元記事を表示

Elastic BeanstalkでLaravelとNuxt.jsをデプロイした時のメモ

# 概要
– 構成
 ![undefined.jpg](https://s3.qrunch.io/29e4da7d200aca0670a64b6fbb6325bf.png)
– Elastic BeanstalkでEC2とRDSを立てる
– ドメインと証明書を取得して設定する
– ロードバランサーとセキュリティグループを設定する
– EB Cliを使用する

# Elastic BeanstalkでNuxt.jsをデプロイ
AWSコンソール
– Elastic BeanstalkでNode.jsプラットフォームの環境を作成
– [設定] – [ソフトウェア] – [変更]でノードコマンドに“`npm run eb-start“`を入力
– [設定] – [ソフトウェア] – [変更]で環境変数を設定

ローカル環境
– eb initを実行
– /package.json内の“`scripts“`に“`”eb-start”: “npm run build && npm run start”,“`を追加
– npm installで失敗する場合
– /.npmrcファイルを

元記事を表示

Ansibleでユーザパスワードを変更してSSMパラメータストアにパスワードを保存する

##実現したいこと
Ansibleを使用してTargetサーバのユーザのパスワードを変更します。
変更後のパスワードはAWS Systems Managerの一機能であるパラメータストアに保存したいと思います。
パラメータストアは無料でリージョンごとに10000個までのパラメータを管理することができます。

[前回](https://qiita.com/latin1/items/111aac5bd222370aeb70)に引き続き、Docker + Ansibleの環境で以下を実現します。
①ランダムパスワードを生成する
②ユーザのパスワードを変更する
③SSMパラメータストアにパスワードを保存する

##設定
DockerとAnsibleの細かい設定は前回の記事と同じであるため省略します。
変更するのはmain.ymlです。

まずは、15文字のランダムなパスワードを生成します。
次に、生成されたパスワードを表示します。
生成されたパスワードを対象のユーザに設定します。
最後にAWS CLIコマンドでパラメータストアにパスワードを保存します。

ssm put-parameterの補

元記事を表示

【AWS】より安全に使うためにCloudWatchを設定する

AWSを利用してからルートユーザー、IAMユーザー共にMFA(多要素認証)は設定していましたが、コストに関して通知(CloudWatch)が来るように設定できることは後から知りました。

それぞれの目的
・MFA→不正アクセスを防ぐ
・CloudWatch→サービスの使い過ぎを防ぐ(指定した金額以上になったら通知が来る)

その際の設定を備忘録として書いていきます。

ログイン後、サービスの検索からCloudWatchを検索。
Image from Gyazo

CloudWatchを選択。
AWSの正体

AWSとはAmazonが提供する仮想的にサーバ環境構築をしたり、データを保存したり、データベースを扱えるクラウドコンピューティングサービスである。

仮想化されたことによりコストが最低限に抑えられ、インフラ構築が容易になったが、その代わりその実体が何なのかいまいち掴みきれない。

ここではその仮想化された実体を追う。

#AWSのwebサーバはどこにあるのか
そもそも仮想化と言ってはいるが、実体がないわけではない。
AWSのwebサーバはデータセンター内にちゃんと物理的に存在している。

#データセンターとは
AWSで使用される数千数万のサーバを管理している施設。具体的な所在地は明記されていないが、世界各地に点在している。その拠点がある地域のことをリージョンと呼ぶ。
また、そのデータセンターが隣接した塊をアベイラビリティーゾーンと呼んでいる。団地をアベイラビリティーゾーン、その中の建物の一つがデータセンターだと考えるとわかりやすいかもしれない。
下記はデータセンターの記事。ぴんと来ない方はこちらを見てみるとよい。
https://aws.amazon.com/jp/compliance

元記事を表示

【AWS】【初心者】wordpressのブログシステムを構築する(パラシつき) ④

この記事は、【AWS】【初心者】wordpressのブログシステムを構築する(パラシつき) ③
「 https://qiita.com/gbf_abe/items/bc729c19bcc2095de9bf 」の続きです。

# お詫び
11月入ってお仕事が忙しくなって更新止めてしまいました…(システム作り切って満足しちゃいました)
~~もうサボらないので~~ゆるして…

# 前回まででやったこと
|順番|内容 |
|—|—————————-|
|① |VPC構築 |
|② |サブネット分割 |
|③ |EC2(パブリック)構築 |
|④ |WebサーバにApacheをインストール |
|⑤ |EC2(プライベート)構築 |
|⑥ |NATゲートウェイ構築 |
|⑦ |DBサーバにMariaDBをインストール |
|⑧ |Webサーバにword

元記事を表示

初心に戻ってAWSでスケーラブルなウェブサイトを作成する

次の通り王道の構成ですが、昔とUIも変わってるということもあり、初心に戻ってAWSでスケーラブルなウェブサイトを作成する基礎の内容です。

![スクリーンショット 2020-11-09 19.15.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/d298b9d1-dfaa-3f6b-1f7a-ea4ae3e11628.png)

#1.VPCの作成#

「VPCウィザードの起動」より設定を行います。

・ステップ 1: VPC 設定の選択
「1 個のパブリックサブネットを持つ VPC」を選択。
![スクリーンショット 2020-11-09 19.25.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/280929/eab1bd42-652b-4cc1-365c-6420a47fcd61.png)

・ステップ 2: ステップ 2: 1 個のパブリックサブネットを持つ VPC
**VPC:10.0.0

元記事を表示

AWS Lambda Python3.8 から Slack へメッセージを送る設定を terraform で作成する

【個人備忘録】lambdaからslackへメッセージを送るシンプル設定

# 概要
* Slack API へのメッセージ送信に関して
* [slackweb ライブラリ](https://pypi.org/project/slackweb) は使わない (ローカル環境にライブラリインストールしてあれやこれやがめんどくさい)。
* Python標準ライブラリの urllib を使う。
* Slack API へ渡す情報は、Lambdaの環境変数に設定する。

* Terraform での Lambda 作成に関して
* aws provider の バージョンは 2.48.0
* Lambda関数コード(pythonソースコード)は、**terraform archive provider** の data ソース **archive_file** を使って zip にしてから、deployする。

* 送信イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/14

元記事を表示

OTHERカテゴリの最新記事