- 1. 【AWS】ELBとALBの違い
- 2. AWS Direct Connectメモ書き
- 3. Amlifyを試してみた
- 4. AWS SAMを使ったローカル環境での開発とCodePipelineによるデプロイを試してみる
- 5. AWS Amplify基本編
- 6. Lambdaの中からS3のPythonファイルをインポートする
- 7. 【AWS】S3+CloudFront+ACM+Route53でドメイン公開してHelloWorldする
- 8. AWS IAMについて
- 9. AWS CDK実行環境とRDSを作成してみた
- 10. AMIやスナップショットを AWS CLI で一気に削除する
- 11. CDKでWordPressを構築する手順書を公開します
- 12. AWSのVPCを用いた仮想ネットワークの構築(SSH:踏み台サーバー→バッチサーバー)
- 13. CloudWatch Logs InsightsのURLを生成する
- 14. AWS API Gateway で直接 DynamoDB に読み取り・書き込み・削除を行う
- 15. 資格取得は熱いうちに打て!(AWS 認定ソリューションアーキテクト アソシエイト 編)
- 16. AWS公式資料で挑むMLS認定(1)-試験ガイドを読む
- 17. 【備忘】S3静的ウェブサイトホスティングで403エラーが出る時
- 18. 【ACM/ALB】504 Gateway Time-out と向き合って見つけた解消法
- 19. Amazon WorkSpacesでQGISの環境構築をしてみた
- 20. 【AWS】Lambdaのハンズオンで学んだことをまとめる。
【AWS】ELBとALBの違い
## 目的
ALBとELBについて何が違うのかよくわからなかったため調べてみた。## 結論
ELB(Elastic Load Balancing)という大枠の中の一種がALB(Application Load Balancer)。
ALBはELBの一種。## そもそもELBとは
### 役割
* アプリケーションへのトラフィック(ネットワーク上で転送されるデータ量)を負荷分散する
* トラフィックを送る先のサーバーが問題なく稼働しているか定期的に確認する(=ターゲットモニタリング)### 負荷分散
ユーザーからのアクセスを複数のターゲット(サーバーなど)に振り分け、サーバーダウンしないようにしてくれる。
負荷状況に応じて自動にスケール(サーバーの台数を増やすなど)してくれる。### ターゲットモニタリング
ターゲットの状態を監視。AWSのサービスの一つであるCloud Watchメトリクスでログの取得を可能にしている。
ターゲットの異常を検知したら通信を振り分けないようにしてくれる。## ではALBは?
* HTTPトラフィックとHTTPSトラフィックのレイ
AWS Direct Connectメモ書き
## AWS Direct Connect
### 参考URL
### 物理接続
– Meet-Me-Room
– LOA-CFAをもとに接続
– LAG(Link Aggregation Group)仮想インターフェースの種類
– プライベート仮想インターフェース
– パブリック仮想インターフェース
– トランジット仮想インターフェース#### 仮想インターフェース( Virtual Interface = VIF )
Connection(接続) = 物理接続(1G or 10G)
VIF = Connectionを通してAWSリソースにアクセスするための論理インターフェース
– AWSとカスタマルータ間でBGPピアを確立し経路交換するために必要
– BGP: 経路交換する際に使用するプロトコル
– VLAN IDをもつ#### VIFの種類
– プライベートVIF: VPCへのプライベートIPを介した接続を提供
– パブリックVIF: AWSの全リージョ
Amlifyを試してみた
# 背景・目的
Webアプリケーションの調査および検証をする機会があり、簡単に作成できる仕組みがAWSにあるか調べてみたところAmplifyがあったので試してみます。# まとめ
Amplifyは、フロントエンド開発を構築するツールです。
利用することで、簡単にバックエンドと通信でき素早くデプロイできる機能を有しています。
また、SPAフレームワークや、SSGをサポートすることで、最新のWebアプリケーション開発にも対応されています。# 概要
## Amplifyとは?
フロントエンジニアがAWSでフルスタックアプリケーションを素早く構築する専用ツールと機能です。
Amplifyでは、以下のサービスを提供しています。
– Amplify Hosting
– Amplify StudioAmplify Hostingでは、CI/CDでフルスタックサーバレスウェブアプリをホストするためのgitベースのワークフローを提供しているとのことです。
## Amplify Hostingの機能
以下の機能を有します。
– SPAフレームワークのサポート。以下に例を記載します。
–
AWS SAMを使ったローカル環境での開発とCodePipelineによるデプロイを試してみる
ほぼ https://dev.classmethod.jp/articles/sam-cli-pipeline/ の焼き直しのような感じだが、個人的な備忘録・メモとして作成。
動機:
– API Gateway + AWS Lambda(複数)の構成での開発を行いたかった
– 極力ローカル環境で開発を行えるようにしたかった
– gitと連携させて、CI/CDが出来るようにしたかったやったこと:
– AWS SAM(Serverless Application Model)を使って、ごく簡単な例での環境構築を実施
# 前提条件
作業環境:
– Ubuntu22.04LTS @WSL2(Windows11)
* dockerをインストールしておく
– iptables周りのせいでdocker serviceを起動できないので、 https://qiita.com/tkc_tsuchiya/items/f7f4d502d8e2728f69c5 を参考にしてdocker serviceを起動する
– `sudo update-alter
AWS Amplify基本編

AWS Amplifyを触ってみたのでその備忘録して記事にまとめました。本編ではあくまで基本と公式のチュートリアルを触ったインプレッションです。
### 今一度AWSとは
Amazonにより提供されているクラウドコンピューティングサービス(元々は社内用に使っていたのを外部にサービス提供始めた)AWS、Microsoft Azure, Google GCPが3大インフラサービス。
ウェブサービスと称しているが、ウェブサービスに限らない多種多様なインフラサービスを提供している。これを使えばなんでもできるので、全容を把握するのは厳しいし、公認資格も何個もある代物。### では本題のAmplifyとは
AWSが提供するサービスの1つ。
ウェブ/モバイルのフロントエンドエンジニアがAWSでフルスタックアプリケーションをすばやく簡単に構築
Lambdaの中からS3のPythonファイルをインポートする
# 背景・目的
AWSのLambdaをPythonで利用するとき、外部ライブラリをパッケージにまとめてデプロイするのが一般的かと思います。
その場合、パッケージのバージョンは固定されることになるのですが、あるとき、実行時にS3に配置したPythonファイルを実行時に読み込むというケースがあったので、その実現方法について備忘します。# システム構成
“`plantuml
package AWS {
database S3
() Lambda
}Lambda <-up- S3 : Pythonファイルを読み込み ``` # 例 ### S3にアップロードするファイル 下記の内容を`s3://some-bucket-name/uploaded_script.py`というパスにアップロードすると仮定します。インポートの挙動を確認するために、少し冗長ですが、標準ライブラリであるjsonをインポートしています。 ```python import json def hello(): print(json.dumps({"hello": "world"}
【AWS】S3+CloudFront+ACM+Route53でドメイン公開してHelloWorldする
# やること
– [S3とCloudFrontでHello worldした前回の内容](https://qiita.com/Ari_gohaaahn/items/a7ca0a08fb189c63f2fc) を元に、
Route53とACMを使ってドメイン公開する(最低限必要な設定だけ)# 目的
– 前回に引き続き、自分用の手順書として書き殴る
– 今後DB等を使ったWEBシステムを作っていく予定
– 上記情報の足がかり的な記事になったらいいなあ# 流れ
1. Route53でドメイン設定(ドメイン取得は割愛。私はお名前.comのURLを使用)
2. ACMで証明書を発行
3. Route53で追加設定①
4. CloudFrontでディストリビューション設定を変更
5. Route53で追加設定②# 1. Route53でドメイン設定
– Route53へアクセスしホストゾーンメニューから、「ホストゾーンの作成」を行う
– ドメイン名:取得したURLをコピペ(example.com)
– タイプ:パブリックホストゾーンを選択
– あとはそのま
AWS IAMについて
# AWS IAMについて学んだ事
AWSのIAMを改めて勉強していたらよくわかっていなかったことがたくさん出てきたので復習も兼ねて学んだ事のアウトプットする。
間違いなどのご指摘は大歓迎です。# 私のスペック
大学卒からアパレル関係の営業を6年経験後現在のSESに転職して1年ほど。
気づいたらAWSの勉強をしており、資格11冠目指したいとも思ってます。
その前にAWSエンジニアとして仕事をしたい為、更なる知識の深める際にIAMに詰まった。
SAAは合格済み# なぜ書こうと思ったか
アウトプットするまでが勉強だと思い記事を書く事にした。
また、IAMに苦手意識もあり、AWSに知見がある方がIAMが詳しい人はAWSの知識も豊富とのことを聞き納得した自分がいたため。# そもそもIAMとは
正式な名前はAWS Identity and Access Management
・AWSリソースをセキュアに操作するために、認証・認可の仕組みを提供する
マネージドサービス
・「誰が」「どのような条件で」「どんなアクセスができるか」を細かく制御可能
・IAMポリシーで、最小権限の付与が可能
AWS CDK実行環境とRDSを作成してみた
# ご挨拶
最近CDKを使用してWordPress用RDSを作成する機会があったので記事として残しておきます。
# 参考資料
[Working with the AWS CDK in Python](https://docs.aws.amazon.com/cdk/v2/guide/work-with-cdk-python.html)
[AWS CDK Python Reference](https://docs.aws.amazon.com/cdk/api/v2/python/index.html)
# 環境
CDK実行環境:Cloud9
CDKバージョン:2.22.0 (build 1db4b16)
言語:Python
OS:Ubuntu Server 18.04 LTS
インスタンスタイプ:t3.small
# 環境作成
“`text:Cloud9
mkdir rds-setup
cd rds-setup
cdk init app –language python
source .venv/bin/activate
python -m pip install -r requir
AMIやスナップショットを AWS CLI で一気に削除する
# 1.AMIとスナップショットの一覧を取得する
ここはCloudShell で実施している。
## 1-1.AMIの一覧を取得する
`aws ec2 describe-images –owners <対象AWSアカウントID>` を実行すると、以下のようにAMIの詳細がJSON形式でずらずら出てくる。この情報の中から`–query`オプションで必要な情報(今回はImageId)を抜き出す。“`shell_session
$ aws ec2 describe-images –owners <対象AWSアカウントID>
{
“Images”: [
{
“Architecture”: “x86_64”,
“CreationDate”: “2022-05-02T10:24:47.000Z”,
“ImageId”: “ami-xxxxxxxxxxxxxxxxx”,
“ImageLocation”: “<対象AWSアカウントID>/AMI01_sakujo-tes
CDKでWordPressを構築する手順書を公開します
CDK v2の凄さとMkDocsの凄さに感動して、CDKでWordPressを構築する手順書を作成しました。
https://moritalous.github.io/wordpress-cdk/
この構成をほぼCDKで手順を追いながら構築します。

私なりに感じたCDKの凄さです。
* マネジメントコンソールを触らなくても環境構築ができる
* やり直しが何度も効くし、うまくいった状態まで巻き戻せる
実際、この手順書を完成させるまでに30回ぐらいは環境をすべて消して一から構築してを繰り返したと思います。
* リソースの消し忘れがない
* IDEの補完が効く
CloudFormationのJSONやYAMLを書くのが嫌でも、CDKなら楽しみながら環境構築ができました。
* 学習成果をアウトプットできる最後の**学習成
AWSのVPCを用いた仮想ネットワークの構築(SSH:踏み台サーバー→バッチサーバー)
# はじめに
なぜかインフラエンジニアをやたら勧められ、AWSのVPCを用いた仮想ネットワーク構築してインフラ関係の勉強中。# 目次
– VPCとサブネットワークの作成
– ルートテーブル、インターネットゲートウェイの作成とメインルートの設定
– 踏み台サーバーとバッチサーバーの作成
– 踏み台サーバーへSSHログイン
– 踏み台サーバーからバッチサーバーへSSHログイン
– バッチサーバーへのアクセス制限# インフラ構築図
## VPCとサブネットワークの作成
VPC IPv4 CIDR
`192.168.0.0/16`サブネットを作成したVPC範囲内で作成
今回は、下記の値で作成Public subnet
`192.168.1.0/24`
Private subnet
`192.168.2.0/24`
CloudWatch Logs InsightsのURLを生成する
# はじめに
CloudWatch Logs Insightsのコンソールでログを検索すると、その内容がURLに反映されます。例えば次のようなURLです。`
https://ap-northeast-1.console.aws.amazon.com/cloudwatch/home?region=ap-northeast-1#logsV2:logs-insights$3FqueryDetail$3D$257E$2528end$257E0$257Estart$257E-3600$257EtimeType$257E$2527RELATIVE$257Eunit$257E$2527seconds$257EeditorString$257E$2527fields$252A20$252A40timestamp$252A2C$252A20$252A40message$252A20$252A7C$252A20limit$252A2020$257Esource$257E$2528$257E$2527log_group_1$257E$2527log_group_2$2529$2529
`このURLを
AWS API Gateway で直接 DynamoDB に読み取り・書き込み・削除を行う
# 初めに
この記事では、以下のようなプライマリキーをもつテーブルを想定し、API Gateway の AWS 統合タイプを使用して DynamoDB の操作について書きます。
|パーティションキー|ソートキー|
|—|—|
|year|title|# 読み取り
アクション:`Scan`
https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html
マッピングテンプレート例
“`json
{
“TableName”: “Movies”
}
“`# 書き込み
アクション:`PutItem`
https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html
マッピングテンプレート例
“`json
#set($inputRoot = $input.path(‘$’))
{
“TableName”: “Movies”,
“Item”: {
“ti
資格取得は熱いうちに打て!(AWS 認定ソリューションアーキテクト アソシエイト 編)
## はじめに
こんにちは。
先日、表参道の Lindt というチョコレート屋さんに行った時に、お店の読み方を”リント”だと思っており、静的解析しそうな名前だな〜と思いながら、店内外でリント、リントと連呼していたことろ、正しくは”リンツ”だったらしく、とても恥ずかしい思いをしたと共に技術に脳を侵食される恐怖を覚えた鹿です。店名の読み方の静的解析が私の脳に実装されていなかった話はともかく、
本日は、先日取得した「AWS 認定ソリューションアーキテクト アソシエイト(以下 SAA)」についての体験談を記事にしようと思います。私自身 AWS の実務経験がなく、完全に机上の知識のみでの受験だったのですが、なんとか合格することが出来たので、AWS 実務経験がない方でも SAA 取得に挑戦してみるきっかけになればいいなと思っております。
## 参考資料
勉強には以下の資料を使用しました。
– [AWS 認定資格試験テキスト AWS 認定ソリューションアーキテクト – アソシエイト 改訂第 2 版](https://www.amazon.co.jp/AWS%E8%AA%8D%E5%A
AWS公式資料で挑むMLS認定(1)-試験ガイドを読む
## はじめに
AWS認定機械学習–専門知識(AWS Certified Machine Learning – Specialty)(MLS-C01)
の試験準備を、AWS公式資料をベースに、演習交えながら進めようと思います。
資格もさることながら、真の機械学習スペシャリストを目指したい。※ 余談で、別試験で頂いた50%割引試験バウチャーを使えるとのこと。
## MLS資格とは
[AWS認定ページ](https://aws.amazon.com/jp/certification/certified-machine-learning-specialty)から
– この資格は、組織がクラウドイニシアチブを実装するための重要なスキルを持つ人材を特定して育成するのに役立ちます
– `AWS Certified Machine Learning – Specialty`を取得すると、AWSで下記機械学習(ML)分野に関する専門知識を認定します
– モデルの構築
– トレーニング
– チューニング
– デプロイ## 試験ガイドを読む
[AWS Ce
【備忘】S3静的ウェブサイトホスティングで403エラーが出る時
S3の静的ウェブサイトホスティングで思わぬエラーに遭遇してしまったため、備忘です。
AWS初心者の一助になれば幸いです。### やりたい事
S3の静的ウェブサイトホスティング機能を使用して、htmlファイルにパブリックにアクセスできることを確認したい。
### エラー内容
以下のとおり403エラーとなる。
### 原因
バケットポリシー誤り。
Resourceのarnにはバケット名だけではなく、「/*」まで含める。“`diff_json
{
“Version”: “2012-10-17”,
“Id”: “1”,
“Statement”: [
{
“Sid”: “1”,
“Effect”: “A
【ACM/ALB】504 Gateway Time-out と向き合って見つけた解消法
## 概要
AWSのApplication Load Balancer(ALB)を使ってHTTPS化する際に
ロードバランサーの作成など各種設定を終えてドメインでアクセスしてみると
「504 Gateway Time-out」が発生し苦戦したため、こちらにアウトプットしていきます。恐らく、これはおっちょこちょいなケースではあると思いますが、
調べたことも含めて共有していけたらと思います。尚、ご指摘箇所がございましたら
ご教授いただけますと幸いです。## 結論
序盤の序盤ですが、先に私のケースの場合の結論だけお話しすると
**ロードバランサーのリスナーのデフォルト転送先(ターゲットグループ)をEC2インスタンスのインバウンドルールが許可しているポートに合わせる**
ということです。
つまりは、ちゃんとインバウンドルール、アウトバウンドルールが適切に許可されているか確認をしようね、ということです。
文字だけではよくわからんですよね。以下で説明していきます。## ELB,ALBとは
ELBとは、公式で以下のように述べています。
>Elastic Load Bala
Amazon WorkSpacesでQGISの環境構築をしてみた

### Amazon WorkSpacesでQGISの環境構築をしてみました :tada:
[QGIS](https://qgis.org)とは、地理情報システムの閲覧・編集・分析機能を有するクロスプラットフォームのオープンソースソフトウェア・GISソフトです。今回は、[Amazon WorkSpaces](https://aws.amazon.com/workspaces)のWindows環境を利用しQGISの実行環境を構築してみました :thumbsup:
詳細として下記について説明します。
– [Windows環境構築](https://qiita.com/dayjournal/items/4815226b82b08c8d9610#windows%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89)
– [リモート接続環境構築とQGISインストール](https://qiita.com/dayjournal
【AWS】Lambdaのハンズオンで学んだことをまとめる。
## はじめに
こんにちは、k_ukiです。
「AWSではじめるクラウド開発入門」の10章と11章を進めていきました。
そこでは、サーバーレスクラウドに関連する技術が取り上げられており、「Lambda」「S3」「DynamoDB」の3つの技術をハンズオン形式で学習しました。その中でも、今回は「Lambda」について学んだことをまとめていきます。
## 「Lambda」とは?
簡単にまとめるとサーバーレスコンピューティングにおいて、プログラムの処理を担う部分にあたります。
Lambdaを理解するにおいて、まずサーバーレスコンピューティングの概要について学ぶ必要があります。
### サーバーレスコンピューティングとは?
今回は、webアプリケーションを開発&デプロイするケースを例とします。
従来通りであればプログラムを実行するためのwebサーバが必要となります。また、そのwebサーバーを実行するためのOSサーバーの環境なども構築する必要があります。webアプリケーションを開発&デプロイする際に、実行環境の構築はかなり大変な