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

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

【AWS】VPC、サブネット作成のメモ書き、参考サイトやVPCのネットワーク作成

 AWSでVPC、サブネットを試しながら作った時に参考にしたサイトのメモ書きです。

[【AWS】EC2でWebサーバの構築 – VPC作成 -【Nginx】](https://swallow-incubate.com/archives/blog/20191108/)
・こちらを参考にして、VPC、サブネット、ルートテーブル、インターネットゲートウェイを順に作ってみた。
・削除する場合、反対にインターネットゲートウェイ、ルートテーブル、サブネット、VPCの順に削除した。
(*VPC内のEC2やセキュリティグループとか、ルートテーブルとサブネットの関連付けなどを解除しないと削除できないかも)

[動画で学ぶAWS講座 VPC編 【section1】 リージョン, アベイラビリティゾーン, サブネット](https://www.youtube.com/watch?v=aQpMBqn5mRY)
[動画で学ぶAWS講座 VPC編 【section2】 ルートテーブル, プライベートサブネット, パブリックサブネット](https://www.youtube.com/watch?v=lqsiWw

元記事を表示

AWS操作練習①(アカウント作成>VPC作成>EC2起動>CloudWatch監視設定実施まで)

私は最近までAWSの資格試験に挑戦してきており、[無事にプロフェッショナルに合格](https://qiita.com/gomasa/items/6ce860a2e11a620c92ae)できました。その反面、AWSの実機での操作は試験期間中に実施した[セルフペースラボ](https://aws.amazon.com/jp/training/self-paced-labs/)に限られ、実際の操作自体は十分に習熟できていない状況でした。AWSの資格試験が終了したあとは、他の資格試験を取得するために時間を割こうと思っていました。ただ、AWSの操作が不十分な状況だと今後によくないと考え、自分なりに1から1つずつの操作を確認して行こうと考えました。また、その際の実施した作業内容はQiita上に作業ログとして残しておくことにしました。これは自分自身が実施した作業を忘れないための備忘録であると同時に、今後同じような動機でAWSの操作確認をしようとした方の道しるべになればよいと考えたからです。

#■■ 筆者情報 ■■
・AWSの資格試験はプロフェッショナルまで取得済。
・AWSの操作経験は初心者並

元記事を表示

Beanstalkで使用されるEC2のSGの設定を変更するには?

## 背景
Beanstalk を使用してWindowsサーバーを構築し、 RDP 接続も行えるようにしたい。

RDP 接続を行うためには EC2 のキーペア(秘密鍵)がログインパスワードを取得するのに必要になる。

Beanstalk の設定画面で「 EC2 キーペア」を有効にすると、 Beanstalk (正確に言うと CloudFormation )によって自動生成されるセキュリティグループに22番ポートが `0.0.0.0/0` で許可される。

## やりたかったこと
Beanstalk によって自動で作成されるセキュリティグループだと22番ポートがフル解放されるため、これを使わずに予め自分で作成しておいたセキュリティグループのみ使って構築したい。

## 試したこと
Beanstalk の設定画面にある「インタンスの変更」の「インスタンスセキュリティグループ」で、既存のセキュリティグループを選択すれば自動でセキュリティグループは作成されないと考えていた。
スクリーンショット 2020-04-19 2.36.32.png

元記事を表示

【学習まとめ】AWSクラウドプラクティショナー その5

# AWSクラウドのセキュリティ その1

## AWSセキュリティのメリット
1. データの保護
データ保護のための安全対策が用意されている。
2. コンプライアンスの要件に準拠
コンプライアンスプログラムを管理でき、コンプライアンスの一部は最初から達成されている。
3. コスト削減
AWSデータセンターの利用により、セキュリティにかかるコストを削減できる。
4. 迅速なスケーリング
ビジネス規模に関わらず、セキュリティをスケーリングできる。

## 責任範囲
### 物理
AWSのデータセンターのセキュリティはAWSの担当。

1. 環境レイヤー
+ 自然災害などの環境リスクを軽減するため、設置場所は慎重に選択されている。
+ 各リージョンのデータセンター群は互いに独立・隔離されている。
2. 物理的な境界防御レイヤー
+ データセンターは物理的に防御されている。
+ その境界には保安要員、防御壁、侵入検知などがある。
3. インフラストラクチャレイヤー
+ インフラとして建物や各種機器、それらの運用に関わるシステムなどがある

元記事を表示

【学習まとめ】AWSクラウドプラクティショナー その4

# 責任共有モデル
+

![aws](https://d1.awsstatic.com/security-center/Shared_Responsibility_Model_V2_JP.a4acd9721218c9d7d4ab5083c349e706e8ad300d.jpeg)

## クラウド内のセキュリティ
+ ユーザーはクラウド内のセキュリティを担当する。
+ セキュリティサービスを適切に活用することで、ユーザーはクラウド内のセキュリティを管理できる。

## クラウド本体のセキュリティ
+ クラウド本体のセキュリティはAWSが担当する。

元記事を表示

Aurora Serverless Data API のローカル開発環境を構築する方法

## はじめに
[DynamoDB は公式に Docker イメージとしてローカル開発環境が提供されている](https://hub.docker.com/r/amazon/dynamodb-local/)のに対し、Aurora Serverless の Data API はローカル開発環境が提供されていません(2020年4月18日現在)。

調査したところ非公式ですが、 Data API のローカル開発環境が GitHub (下記リンク)で公開されていたため、その内容を紹介させていただきます。

[![koxudaxi/local-data-api – GitHub](https://gh-card.dev/repos/koxudaxi/local-data-api.svg?fullname=)](https://github.com/koxudaxi/local-data-api)

## AWS Aurora Serverless の Data API とは?

[AWS公式ドキュメント](https://docs.aws.amazon.com/ja_jp/AmazonRDS/l

元記事を表示

Lambda関数をBlue/GreenデプロイメントするCodePipelineをCloudFormationで自動構築する

# 前提条件
以下の記事で手動構築していたCodePipelineのCI/CDパイプラインをCloudFormationで自動構築してみる記事。なので、構成やアプリケーションの内容は読んで把握しておくことが望ましい。

[Amazon API Gateway/ALBのバックエンドで動くLambda関数をJava(Eclipse+maven)で実装する](https://qiita.com/neruneruo/items/8673af2a3ae0f8076627)
[ALBのバックエンドで動作するJava実装のLambda関数をBlue/GreenデプロイメントするCodePipelineを作る](https://qiita.com/neruneruo/items/73906cdc3c2aa699644f)

最終的に目指すCI/CDパイプラインの構成イメージは以下。Lambda関数のフロントにALBがいる想定だが、このパイプラインでは触らない(厳密には、リスナーとターゲットグループは触る)ので割愛する。
![LambdaCFn.png](https://qiita-image-stor

元記事を表示

今更ながらAWS CDKを使ってみた

# はじめに

今更ですがAWS CDKを使ってみました。
CDKはCloud Development Kitの略で、これを使うとインフラをコードで表現することができます。
CloudFormationやTerraformでも同じようなことができますが、大きな違いは次の点となります。

* 高レベルAPIが用意されていて少ない行数で書ける
* エディタの補完が効く
* テストがかける
* CLIが用意されていて、デプロイやdiff等の操作が簡単に行える
* プログラムとして書けるのでforやifなども思いのまま

公式: [AWS クラウド開発キット – アマゾン ウェブ サービス](https://aws.amazon.com/jp/cdk/)

なお内部的にはCloudFormationが用いられますが、CDKがラップしているのでCloudFormationには一切手を触れることはありません。

# 何を作ったのか

構成はこんな感じです。図中のAWS SDK部分は既存のサービスで、それと連携するAWSサービスを今回CDKを使って構築してみました。
図には書いていませんが、Lamb

元記事を表示

Autonomous Database から AWS S3 のデータは見えますか?

Q.「Autonomous Database から AWS S3 のデータは見えますか?」
A.「はい、見えます」

というやりとりが何度かあったので、書いてみました。

AWS S3のバケット上に置いたファイルを、Oracle Cloud (OCI) 上の、Autonomous Databaseから参照してみます。

※[はじめてのAutonomous Databaseへのデータロード(Object Storage経由の場合)]
(https://qiita.com/mikika/items/5323651cb5826a5b495e)
で書いた、Oracle Cloud(OCI)のObject Storageにあるデータを参照するときのやり方と、手順は同じで、DBMS_CLOUD.CREATE_CREDENTIAL でAWSのアクセス・キーIDと、シークレット・アクセス・キーを指定します。

製品ドキュメントでは、[dbms_cloud.create_creadential の説明が該当しますが](https://docs.oracle.com/cd/E83857_01/paas/a

元記事を表示

API Gatewayとバックエンドの疎通確認で時間を無駄にしないための手順書

API Gateway(HTTP API)の疎通確認は、段階ごとに進めないと混乱します。
リクエストがバックエンドに到達するまでと、各段階の調査方法をまとめました。

# API Gateway → バックエンドのリクエスト解決順

1. カスタムドメインをStageごとのInvoke URLに解決する。
2. ステージ内の指定したリソースに対するアクセス権が存在するかを確認する。
3. メソッドリクエスト実行のための認証を行う
4. メソッドリクエストを受け付けた後、API Gatewayからバックエンド(例えばAWS Lambda)に統合リクエストを行う(終了)

# 1. カスタムドメインをStageごとのInvoke URLに解決する

普通に`dig`してCNAMEレコードが返ってくるか確認してください。
ここで失敗していると、当然ですがそもそもAPIからレスポンスが返ってきません。

# 2. ステージ内の指定したリソースに対するアクセス権が存在するかを確認する

疎通確認のため、API GatewayのStageから`Enable CloudWatch Logs` を

元記事を表示

【AWS】CloudWatchで利用料金をメール通知する

##やりたいこと
自宅学習用にAWSアカウント取得したが、気になるのは使用料金。
気づいたらすごい金額になっていた、というのを避けるべく、1万円を超えたときにメール通知で知らせるようにしたい!

##手順
(※2020年4月18日時点での画面なので、仕様が変わっている場合があります。)

リージョンを「バージニア北部、US-EAST-1」に変更する。
(請求のメトリクスデータは、バージニア北部リージョンに保存されているため)
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328551/579d123c-513b-fa15-8d2e-b1d3a84a1ffe.png)

AWSのコンソール画面から「CloudWatch」→「アラーム」を選択。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328551/f11f08be-dcda-63d1-28f3-a42315714d5e.png)

右上の「アラームの作

元記事を表示

⑥ 知識ゼロからAWSインフラ構築・VPC + EC2 + SSHログイン する(2020.4時点)

#前提
・クレジットカードを持っている
・AWSアカウントを作成している

##draw.io(無料)で仮想インフラ・アーキテクチャ図を書きます
今回は、インターネットやネットワークの専門用語が飛び交いますので、初学者の方はパニック必至であります。
迷子にならないために、仮想インフラ・アーキテクチャ図を書きながら進めていきます。
(後々、アーキテクチャの説明に図面が必要ですのでこの際覚えてしまいます)

・draw.io(無料)は、こちらの記事を参考にしました
 [draw.ioでAWSのインフラ構成図を書く](https://qiita.com/nave-m/items/68425f476b254a1a47b0)

#1.VPC (Amazon Virtual Private Cloud)を作成する

・VPCは、AWSアカウントに紐づく仮想ネットワーク空間で、他のVPCとは論理的に区別されます。
・広大な敷地の中に、柵で囲った小さな敷地を作る感じです。
・VPCはAZ(データセンター)は跨げますが、リージョン(国)を跨いで作成できません。
・AWSアカウントを作成したらデフォル

元記事を表示

aws-cli v2でECRへget-login-passwordする

## 背景
* Kubernetes上で運用するアプリケーションを作成していて、コンテナレジストリが必要になったため。
* 1GBまで無料らしいのでおそらく料金かからずに済むだろうという想定
* 手順書通りに実行してもログインに失敗しまくったので自分なりに解決した方法をメモ

## 事前準備
1. [IAMユーザの作成](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_users_create.html)
1. [AWS CLI v2のインストール](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html)

## ログイン成功までの流れ
1. ECRリポジトリを作成
2. リポジトリ一覧画面で1で作成したリポジトリを選択し、「プッシュコマンドの表示」ボタンを押下する
3. aws configureを実行し、事前準備で作成していたユーザを登録する
4. 2で表示されたコマンドを手元のターミナルで実行

元記事を表示

VPCエンドポイントでの「AWSサービス」と「サービスを名前で検索」の違い

## 概要

AWS VPCエンドポイントのインターフェース型(PrivateLink)には、3種類あります。

– AWSサービス(AWSプリンシパルサービス)
– サービスを名前で検索(独自サービス)
– ご使用のAWS Marketplaceサービス(マーケットプレイスサービス)

このうち、座学だけだと、AWSプリンシパルサービスのEC2エンドポイントと、EC2上に独自で作ったAPIに対するエンドポイントでは何が違うのかわからず小一時間悩んだので、違いと構築した結果をメモします。なお、PrivateLinkそのものに対する説明は、以下の記事が非常に参考になりましたので、こちらを見ていただけれなと思います。

[AWS PrivateLinkの使い方と注意点 ~VPCピアリングとの使い分け~](https://devlog.arksystems.co.jp/2018/05/11/4896/)

## 結論

– AWSプリンシパルサービスは、VPCエンドポイントを通じて、AWSサービスのAPIが利用できる
– EC2なら、aws cliからEC2のAPIが利用でき

元記事を表示

AWS Solution Architect Associateへの道〜第8夜

# AWS Systems Manager

Q1. SSMでAutoScaling構成のEC2を管理している。RDPやSSHを用いずに、インスタンスの設定を行うためには何を利用すればよいか。

A1. AWS Systems Manager Run Command

EC2 or オンプレサーバにSSMエージェントを入れることで、マネージドインスタンスとしてSSMから管理を行える。Run Commandを利用することで、管理者タスクの自動化やアドホックな設定変更を行える。Run Commandは追加費用なしで、AWSマネコン・AWS CLI・AWS SDK・AWS Tools for Windows Powershellから利用できる。

# Cloud Hardware Security Module(CloudHSM)

Q1. とある企業がウェブアプリケーション向けにCloudHSMを利用している。Adminへのログインに3回失敗して、HSMが初期化されてしまった。不幸なことにkeyをローカルにコピーもしていなかった。どのように復旧すべきか?

A1. 打つ手なし!

– Ad

元記事を表示

AWS Solution Architect Associateへの道〜第7夜

# Route53

Q1. パブリックなロードバランサーに対して、Route53を用いてDNS Zone Apexレコードを設定するには、どのように設定すれば良いか?

A1. ELBのDNS名に対するエイリアスAレコードを作成する

エイリアスはAWS Route53固有の仮想レコード。CNAMEのように機能して、DNS名を別のターゲットDNS名(ELBとかS3とか)にマッピングすることができる。それらはリゾルバーに表示されないという点でCNAMEと異なる。リゾルバーにはAレコードと、結果として生じるターゲットレコードのIPアドレスだけが表示される。

ZONE Apex(=ドメイン名そのもの)をCNAMEにマッピングすることはできない。

– ELBのIPアドレスは、スケーリングやソフトウェアアップデートに伴って常に変化しうることに注意

# API Gateway

Q1. バックエンドにLambdaがいるAPI Gatewayをローンチした。APIエンドポイントはどのプロトコルを受け付けることができるか

A1. HTTPS only

– API GWは暗号化されていない

元記事を表示

AWS Solution Architect Associateへの道〜第6夜

# CloudWatch

Q1. CloudWatchがenhanced monitoringでRDSから取得するメトリクスは何か

1. CPU使用率
2. RDS child process
3. 利用可能なランダムアクセスメモリの総量
4. disk I/O per second
5. OSプロセス

A1. 2,5

– デフォルトのCloudWatchはハイパーバイザからの情報を取得する
– enhanced monitoringではインスタンス上のエージェントから情報を取得する
– よって、DBインスタンスが小さい場合、上記2つのメトリクスの差異は大きくなる(ひとつの物理インスタンス上で多くのVMsがhypervisorによって管理されるため)
– enhanced monitoringはどれだけの数のプロセスやスレッドがCPUを利用しているかを知るために有用

– 見れるリスト
– RDS child processes
– RDS processes
– OS processes

# CloudFront

Q1. Webやmobileからデ

元記事を表示

AWS Solution Architect Associateへの道〜第5夜

# Aurora

Q1. マルチAZ構成でAutoScalingを構築している。このシステム中のAuroraのプライマリーDBインスタンスに障害が発生した場合、フェイルオーバの最中には何が発生するか?

A1. 場合分けして考える。

– Aurora Replicaが存在する場合(同 or 別AZ)
– CNAMEをHealthyなレプリカに付け替える。一般的に約30秒で完了。
– Aurora Serverlessを利用している場合
– 別AZにDBインスタンスを再構築
– シングルインスタンスの場合(Replicaがない)
– 同一AZにインスタンスを再構築しようと試みる。不可能な場合、別AZに再構築する。

# DynamoDB

Q1. ゲームのアプリケーションでAPI GatewayとDynamoDBを利用している。Dynamoは読み込み書き込みのキャパシティを設定している。Dynamoのロードがピークになった時、リクエストをスロットリングしており、ゲームのパフォーマンスが低下していることに気づいた。これを改善するにはどうすればよいか。 

1.

元記事を表示

AWS Solution Architect Associateへの道〜第4夜

# Encryption

Q1. S3バケットの中のデータが保管時に暗号化されていなければならない。また、暗号鍵はあなたの会社が提供・管理するという要件がある。これを実現するためのアクションは?

A1.

* Use S3 server-side encryption with customer-provided keys(SSE-C)
* Encrypt the data on the client-side before sending to S3 using their own key

暗号化関連は、保管時(at rest)と転送時(in transit)で分けて整理。
鍵を誰が発行・管理するか、とかローテーションが自動化でできるためには、とかその辺が選択のキモかと。

## 暗号化整理

### at rest
* Server-side encryption
* Use Sever-side encryption w/ S3-Managed Keys(SSE-S3)
* Use Sever-side encryption w/ AWS KMS-Mana

元記事を表示

AWS Solution Architect Associateへの道〜第9夜

# サービス選ぶ系

Q1. ECS + DynamoDB構成のアプリケーションがある。DynamoDBへの新しいエントリーがあった場合に、Lambdaのトリガーが引かれるようにしたい。どうすれば良いか。

1. DynamoDB Streamsを有効にしてテーブルの動きをキャプチャし、Lambdaへのトリガーを張る
2. ECSクラスタがデータ処理を行うごとにSNSを利用してLambdaを起動する
3. SystemsManagerAutomationを利用してDynamoDBへの新しいエントリーを検知し、Lambdaを起動する
4. CloudWatchAlarmsを利用してDynamoDBへの新しいエントリーを検知してLambdaを起動する

A1. 1

– DynamoDBはLambdaと統合されており、DynamoDB Streamsを利用することで、テーブルの変化をトリガーに処理を起動することができる
– CloudWatchAlarmsはメトリクスを起因に起動はできるが、データの変化を参照はできない
– Lambdaを起動するためにSNSを設定する必要はない(できなく

元記事を表示

OTHERカテゴリの最新記事