AWS関連のことを調べてみた2021年05月30日

AWS関連のことを調べてみた2021年05月30日

AWSソリューションアーキテクト―アソシエイト用語集⑥管理とガバナンス編

– [AWSソリューションアーキテクト―アソシエイト用語集まとめ – Qiita](https://qiita.com/tatsumicro/items/55c191eea8553a52463c)

## ❒ AWS Management and Governanceサービス
– [AWSでの管理とガバナンス – AWS](https://aws.amazon.com/jp/products/management-tools/)

| カテゴリ | AWSのサービス |
| —- | :—-: |
| スピードアップ | **Organizations**、**License Manager**など |
| プロビジョニング | **CloudFormation**、**OpsWorks**、**Marketplace**など |
| 環境の運営 | **CloudWatch**、**CloudTrail**、**Config**、**Cost Explorer**、**X-Ray**など |

## ❒ Organizations
######

元記事を表示

AWS CloudFormationでLamdaを排他制御するStep Functionsを構築しよう

# はじめに
AWS CloudFormationを利用してLamdaを排他制御するStep Functions構築のテンプレートのサンプルです。
API GatewayはStep Functionsを使用します。また、Step FunctionsではSQSとLambdaにて排他制御を実現します。
さらに、Lambdaは、S3アーティファクトを使用します。
API Gatewayは非同期処理となり、実行状況をポーリングで確認できるようにしています。
また、API GatewayにはCORSの設定をしています。

テンプレートの概要が分からない場合は、[はじめてのAWS CloudFormationテンプレートを理解する](https://qiita.com/miyabiz/items/eb7b0fa1675b5199b9b7)を参考にしてください。

コードは[GitHub](https://github.com/miyabiz-room/CloudFormation-Template/tree/step-funcs-01)にもあります。

今回は、akane というシステムの dev

元記事を表示

AWSクラウドプラクティショナー学習3日目

## IAM(AWS Indentity and Access Management)

AWSのサービスの利用権限をユーザーごとに設定したもの。
ルートアカウントはすべての権限を持つため、これを日常的に使うのはセキュリティ的にあまりよろしくない。
よってIAMユーザーやIAMグループを作成してIAMごとに権限を付与する形で日常的にはAWSを運用する。

### IAM作成時の注意点

– 権限は最小限にする
– APIキーは各アカウント2つまでしか発行できない→3つめがほしい場合は1つめを削除する必要あり
– シークレットアクセスキーは生成時以外確認不能→なくしたら再発行してね

### IAMロール

APIキーを使わずにEC2などの各サービスごとに使用できるIAMを定めたもの。
APIキーの利用は非推奨とされているのでIAMロールを使うのが好ましい

## セキュリティグループ

1つ以上(複数でもOK)のインスタンスのトラフィックを制限する仮想のファイアウォール。
オンプレミス時代は全体で1つのファイアウォールを使用していたが、AWSではセキュリティグループを設定するだけで各イ

元記事を表示

【AWS】S3の概要(特徴とデータの保存形式)

#プログラミング勉強日記
2021年5月29日

#AWSのストレージサービスについて
 AWSでは3つの形式のストレージサービスがある。

 ブロックストレージ:EBSとインスタンスストアがブロックタイプのストレージ。EC2インスタンスにアタッチして(一緒になって)使っていくストレージ。ブロック形式でデータを保存し、高速・広帯域幅。
 オブジェクトストレージ:S3やGlacierがオブジェクトタイプのストレージ。安価で高い耐久性を持つオンラインストレージで、オブジェクト形式でデータを保存する。デフォルトでは複数AZに冗長化されている。
 ファイルストレージ:EFSがファイルタイプのストレージ。複数のEC2インスタンスから同時にアタッチ可能な共有ストレージサービスで、ファイル形式でデータを保存する。

#S3とは
 Simple Storage Serviceの頭文字3つをとってS3と呼ばれる。AWSで簡単にストレージを使う場合に最適。ユーザがデータを容量制限なく保存可能なマネージド型で提供されるオブジェクト型のストレージ。(マネージド型なので

元記事を表示

Route53と連携したExternalDNSをhttps化する

## はじめに
以前、EKSにExternalDNS用のポッドを作成して、
指定のFQDNでサービスにアクセスする方法について記載しました。([前回記事](https://qiita.com/guile/items/d41399f579d1a62634c0))
今回は公開したサービスをhttps化してアクセスする方法について記載します。

## 前提
– AWSのリソースは[terraform](https://www.terraform.io/)を利用してデプロイします。
– terraformバージョン: `v0.15.1`
– kubernetesはkubectlのcliを利用して操作します。
– kubernetesバージョン: `1.19`
– EKSは作成済みとします。
– 本ページでは利用するドメインを`sample.com`とします。
– 前回記事の続きですので、ExternalDNSは構築済みとします。

## ACM証明書を作成
ACM証明書を作成し、ドメインに紐付けるため以下のリソースをデプロイします。

– [aws_acm_certificate

元記事を表示

AWSソリューションアーキテクト―アソシエイト用語集⑤アプリケーション統合編

– [AWSソリューションアーキテクト―アソシエイト用語集まとめ – Qiita](https://qiita.com/tatsumicro/items/55c191eea8553a52463c)

## ❒ AWSのアプリケーション統合サービス
– [AWSのアプリケーション統合 – AWS](https://aws.amazon.com/jp/products/application-integration/)

| カテゴリ | AWSのサービス |
| —- | :—-: |
| API管理 | **API Gateway**など |
| イベントバス | **EventBridge**など |
| メッセージング | **SNS**、**SQS**など |
| コードなしでのAPI統合 | **AppFlow**など |
| ワークフロー | **Step Functions**、**Managed Workflows for Apache Airflow (MWAA)**など |

## ❒ SQS
###### SQ

元記事を表示

AWS CloudFormation

##概要
AWSリソースをコード化してくれるサービスで、テキストファイル(=テンプレート)にリソースの構造を記述してCloud Formationのサービス画面で読み込ませると、AWSリソースを自動作成してくれる。
自動生成だけでなく、変更や削除もできる。

テンプレートのファイル形式はXML,JSONなどあるが、YAMLをオススメしています。
理由: コメントの記述が可能な点、人間にとって読みやすい点です。

https://aws.amazon.com/jp/cloudformation/

##スタック
テンプレートを読み取って作成されたAWSサービスの集合体のことを**スタック**と呼びます。
テンプレートの構文途中にエラーがあっても中途半端に生成されることはなく、自動でロールバックされる。

**更新時**
テンプレートを新しく更新して改めてCloudFormationに読み込ませることで、バージョン2のスタックに更新される。

**削除時**
スタック単位で作成していたもの全てが削除される。

##Drift Detection
テンプレートでスタックを作成した後、GUI(

元記事を表示

【Go言語初心者】EC2インスタンス作成〜Vscodeで「hello go」するまで

Go言語の勉強をするなら、
いっそのこと、インスタンス上で勉強をしたいと思いhello goを出すまでできたので、
備忘録として記録しております。

## 環境
・MacOS
・Visual Studio Code
・Amazon linux2
・Go

[1.インスタンスの作成](#1-はじめに)
[2.EC2にSSH接続する](#2-EC2にSSH接続する)
[3.golangインストール](#3-golangインストール)
[4.vscodeでリモート接続する](#4-vscodeでリモート接続する)
[5.参考](#5-参考)

##1. EC2インスタンスの作成
AWSの画面は日々変わっていきますが、操作自体はそんなに変わらないと思います。
![スクリーンショット 2021-05-29 20.13.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/700627/1ca4c898-8e53-4e74-c301-8a584b7c27c6.png)

まず、オレンジボタンの**「インスタンス

元記事を表示

AWSソリューションアーキテクト―アソシエイト用語集④ネットワーキング編

– [AWSソリューションアーキテクト―アソシエイト用語集まとめ – Qiita](https://qiita.com/tatsumicro/items/55c191eea8553a52463c)

## ❒ AWSのネットワーキングとコンテンツ配信サービス
– [AWSのネットワーキングとコンテンツ配信 – AWS](https://aws.amazon.com/jp/products/networking/)

| カテゴリ | AWSのサービス |
| —- | :—-: |
| ネットワークファウンデーション | **Amazon VPC**、**AWS Transit Gateway**など |
| アプリケーションネットワーキング | **ELB**、**API Gateway**、**App Mesh**など |
| エッジ・ネットワーキング | **CloudFront**、**Route 53**、**AWS Global Accelerator**など |
| ネットワークセキュリティ | **AWS WAF**、**A

元記事を表示

AWSソリューションアーキテクト―アソシエイト用語集③コンピューティング編

– [AWSソリューションアーキテクト―アソシエイト用語集まとめ – Qiita](https://qiita.com/tatsumicro/items/55c191eea8553a52463c)

## ❒ AWSのコンピューティングサービス
– [AWSのコンピューティングサービス – AWS](https://aws.amazon.com/jp/products/compute/)

| カテゴリ | AWSのサービス |
| —- | :—-: |
| インスタンス(仮想マシン) | **EC2**、**Amazon Lightsail**など |
| コンテナ | **ECS**、**ECR**、**EKS**、**Fargate**など |
| サーバーレス | **AWS Lambda** |
| エッジおよびハイブリッド | **AWS Snowファミリー**、**VMware Cloud on AWS**など |

## ❒ EC2
| インスタンスタイプ | 特徴 |
| —- | :—-: |
|

元記事を表示

AWS App RunnerにLaravelアプリをデプロイする

先日リリースのあったAWS App Runnerがこれだよこれという感じの内容だったのでやってみました。

https://aws.amazon.com/jp/blogs/news/introducing-aws-app-runner/

## 使い方

### 1.コンテナイメージの準備

![スクリーンショット 2021-05-29 12.46.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/192321/32a32818-83d6-ee1a-7e10-cabb19100e31.png)

ソースとしてコンテナかリポジトリを選べます。
リポジトリだとruntimeがpythonとnodeの2つのみ対応されています。(21.05.29時点)
ここではLaravel実行環境のイメージをプッシュしてそれをソースとします。

https://github.com/php-pm/php-pm

“`Dockerfile
FROM phppm/nginx:latest
COPY . /var/www
C

元記事を表示

seeds.rbの情報を本番環境に反映させたくない時

##状況
ローカル環境をCloud9で構築、EC2環境にアプリをデプロイしている状況です。
そこでseeds.rbに記載した情報を本番環境に反映させたくなかったので、その対処法です。
seeds.rbには管理者ユーザーのログイン情報を記載しており、GitHubにその情報を載せるとセキュリティ上良くないので、GitHunbへのpushは行っていません。

##作業

まず結論としては、seeds.rbの内容を反映させるためのコマンドを「rake db:seed RAILS_ENV=production」
ではなく、「rake db:seed」としていたことです。

では順番にエラー遭遇と上記コマンド入力までの流れをみていきます。

今回GitHubにseedsファイルの情報は載せていないので、本番環境上で追記してあげます。

“`:本番環境のターミナル
アプリ名 $ vi db/seeds.rb
#なければtouch db/seeds.rbにて作成
“`

“`:db/seeds.rb
User.create!(
name: “管理者”,
email: “admin@ex

元記事を表示

英語の試験監督で,ピアソンVUEでAWS-SAAをオンライン受験した際のトラブル

# はじめに
[現在オンラインでAWSの資格を受験すると,不合格でも再受験無料のキャンペーンが行われています.](https://pages.awscloud.com/Global_TrainCert_Japan_Online_Proctoringja.html)
どうしても5月中にオンラインでAWS 認定 ソリューションアーキテクト – アソシエイトを取得したかったのですが,すでに5月の終わりごろで,日本語の試験監督を選ぶと5月中の受験が不可能だったため,英語の試験監督で受験しました.
その際のトラブルなどをメモしたいと思います.
今後同じような状況になった方の助けになれば幸いです.

# 運転免許証以外のやつある?
口頭で指示されると思っていましたが,基本的に指示はチャットでした.
身分証明書に運転免許証を使用したところ,おそらく漢字が読めないので,
「英語で書かれたLICENSE IDない?」
みたいなことを言われました.ないと答えると,
「とりあえずこちらで後で処理するので試験は可能.何かあれば後で連絡する」
と言われました.

# 姿勢が斜め過ぎた?
試験開始後,机に肘をつい

元記事を表示

Well Architected Frameworkを読む

# Well Architected Frameworkとは
AWSの提案する「システム設計・運用の”大局的な”考え方とベストプラクティス集」がWell Arcitected Frameworkです。構成はいわゆる「5つの柱(運用・セキュリティ・信頼性・パフォーマンス・コスト)」からなり、それぞれの柱のなかにベストプラクティスやAWSを利用した際の実装パターンなどがまとめられています。

クラウドを用いたシステム設計を行う人は一度は目を通した方が良い内容になっています。

# 本記事の目的
Well Architected Frameworkの目指すところは組織の体制と制度も含めてアーキテクチャと捉えて組織レベルでの実践を求めています。そのレベルの実現をいきなり目指すことは簡単ではないため、本記事ではあくまでもクラウドを用いたシステム設計者に向けてWell Architected Frameworkの概要を理解しアーキテクチャ構築に対して一定の指針を持てるようになるところを目的としています。
Well Architected Frameworkの概要を理解しているだけでも、現在自分が構

元記事を表示

MQTTでもProxy経由でAWS IoT Coreに接続する

AWS IoT Device SDK v2 for Pythonが更新されまして、リリースノートの中にMQTTでもプロキシ経由でアクセスできるようになったよ的な記載がありました。

> Http proxies can now be used with direct mqtt connections, not just websockets

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1180441/7ced5817-94d5-2fa2-13d5-aa1ee9ab9e63.png)

https://github.com/aws/aws-iot-device-sdk-python-v2/releases/tag/v1.5.17

# 解説

“`python
proxy_options = None
if (args.proxy_host):
proxy_options = http.HttpProxyOptions(host_name=args.proxy_host,

元記事を表示

AWS S3 サーバーアクセスログをLambdaで見やすくする

# サーバーアクセスログ

以下のような書式で出力されるが、見にくい。JSON みたいなキーと値の書式で見たかったので、 PUT をトリガーに Lambda で処理してCloudWatch Logs に見やすくしたログを出力した。

“`
79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be awsexamplebucket1 [06/Feb/2019:00:00:38 +0000] 192.0.2.3 79a59df900b949e55d96a1e698fbacedfd6e09d98eacf8f8d5218e7cd47ef2be 3E57427F3EXAMPLE REST.GET.VERSIONING – “GET /awsexamplebucket1?versioning HTTP/1.1” 200 – 113 – 7 – “-” “S3Console/0.4” – s9lzHYrFp76ZVxRcpX9+5cjAnEH2ROuNkd2BHfIa6UkFVdtjf5mKR3/eTPFvsiP/XV/VLi

元記事を表示

TerraformでEKS+ExternalDNSでサービスを公開する方法

## はじめに
[お名前.com](https://www.onamae.com)で取得したドメインを利用して、
EKSにExternalDNS用のポッドを作成して、指定のFQDNでサービスにアクセスする方法について記載します。

## 前提
– AWSのリソースは[terraform](https://www.terraform.io/)を利用してデプロイします。
– terraformバージョン: `v0.15.1`
– kubernetesはkubectlのcliを利用して操作します。
– kubernetesバージョン: `1.19`
– EKSは作成済みとします。
– ドメインは既に取得できているものとします。
– 本ページでは取得したドメインを`sample.com`とします。

## ドメインをドメインをroute53に割り当て
ドメイン名は取得したドメインそのまま記載してデプロイする
“`
resource “aws_route53_zone” “main” {
name = “sample.com”
}
“`

## ポリシーを作成
Exte

元記事を表示

[node] requestを使わずに標準ライブラリでPOST

こんにちは take-2405です。
AWS LambdaでSlack botを作成しました。

参考にさせていただいた記事

https://qiita.com/rei-ta/items/931caaaef2684c97e4cf

## お急ぎの方用
“`javascript
const https = require(‘https’);
const querystring = require(‘querystring’);
.
.
.
var post_data = querystring.stringify({channel:”,text:}, null);
let options = {
host: ‘slack.com’,
path: ‘/api/chat.postMessage’,
port: 443,
headers: {
‘Content-Type’: ‘application/x-www-form-urlencoded’,
//他にtokenなど
},

元記事を表示

ロール切替をしてaws-sdk-phpを使う

# ロール切替をしてaws-sdk-phpを使う

環境別にアクセスキー・シークレットアクセスキーを変更せずスイッチロールを使ってアクセス環境を変更してみた

スイッチロールはこちらの記事を参考

https://qiita.com/morita-toyscreation/items/eeba120471cfad628c49

## aws-sdk-phpの導入

PHP側でAWSを使うためaws-sdk-phpを使う
composerを使って導入

*composer.json*

“`json
{
“name”: “sample/sample”,
“authors”: [
{
“name”: “morita-toyscreation”,
“email”: “morita@toyscreation.jp”
}
],
“require”: {
“aws/aws-sdk-php”: “3.*”
}
}
“`

*インストール*

“`
$ composer install
“`

## ユーザー追加

ロール切

元記事を表示

駆け出しエンジニアのAWSクラウドプラクティショナー学習記録2日目

## AWSにおけるセキュリティ

### AWSとユーザーはそれぞれクラウドのどこに責任をおうか?

– AWS…クラウドの本体(リージョンやアベイラビリティゾーン)
– ユーザー…クラウド内部(アップデート、セキュリティグループなど)

### AWSのセキュリティ面でのメリット

– データ安全性が保護されている
– コンプライアンスが担保されている
– ユーザーが独自に施設を管理しなくていい
– ビジネス規模に応じてスケーリング可能

### セキュリティに対するAWSの責任

物理面で以下の責任を負う

– 自然災害対策…リージョン間を物理的に離すことで特定のリージョンが自然災害にやられても大丈夫なようにする
– 冷暖房や消火設備の管理
– データレイヤーに対するアクセス制限

### セキュリティに対するユーザーの責任

– ID/PW…MFA多段階認証を導入するなどして保護すべし
– ルートアカウントを用いずにIAMで最小限の権限を使うべし
– キーペアを厳重に管理…使用できるユーザーを制限しましょう。
– API keyの管理…ソースコード直じゃなくて環境変数にしましょ

元記事を表示

OTHERカテゴリの最新記事