{"id":16446478,"url":"https://github.com/fbukevin/aws-demo","last_synced_at":"2025-07-28T16:08:00.648Z","repository":{"id":70827570,"uuid":"115301703","full_name":"fbukevin/aws-demo","owner":"fbukevin","description":"simple web server demo for NCCU class","archived":false,"fork":false,"pushed_at":"2017-12-25T03:38:20.000Z","size":2,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-11T10:56:53.348Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fbukevin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-12-25T03:02:10.000Z","updated_at":"2017-12-25T03:06:52.000Z","dependencies_parsed_at":"2023-02-22T20:30:44.951Z","dependency_job_id":null,"html_url":"https://github.com/fbukevin/aws-demo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fbukevin/aws-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fbukevin%2Faws-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fbukevin%2Faws-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fbukevin%2Faws-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fbukevin%2Faws-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fbukevin","download_url":"https://codeload.github.com/fbukevin/aws-demo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fbukevin%2Faws-demo/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267543291,"owners_count":24104541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T09:47:42.670Z","updated_at":"2025-07-28T16:08:00.637Z","avatar_url":"https://github.com/fbukevin.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n## Part I - Create Web Server\n1. create an AWS accout (no credit card required for register)\n2. create an EC2 instance with **Amazon Linux AMI**\n    * Note\n    1. Security Group should allow ssh, http, https accessibility\n    2. Remeber download your PEM key and change its mode to 400 (`chmod 400 xxx.pem`)\n3. connect to instance via `ssh -i .ssh/your_key.pem ec2-user@\u003cdomain_name\u003e`)\n4. install flask: `sudo pip install flask`\n5. vim part1.py\n\n```py\nfrom flask import Flask\n\napp = Flask(__name__)\n\n@app.route(\"/\")\ndef main():\n    return \"Welcome!\"\n\nif __name__ == \"__main__\":\n    app.run(host='0.0.0.0', port=80)\n```\n\n6. run `sudo python part1.py`\n7. go to your web browser and connect to `\u003cdomain_name\u003e` to see if the web server shows `Welcome!` to you\n\n\n## Part II - Connect to Database\n\n1. Create RDS instance\n    * remember to allow port 3306 for accessing in Security Group of RDS\n2. sudo yum install -y mysql\n3. create table\n    1. connect to RDS instance: `mysql –u nccu –p –h \u003cendpoint\u003e`\n        * use the \"Master username\" and \"Master password\" \n    2. select database `use nccu_demo`\n    3. create table\n    ```sql\n    CREATE TABLE book (\n        `book_id` int(11) NOT NULL auto_increment,\n        `book_name` char(35) NOT NULL default '',\n        `author` char(35) NOT NULL default '',\n        PRIMARY KEY (`book_id`)\n    );\n    ```\n    4. insert data\n    ```sql\n    insert into book (book_name, author) values ('Introduction to AWS', 'veck');\n    ```\n    5. query\n\t```sql\n    select * from book;\n    ```\n4. sudo pip install flask-mysql\n5. vim app.py\n    * insert MySQL connection snippet\n    ```python\n    from flask.ext.mysql import MySQL\n\n    # create module instance\n    app = Flask(__name__)\n    mysql = MySQL()\n\n    # MySQL configuration\n    app.config['MYSQL_DATABASE_USER'] = '*'\n    app.config['MYSQL_DATABASE_PASSWORD'] = '*'\n    app.config['MYSQL_DATABASE_DB'] = '*'\n    app.config['MYSQL_DATABASE_HOST'] = '*'\n    mysql.init_app(app)\n\n    # Create MySQL connection instance\n    conn = mysql.connect()\n\n    # Create a query cursor\n    cursor = conn.cursor()\n    ```\n    * create a new router and query with cursor\n    ```python\n    @app.route(\"/books\")\n    def books():\n        query = \"SELECT * FROM book\"\n        cursor.execute(query)\n        data = cursor.fetchall()\n        print(data)\n        from flask import jsonify\n        return jsonify(data)\n    ```\n6. run `sudo python part2.py`\n7. go to your web browser and connect to `\u003cdomain_name\u003e` to see if the web server shows data to you","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffbukevin%2Faws-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffbukevin%2Faws-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffbukevin%2Faws-demo/lists"}